Re: [aspectwerkz-user] Custom annotation is not wrapped in AnnotationInfo
Alexandre Vasseur <[email protected]>
| Newsgroups | gmane.comp.java.aspectwerkz.user |
|---|---|
| Message-ID | <[email protected]> |
Can you try to use the "-verbose " flag during the AnnotationC phase. If you can, I would advise to use http://backport175.codehaus.org to compile the annotation to regular Java 5 binary format. The next version of AspectWerkz will precisely use our backport project instead of the AnnotationC things. Let me know and I'll send a short how-to. Alex On 4/21/05, Kenji Nakamura <[email protected]> wrote: > Hi, > > I'm working on integrating AspectWerkz2.0 into jboss 3.2.6 and Apple > JDK1.4.2 with prepared-classpath weaving. > I could use aspects with XML definition, but have problem with > annotations. > The source was processed with AnnotationC ant task (via maven.xml). > How should I interpret the error message? > > Thanks in advance, > > AnnotationC maven.xml > <goal name="build:aw2annotationc" > description="Run aspectwerkz 2 annotation compiler" > > <ant:taskdef name="annotationc" > > classname="org.codehaus.aspectwerkz.annotation.AnnotationCTask" > classpathref="maven.dependency.classpath" /> > <ant:annotationc verbose="true" > > properties="${basedir}/src/resources/main/annotation.properties" > destdir="${basedir}/target/classes" > copytodest="**/*.class"> > <ant:src path="${basedir}/src/java/main" /> > <ant:classpath path="${basedir}/target/classes" /> > </ant:annotationc> > </goal> > > AnnotationC output > AnnotationC::INFO - parsing source dirs: > AnnotationC::INFO - > /Users/user/repository/modules/aspect/src/java/main > AnnotationC::INFO - compiling annotations... > AnnotationC::INFO - note: if no output is seen, then nothing is compiled > AnnotationC::INFO - class [com.example.deliver.ProgressBarLoggingAspect] > AnnotationC::INFO - class [com.example.token.InstanceLogFilterAspect] > AnnotationC::INFO - compiled classes written to > /Users/user/repository/modules/aspect/target/classes > AnnotationC::INFO - compilation successful > > StackTrace > java.lang.RuntimeException: Custom annotation is not wrapped in > AnnotationInfo: org.codehaus.aspectwerkz.annotation.AnnotationInfo > [sun.misc.Launcher$AppClassLoader@53ba3d / > org.codehaus.classworlds.RealmClassLoader@b3b6a6 / > org.jboss.mx.loading.UnifiedClassLoader3@502283{ > url=file:/Users/user/jboss/server/foobar/tmp/deploy/tmp6798jboss- > service.xml ,addedOrder=2} > at > org.codehaus.aspectwerkz.annotation.instrumentation.asm.CustomAttributeH > elper.extractCustomAnnotation(CustomAttributeHelper.java:59) > at > org.codehaus.aspectwerkz.annotation.instrumentation.asm.CustomAttributeH > elper.extractCustomAnnotation(CustomAttributeHelper.java:43) > at > org.codehaus.aspectwerkz.annotation.instrumentation.asm.AsmAnnotationHel > per.extractAnnotations(AsmAnnotationHelper.java:271) > at > org.codehaus.aspectwerkz.annotation.instrumentation.asm.AsmAnnotationHel > per$MethodAnnotationExtractor.visitMethod(AsmAnnotationHelper.java:126) > at > org.codehaus.aspectwerkz.org.objectweb.asm.ClassReader.accept(Unknown > Source) > at > org.codehaus.aspectwerkz.reflect.impl.asm.AsmMethodInfo.getAnnotations(A > smMethodInfo.java:213) > at > org.codehaus.aspectwerkz.annotation.instrumentation.asm.AsmAnnotations.g > etAnnotations(AsmAnnotations.java:127) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.parsePointcut > Attributes(AspectAnnotationParser.java:210) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.parseMethodAt > tributes(AspectAnnotationParser.java:182) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.doParse(Aspec > tAnnotationParser.java:100) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.parse(AspectA > nnotationParser.java:57) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseAspectElements(D > ocumentParser.java:433) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parsePackageElements( > DocumentParser.java:353) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseSystemElement(Do > cumentParser.java:238) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseSystemElements(D > ocumentParser.java:181) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parse(DocumentParser. > java:168) > at > org.codehaus.aspectwerkz.definition.XmlParser.parseNoCache(XmlParser.jav > a:178) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.registerCl > assLoader(SystemDefinitionContainer.java:139) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getHierarc > hicalDefinitionsFor(SystemDefinitionContainer.java:317) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getDefinit > ionsFor(SystemDefinitionContainer.java:225) > at > org.codehaus.aspectwerkz.transform.inlining.ContextImpl.<init>(ContextIm > pl.java:99) > at > org.codehaus.aspectwerkz.transform.inlining.InliningWeavingStrategy.newC > ontext(InliningWeavingStrategy.java:259) > at > org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor._preProcess(A > spectWerkzPreProcessor.java:166) > at > org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor.preProcess(As > pectWerkzPreProcessor.java:148) > at > org.codehaus.aspectwerkz.hook.impl.ClassPreProcessorHelper.defineClass0P > re(ClassPreProcessorHelper.java:107) > at java.lang.ClassLoader.defineClass(ClassLoader.java:539) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:251) > at java.net.URLClassLoader.access$100(URLClassLoader.java:55) > at java.net.URLClassLoader$1.run(URLClassLoader.java:194) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:187) > at > org.jboss.mx.loading.UnifiedClassLoader.findClass(UnifiedClassLoader.jav > a:520) > at java.lang.ClassLoader.loadClass(ClassLoader.java:289) > > Here is the aop.xml. > <aspectwerkz> > <system id="app"> > <package name="com.example.token"> > <aspect class="InstanceLogFilterAspect"></aspect> > </package> > </system> > </aspectwerkz> > > This is the source with annotation. > > /** > * @Around("call(* com.example.util.logging.Logger.info(..))") > */ > public Object dynamicFilterLog(JoinPoint sjp) throws Throwable { > log.info("=========== Intercepted by InstanceLogFilterAspect. > ============== "); > > return sjp.proceed(); > } > >