1 22 package org.jboss.ejb3.test.initial; 23 24 import java.io.Serializable ; 25 26 import javax.annotation.Resource; 27 import javax.interceptor.AroundInvoke; 28 import javax.ejb.EJBContext ; 29 import javax.interceptor.Interceptors; 30 import javax.interceptor.InvocationContext; 31 import javax.ejb.Remote ; 32 import javax.ejb.Remove ; 33 import javax.ejb.Stateful ; 34 import org.jboss.annotation.ejb.cache.simple.CacheConfig; 35 36 37 41 @Stateful 42 @Interceptors(FirstInterceptor.class) 43 @CacheConfig(maxSize = 1) 44 @Remote (InterceptedSFTest.class) 45 public class InterceptedSFTestBean implements InterceptedSFTest, Serializable 46 { 47 int val; 48 49 @Resource 50 EJBContext ejbCtx; 51 52 public int testMethod(int i) 53 { 54 System.out.println("InterceptedSFTestBean testMethod"); 55 System.out.println("val: " + i); 56 val = i; 57 return i; 58 } 59 60 public int getVal() 61 { 62 return val; 63 } 64 65 @Remove 66 public void clear() 67 { 68 69 } 70 71 @AroundInvoke 72 public Object myInterceptor(InvocationContext ctx) throws Exception 73 { 74 if (ctx.getMethod().getName().equals("testMethod")) 75 { 76 System.out.println("Intercepting in InterceptedSFTestBean.myInterceptor()"); 77 int val = (Integer ) ctx.getContextData().get("DATA"); 78 79 int ret = (Integer ) ctx.proceed(); 80 81 ejbCtx.setRollbackOnly(); 82 val = (Integer ) ctx.getContextData().get("DATA"); 83 ret += val; 84 if (ctx.getTarget() != this) throw new RuntimeException ("ctx.getBean() != this: " + ctx.getTarget() + " != " + this); 85 return ret; 86 } 87 88 return ctx.proceed(); 89 } 90 } 91 | Popular Tags |