1 22 package org.jboss.ejb3.test.clientinterceptor; 23 24 import javax.interceptor.AroundInvoke; 25 import javax.interceptor.InvocationContext; 26 import javax.ejb.Stateless ; 27 28 import org.jboss.annotation.ejb.RemoteBinding; 29 30 35 @Stateless 36 @RemoteBinding(interceptorStack="CustomStatelessSessionClientInterceptors") 37 public class StatelessBean implements StatelessRemote 38 { 39 boolean interceptorFired; 40 41 public void test() 42 { 43 System.out.println("test()"); 44 if (!interceptorFired) throw new RuntimeException ("interceptor did not work"); 45 } 46 47 @AroundInvoke 48 public Object intercept(InvocationContext ctx) throws Exception 49 { 50 System.out.println("intercept()"); 51 String asisData = (String )ctx.getContextData().get("as_is"); 52 53 if (!"AS_IS".equals(asisData)) 54 { 55 throw new RuntimeException ("Wrong test metadata: " + asisData); 56 } 57 58 NeedsMarshallingValue marshalledValue = (NeedsMarshallingValue)ctx.getContextData().get("marshalled"); 59 if (marshalledValue == null) 60 { 61 throw new RuntimeException ("Null marshalled value"); 62 } 63 64 if (!marshalledValue.getValue().equals("NEEDS MARSHALLING")) 65 { 66 throw new RuntimeException ("Wrong marshalled value: " + marshalledValue.getValue()); 67 } 68 69 System.out.println("values ok"); 70 interceptorFired = true; 71 return ctx.proceed(); 72 } 73 } 74 | Popular Tags |