Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] aspectJ with packaged classes

Thanks for that, Andy. It is working now!

Just to complete this thread, i have one last query.

When i am working with jars instead of source projects (for instance, instead of the sources of the Java project and the source of the aspectJ project, i have the two jars), then how does it work? I was told to execute it with the following command:

java -classpath ".:aspectjrt.jar:aspectproject.jar" -jar javaproject.jar

Doesn't this mean that i am execute the java project and not the aspectJ project? Is there anyway i can execute the Java project (making it 'aware' of the aspects from the aspectJ project) and get the benefits from aspectJ? Is this sort of an inversion-of-control possible?

Thanks again,
Anirudh

On 5/23/07, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
There are no changes made to your Java project, running it will
continue to execute the basic HelloWorld program.  You must run the
AspectJ project.  When the AspectJ project is built, the helloworld
binary is taken as input from the Java project, woven with the aspect
*and written out into the AspectJ project output folder*.  You must
run the HelloWorld in the AspectJ project.


On 23/05/07, Anirudh Chandrakant <anirudh.chandrakant@xxxxxxxxx > wrote:
> I tried that too. Okay, here is the exact detail of what i am doing:
>
> 1. I created a Java application with a method which prints 'Hello World'
> 2. I created an AspectJ project which basically prints 'hello To You Too'
> after any method execution.
> 3. In the Inpath of the AspectJ project, i added the jar of the java
> application.
> 4. In the classpath of the Java project, i added the AspectJ project.
> 5. I ran the java project.
>
> I see 'Hello World'. :(
> Have i understood the concept of Inpath wrongly? Am i doing something i am
> not supposed to do? Should i be doing something more?
> This seems like a simple enough example, but i am unable to get it to work!
>
> Regards,
> Anirudh
>
> On 5/23/07, Matt Chapman <mpchapman@xxxxxxxxx> wrote:
> > Maybe you're going wrong at step 2 below. You can run as a regular
> > Java application, but you need to select the AspectJ project in the
> > Run configuration.
> >
> > On 22/05/07, Anirudh Chandrakant < anirudh.chandrakant@xxxxxxxxx> wrote:
> > > Hi Matt,
> > >
> > > Thanks for the help.
> > >
> > > I really must be the dumbest person on this list, i still havent been
> able
> > > to to get it to work :(
> > >
> > > Firstly, here is what i dummy code looks like:
> > >
> > > HelloWorld.java
> > >  ---------------------
> > > public class HelloWorld {
> > >
> > >      public static void main(String[] args) {
> > >         callHelloWorld();
> > >      }
> > >
> > >
> > >      public static void callHelloWorld() {
> > >         System.out.println ("Hello World");
> > >     }
> > >  }
> > >
> > > HelloAspect.aj
> > > ----------------------
> > > public aspect HelloAspect {
> > >
> > >     pointcut callHelloWorld() :
> > >          execution(* *(..));
> > >
> > >
> > >      after() : callHelloWorld() {
> > >         System.out.println("Hello To You Too!");
> > >     }
> > > }
> > >
> > > These are in two different projects (only the second file in a AspectJ
> > > project, the first one is a simple java project). I added the
> helloworld.jar
> > > as a inpath jar in the aspectj project. I also
> > > 1) turned on the option to see the info in the Problems view and i see
> the
> > > info on join-points and
> > > 2) tried to run it as a aspectJ application and i can select HelloWorld
> as
> > > the main class in the configuration.
> > >
> > > But, when i execute it - i get only "Hello World". When i put both the
> > > classes in the same project and run it, i get the right result.
> > >
> > > What am i doing wrong?!
> > >
> > > Thanks,
> > > Anirudh
> > >
> > >
> > > On 5/22/07, Matt Chapman <mpchapman@xxxxxxxxx> wrote:
> > > > After step 3, try adding the 'Hello World' jar file to the AspectJ
> > > > project's in-path. The weaving will then occur in the AspectJ project,
> > > > and the woven version of the Hello World class will be written to the
> > > > output folder of the AspectJ project. You could use the Navigator view
> > > > to check this. You can then run the woven class by creating a run
> > > > configuration for the AspectJ project and entering the name of the
> > > > class. To confirm that weaving is happening, you can also turn on a
> > > > compiler option: AspectJ compiler > Information > Output weaving info
> > > > messages to problems view.
> > > >
> > > > This article may also be useful background reading:
> > > >
> > >
> http://www.eclipse.org/articles/Article-Introducing-AJDT/article.html
> > > >
> > > > Hope that helps,
> > > >
> > > > Matt.
> > > >
> > > > On 21/05/07, Anirudh Chandrakant < anirudh.chandrakant@xxxxxxxxx >
> wrote:
> > > > > Hi,
> > > > >
> > > > > Thanks for that, it makes things a little clearer.
> > > > >
> > > > > But i am still facing a few problems. Here is what i did:
> > > > >
> > > > > 1. I created a Java project with one class which basically prints
> 'Hello
> > > World'
> > > > > 2. I packaged this into a jar and exported it to a location.
> > > > > 3. I created a AspectJ project with one aspect which prints a
> message
> > > > > after the call to the method which prints 'Hello World'.
> > > > > 4. I packaged this as a 'Jar File with AspectJ support' and exported
> it.
> > > > > 5. When i execute it with the command you have specified, all i can
> > > > > see is 'Hello World' with no message from the aspect.
> > > > >
> > > > > I thought there might be something wrong with my code, so i put the
> > > > > Hello World class in the aspect project. When i ran it, it displayed
> > > > > the right information.
> > > > >
> > > > > Am i doing something wrong? Do i need to do something more?
> > > > >
> > > > > Thanks again,
> > > > > Anirudh
> > > > >
> > > > > On 5/21/07, Sérgio Agostinho < sergioag@xxxxxxxxxxxxx> wrote:
> > > > > >
> > > > > >  Hello there,
> > > > > >
> > > > > >  You will need to do something like this:
> > > > > >
> > > > > >  $ java -classpath
> > > > > > ".:aspectjrt.jar:your_aspectj_project.jar" -jar
> > > > > > your_java_project.jar
> > > > > >
> > > > > >  This assumes that you are keeping the aspectJ runtime library and
> > > your
> > > > > > aspects JARs in the same directory as to your application. It also
> > > assumes
> > > > > > that your are creating a JAR file with your aspectJ project.
> > > > > >
> > > > > >  Hope this helps,
> > > > > >
> > > > > >  Anirudh Chandrakant wrote:
> > > > > > Thank you so much for that information, dean!
> > > > > >
> > > > > >  I still a little difficulty figuring out how this would work.
> Here is
> > > the
> > > > > > scenario:
> > > > > >  I have a Java project. I do not have the sources, i only have the
> > > jar. I
> > > > > > would like to weave aspects into this. I create an aspectJ project
> and
> > > > > > define the aspects i want. I add the Java jar in the inpath of the
> > > aspectJ
> > > > > > project.
> > > > > >
> > > > > >  Now:
> > > > > >  1. How do i execute the aspectJ project without a 'main' class?
> If i
> > > have
> > > > > > to specify the 'main' class, what do i do in the main class?
> > > > > >  2. How does it all work? If i execute the jar file, how are the
> > > aspects
> > > > > > weaved in? How is the jar aware of the aspects?
> > > > > >
> > > > > >  Maybe i am missing something extremely simple here, but i am
> unable
> > > to
> > > > > > figure out how this whole setting would function.
> > > > > >
> > > > > >  Thanks in advance,
> > > > > >  Anirudh
> > > > > >
> > > > > >
> > > > > > On 5/21/07, Dean Wampler < dean@xxxxxxxxxxxxxxxxxxxxx > wrote:
> > > > > > >
> > > > > > > Yes, use the "-inpath" option for ajc to specify the jars you
> want
> > > to
> > > > > > "weave". Here's a good blog on the different path options.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > >
> http://www.aspectprogrammer.org/blogs/adrian/2004/10/three_paths_sta.html
> > > > > > >
> > > > > > >
> > > > > > > dean
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On May 21, 2007, at 6:05 AM, Anirudh Chandrakant wrote:
> > > > > > >
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I am a new entrant into the aspectJ world and i am enjoying the
> ride
> > > so
> > > > > > far.
> > > > > > > I have used aspectJ with an existing project and it works as
> > > desired.
> > > > > > >
> > > > > > > Now, if i have a Java project but i do not have the source files
> (i
> > > only
> > > > > > have the jar), can i still use aspectJ? (I know the signatures of
> all
> > > the
> > > > > > methods that i want to insert my pointcuts into)
> > > > > > >
> > > > > > > The demo shows conversion of a normal project into an aspectJ
> > > project (in
> > > > > > a step similar to instrumentation), i was wondering if this was
> > > possible
> > > > > > with packaged classes.
> > > > > > >
> > > > > > > Thanks in advance,
> > > > > > > Anirudh
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > aspectj-users mailing list
> > > > > > > aspectj-users@xxxxxxxxxxx
> > > > > > >
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > >
> > > > > > >
> > > > > > > Dean Wampler, Ph.D.
> > > > > > > dean at objectmentor.com
> > > > > > > http://www.objectmentor.com
> > > > > > > http://www.aspectprogramming.com
> > > > > > > http://www.contract4j.org
> > > > > > >
> > > > > > >
> > > > > > > I want my tombstone to say:
> > > > > > >   Unknown Application Error in Dean Wampler.exe.
> > > > > > >   Application Terminated.
> > > > > > >       [Okay]        [Cancel]
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > aspectj-users mailing list
> > > > > > > aspectj-users@xxxxxxxxxxx
> > > > > > >
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >  --
> > > > > >  'Tomorrow's what i am waiting for, but i can wait a little more'
> -
> > > Calvin
> > > > > > (Bill Watterson) ________________________________
> > > > > >
> > > > > > _______________________________________________
> > > > > > aspectj-users mailing list
> > > > > > aspectj-users@xxxxxxxxxxx
> > > > > >
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > >
> > > > > >
> > > > > >
> > > > > >  --
> > > > > > Sérgio Agostinho
> > > > > > Research Assistant
> > > > > >
> > > > > > CITI - Centre for Informatics and Information Technologies
> > > > > > Faculdade de Ciências e Tecnologia
> > > > > > Monte da Caparica
> > > > > > 2829-516 Caparica
> > > > > > Portugal
> > > > > >
> > > > > > E-mail: sergioag@xxxxxxxxxxxxx
> > > > > > URL: http://citi.di.fct.unl.pt
> > > > > > Phone: +351 21 2948300 (ext. 10771)
> > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > aspectj-users mailing list
> > > > > > aspectj-users@xxxxxxxxxxx
> > > > > >
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > 'Tomorrow's what i am waiting for, but i can wait a little more' -
> > > > > Calvin (Bill Watterson)
> > > > > _______________________________________________
> > > > > aspectj-users mailing list
> > > > > aspectj-users@xxxxxxxxxxx
> > > > >
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > >
> > > > _______________________________________________
> > > > aspectj-users mailing list
> > > > aspectj-users@xxxxxxxxxxx
> > > >
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > >
> > >
> > >
> > >
> > > --
> > > 'Tomorrow's what i am waiting for, but i can wait a little more' -
> Calvin
> > > (Bill Watterson)
> > > _______________________________________________
> > > aspectj-users mailing list
> > > aspectj-users@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > >
> > >
> > _______________________________________________
> > aspectj-users mailing list
> > aspectj-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
>
>
>
> --
> 'Tomorrow's what i am waiting for, but i can wait a little more' - Calvin
> (Bill Watterson)
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



--
'Tomorrow's what i am waiting for, but i can wait a little more' - Calvin (Bill Watterson)

Back to the top