1 17 18 package org.apache.geronimo.security.remoting.jmx; 19 20 import java.lang.reflect.InvocationTargetException ; 21 import java.lang.reflect.Method ; 22 23 import org.apache.geronimo.interceptor.Interceptor; 24 import org.apache.geronimo.interceptor.Invocation; 25 import org.apache.geronimo.interceptor.InvocationResult; 26 import org.apache.geronimo.interceptor.SimpleInvocationResult; 27 28 31 public class ReflexiveInterceptor implements Interceptor { 32 33 Object target; 34 35 public ReflexiveInterceptor(Object target) { 36 this.target = target; 37 } 38 39 public InvocationResult invoke(Invocation invocation) throws Throwable { 40 try { 41 SerializableInvocation proxyInvocation = (SerializableInvocation) invocation; 42 Method m = proxyInvocation.getMethod(); 43 Object args[] = proxyInvocation.getArgs(); 44 Object rc = m.invoke(target, args); 45 return new SimpleInvocationResult(true, rc); 46 47 } catch (InvocationTargetException e) { 48 Throwable t = e.getCause(); 49 if (t instanceof Exception && t instanceof RuntimeException == false) { 50 return new SimpleInvocationResult(false, (Exception )t); 51 } else { 52 throw t; 53 } 54 } 55 } 56 57 } | Popular Tags |