You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/03/14 08:22:15 UTC

svn commit: r518043 - in /incubator/openejb/trunk/openejb3: ./ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/openejb/core/

Author: dain
Date: Wed Mar 14 00:22:12 2007
New Revision: 518043

URL: http://svn.apache.org/viewvc?view=rev&rev=518043
Log:
Added some hacks that let geronimo set the container name after application has been configured
Added conversion code for MDBs declared in an openejb2 file
Fixed ejbCreate bug for MDBs
Changed activemq version to 4.1-SNAPSHOT

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2CmpConversion.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
    incubator/openejb/trunk/openejb3/pom.xml

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?view=diff&rev=518043&r1=518042&r2=518043
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Wed Mar 14 00:22:12 2007
@@ -113,7 +113,7 @@
                 throw new OpenEJBException("No ejb deployment found for ejb " + bean.getEjbName());
             }
 
-            if (ejbDeployment.getContainerId() == null) {
+            if (ejbDeployment.getContainerId() == null && !skipMdb(bean.getBean())) {
                 Class<? extends ContainerInfo> containerInfoType = ConfigurationFactory.getContainerInfoType(bean.getType());
                 String containerId = getUsableContainer(containerInfoType, bean.getBean());
 
@@ -130,7 +130,7 @@
             }
 
             // create the container if it doesn't exist
-            if (!configFactory.getContainerIds().contains(ejbDeployment.getContainerId())) {
+            if (!configFactory.getContainerIds().contains(ejbDeployment.getContainerId()) && !skipMdb(bean.getBean())) {
 
                 if (autoCreateContainers){
                     ContainerInfo containerInfo = configFactory.configureService(ConfigurationFactory.getContainerInfoType(bean.getType()));
@@ -167,6 +167,10 @@
         }
 
         return ejbModule;
+    }
+
+    private static boolean skipMdb(Object bean) {
+        return bean instanceof MessageDrivenBean && System.getProperty("duct tape") != null;
     }
 
     private String installContainer(ContainerInfo containerInfo) throws OpenEJBException {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?view=diff&rev=518043&r1=518042&r2=518043
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Wed Mar 14 00:22:12 2007
@@ -55,6 +55,7 @@
 import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
 import org.apache.openejb.assembler.classic.TransactionServiceInfo;
 import org.apache.openejb.assembler.classic.ResourceInfo;
+import org.apache.openejb.assembler.classic.MessageDrivenBeanInfo;
 import org.apache.openejb.config.sys.ConnectionManager;
 import org.apache.openejb.config.sys.Connector;
 import org.apache.openejb.config.sys.Container;
@@ -317,7 +318,7 @@
                 for (EnterpriseBeanInfo bean : ejbJarInfo.enterpriseBeans) {
                     EjbDeployment d = deploymentsByEjbName.get(bean.ejbName);
 
-                    if (!getContainerIds().contains(d.getContainerId())) {
+                    if (!getContainerIds().contains(d.getContainerId()) && !skipMdb(bean)) {
                         String msg = messages.format("config.noContainerFound", d.getContainerId(), d.getEjbName());
                         logger.fatal(msg);
                         throw new OpenEJBException(msg);
@@ -763,6 +764,10 @@
 
     private OpenEjbConfiguration getRunningConfig() {
         return SystemInstance.get().getComponent(OpenEjbConfiguration.class);
+    }
+
+    private static boolean skipMdb(EnterpriseBeanInfo bean) {
+        return bean instanceof MessageDrivenBeanInfo && System.getProperty("duct tape") != null;
     }
 
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2CmpConversion.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2CmpConversion.java?view=diff&rev=518043&r1=518042&r2=518043
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2CmpConversion.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/OpenEjb2CmpConversion.java Wed Mar 14 00:22:12 2007
@@ -41,18 +41,26 @@
 import org.apache.openejb.jee.jpa.Table;
 import org.apache.openejb.jee.oejb2.EjbRelationType;
 import org.apache.openejb.jee.oejb2.EjbRelationshipRoleType;
-import org.apache.openejb.jee.oejb2.EnterpriseBean;
 import org.apache.openejb.jee.oejb2.EntityBeanType;
 import org.apache.openejb.jee.oejb2.JaxbOpenejbJar2;
 import org.apache.openejb.jee.oejb2.OpenejbJarType;
 import org.apache.openejb.jee.oejb2.QueryType;
+import org.apache.openejb.jee.oejb2.MessageDrivenBeanType;
+import org.apache.openejb.jee.oejb2.ActivationConfigType;
+import org.apache.openejb.jee.oejb2.ActivationConfigPropertyType;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.MessageDrivenBean;
+import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.openejb.jee.ActivationConfigProperty;
+import org.apache.openejb.jee.ActivationConfig;
 
 public class OpenEjb2CmpConversion implements DynamicDeployer {
     public AppModule deploy(AppModule appModule) {
         for (EjbModule ejbModule : appModule.getEjbModules()) {
             Object altDD = getOpenejbJarType(ejbModule);
             if (altDD instanceof OpenejbJarType) {
+                convertMdbConfigs(ejbModule.getEjbJar(), (OpenejbJarType) altDD);
                 mergeEntityMappings(appModule.getCmpMappings(), ejbModule.getOpenejbJar(), (OpenejbJarType) altDD);
             }
         }
@@ -84,12 +92,47 @@
         return null;
     }
 
+    public void convertMdbConfigs(EjbJar ejbJar, OpenejbJarType openejbJarType) {
+        Map<String, MessageDrivenBean> mdbs =  new TreeMap<String, MessageDrivenBean>();
+        for (EnterpriseBean enterpriseBean : ejbJar.getEnterpriseBeans()) {
+            if (!(enterpriseBean instanceof MessageDrivenBean)) {
+                continue;
+            }
+            mdbs.put(enterpriseBean.getEjbName(), (MessageDrivenBean) enterpriseBean);
+        }
+        for (org.apache.openejb.jee.oejb2.EnterpriseBean enterpriseBean : openejbJarType.getEnterpriseBeans()) {
+            if (!(enterpriseBean instanceof MessageDrivenBeanType)) {
+                continue;
+            }
+            MessageDrivenBeanType bean = (MessageDrivenBeanType) enterpriseBean;
+            MessageDrivenBean mdb = mdbs.get(bean.getEjbName());
+            if (mdb == null) {
+                // todo warn no such ejb in the ejb-jar.xml
+                continue;
+            }
+            ActivationConfigType activationConfigType = bean.getActivationConfig();
+            if (activationConfigType != null) {
+                ActivationConfig activationConfig = mdb.getActivationConfig();
+                if (activationConfig == null) {
+                    activationConfig = new ActivationConfig();
+                    mdb.setActivationConfig(activationConfig);
+                }
+                for (ActivationConfigPropertyType propertyType : activationConfigType.getActivationConfigProperty()) {
+                    ActivationConfigProperty property = new ActivationConfigProperty(
+                            propertyType.getActivationConfigPropertyName(),
+                            propertyType.getActivationConfigPropertyValue());
+                    activationConfig.getActivationConfigProperty().add(property);
+                }
+            }
+        }
+    }
+
     public void mergeEntityMappings(EntityMappings entityMappings, OpenejbJar openejbJar, OpenejbJarType openejbJarType) {
         Map<String, EntityData> entities =  new TreeMap<String, EntityData>();
         for (Entity entity : entityMappings.getEntity()) {
             entities.put(entity.getDescription(), new EntityData(entity));
         }
-        for (EnterpriseBean enterpriseBean : openejbJarType.getEnterpriseBeans()) {
+        for (org.apache.openejb.jee.oejb2.EnterpriseBean enterpriseBean : openejbJarType.getEnterpriseBeans()) {
             if (!(enterpriseBean instanceof EntityBeanType)) {
                 continue;
             }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java?view=diff&rev=518043&r1=518042&r2=518043
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java Wed Mar 14 00:22:12 2007
@@ -707,7 +707,7 @@
 
         if (componentType == BeanType.MESSAGE_DRIVEN && MessageDrivenBean.class.isAssignableFrom(beanClass)) {
             try {
-                createMethod = beanClass.getDeclaredMethod("ejbCreate");
+                createMethod = beanClass.getMethod("ejbCreate");
             } catch (NoSuchMethodException e) {
                 // if there isn't an ejbCreate method that is fine
             }

Modified: incubator/openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/pom.xml?view=diff&rev=518043&r1=518042&r2=518043
==============================================================================
--- incubator/openejb/trunk/openejb3/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/pom.xml Wed Mar 14 00:22:12 2007
@@ -341,12 +341,12 @@
       <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-ra</artifactId>
-        <version>4.1.0-incubator</version>
+        <version>4.1-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-core</artifactId>
-        <version>4.1.0-incubator</version>
+        <version>4.1-SNAPSHOT</version>
         <exclusions>
           <exclusion>
             <groupId>activesoap</groupId>