Re: anything wrong?- beginner problem
Jonas Bonér <[email protected]> Sat, 03 May 2003 15:05:12 +0200
| Newsgroups | gmane.comp.java.aspectwerkz |
|---|---|
| Message-ID | <[email protected]> |
Hi Weishan. Thanks a lot for helping me catch a nasty bug :-) : it is (in the 0.4 release) not possible to define a pointcut that picks out *both* static and member methods; creates errors like the one below. This has now been fixed and I will commit it to the CVS among with the other stuff I am working on soon. Back to your example: the pointcut selection is *case-sensitive* so you have to use "N.*" if you want to advise the NewFile method. And until the bug is patched, don't mix static and member methods in the pointcuts. Sorry for this. - Jonas Zhang Weishan wrote: > Hi, > There is method named NewFile(), and if you use ".*", an error is throwed: > C:\aspectwerkz>aspectwerkz -cp test/notepad.jar;lib/commons-collections-2.1.jar > -Daspectwerkz.definition.file=test/samples.xml -Daspectwerkz.metadata.dir=_metaD > ata Notepad > java.lang.Error: should be unreachable > at aspectwerkz.MethodComparator.comparePrefixed(MethodComparator.java:14 > 4) > at aspectwerkz.MethodComparator.compare(MethodComparator.java:68) > at java.util.Arrays.mergeSort(Arrays.java:1237) > at java.util.Arrays.mergeSort(Arrays.java:1244) > at java.util.Arrays.mergeSort(Arrays.java:1245) > at java.util.Arrays.sort(Arrays.java:1185) > at java.util.Collections.sort(Collections.java:151) > at aspectwerkz.AspectWerkz.createMethodRepository(AspectWerkz.java:437) > at aspectwerkz.AspectWerkz.loadMethods(AspectWerkz.java:416) > at aspectwerkz.AspectWerkz.initialize(AspectWerkz.java:386) > at aspectwerkz.joinpoint.MethodJoinPoint.<init>(MethodJoinPoint.java:62) > > at aspectwerkz.joinpoint.StaticMethodJoinPoint.<init>(StaticMethodJoinPo > int.java:48) > at Notepad.main(Notepad.java) > Exception in thread "main" > > Thanks, > Weishan > > > > > -----Original Message----- > From: Jonas Bonér [mailto:[email protected]] > Sent: Saturday, May 03, 2003 6:43 PM > To: Zhang Weishan > Cc: [email protected] > Subject: Re: [aspectwerkz-developer] anything wrong?- beginner problem > > Hi. > > Which method/methods are you trying to advise? > > When I look at your Notepad.java I can't see any methods named something > starting with the letter n. If you want to log all methods in the class > use: .* > > - Jonas > > Zhang Weishan wrote: > >>Hello everyone, >> >> I tried to run the simple logging advice with a Notepad example, but I >>was in trouble. All the used files, including the xml definition file, >>compiled and source logging advice, compiled and source Notepad reside >>in one directory named test. I jar the complied logging advice and >>Notepad into a notepad.jar. >> >> The logging advice which is almost the same as the original one, the >>only difference is that I removed the package declaration to make life >>easier. >> >> Here is the xml definition file which resides: >> >><aspectwerkz> >> >> <advice name="xmt" >> >> advice="LoggingAdvice" >> >> deploymentModel="perClass"/> >> >> >> >> <aspect class="Notepad"> >> >> <pointcut type="method" pattern="n.*"> >> >> <advice-ref name="xmt"/> >> >> </pointcut> >> >> </aspect> >> >> >> >> Here is the command I used to invoke the framework. >> >>C:\aspectwerkz>aspectwerkz -cp >>test/notepad.jar;lib/commons-collections-2.1.jar >> >>-Daspectwerkz.definition.file=test/samples.xml >>-Daspectwerkz.metadata.dir=_metaD >> >>ata Notepad >> >> >> >>The notepad runs but there is no logging info displayed in the console. >>No matter what the method pattern, for example, set.*, n.*, it simply >>did not work. >> >> >> >>Thanks, >> >>Weishan >> >> >> > > > -- Jonas http://freeroller.net/page/jboner ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf