[jboss-user] [JBoss AOP] - Re: annotation-introduction + aspect oriented annotations

fabiocsilva do-not-reply at jboss.com
Tue Nov 28 22:04:16 EST 2006


The code not yet is executing.


  | 
  | SystemRecord.java :
  | 
  | package util;
  | 
  | import java.lang.annotation.ElementType;
  | import java.lang.annotation.Target;
  | 
  | @Target({ElementType.CONSTRUCTOR})
  | public @interface SystemRecord {
  | 
  | }
  | 


  | SomeClass.java :  :)
  | 
  | package gui.complaints;
  | 
  | public class SomeClass {
  | 
  | 	public SomeClass() {		
  | 	}
  | 
  | }
  | 
  | 


  | Main class:
  | 
  | package test;
  | import gui.complaints.SomeClass;
  | 
  | public class Main {
  | 
  | 	
  |         public static void main(String[] args) {
  | 		new SomeClass();
  | 
  | 	}
  | 
  | }
  | 


  | 
  | jboss-aop.xml :
  | 
  | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  | <aop>
  | 	<annotation-introduction expr="class(gui.complaints.*)">
  | 		@util.SystemRecord
  | 	</annotation-introduction>
  | 
  | 	<bind pointcut="call(@util.SystemRecord->new())">
  | 		<interceptor class="aspects.SystemRecordInterceptor" />
  | 	</bind>
  | 
  | </aop>
  | 
  | 

I made the following modifications to test annotation binding:


  | 
  | jboss-aop.xml
  | 
  | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  | <aop>
  | 
  | 	<bind pointcut="call(@util.SystemRecord->new())">
  | 		<interceptor class="aspects.SystemRecordInterceptor" />
  | 	</bind>
  | 
  | </aop>
  | 


  | 
  | package gui.complaints;
  | 
  | public class SomeClass {
  | 
  | 	@util.SystemRecord public SomeClass() {	
  | 		
  | 	}
  | 
  | }
  | 
  | 

result:nothing

when I changed the jboss-aop.xml for 


  |  <bind pointcut="call(*->@util.SystemRecord())">... 
  | 

result:


  |      [java] defrost(): test.Main_1_ConByMInvocation was pruned.
  |      [java] java.lang.RuntimeException: defrost(): test.Main_1_ConByMInvocation was pruned.
  |      [java] at javassist.CtClassType.checkPruned(CtClassType.java:1284)
  |      [java] at javassist.CtClassType.defrost(CtClassType.java:276)
  |      [java] at org.jboss.aop.instrument.OptimizedInvocations.defrostClassIfExists(OptimizedInvocations.java:66)
  |      [java] at org.jboss.aop.instrument.OptimizedInvocations.makeInvocationClass(OptimizedInvocations.java:105)
  |      [java] at org.jboss.aop.instrument.OptimizedCallerInvocations.createOptimizedConCalledByMethodInvocationClass(OptimizedCallerInvocations.java:280)
  |      [java] at org.jboss.aop.instrument.OptimizedCallerTransformer$OptimizedCallerExprEditor.setupMethod(OptimizedCallerTransformer.java:91)
  |      [java] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.modifyMethod(CallerTransformer.java:468)
  |      [java] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.edit(CallerTransformer.java:452)
  |      [java] at javassist.expr.ExprEditor.loopBody(ExprEditor.java:198)
  |      [java] at javassist.expr.ExprEditor.doit(ExprEditor.java:90)
  |      [java] at javassist.CtBehavior.instrument(CtBehavior.java:526)
  |      [java] at org.jboss.aop.instrument.CallerTransformer.applyCallerPointcuts(CallerTransformer.java:90)
  |      [java] at org.jboss.aop.instrument.Instrumentor.applyCallerPointcuts(Instrumentor.java:537)
  |      [java] at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:657)
  |      [java] at org.jboss.aop.AspectManager.translate(AspectManager.java:908)
  |      [java] at org.jboss.aop.AspectManager.transform(AspectManager.java:820)
  |      [java] at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:88)
  |      [java] at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:75)
  |      [java] at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
  |      [java] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
  |      [java] at java.lang.ClassLoader.defineClass1(Native Method)
  |      [java] at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
  |      [java] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
  |      [java] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
  |      [java] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
  |      [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
  |      [java] at java.security.AccessController.doPrivileged(Native Method)
  |      [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  |      [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  |      [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
  |      [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  |      [java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  |      [java] javassist.CannotCompileException: by java.lang.RuntimeException: defrost(): test.Main_1_ConByMInvocation was pruned.
  |      [java] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.edit(CallerTransformer.java:460)
  |      [java] at javassist.expr.ExprEditor.loopBody(ExprEditor.java:198)
  |      [java] at javassist.expr.ExprEditor.doit(ExprEditor.java:90)
  |      [java] at javassist.CtBehavior.instrument(CtBehavior.java:526)
  |      [java] at org.jboss.aop.instrument.CallerTransformer.applyCallerPointcuts(CallerTransformer.java:90)
  |      [java] at org.jboss.aop.instrument.Instrumentor.applyCallerPointcuts(Instrumentor.java:537)
  |      [java] at org.jboss.aop.instrument.Instrumentor.transform(Instrumentor.java:657)
  |      [java] at org.jboss.aop.AspectManager.translate(AspectManager.java:908)
  |      [java] at org.jboss.aop.AspectManager.transform(AspectManager.java:820)
  |      [java] at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:88)
  |      [java] at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:75)
  |      [java] at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
  |      [java] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
  |      [java] at java.lang.ClassLoader.defineClass1(Native Method)
  |      [java] at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
  |      [java] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
  |      [java] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
  |      [java] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
  |      [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
  |      [java] at java.security.AccessController.doPrivileged(Native Method)
  |      [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  |      [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  |      [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
  |      [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  |      [java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  |      [java] Caused by: java.lang.RuntimeException: defrost(): test.Main_1_ConByMInvocation was pruned.
  |      [java] at javassist.CtClassType.checkPruned(CtClassType.java:1284)
  |      [java] at javassist.CtClassType.defrost(CtClassType.java:276)
  |      [java] at org.jboss.aop.instrument.OptimizedInvocations.defrostClassIfExists(OptimizedInvocations.java:66)
  |      [java] at org.jboss.aop.instrument.OptimizedInvocations.makeInvocationClass(OptimizedInvocations.java:105)
  |      [java] at org.jboss.aop.instrument.OptimizedCallerInvocations.createOptimizedConCalledByMethodInvocationClass(OptimizedCallerInvocations.java:280)
  |      [java] at org.jboss.aop.instrument.OptimizedCallerTransformer$OptimizedCallerExprEditor.setupMethod(OptimizedCallerTransformer.java:91)
  |      [java] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.modifyMethod(CallerTransformer.java:468)
  |      [java] at org.jboss.aop.instrument.CallerTransformer$CallerExprEditor.edit(CallerTransformer.java:452)
  |      [java] ... 24 more
  |      [java] [error] failed to transform: test.Main.. Do verbose mode if you want full stack trace.
  | 

What is this ?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3989555#3989555

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3989555



More information about the jboss-user mailing list