Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Re: aspectj-users Digest, Vol 60, Issue 19

Andy,
Thank you re the compiler


On Fri, Feb 26, 2010 at 7:00 PM, <aspectj-users-request@xxxxxxxxxxx> wrote:
Send aspectj-users mailing list submissions to
       aspectj-users@xxxxxxxxxxx

To subscribe or unsubscribe via the World Wide Web, visit
       https://dev.eclipse.org/mailman/listinfo/aspectj-users
or, via email, send a message with subject or body 'help' to
       aspectj-users-request@xxxxxxxxxxx

You can reach the person managing the list at
       aspectj-users-owner@xxxxxxxxxxx

When replying, please edit your Subject line so it is more specific
than "Re: Contents of aspectj-users digest..."


Today's Topics:

  1. AspectJ compiler (yaron)
  2. Re: AspectJ compiler (Andy Clement)
  3. Strange classloader interaction when weaving with
     aspectj-maven-plugin (Frank Pavageau)
  4. Re: Strange classloader interaction when weaving with
     aspectj-maven-plugin (Andy Clement)
  5. Use pointcut syntax for querying classes in source        code
     (Thomas Blaulicht)


----------------------------------------------------------------------

Message: 1
Date: Mon, 22 Feb 2010 15:31:02 +0200
From: yaron <yaronp68@xxxxxxxxx>
Subject: [aspectj-users] AspectJ compiler
To: aspectj-users@xxxxxxxxxxx
Message-ID:
       <33bf037a1002220531g482a0ffw79f26782a06f12b5@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset="iso-8859-1"

Hi,

I would like to build my own modified version of aspectj compiler and ant
task

Is there a way to setup a project for that without the effort of building
the entire AJDT or are they totally coupled ?

Thanks

Yaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://dev.eclipse.org/mailman/private/aspectj-users/attachments/20100222/7d5fa132/attachment.html

------------------------------

Message: 2
Date: Mon, 22 Feb 2010 10:04:52 -0800
From: Andy Clement <andrew.clement@xxxxxxxxx>
Subject: Re: [aspectj-users] AspectJ compiler
To: aspectj-users@xxxxxxxxxxx
Message-ID:
       <689d61aa1002221004m3223aff8vb755d467612ae3c0@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1

There are 3 plugins in AJDT that contain the packaged up aspectj

org.aspectj.weaver
org.aspectj.runtime
org.aspectj.ajde

In the final of these is a build.xml that can convert a built AspectJ
distribution into the 3 necessary plugins that AJDT requires.  So you
will at least need to checkout those 3 plugins if you don't checkout
the whole of AJDT.

Andy

On 22 February 2010 05:31, yaron <yaronp68@xxxxxxxxx> wrote:
> Hi,
> I would like to build my own modified version of aspectj compiler and ant
> task
> Is there a way to setup a project for that without the effort of building
> the entire AJDT or are they totally coupled ?
> Thanks
> Yaron
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>


------------------------------

Message: 3
Date: Wed, 24 Feb 2010 15:55:39 +0100
From: Frank Pavageau <frank.pavageau@xxxxxxxxx>
Subject: [aspectj-users] Strange classloader interaction when weaving
       with    aspectj-maven-plugin
To: aspectj-users@xxxxxxxxxxx
Message-ID:
       <d9e5d63b1002240655r2000e232m2b86368d70bd18eb@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1

Hi.

I have a weaving problem when using AspectJ 1.6.7 or 1.6.8 which
doesn't happen with 1.6.6, but cannot extract a test case for. If
someone has any suggestion for tracing the problem, maybe I'll be able
to report the bug properly.

I have a multi-module maven project :
 - in module1, I have an @Aspect which declares a mixin as well as
advices using the mixin interface, the pointcuts being on the
recipient of the mixin
 - in module2 which depends on module1, I have another @Aspect
declaring a pointcut on some module1 classes and an advice using this
pointcut

With AspectJ 1.6.6, everything works fine : module1 is built fine, and
when the aspect compilation happens in module2, the aspects from both
module1 and module2 are reweaved just fine on the module1 classes.

With AspectJ 1.6.7 or 1.6.8, however, the aspect compilation during
the build of module2 incorrectly reweaves the module1 aspect on the
module1 classes. More specifically, the weaved class does not
implement the mixin interface, resulting when running the unit tests
in a "java.lang.IncompatibleClassChangeError: Class XXX does not
implement the requested interface YYY", which I have confirmed by
decompiling the class.

The aspects are weaved in using aspect-maven-plugin, and this is where
it gets interesting. The plugin does not execute ajc externally, but
uses the embeddable compiler (Main class from aspectjtools), which
means it runs in the Maven JVM with all the plugins loaded. As it
happens, module2 is a war module, which means the maven-war-plugin is
loaded. However, if I change the module type to jar or simply run "mvn
clean test" instead of "mvn clean install" in module2, the
maven-war-plugin is not loaded and the problem disappears!

