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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.