1 package org.lateralnz.panther.wrapper; 2 3 import java.io.Serializable ; 4 import java.rmi.RemoteException ; 5 import java.rmi.server.UnicastRemoteObject ; 6 7 import javax.ejb.EJBHome ; 8 import javax.ejb.EJBMetaData ; 9 import javax.ejb.Handle ; 10 import javax.ejb.HomeHandle ; 11 import javax.ejb.SessionBean ; 12 13 import org.apache.commons.pool.impl.GenericKeyedObjectPool; 14 import org.apache.log4j.Logger; 15 16 20 public class SessionBeanHome extends UnicastRemoteObject implements EJBHome , Serializable { 21 private static final Logger log = Logger.getLogger(SessionBeanHome.class.getName()); 22 protected GenericKeyedObjectPool pool = null; 23 protected String name; 24 protected EJBMetaData metadata; 25 26 public SessionBeanHome(String name, GenericKeyedObjectPool pool) throws RemoteException { 27 this.name = name; 28 this.pool = pool; 29 } 30 31 public HomeHandle getHomeHandle() throws RemoteException { return null; } 32 33 public void setEJBMetaData(EJBMetaData metadata) { 34 this.metadata = metadata; 35 } 36 37 public EJBMetaData getEJBMetaData() { 38 return metadata; 39 } 40 41 public void remove(Handle handle) throws RemoteException { 42 Object obj = handle.getEJBObject(); 43 if (log.isDebugEnabled()) { 44 log.debug("removing ejbobj (by handle) " + obj); 45 } 46 try { 47 SessionBean sb = (SessionBean )obj; 48 sb.ejbRemove(); 49 } 50 catch (Exception e) { 51 e.printStackTrace(); 52 } 53 54 try { 55 pool.returnObject(name, obj); 56 } 57 catch (Exception e) { 58 e.printStackTrace(); 59 } 60 } 61 62 public void remove(Object obj) throws RemoteException { 63 throw new RemoteException ("cannot remove a session bean by key"); 64 } 65 66 } 67 | Popular Tags |