dblevins    2004/12/20 15:51:55

  Modified:    modules/openejb-builder/src/java/org/openejb/deployment
                        SessionBuilder.java
  Log:

  A little bit of inlining and method extraction trying to make room.
  
  Revision  Changes    Path
  1.7       +70 -67    
openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java
  
  Index: SessionBuilder.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SessionBuilder.java       6 Dec 2004 06:32:33 -0000       1.6
  +++ SessionBuilder.java       20 Dec 2004 20:51:55 -0000      1.7
  @@ -90,9 +90,74 @@
           super(builder);
       }
   
  -    public GBeanMBean createBean(EARContext earContext, EJBModule ejbModule, 
String containerId, SessionBeanType sessionBean, OpenejbSessionBeanType 
openejbSessionBean, TransactionPolicyHelper transactionPolicyHelper, Security 
security, ClassLoader cl) throws DeploymentException {
  +    private ObjectName createEJBObjectName(J2eeContext moduleJ2eeContext, 
SessionBeanType sessionBean) throws DeploymentException {
  +        String ejbName = sessionBean.getEjbName().getStringValue().trim();
  +        //todo use constants from NameFactory
  +        String type = sessionBean.getSessionType().getStringValue().trim() + 
"SessionBean";
  +        try {
  +            return NameFactory.getEjbComponentName(null, null, null, null, 
ejbName, type, moduleJ2eeContext);
  +        } catch (MalformedObjectNameException e) {
  +            throw new DeploymentException("Could not construct ejb object 
name: " + ejbName, e);
  +        }
  +    }
  +
  +    public void processEnvironmentRefs(ContainerBuilder builder, EARContext 
earContext, EJBModule ejbModule, SessionBeanType sessionBean, 
OpenejbSessionBeanType openejbSessionBean, UserTransaction userTransaction, 
ClassLoader cl) throws DeploymentException {
  +        // env entries
  +        EnvEntryType[] envEntries = sessionBean.getEnvEntryArray();
  +
  +        // ejb refs
  +        EjbRefType[] ejbRefs = sessionBean.getEjbRefArray();
  +        GerEjbRefType[] openejbEjbRefs = null;
  +
  +        EjbLocalRefType[] ejbLocalRefs = sessionBean.getEjbLocalRefArray();
  +        GerEjbLocalRefType[] openejbEjbLocalRefs = null;
  +
  +        // resource refs
  +        ResourceRefType[] resourceRefs = sessionBean.getResourceRefArray();
  +        GerResourceRefType[] openejbResourceRefs = null;
  +
  +        // resource env refs
  +        ResourceEnvRefType[] resourceEnvRefs = 
sessionBean.getResourceEnvRefArray();
  +        GerResourceEnvRefType[] openejbResourceEnvRefs = null;
  +        if (openejbSessionBean != null) {
  +            openejbEjbRefs = openejbSessionBean.getEjbRefArray();
  +            openejbEjbLocalRefs = openejbSessionBean.getEjbLocalRefArray();
  +            openejbResourceRefs = openejbSessionBean.getResourceRefArray();
  +            openejbResourceEnvRefs = 
openejbSessionBean.getResourceEnvRefArray();
  +            builder.setJndiNames(openejbSessionBean.getJndiNameArray());
  +            
builder.setLocalJndiNames(openejbSessionBean.getLocalJndiNameArray());
  +        } else {
  +            String ejbName = 
sessionBean.getEjbName().getStringValue().trim();
  +            builder.setJndiNames(new String[]{ejbName});
  +            builder.setLocalJndiNames(new String[]{"local/" + ejbName});
  +        }
  +
  +        MessageDestinationRefType[] messageDestinationRefs = 
sessionBean.getMessageDestinationRefArray();
  +
  +        ReadOnlyContext context = 
ENCConfigBuilder.buildComponentContext(earContext, ejbModule.getModuleURI(), 
userTransaction, envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs, 
openejbEjbLocalRefs, resourceRefs, openejbResourceRefs, resourceEnvRefs, 
openejbResourceEnvRefs, messageDestinationRefs, cl);
  +        builder.setComponentContext(context);
  +        ENCConfigBuilder.setResourceEnvironment(earContext, 
ejbModule.getModuleURI(), builder, resourceRefs, openejbResourceRefs);
  +
  +    }
  +
  +    protected void buildBeans(EARContext earContext, J2eeContext 
moduleJ2eeContext, ClassLoader cl, EJBModule ejbModule, Map openejbBeans, 
TransactionPolicyHelper transactionPolicyHelper, Security security, 
EnterpriseBeansType enterpriseBeans) throws DeploymentException {
  +        // Session Beans
  +        SessionBeanType[] sessionBeans = enterpriseBeans.getSessionArray();
  +        for (int i = 0; i < sessionBeans.length; i++) {
  +            SessionBeanType sessionBean = sessionBeans[i];
  +
  +            OpenejbSessionBeanType openejbSessionBean = 
(OpenejbSessionBeanType) 
openejbBeans.get(sessionBean.getEjbName().getStringValue());
  +            ObjectName sessionObjectName = 
createEJBObjectName(moduleJ2eeContext, sessionBean);
  +
  +            addEJBContainerGBean(earContext, ejbModule, cl, 
sessionObjectName, sessionBean, openejbSessionBean, transactionPolicyHelper, 
security);
  +
  +        }
  +    }
  +
  +    private void addEJBContainerGBean(EARContext earContext, EJBModule 
ejbModule, ClassLoader cl, ObjectName sessionObjectName, SessionBeanType 
sessionBean, OpenejbSessionBeanType openejbSessionBean, TransactionPolicyHelper 
transactionPolicyHelper, Security security) throws DeploymentException {
           String ejbName = sessionBean.getEjbName().getStringValue();
   
  +        GBeanMBean result;
           ContainerBuilder builder = null;
           Permissions toBeChecked = new Permissions();
           ContainerSecurityBuilder containerSecurityBuilder = 
getModuleBuilder().getSecurityBuilder();
  @@ -107,7 +172,7 @@
               builder = new StatefulContainerBuilder();
           }
           builder.setClassLoader(cl);
  -        builder.setContainerId(containerId);
  +        builder.setContainerId(sessionObjectName.getCanonicalName());
           builder.setEJBName(ejbName);
           builder.setBeanClassName(sessionBean.getEjbClass().getStringValue());
           
builder.setHomeInterfaceName(OpenEJBModuleBuilder.getJ2eeStringValue(sessionBean.getHome()));
  @@ -153,74 +218,12 @@
               GBeanMBean gbean = builder.createConfiguration();
               gbean.setReferencePattern("TransactionContextManager", 
earContext.getTransactionContextManagerObjectName());
               gbean.setReferencePattern("TrackedConnectionAssociator", 
earContext.getConnectionTrackerObjectName());
  -            return gbean;
  +            result = gbean;
           } catch (Throwable e) {
               throw new DeploymentException("Unable to initialize EJBContainer 
GBean: ejbName" + ejbName, e);
           }
  -    }
  -
  -    private ObjectName createEJBObjectName(J2eeContext moduleJ2eeContext, 
SessionBeanType sessionBean) throws DeploymentException {
  -        String ejbName = sessionBean.getEjbName().getStringValue().trim();
  -        //todo use constants from NameFactory
  -        String type = sessionBean.getSessionType().getStringValue().trim() + 
"SessionBean";
  -        try {
  -            return NameFactory.getEjbComponentName(null, null, null, null, 
ejbName, type, moduleJ2eeContext);
  -        } catch (MalformedObjectNameException e) {
  -            throw new DeploymentException("Could not construct ejb object 
name: " + ejbName, e);
  -        }
  -    }
  -
  -    public void processEnvironmentRefs(ContainerBuilder builder, EARContext 
earContext, EJBModule ejbModule, SessionBeanType sessionBean, 
OpenejbSessionBeanType openejbSessionBean, UserTransaction userTransaction, 
ClassLoader cl) throws DeploymentException {
  -        // env entries
  -        EnvEntryType[] envEntries = sessionBean.getEnvEntryArray();
  -
  -        // ejb refs
  -        EjbRefType[] ejbRefs = sessionBean.getEjbRefArray();
  -        GerEjbRefType[] openejbEjbRefs = null;
  -
  -        EjbLocalRefType[] ejbLocalRefs = sessionBean.getEjbLocalRefArray();
  -        GerEjbLocalRefType[] openejbEjbLocalRefs = null;
  -
  -        // resource refs
  -        ResourceRefType[] resourceRefs = sessionBean.getResourceRefArray();
  -        GerResourceRefType[] openejbResourceRefs = null;
  -
  -        // resource env refs
  -        ResourceEnvRefType[] resourceEnvRefs = 
sessionBean.getResourceEnvRefArray();
  -        GerResourceEnvRefType[] openejbResourceEnvRefs = null;
  -        if (openejbSessionBean != null) {
  -            openejbEjbRefs = openejbSessionBean.getEjbRefArray();
  -            openejbEjbLocalRefs = openejbSessionBean.getEjbLocalRefArray();
  -            openejbResourceRefs = openejbSessionBean.getResourceRefArray();
  -            openejbResourceEnvRefs = 
openejbSessionBean.getResourceEnvRefArray();
  -            builder.setJndiNames(openejbSessionBean.getJndiNameArray());
  -            
builder.setLocalJndiNames(openejbSessionBean.getLocalJndiNameArray());
  -        } else {
  -            String ejbName = 
sessionBean.getEjbName().getStringValue().trim();
  -            builder.setJndiNames(new String[]{ejbName});
  -            builder.setLocalJndiNames(new String[]{"local/" + ejbName});
  -        }
  -
  -        MessageDestinationRefType[] messageDestinationRefs = 
sessionBean.getMessageDestinationRefArray();
  -
  -        ReadOnlyContext context = 
ENCConfigBuilder.buildComponentContext(earContext, ejbModule.getModuleURI(), 
userTransaction, envEntries, ejbRefs, openejbEjbRefs, ejbLocalRefs, 
openejbEjbLocalRefs, resourceRefs, openejbResourceRefs, resourceEnvRefs, 
openejbResourceEnvRefs, messageDestinationRefs, cl);
  -        builder.setComponentContext(context);
  -        ENCConfigBuilder.setResourceEnvironment(earContext, 
ejbModule.getModuleURI(), builder, resourceRefs, openejbResourceRefs);
  -
  -    }
  -
  -    protected void buildBeans(EARContext earContext, J2eeContext 
moduleJ2eeContext, ClassLoader cl, EJBModule ejbModule, Map openejbBeans, 
TransactionPolicyHelper transactionPolicyHelper, Security security, 
EnterpriseBeansType enterpriseBeans) throws DeploymentException {
  -        // Session Beans
  -        SessionBeanType[] sessionBeans = enterpriseBeans.getSessionArray();
  -        for (int i = 0; i < sessionBeans.length; i++) {
  -            SessionBeanType sessionBean = sessionBeans[i];
  -
  -            OpenejbSessionBeanType openejbSessionBean = 
(OpenejbSessionBeanType) 
openejbBeans.get(sessionBean.getEjbName().getStringValue());
  -            ObjectName sessionObjectName = 
createEJBObjectName(moduleJ2eeContext, sessionBean);
  -
  -            GBeanMBean sessionGBean = createBean(earContext, ejbModule, 
sessionObjectName.getCanonicalName(), sessionBean, openejbSessionBean, 
transactionPolicyHelper, security, cl);
  -            earContext.addGBean(sessionObjectName, sessionGBean);
  -        }
  +        GBeanMBean sessionGBean = result;
  +        earContext.addGBean(sessionObjectName, sessionGBean);
       }
   
       public void initContext(EARContext earContext, J2eeContext 
moduleJ2eeContext, URI moduleUri, ClassLoader cl, EnterpriseBeansType 
enterpriseBeans, Set interfaces) throws DeploymentException {
  
  
  

Reply via email to