Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] running compiler in java application


Dear Sir,

Yes, it is possible using the AspectJ compiler API (see http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/aspectj-home/doc/devguide/ajc-ref.html#d0e575). The way I have used it in the past looks something like this ...


            // Create a new Main together with a message holder to enable access to any compiler messages.
            org.aspectj.tools.ajc.Main ajCompiler = new Main();
            org.aspectj.bridge.IMessageHolder msgs = new MessageHandler();
            ajCompiler.setHolder(msgs);

            // Build up your compiler switches and arguments...
            ArrayList argsList = new ArrayList();
            argsList.add("-inpath");
            argsList.add("c:\dev\foo.jar");
            argsList.add("-outjar");
            argsList.add("c:\dev\outputs\foo-woven.jar");
            argsList.add("-classpath");
            argsList.add("c:\dev\jars\A.jar;c:\dev\B.jar");
           
            // ...and then put them into an array of strings  
            String[] argArray = (String[]) argsList.toArray(new String[]{});

            // Run the compiler
            ajCompiler.runMain(argArray, false);

            // Now get any messages out of the IMessageHolder
            if ( msgs.numMessages(IMessage.WARNING, true) > 0 )
            {
                IMessage[] problems =
                    msgs.getMessages(IMessage.WARNING, true);

                // Now just process the messages ....
               for (int i=0 ; i<problemMessages.length ;i++)
                {
                    ISourceLocation s = problemMessages[i].getSourceLocation();  
                    .. etc ... etc ...

                }// end for
            }// end if


Hope this helps (and that the code formatting doesn't get messed up in transit).

Best regards,
George
________________________________________
George C. Harley




"Sirrurg" <sirrurg@xxxxxxx>
Sent by: aspectj-users-admin@xxxxxxxxxxx

10/12/2004 08:15

Please respond to
aspectj-users@xxxxxxxxxxx

To
<aspectj-users@xxxxxxxxxxx>
cc
Subject
[aspectj-users] running compiler in java application





Hi,
 
does anyone know, if there is a possibility to run "ajc" directly within an other Java application?
 
Cheers,
    Sir

Back to the top