Hi Andy,

The project is just for testing how to use aop.xml to avoid weaving JUnit
test code. Sorry for packing all files in a hurry without finding the error
in aop.xml.

I use beforeAddNewData() advice to test the difference "call" and
"execution". I'm still a newbie in AspectJ. Because I only call it in test
code, the pointcut is "call", and aop.xml excludes the test code, not
matching is exactly what I expected.

Ok. I will do a full build in the future.

I do need to set -xmlConfigured in my eclipse. How can I help to figure out
where is wrong?

Here is my AJDT version:

  AJDT Plugin Development Tools 2.0.2.e35x-20100105-0900
org.eclipse.ajdt.pde.build.feature.group

Thanks.

Ben

On Fri, May 21, 2010 at 8:45 AM, Andy Clement <[email protected]>wrote:

> I'm afraid I have no idea what your project is supposed to do - you
> didn't say.  It builds for me and the tests all run. (there was an
> syntax error in the aop.xml file I had to fix - it wasn't valid xml).
>
> Should some piece of advice not be matching somewhere?
>
> I found the beforeAddNewData() advice in the MyAspect was not matching
> anything, when I remove the scope setting in aop.xml then it starts
> matching the testcode, when I add the scope setting back into the
> aop.xml then it stops matching the testcode - that seems the right
> behaviour??  What do you see differently to that?
>
> You will need to do full builds between edits on the aop.xml file, we
> don't support incremental compilation with aop.xml editing.  So I see
> a few issues that you should raise as bugs:
>
> -xmlConfigured should be turned on automatically.  That code is
> already in AspectJ, if it isn't working, that is a bug.  You don't
> need to set it in the IDE.
>
> a full build should be kicked off for any edit/save of an aop.xml file
> actively in use on the aop.xml management page.  This is an AJDT
> issue.
>
>
> Andy
>
> On 20 May 2010 12:14, Benyi Wang <[email protected]> wrote:
> > I found what was wrong when I switched to aop.xml management: I didn't
> add
> > -xmlConfigured into "Project properties->AspectJ
> > Compiler->Other->Non-standard compiler options". After adding it, the
> > project is compiled correctly.
> > Then both of changes exclude my Junit test classes from weaving:
> > <aspect name="MyAspect" scope="!com.foo.bar.Test.*Test"/>
> > and
> > <weaver>
> > <exclude within="com.foo.bar.Test.*Test"/>
> > </weaver>
> > I also did a test. If I remove -xmlConfigured, the project cannot be
> > compiled correctly. src/test/java/com/foo/bar/Test/AjdtWeavingTest.java
> is
> > not compiled. The files under src/main/java are compiled, but not be
> weaved.
> > I attached my project here. Not sure if this is a bug.
> > Thanks a lot.
> > On Thu, May 20, 2010 at 11:45 AM, Andy Clement <[email protected]
> >
> > wrote:
> >>
> >> > It seems that AJDT tries to weave all classes in a project by default.
> >> > I attached files in a test project.
> >>
> >> yes
> >>
> >> > When I use "call" for pointcuts of interface Addable in MyAspect, AJDT
> >> > tries
> >> > to weave the interface calls of the mock object. Sometimes I don't
> want
> >> > the
> >> > advices in my unit test code, for example, advices from the log
> aspect.
> >> > How can I prevent AJDT from weaving junit test case classes?
> >>
> >> You can set the within clauses for your aspect to exclude the
> >> testcode.  Or you can try out aop.xml management:
> >>
> >> > If I add aop.xml into project properties->AspectJ Builder->aop.xml
> >> > Management, some wired things happens:
> >> >
> >> > all aspectj advice markers are gone. You need to clean the project
> >> > first,
> >> > otherwise you may see the markers are still there.
> >>
> >> When you switch to using aop.xml files to control the builder you are
> >> switching from the default mode of 'all aspects included' to an opt-in
> >> model where only those specified in your aop.xml file are included.
> >> It is a bug that there wasn't a clean when you made the switch (want
> >> to raise it?)
> >>
> >> This feature is intended to help users developing aop.xml files that
> >> they will later use for load-time weaving, hence the switch to opt-in.
> >>
> >> > if you clean the project "Project->clean...", only the files under
> >> > src/main/java are compiled, src/test/java are not compiled.
> >>
> >> Don't really understand that - the choice of aop.xml shouldn't affect
> >> what gets compiled... is there an entry in the error log saying why
> >> compilation failed?
> >>
> >> > remove aop.xml from aop.xml management, everything comes back.
> >>
> >> When you had switched to aop.xml management and defined an aop.xml
> >> file that mentioned the aspects you wanted woven, did it weave
> >> anything?
> >>
> >> aop.xml management is the feature you want, it allows you to set a
> >> scope for an aspect so that you could avoid weaving your tests with
> >> your aspects.
> >>
> >> <aspect name="MyAspect" scope="!com.foo.tests..*"/>
> >>
> >> aop.xml management is still under development right now.
> >>
> >> Andy
> >> _______________________________________________
> >> aspectj-users mailing list
> >> [email protected]
> >> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> > _______________________________________________
> > aspectj-users mailing list
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to