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 {