[aspectwerkz-user] Custom annotation is not wrapped in AnnotationInfo
Kenji Nakamura <[email protected]>
| Newsgroups | gmane.comp.java.aspectwerkz.user |
|---|---|
| Message-ID | <[email protected]> |
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();
}