1 22 package org.jboss.ejb3.test.interceptors2; 23 24 import javax.interceptor.AroundInvoke; 25 import javax.interceptor.InvocationContext; 26 import javax.ejb.PostActivate ; 27 import javax.annotation.PostConstruct; 28 import javax.annotation.PreDestroy; 29 import javax.ejb.PrePassivate ; 30 import javax.naming.InitialContext ; 31 import javax.naming.NamingException ; 32 33 38 public class AnnotatedMethodInterceptor extends AnnotatedMethodInterceptor2 39 { 40 @AroundInvoke 41 public Object intercept(InvocationContext ctx) throws Exception 42 { 43 System.out.println("AnnotatedMethodInterceptor intercepting!"); 44 StatusRemote status = findStatusRemote(); 45 status.addInterception(new Interception(this, "intercept")); 46 return ctx.proceed(); 47 } 48 49 50 private StatusRemote findStatusRemote() 51 { 52 try 53 { 54 InitialContext ctx = new InitialContext (); 55 StatusRemote status = (StatusRemote)ctx.lookup("StatusBean/remote"); 56 return status; 57 } 58 catch (NamingException e) 59 { 60 throw new RuntimeException (e); 61 } 62 } 63 64 public Object ignoredAround(InvocationContext ctx) throws Exception 65 { 66 throw new RuntimeException ("Should not be called"); 67 } 68 69 @PostConstruct 70 public void postConstruct(InvocationContext ctx) 71 { 72 StatusRemote status = findStatusRemote(); 73 status.addLifecycle(PostConstruct.class, new Interception(this, "postConstruct")); 74 try 75 { 76 ctx.proceed(); 77 } 78 catch (Exception e) 79 { 80 throw new RuntimeException (e); 81 } 82 } 83 84 @PostActivate 85 public void postActivate(InvocationContext ctx) 86 { 87 StatusRemote status = findStatusRemote(); 88 status.addLifecycle(PostActivate .class, new Interception(this, "postActivate")); 89 try 90 { 91 ctx.proceed(); 92 } 93 catch (Exception e) 94 { 95 throw new RuntimeException (e); 96 } 97 } 98 99 @PrePassivate 100 public void prePassivate(InvocationContext ctx) 101 { 102 StatusRemote status = findStatusRemote(); 103 status.addLifecycle(PrePassivate .class, new Interception(this, "prePassivate")); 104 try 105 { 106 ctx.proceed(); 107 } 108 catch (Exception e) 109 { 110 throw new RuntimeException (e); 111 } 112 } 113 114 @PreDestroy 115 public void preDestroy(InvocationContext ctx) 116 { 117 StatusRemote status = findStatusRemote(); 118 status.addLifecycle(PreDestroy.class, new Interception(this, "preDestroy")); 119 try 120 { 121 ctx.proceed(); 122 } 123 catch (Exception e) 124 { 125 throw new RuntimeException (e); 126 } 127 } 128 } 129 | Popular Tags |