I don't know what exactly is loaded with the war plugin, but
apparently its presence in the maven classloader changes the behavior
of the AspectJ compiler. So, does anybody have any pointers on what to
do to trace this, since it seems to me to be an AspectJ bug? Logs to
activate, for example. Unless this directly rings a bell with an
AspectJ developer, related to the 1.6.6 / 1.6.7 evolutions.

I have tried trimming the project to produce a testcase, but there's
always some point where I remove a totally unrelated class and the
problem disappears... And of course, I cannot send my complete
project.

Thanks,
Frank


------------------------------

Message: 4
Date: Wed, 24 Feb 2010 10:51:50 -0800
From: Andy Clement <andrew.clement@xxxxxxxxx>
Subject: Re: [aspectj-users] Strange classloader interaction when
       weaving with    aspectj-maven-plugin
To: aspectj-users@xxxxxxxxxxx
Message-ID:
       <689d61aa1002241051t4d6f9b5cs7cf7ee55f4c4d39d@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1

Hi Frank,

I am currently investigating an issue with problematic declare
parents(mixins are implemented using the same strategy - I presume you
are talking about @DeclareMixin when you say mixin). This is under
https://bugs.eclipse.org/bugs/show_bug.cgi?id=302460 - there it
manifests as a compiler crash though, rather than silently doing
something wrong.  It is possible your issue and that issue are
related.

Just wish I could recreate either of the scenarios (yours or the one
in the bug), that would help immensely.

My current thoughts are that it relates to the more extensive use of
references to cache results in 1.6.8, and one particular one isn't
getting cleared at the right time.

Feel free to raise a new bug (in case it isn't related to the one I'm
looking into) or attach your findings to the existing one.

cheers,
Andy

On 24 February 2010 06:55, Frank Pavageau <frank.pavageau@xxxxxxxxx> wrote:
> Hi.
>
> I have a weaving problem when using AspectJ 1.6.7 or 1.6.8 which
> doesn't happen with 1.6.6, but cannot extract a test case for. If
> someone has any suggestion for tracing the problem, maybe I'll be able
> to report the bug properly.
>
> I have a multi-module maven project :
>  - in module1, I have an @Aspect which declares a mixin as well as
> advices using the mixin interface, the pointcuts being on the
> recipient of the mixin
>  - in module2 which depends on module1, I have another @Aspect
> declaring a pointcut on some module1 classes and an advice using this
> pointcut
>
> With AspectJ 1.6.6, everything works fine : module1 is built fine, and
> when the aspect compilation happens in module2, the aspects from both
> module1 and module2 are reweaved just fine on the module1 classes.
>
> With AspectJ 1.6.7 or 1.6.8, however, the aspect compilation during
> the build of module2 incorrectly reweaves the module1 aspect on the
> module1 classes. More specifically, the weaved class does not
> implement the mixin interface, resulting when running the unit tests
> in a "java.lang.IncompatibleClassChangeError: Class XXX does not
> implement the requested interface YYY", which I have confirmed by
> decompiling the class.
>
> The aspects are weaved in using aspect-maven-plugin, and this is where
> it gets interesting. The plugin does not execute ajc externally, but
> uses the embeddable compiler (Main class from aspectjtools), which
> means it runs in the Maven JVM with all the plugins loaded. As it
> happens, module2 is a war module, which means the maven-war-plugin is
> loaded. However, if I change the module type to jar or simply run "mvn
> clean test" instead of "mvn clean install" in module2, the
> maven-war-plugin is not loaded and the problem disappears!
>
> I don't know what exactly is loaded with the war plugin, but
> apparently its presence in the maven classloader changes the behavior
> of the AspectJ compiler. So, does anybody have any pointers on what to
> do to trace this, since it seems to me to be an AspectJ bug? Logs to
> activate, for example. Unless this directly rings a bell with an
> AspectJ developer, related to the 1.6.6 / 1.6.7 evolutions.
>
> I have tried trimming the project to produce a testcase, but there's
> always some point where I remove a totally unrelated class and the
> problem disappears... And of course, I cannot send my complete
> project.
>
> Thanks,
> Frank
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>


------------------------------

Message: 5
Date: Thu, 25 Feb 2010 09:09:54 +0100
From: "Thomas Blaulicht" <blaulicht75@xxxxxx>
Subject: [aspectj-users] Use pointcut syntax for querying classes in
       source  code
To: aspectj-users@xxxxxxxxxxx
Message-ID: <20100225080954.21210@xxxxxxx>
Content-Type: text/plain; charset="iso-8859-1"

Hi,

is there an API in the AspectJ or AJDT plug-in with which it is possible to query a java source code using the pointcut syntax? Can I find the names of classes and packages in the source code of an eclipse java project which match a given pointcut string?
In the AJDT there are several features which seem to investigate the source code rather the compiled byte code.

Thanks...
--
GMX DSL: Internet, Telefon und Entertainment für nur 19,99 EUR/mtl.!
http://portal.gmx.net/de/go/dsl02


------------------------------

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


End of aspectj-users Digest, Vol 60, Issue 19
*********************************************


Back to the top