001 package org.shiftone.jrat.integration.aop.proxy; 002 003 004 import org.shiftone.jrat.api.Monitor; 005 import org.shiftone.jrat.util.log.Logger; 006 007 import java.lang.reflect.InvocationHandler; 008 import java.lang.reflect.Method; 009 010 011 /** 012 * @author jeff@shiftone.org (Jeff Drost) 013 */ 014 public class ProxyInvocationHandler implements InvocationHandler { 015 016 private static final Logger LOG = Logger.getLogger(ProxyInvocationHandler.class); 017 private final Object target; 018 019 public ProxyInvocationHandler(Object target) { 020 this.target = target; 021 } 022 023 024 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { 025 return Monitor.execute(method, target, new ProxyCommand(target, method, args)); 026 } 027 }