Hello Peter,

I know you probably know ;-)
that this fast solution which I post now is not so well appreciated due
to its possible privileges unconvenients, but in the meanwhile
if I was you I would access private members with a PrivilegedAction:

    public static Object testAccess(Object instance, String s) {
        try {
                final Field f = instance.getClass().getDeclaredField(s);
                AccessController.doPrivileged(new PrivilegedAction() {
                        public Object run() { 
                                f.setAccessible(true);
                                return null;
                        }
                });
                Object o = f.get(instance);
                return o;
        } catch(Exception e) {
                e.printStackTrace();
        }
        return null;
    }


Hoping it would be be useful as temporary patch ;-)

Bye


Petar Tahchiev wrote:
> 
> Sorry for the formating :-(.
> 
> 
> Hi guys,
> 
> it's Petar Tahchiev from the Jakarta Cactus Team (again :-)).
> I am trying to integrate the CactusTask with Ant 1.8-alpha.
> The CactusTask does:
> 0) Extends the JUnitTask from Ant.
> 1) Gets all the tests from JUnitTask
> 2) Iterates over them and sets different properties to each one of them.
> 3) Calls the JUnitTask to executes the test-cases.
> 
> So, the basis is that we are no longer able to use
> 
> execute(org.apache.tools.ant.taskdefs.optional.junit.JUnitTest);
> 
> because the delegate field (Object of type JUnitTaskMirror) leaves
> uninitialized and thus the CactusTask throws NLPE.
> This way to execute the tests we are bound to use the execute() method of
> the
> JUnitTask (because in that method the delegate object gets initialized).
> When calling
> the execute() method we have to have our tests configured. But when I get
> the tests and configure them with:
> ===============================================================
>                 Enumeration tests = getIndividualTests();
>                
>                 while (tests.hasMoreElements())
>                 {
>                     JUnitTest test = (JUnitTest) tests.nextElement();
>                    
>                     if (test.shouldRun(getProject())
>                      && !theWrapper.isExcluded(test.getName()))
>                     {
>                         test.setFork(true);
>                         if (theWrapper.getToDir() != null)
>                         {
>                             test.setTodir(theWrapper.getToDir());
>                         }
> ===============================================================
> 
> I am no longer able to set them in the JUnitTask. The field tests is
> private:
> 
>     private Vector tests = new Vector();
> 
> and there is no setter for an individual test, or a vector of tests.
> 
> Please, can you look serious to this and supply a setter method for this.
> This way I can configure
> the tests and set them in the JUnitTask, and after that just call
> execute().
> 
> Thank you very much.
> 
> P.S. Please keep me in a CC, because I am not subscribed to the Ant
> Developers' lists.
> 
> -- 
> Regards, Petar!
> Karlovo, Bulgaria.
> 
> EOOXML Objections
> http://www.grokdoc.net/index.php/EOOXML_objections
> 
> Public PGP Key at:
> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611 
> 



-- 
View this message in context: 
http://www.nabble.com/Cactus-1.8---Ant-1.8-Integration-tp15396771p15402964.html
Sent from the Ant - Dev mailing list archive at Nabble.com.

Reply via email to