You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2007/01/06 01:25:35 UTC

svn commit: r493252 - in /geronimo/server/branches/1.2: configs/client-deployer/src/plan/ configs/connector-deployer/src/plan/ configs/geronimo-gbean-deployer/ configs/j2ee-deployer/ configs/j2ee-deployer/src/plan/ configs/openejb-deployer/src/plan/ mo...

Author: djencks
Date: Fri Jan  5 16:25:34 2007
New Revision: 493252

URL: http://svn.apache.org/viewvc?view=rev&rev=493252
Log:
GERONIMO-2686 register ModuleConfigurers, port from trunk. I can't find an openejb version to go with 1.2, so openejb may not compile

Added:
    geronimo/server/branches/1.2/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/jsr88/ClientConfiguration.java
      - copied unchanged from r493181, geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/jsr88/ClientConfiguration.java
    geronimo/server/branches/1.2/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/jsr88/ClientConfigurer.java
      - copied unchanged from r493181, geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/jsr88/ClientConfigurer.java
Modified:
    geronimo/server/branches/1.2/configs/client-deployer/src/plan/plan.xml
    geronimo/server/branches/1.2/configs/connector-deployer/src/plan/plan.xml
    geronimo/server/branches/1.2/configs/geronimo-gbean-deployer/pom.xml
    geronimo/server/branches/1.2/configs/j2ee-deployer/pom.xml
    geronimo/server/branches/1.2/configs/j2ee-deployer/src/plan/plan.xml
    geronimo/server/branches/1.2/configs/openejb-deployer/src/plan/plan.xml
    geronimo/server/branches/1.2/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/RARConfigurer.java
    geronimo/server/branches/1.2/modules/geronimo-deploy-config/src/main/java/org/apache/geronimo/deployment/ModuleConfigurer.java
    geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/pom.xml
    geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java
    geronimo/server/branches/1.2/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/jsr88/EARConfigurer.java
    geronimo/server/branches/1.2/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/WARConfigurer.java

Modified: geronimo/server/branches/1.2/configs/client-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/configs/client-deployer/src/plan/plan.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/configs/client-deployer/src/plan/plan.xml (original)
+++ geronimo/server/branches/1.2/configs/client-deployer/src/plan/plan.xml Fri Jan  5 16:25:34 2007
@@ -88,4 +88,6 @@
     </gbean>
 
 
+    <gbean name="ClientConfigurer" class="org.apache.geronimo.client.builder.jsr88.ClientConfigurer"/>
+
 </module>

Modified: geronimo/server/branches/1.2/configs/connector-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/configs/connector-deployer/src/plan/plan.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/configs/connector-deployer/src/plan/plan.xml (original)
+++ geronimo/server/branches/1.2/configs/connector-deployer/src/plan/plan.xml Fri Jan  5 16:25:34 2007
@@ -85,4 +85,6 @@
         <attribute name="eeNamespaces">http://java.sun.com/xml/ns/j2ee</attribute>
     </gbean>
 
+    <gbean name="RARConfigurer" class="org.apache.geronimo.connector.deployment.RARConfigurer"/>
+
 </module>

Modified: geronimo/server/branches/1.2/configs/geronimo-gbean-deployer/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/configs/geronimo-gbean-deployer/pom.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/configs/geronimo-gbean-deployer/pom.xml (original)
+++ geronimo/server/branches/1.2/configs/geronimo-gbean-deployer/pom.xml Fri Jan  5 16:25:34 2007
@@ -54,6 +54,12 @@
             <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
         </dependency>
 
+        <!-- jsr88 dconfigbean support base classes -->
+        <dependency>
+            <groupId>org.apache.geronimo.modules</groupId>
+            <artifactId>geronimo-deploy-config</artifactId>
+            <version>${version}</version>
+        </dependency>
         <!-- Thirdparty Dependencies -->
         
         <dependency>

Modified: geronimo/server/branches/1.2/configs/j2ee-deployer/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/configs/j2ee-deployer/pom.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/configs/j2ee-deployer/pom.xml (original)
+++ geronimo/server/branches/1.2/configs/j2ee-deployer/pom.xml Fri Jan  5 16:25:34 2007
@@ -92,6 +92,7 @@
             <groupId>org.apache.geronimo.modules</groupId>
             <artifactId>geronimo-test-ddbean</artifactId>
             <version>${version}</version>
+            <scope>test</scope>
         </dependency>
 
         <dependency>

Modified: geronimo/server/branches/1.2/configs/j2ee-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/configs/j2ee-deployer/src/plan/plan.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/configs/j2ee-deployer/src/plan/plan.xml (original)
+++ geronimo/server/branches/1.2/configs/j2ee-deployer/src/plan/plan.xml Fri Jan  5 16:25:34 2007
@@ -147,4 +147,6 @@
         <attribute name="eeNamespaces">http://java.sun.com/xml/ns/j2ee</attribute>
     </gbean>
 
