RE: [aspectwerkz-dev] making some progress with annotations
"Jonas Boner" <[email protected]>
| Newsgroups | gmane.comp.java.aspectwerkz.devel |
|---|---|
| Message-ID | <5A87ED8F2E79A74297A57E17552CAFDC038DAEEF__35914.75853832$1089276078$gmane$org@ukhwex01.emea.bea.com> |
Great that it works for you now. Right, mixin inner classes can only be static. This is documented and has been the case since months ago. The other bug I found yesterday. :-( I have fixed the problem in CVS HEAD. It only occurs when you define the deployment model for the mixin due to improper handling of key:value pairs in this special case. Thanks. /Jonas > -----Original Message----- > From: christoph sturm [mailto:chrisml-Ws/[email protected]] > Sent: Thursday, July 08, 2004 8:48 AM > To: [email protected] > Subject: [aspectwerkz-dev] making some progress with annotations > > Hi all! > > looking at a new annotation sample in aspectwerkz cvs i found > out that my previous problem was that my mixin class was not > static. this works now: > > /** > > * @Implements within(com.schaumwelt.aspects.IdentifyableClass) > > */ > > public Identifyable serializable; > > but this doesnt: > /** > > * @Introduce within(@Identity *..*) deploymentModel=perInstance > > */ > > public static class MyConcreteImpl implements Identifyable ... > > it produces this exception: > org.codehaus.aspectwerkz.exception.DefinitionException: > expression is not well-formed [within(@Identity*..*)]: > at > org.codehaus.aspectwerkz.expression.ExpressionInfo.<init>(Expr > essionInfo.java:50) > at > org.codehaus.aspectwerkz.definition.DefinitionParserHelper.cre > ateIntroductionDefinition(DefinitionParserHelper.java:248) > at > org.codehaus.aspectwerkz.definition.DefinitionParserHelper.cre > ateAndAddIntroductionDefToAspectDef(DefinitionParserHelper.java:169) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.par > seClassAttributes(AspectAnnotationParser.java:191) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.par > se(AspectAnnotationParser.java:55) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseAspect > Elements(DocumentParser.java:251) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parsePackag > eElements(DocumentParser.java:190) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseSystem > Element(DocumentParser.java:144) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseSystem > Elements(DocumentParser.java:107) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parse(Docum > entParser.java:94) > at > org.codehaus.aspectwerkz.definition.XmlParser.parseNoCache(Xml > Parser.java:155) > at > org.codehaus.aspectwerkz.definition.DefinitionLoader.getDefaul > tDefinition(DefinitionLoader.java:175) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer. > registerClassLoader(SystemDefinitionContainer.java:108) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer. > getHierarchicalDefs(SystemDefinitionContainer.java:212) > at > org.codehaus.aspectwerkz.transform.Context.<init>(Context.java:62) > at > org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor._pr > eProcess(AspectWerkzPreProcessor.java:170) > at > org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor.pre > Process(AspectWerkzPreProcessor.java:152) > at > org.codehaus.aspectwerkz.hook.impl.ClassPreProcessorHelper.def > ineClass0Pre(ClassPreProcessorHelper.java:116) > at java.lang.ClassLoader.defineClass(ClassLoader.java:537) > 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 java.lang.ClassLoader.loadClass(ClassLoader.java:289) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) > at java.lang.ClassLoader.loadClass(ClassLoader.java:235) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) > org.codehaus.aspectwerkz.expression.ast.ParseException: > Encountered "within( @Identity*..* )" at line 1, column 1. > Was expecting one of: > <POINTCUT_REFERENCE> ... > "call(" ... > "execution(" ... > "set(" ... > "get(" ... > "handler(" ... > "within(" <CLASS_ATTRIBUTE> <CLASS_ATTRIBUTE> ... > "within(" <CLASS_ATTRIBUTE> <CLASS_NOT> ... > "within(" <CLASS_ATTRIBUTE> "public" ... > "within(" <CLASS_ATTRIBUTE> "protected" ... > "within(" <CLASS_ATTRIBUTE> "private" ... > "within(" <CLASS_ATTRIBUTE> "static" ... > "within(" <CLASS_ATTRIBUTE> "abstract" ... > "within(" <CLASS_ATTRIBUTE> "final" ... > "within(" <CLASS_ATTRIBUTE> <CLASS_PATTERN> ... > "withincode(" ... > "staticinitialization(" ... > "cflow(" ... > "cflowbelow(" ... > > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.gener > ateParseException(ExpressionParser.java:2948) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.jj_co > nsume_token(ExpressionParser.java:2808) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.Point > cut(ExpressionParser.java:380) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.Unary > Expression(ExpressionParser.java:305) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.OrExp > ression(ExpressionParser.java:243) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.AndEx > pression(ExpressionParser.java:197) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.Expre > ssion(ExpressionParser.java:184) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.Root( > ExpressionParser.java:145) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.parse > (ExpressionParser.java:131) > at > org.codehaus.aspectwerkz.expression.ast.ExpressionParser.parse > (ExpressionParser.java:126) > at > org.codehaus.aspectwerkz.expression.ExpressionInfo.<init>(Expr > essionInfo.java:39) > at > org.codehaus.aspectwerkz.definition.DefinitionParserHelper.cre > ateIntroductionDefinition(DefinitionParserHelper.java:248) > at > org.codehaus.aspectwerkz.definition.DefinitionParserHelper.cre > ateAndAddIntroductionDefToAspectDef(DefinitionParserHelper.java:169) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.par > seClassAttributes(AspectAnnotationParser.java:191) > at > org.codehaus.aspectwerkz.annotation.AspectAnnotationParser.par > se(AspectAnnotationParser.java:55) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseAspect > Elements(DocumentParser.java:251) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parsePackag > eElements(DocumentParser.java:190) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseSystem > Element(DocumentParser.java:144) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parseSystem > Elements(DocumentParser.java:107) > at > org.codehaus.aspectwerkz.definition.DocumentParser.parse(Docum > entParser.java:94) > at > org.codehaus.aspectwerkz.definition.XmlParser.parseNoCache(Xml > Parser.java:155) > at > org.codehaus.aspectwerkz.definition.DefinitionLoader.getDefaul > tDefinition(DefinitionLoader.java:175) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer. > registerClassLoader(SystemDefinitionContainer.java:108) > at > org.codehaus.aspectwerkz.definition.SystemDefinitionContainer. > getHierarchicalDefs(SystemDefinitionContainer.java:212) > at > org.codehaus.aspectwerkz.transform.Context.<init>(Context.java:62) > at > org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor._pr > eProcess(AspectWerkzPreProcessor.java:170) > at > org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor.pre > Process(AspectWerkzPreProcessor.java:152) > at > org.codehaus.aspectwerkz.hook.impl.ClassPreProcessorHelper.def > ineClass0Pre(ClassPreProcessorHelper.java:116) > at java.lang.ClassLoader.defineClass(ClassLoader.java:537) > 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 java.lang.ClassLoader.loadClass(ClassLoader.java:289) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) > at java.lang.ClassLoader.loadClass(ClassLoader.java:235) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) > > its strange because i copied this basically from the > annotations sample. > > thanks > chris >