package io.craft.atom.rpc; import io.craft.atom.rpc.spi.RpcInvoker; import io.craft.atom.rpc.spi.RpcProxyFactory; import java.lang.reflect.Proxy; import lombok.Getter; import lombok.Setter; /** * @author mindwind * @version 1.0, Aug 20, 2014 */ public class DefaultRpcProxyFactory implements RpcProxyFactory { @Getter @Setter private RpcInvoker invoker; @Override @SuppressWarnings("unchecked") public <T> T getProxy(Class<T> rpcInterface) { return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class<?>[] { rpcInterface }, new RpcInvocationHandler(invoker)); } }