+    <gbean name="EARConfigurer" class="org.apache.geronimo.j2ee.jsr88.EARConfigurer"/>
+
 </module>

Modified: geronimo/server/branches/1.2/configs/openejb-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/configs/openejb-deployer/src/plan/plan.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/configs/openejb-deployer/src/plan/plan.xml (original)
+++ geronimo/server/branches/1.2/configs/openejb-deployer/src/plan/plan.xml Fri Jan  5 16:25:34 2007
@@ -113,4 +113,6 @@
 
     <gbean name="WebServiceEJBLinkTemplate" class="org.apache.openejb.server.axis.WSContainerGBean"/>
 
+    <!--gbean name="EJBConfigurer" class="org.apache.openejb.deployment.EjbConfigurer"/-->
+
 </module>

Modified: geronimo/server/branches/1.2/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/RARConfigurer.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/RARConfigurer.java?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/RARConfigurer.java (original)
+++ geronimo/server/branches/1.2/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/RARConfigurer.java Fri Jan  5 16:25:34 2007
@@ -52,6 +52,10 @@
         }
     }
 
+    public ModuleType getModuleType() {
+        return ModuleType.RAR;
+    }
+
     public static final GBeanInfo GBEAN_INFO;
 
     static {

Modified: geronimo/server/branches/1.2/modules/geronimo-deploy-config/src/main/java/org/apache/geronimo/deployment/ModuleConfigurer.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-deploy-config/src/main/java/org/apache/geronimo/deployment/ModuleConfigurer.java?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/modules/geronimo-deploy-config/src/main/java/org/apache/geronimo/deployment/ModuleConfigurer.java (original)
+++ geronimo/server/branches/1.2/modules/geronimo-deploy-config/src/main/java/org/apache/geronimo/deployment/ModuleConfigurer.java Fri Jan  5 16:25:34 2007
@@ -19,6 +19,7 @@
 
 import javax.enterprise.deploy.spi.DeploymentConfiguration;
 import javax.enterprise.deploy.model.DeployableObject;
+import javax.enterprise.deploy.shared.ModuleType;
 
 /**
  * Interface to be implemented by the deployment subsystem for any type
@@ -33,4 +34,10 @@
      * @return the vendor-specific deployment configuration, or null a configurer cannot handle the DeployableObject
      */
     DeploymentConfiguration createConfiguration(DeployableObject deployable);
+
+    /**
+     * Supply the module type this configurer handles for indexing
+     * @return ModuleType handled by this Configurer.
+     */
+    ModuleType getModuleType();
 }

Modified: geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/pom.xml?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/pom.xml (original)
+++ geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/pom.xml Fri Jan  5 16:25:34 2007
@@ -41,8 +41,9 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
+            <groupId>org.apache.geronimo.modules</groupId>
+            <artifactId>geronimo-deploy-config</artifactId>
+            <version>${version}</version>
         </dependency>
         
         <dependency>

Modified: geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java (original)
+++ geronimo/server/branches/1.2/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java Fri Jan  5 16:25:34 2007
@@ -19,8 +19,12 @@
 import java.io.File;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashMap;
 
 import javax.enterprise.deploy.model.DeployableObject;
 import javax.enterprise.deploy.shared.DConfigBeanVersionType;
@@ -36,7 +40,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-//import org.apache.geronimo.connector.deployment.RARConfigurer;
+import org.apache.geronimo.deployment.ModuleConfigurer;
 import org.apache.geronimo.deployment.plugin.TargetImpl;
 import org.apache.geronimo.deployment.plugin.TargetModuleIDImpl;
 import org.apache.geronimo.deployment.plugin.local.CommandSupport;
@@ -46,13 +50,14 @@
 import org.apache.geronimo.deployment.plugin.local.StopCommand;
 import org.apache.geronimo.deployment.plugin.local.UndeployCommand;
 import org.apache.geronimo.gbean.AbstractName;
+import org.apache.geronimo.gbean.AbstractNameQuery;
+import org.apache.geronimo.kernel.GBeanNotFoundException;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.config.ConfigurationInfo;
 import org.apache.geronimo.kernel.config.ConfigurationManager;
 import org.apache.geronimo.kernel.config.ConfigurationModuleType;
 import org.apache.geronimo.kernel.config.ConfigurationUtil;
 import org.apache.geronimo.kernel.management.State;
