00001
00026 package org.objectweb.jonas_ejb.container;
00027
00028 import java.io.IOException;
00029 import java.io.ObjectInputStream;
00030 import java.io.ObjectOutputStream;
00031
00032 import javax.ejb.EJBHome;
00033 import javax.ejb.EJBObject;
00034 import javax.ejb.spi.HandleDelegate;
00035 import javax.rmi.PortableRemoteObject;
00036
00037 import org.objectweb.carol.rmi.util.RmiMultiUtility;
00038 import org.objectweb.util.monolog.api.BasicLevel;
00039
00044 public class JHandleDelegate implements HandleDelegate {
00045
00046
00047
00048
00049
00060 public void writeEJBObject(EJBObject ejb, ObjectOutputStream out) throws IOException {
00061 TraceEjb.interp.log(BasicLevel.DEBUG, "");
00062 out.writeObject(ejb);
00063 }
00064
00081 public EJBObject readEJBObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
00082 TraceEjb.interp.log(BasicLevel.DEBUG, "");
00083 Object ejb = in.readObject();
00084 RmiMultiUtility.reconnectStub2Orb(ejb);
00085 return (EJBObject) PortableRemoteObject.narrow(ejb, EJBObject.class);
00086 }
00087
00098 public void writeEJBHome(EJBHome home, ObjectOutputStream out) throws IOException {
00099 TraceEjb.interp.log(BasicLevel.DEBUG, "");
00100 out.writeObject(home);
00101 }
00102
00119 public EJBHome readEJBHome(ObjectInputStream in) throws IOException, ClassNotFoundException {
00120 TraceEjb.interp.log(BasicLevel.DEBUG, "");
00121 Object home = in.readObject();
00122 RmiMultiUtility.reconnectStub2Orb(home);
00123 return (EJBHome) PortableRemoteObject.narrow(home, EJBHome.class);
00124 }
00125 }