HomeFactory.java

00001 
00027 package org.objectweb.jonas_ejb.container;
00028 
00029 import java.util.Hashtable;
00030 
00031 import javax.naming.Context;
00032 import javax.naming.Name;
00033 import javax.naming.Reference;
00034 import javax.naming.spi.ObjectFactory;
00035 
00036 import org.objectweb.util.monolog.api.BasicLevel;
00037 
00045 public class HomeFactory implements ObjectFactory {
00046 
00059     public Object getObjectInstance(Object refObj, Name name, Context nameCtx, Hashtable env) throws Exception {
00060         Reference ref = (Reference) refObj;
00061         String clname = ref.getClassName();
00062 
00063         TraceEjb.interp.log(BasicLevel.DEBUG, clname);
00064 
00065         if (clname.equals("org.objectweb.jonas_ejb.container.JLocalHome")) {
00066             // Local Home
00067             String beanName = (String) ref.get("bean.name").getContent();
00068             JLocalHome localhome = JLocalHome.getLocalHome(beanName);
00069             if (localhome == null) {
00070                 TraceEjb.logger.log(BasicLevel.ERROR, "cannot get " + beanName);
00071             }
00072             return localhome;
00073         } else if (clname.equals("org.objectweb.jonas_ejb.container.JServiceEndpointHome")) {
00074             // Service Endpoint Home
00075             String beanName = (String) ref.get("bean.name").getContent();
00076             JServiceEndpointHome sehome = JServiceEndpointHome.getSEHome(beanName);
00077             if (sehome == null) {
00078                 TraceEjb.logger.log(BasicLevel.ERROR, "cannot get " + beanName);
00079             }
00080             return sehome;
00081         } else {
00082             TraceEjb.logger.log(BasicLevel.ERROR, "bad class name: " + clname);
00083         }
00084         // not found !
00085         return null;
00086     }
00087 }

Generated on Tue Feb 15 15:05:37 2005 for JOnAS by  doxygen 1.3.9.1