-//import org.apache.geronimo.web.deployment.WARConfigurer;
 
 
 /**
@@ -60,15 +65,27 @@
  */
 public abstract class JMXDeploymentManager implements DeploymentManager {
     private static final Log log = LogFactory.getLog(JMXDeploymentManager.class);
+    private static final AbstractNameQuery CONFIGURER_QUERY = new AbstractNameQuery(ModuleConfigurer.class.getName());
 
     protected Kernel kernel;
     private ConfigurationManager configurationManager;
     private CommandContext commandContext;
+    private Map moduleConfigurers = new HashMap();
 
     protected void initialize(Kernel kernel) {
         this.kernel = kernel;
         configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
         commandContext = new CommandContext(true, true, null, null, false);
+        Set configurerNames = kernel.listGBeans(CONFIGURER_QUERY);
+        for (Iterator iterator = configurerNames.iterator(); iterator.hasNext(); ) {
+            AbstractName name = (AbstractName) iterator.next();
+            try {
+                ModuleConfigurer configurer = (ModuleConfigurer) kernel.getGBean(name);
+                moduleConfigurers.put(configurer.getModuleType(), configurer);
+            } catch (GBeanNotFoundException e) {
+                log.warn("No gbean found for name returned in query : " + name);
+            }
+        }
     }
 
     public void setAuthentication(String username, String password) {
@@ -152,10 +169,10 @@
                         List list = CommandSupport.loadChildren(kernel, name);
                         TargetModuleIDImpl moduleID = new TargetModuleIDImpl(target, name, (String[]) list.toArray(new String[list.size()]));
                         moduleID.setType(CommandSupport.convertModuleType(info.getType()));
-                        if(moduleID.getChildTargetModuleID() != null) {
+                        if (moduleID.getChildTargetModuleID() != null) {
                             for (int k = 0; k < moduleID.getChildTargetModuleID().length; k++) {
                                 TargetModuleIDImpl child = (TargetModuleIDImpl) moduleID.getChildTargetModuleID()[k];
-                                if(CommandSupport.isWebApp(kernel, child.getModuleID())) {
+                                if (CommandSupport.isWebApp(kernel, child.getModuleID())) {
                                     child.setType(ModuleType.WAR);
                                 }
                             }
@@ -280,23 +297,14 @@
     }
 
     public DeploymentConfiguration createConfiguration(DeployableObject dObj) throws InvalidModuleException {
-        if(dObj.getType().equals(ModuleType.CAR)) {
-            //todo: need a client configurer
-        } else if(dObj.getType().equals(ModuleType.EAR)) {
-            //todo: need an EAR configurer
-        } else if(dObj.getType().equals(ModuleType.EJB)) {
-            try {
-                Class cls = Class.forName("org.apache.openejb.deployment.EJBConfigurer");
-                return (DeploymentConfiguration)cls.getMethod("createConfiguration", new Class[]{DeployableObject.class}).invoke(cls.newInstance(), new Object[]{dObj});
-            } catch (Exception e) {
-                log.error("Unable to invoke EJB deployer", e);
-            }
-        } else if(dObj.getType().equals(ModuleType.RAR)) {
-//            return new RARConfigurer().createConfiguration(dObj);
-        } else if(dObj.getType().equals(ModuleType.WAR)) {
-//            return new WARConfigurer().createConfiguration(dObj);
+        if (dObj == null) {
+            throw new NullPointerException("No deployable object supplied to configure");
+        }
+        ModuleConfigurer configurer = (ModuleConfigurer) moduleConfigurers.get(dObj.getType());
+        if (configurer == null) {
+            throw new InvalidModuleException("No configurer for module type: " + dObj.getType() + " registered");
         }
-        throw new InvalidModuleException("Not supported");
+        return configurer.createConfiguration(dObj);
     }
 
     protected DistributeCommand createDistributeCommand(Target[] targetList, File moduleArchive, File deploymentPlan) {

Modified: geronimo/server/branches/1.2/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/jsr88/EARConfigurer.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/jsr88/EARConfigurer.java?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/jsr88/EARConfigurer.java (original)
+++ geronimo/server/branches/1.2/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/jsr88/EARConfigurer.java Fri Jan  5 16:25:34 2007
@@ -41,6 +41,10 @@
         }
     }
 
+    public ModuleType getModuleType() {
+        return ModuleType.EAR;
+    }
+
     public static final GBeanInfo GBEAN_INFO;
 
     static {

Modified: geronimo/server/branches/1.2/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/WARConfigurer.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/1.2/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/WARConfigurer.java?view=diff&rev=493252&r1=493251&r2=493252
==============================================================================
--- geronimo/server/branches/1.2/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/WARConfigurer.java (original)
+++ geronimo/server/branches/1.2/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/WARConfigurer.java Fri Jan  5 16:25:34 2007
@@ -22,6 +22,9 @@
 import javax.enterprise.deploy.spi.DeploymentConfiguration;
 
 import org.apache.geronimo.deployment.ModuleConfigurer;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 
 /**
  * @version $Rev$ $Date$
@@ -33,5 +36,21 @@
         } else {
             return null;
         }
+    }
+
+    public ModuleType getModuleType() {
+        return ModuleType.WAR;
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(WARConfigurer.class, NameFactory.DEPLOYMENT_CONFIGURER);
+        infoFactory.addInterface(ModuleConfigurer.class);
+        GBEAN_INFO = infoFactory.getBeanInfo();
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
     }
 }