package org.jfox.ejb.invoker;
import javax.naming.Context;
import org.huihoo.jfox.util.InitialContextHelper;
import org.jfox.ejb.ObjectId;
public class ContainerInvokerHelper {
public final static String INVOKER_JNDI_PREFIX = "container-service";
public static transient Context INITIAL_CONTEXT = InitialContextHelper.getInitialConext();
public static ContainerRemote lookupContainerInvoker(String protocol) {
try {
return (ContainerRemote)javax.rmi.PortableRemoteObject.narrow(INITIAL_CONTEXT.lookup("/" + INVOKER_JNDI_PREFIX +"/" + protocol.toUpperCase()), ContainerRemote.class);
}
catch(Exception e){
throw new RuntimeException(e);
}
}
public static ClientContainerInvoker createClientInvocationHandler(String protocol,ObjectId objectId, ContainerRemote invoker) {
try {
Class invocationHandlerClass = Thread.currentThread().getContextClassLoader().loadClass("org.jfox.ejb.invoker." + protocol.toLowerCase() + "." + protocol.toUpperCase() + "ContainerInvoker");
return (ClientContainerInvoker)invocationHandlerClass.getConstructor(new Class[]{ObjectId.class,ContainerRemote.class}).newInstance(new Object[]{objectId,invoker});
}
catch(Exception e){
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
}
}