Author: dblevins
Date: Tue Aug 28 20:23:13 2007
New Revision: 570627

URL: http://svn.apache.org/viewvc?rev=570627&view=rev
Log:
Allow deployment-id to be optional in an openejb-jar.xml.  Fill in a default 
value just as we would when they have no <ejb-deployment> declaration at all.

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/InitEjbDeployments.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/InitEjbDeployments.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/InitEjbDeployments.java?rev=570627&r1=570626&r2=570627&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/InitEjbDeployments.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/InitEjbDeployments.java
 Tue Aug 28 20:23:13 2007
@@ -34,9 +34,10 @@
     public static Logger logger = Logger.getInstance(LogCategory.OPENEJB, 
"org.apache.openejb.util.resources");
 
     private final StringTemplate deploymentIdTemplate;
+    private static final String DEPLOYMENT_ID_FORMAT = 
"openejb.deploymentId.format";
 
     public InitEjbDeployments() {
-        String format = 
SystemInstance.get().getProperty("openejb.deploymentId.format", "{ejbName}");
+        String format = SystemInstance.get().getProperty(DEPLOYMENT_ID_FORMAT, 
"{ejbName}");
         this.deploymentIdTemplate = new StringTemplate(format);
     }
 
@@ -69,21 +70,26 @@
                 ejbDeployment = new EjbDeployment();
 
                 ejbDeployment.setEjbName(bean.getEjbName());
-                ejbDeployment.setDeploymentId(autoAssignDeploymentId(bean, 
contextData));
+                ejbDeployment.setDeploymentId(autoAssignDeploymentId(bean, 
contextData, deploymentIdTemplate));
 
-                logger.info("Auto-deploying ejb " + bean.getEjbName() + ": 
EjbDeployment(deployment-id=" + ejbDeployment.getDeploymentId() + ", 
container-id=" + ejbDeployment.getContainerId() + ")");
+                logger.info("Auto-deploying ejb " + bean.getEjbName() + ": 
EjbDeployment(deployment-id=" + ejbDeployment.getDeploymentId() + ")");
                 openejbJar.getEjbDeployment().add(ejbDeployment);
+            } else {
+                if (ejbDeployment.getDeploymentId() == null) {
+                    ejbDeployment.setDeploymentId(autoAssignDeploymentId(bean, 
contextData, deploymentIdTemplate));
+                    logger.info("Auto-assigning deployment-id for ejb " + 
bean.getEjbName() + ": EjbDeployment(deployment-id=" + 
ejbDeployment.getDeploymentId() + ")");
+                }
             }
         }
 
         return ejbModule;
     }
 
-    private String autoAssignDeploymentId(EnterpriseBean bean, Map<String, 
String> contextData) {
+    private String autoAssignDeploymentId(EnterpriseBean bean, Map<String, 
String> contextData, StringTemplate template) {
         contextData.put("ejbType", bean.getClass().getSimpleName());
         contextData.put("ejbClass", bean.getClass().getName());
         contextData.put("ejbClass.simpleName", 
bean.getClass().getSimpleName());
         contextData.put("ejbName", bean.getEjbName());
-        return deploymentIdTemplate.apply(contextData);
+        return template.apply(contextData);
     }
 }


Reply via email to