[jboss-cvs] JBossAS SVN: r99278 - in trunk: component-matrix and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 12 04:25:35 EST 2010


Author: wolfc
Date: 2010-01-12 04:25:34 -0500 (Tue, 12 Jan 2010)
New Revision: 99278

Added:
   trunk/server/src/main/java/org/jboss/as/
   trunk/server/src/main/java/org/jboss/as/javaee/
   trunk/server/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleIdentifier.java
   trunk/server/src/main/java/org/jboss/as/naming/
   trunk/server/src/main/java/org/jboss/as/naming/javaee/
   trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEApplicationInformer.java
   trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEComponentInformer.java
   trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEModuleInformer.java
Modified:
   trunk/build/build.xml
   trunk/component-matrix/pom.xml
   trunk/ejb3/pom.xml
   trunk/ejb3/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleInformer.java
   trunk/server/pom.xml
   trunk/server/src/etc/deployers/core-naming-jboss-beans.xml
Log:
JBAS-7556: initial integration of jboss-reloaded-naming-deployers

Modified: trunk/build/build.xml
===================================================================
--- trunk/build/build.xml	2010-01-12 08:31:04 UTC (rev 99277)
+++ trunk/build/build.xml	2010-01-12 09:25:34 UTC (rev 99278)
@@ -2004,6 +2004,7 @@
       <fileset refid="org.jboss.ejb3:jboss-ejb3-timerservice-spi:jar"/>
       <fileset refid="org.jboss.ejb3:jboss-ejb3-transactions:jar"/>
       <fileset refid="org.jboss.reloaded:jboss-reloaded-naming:jar"/>
+      <fileset refid="org.jboss.reloaded:jboss-reloaded-naming-deployers:jar"/>
       <fileset refid="org.hibernate:hibernate-core:jar"/>
       <fileset refid="org.hibernate:hibernate-commons-annotations:jar"/>
       <fileset refid="org.hibernate:hibernate-entitymanager:jar"/>

Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml	2010-01-12 08:31:04 UTC (rev 99277)
+++ trunk/component-matrix/pom.xml	2010-01-12 09:25:34 UTC (rev 99278)
@@ -115,7 +115,8 @@
     <version.org.jboss.mx>6.0.0.Beta1</version.org.jboss.mx>
     <version.org.jboss.naming>5.0.4.GA</version.org.jboss.naming>
     <version.org.jboss.reflect>2.0.2.GA</version.org.jboss.reflect>
-    <version.org.jboss.reloaded.naming>0.1.0-alpha-1</version.org.jboss.reloaded.naming>
+    <version.org.jboss.reloaded.naming>0.1.0-alpha-2</version.org.jboss.reloaded.naming>
+    <version.org.jboss.reloaded.naming.deployers>0.1.0-alpha-1</version.org.jboss.reloaded.naming.deployers>
     <version.org.jboss.remoting>2.5.2.SP2</version.org.jboss.remoting>
     <version.org.jboss.security>2.1.0.20091223</version.org.jboss.security>
     <version.org.jboss.service.binding>1.0.0.GA</version.org.jboss.service.binding>
@@ -1391,6 +1392,12 @@
       </dependency>
       
       <dependency>
+        <groupId>org.jboss.reloaded</groupId>
+        <artifactId>jboss-reloaded-naming-deployers</artifactId>
+        <version>${version.org.jboss.reloaded.naming.deployers}</version>
+      </dependency>
+
+      <dependency>
         <groupId>org.jboss</groupId>
         <artifactId>jboss-mdr</artifactId>
         <version>${version.org.jboss.mdr}</version>

Modified: trunk/ejb3/pom.xml
===================================================================
--- trunk/ejb3/pom.xml	2010-01-12 08:31:04 UTC (rev 99277)
+++ trunk/ejb3/pom.xml	2010-01-12 09:25:34 UTC (rev 99278)
@@ -280,7 +280,11 @@
       <groupId>org.jboss.integration</groupId>
       <artifactId>jboss-corba-ots-spi</artifactId>
     </dependency>
-    
+
+    <dependency>
+      <groupId>org.jboss.reloaded</groupId>
+      <artifactId>jboss-reloaded-naming-deployers</artifactId>
+    </dependency>
   </dependencies>
   
 </project>

Modified: trunk/ejb3/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleInformer.java
===================================================================
--- trunk/ejb3/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleInformer.java	2010-01-12 08:31:04 UTC (rev 99277)
+++ trunk/ejb3/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleInformer.java	2010-01-12 09:25:34 UTC (rev 99278)
@@ -23,12 +23,7 @@
 
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.jpa.javaee.JavaEEModuleInformer;
-import org.jboss.metadata.client.jboss.JBossClientMetaData;
 import org.jboss.metadata.ear.jboss.JBossAppMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
 
 /**
  * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
@@ -36,6 +31,9 @@
  */
 public class SimpleJavaEEModuleInformer implements JavaEEModuleInformer
 {
+   // TODO: wire via SPI or deprecated this construct in favor of a generic JavaEE module informer
+   private SimpleJavaEEModuleIdentifier identifier = new SimpleJavaEEModuleIdentifier();
+   
    public String getApplicationName(DeploymentUnit unit)
    {
       DeploymentUnit topLevel = unit.getTopLevel();
@@ -51,32 +49,17 @@
 
    public ModuleType getModuleType(DeploymentUnit unit)
    {
-      if(unit.isAttachmentPresent(JBossClientMetaData.class))
-         return ModuleType.APP_CLIENT;
-      if(unit.isAttachmentPresent(JBossMetaData.class) && isReallyAnEjbDeployment(unit))
-         return ModuleType.EJB;
-      if(unit.isAttachmentPresent(JBossWebMetaData.class))
-         return ModuleType.WEB;
-      return ModuleType.JAVA;
-   }
-
-   /*
-    * Some hacks to counter problems.
-    */
-   private boolean isReallyAnEjbDeployment(DeploymentUnit unit)
-   {
-      JBossMetaData metaData = unit.getAttachment(JBossMetaData.class);
-      // JBMETA-69
-      if(metaData.getEnterpriseBeans() == null || metaData.getEnterpriseBeans().size() == 0)
-         return false;
-      // JBMETA-70
-      // The chance of a persistence unit being defined with couple of EJB entity beans is
-      // pretty slim.
-      for(JBossEnterpriseBeanMetaData bean : metaData.getEnterpriseBeans())
+      org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer.ModuleType type = identifier.getModuleType(unit);
+      switch(type)
       {
-         if(!(bean instanceof JBossEntityBeanMetaData))
-            return true;
+         case APP_CLIENT:
+            return ModuleType.APP_CLIENT;
+         case EJB:
+            return ModuleType.EJB;
+         case WEB:
+            return ModuleType.WEB;
+         default:
+            return ModuleType.JAVA;
       }
-      return false;
    }
 }

Modified: trunk/server/pom.xml
===================================================================
--- trunk/server/pom.xml	2010-01-12 08:31:04 UTC (rev 99277)
+++ trunk/server/pom.xml	2010-01-12 09:25:34 UTC (rev 99278)
@@ -301,6 +301,11 @@
     </dependency>
     
     <dependency>
+      <groupId>org.jboss.reloaded</groupId>
+      <artifactId>jboss-reloaded-naming-deployers</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>org.jboss.security</groupId>
       <artifactId>jbosssx</artifactId>
     </dependency>

Modified: trunk/server/src/etc/deployers/core-naming-jboss-beans.xml
===================================================================
--- trunk/server/src/etc/deployers/core-naming-jboss-beans.xml	2010-01-12 08:31:04 UTC (rev 99277)
+++ trunk/server/src/etc/deployers/core-naming-jboss-beans.xml	2010-01-12 09:25:34 UTC (rev 99278)
@@ -13,5 +13,22 @@
     </bean>
 
     <bean name="NameSpaces" class="org.jboss.reloaded.naming.service.NameSpaces"/>
-    
+
+    <bean name="JavaEEModuleIdentifier" class="org.jboss.as.javaee.SimpleJavaEEModuleIdentifier"/>
+
+    <bean name="NamingJavaEEApplicationInformer" class="org.jboss.as.naming.javaee.NamingJavaEEApplicationInformer"/>
+    <bean name="NamingJavaEEModuleInformer" class="org.jboss.as.naming.javaee.NamingJavaEEModuleInformer">
+        <property name="javaEEModuleIdentifier"><inject bean="JavaEEModuleIdentifier"/></property>
+    </bean>
+    <bean name="NamingJavaEEComponentInformer" class="org.jboss.as.naming.javaee.NamingJavaEEComponentInformer"/>
+
+    <bean name="AppNamingDeployer" class="org.jboss.reloaded.naming.deployers.AppNamingDeployer">
+        <constructor><parameter><inject bean="NamingJavaEEApplicationInformer"/></parameter></constructor>
+    </bean>
+    <bean name="ModuleNamingDeployer" class="org.jboss.reloaded.naming.deployers.ModuleNamingDeployer">
+        <constructor><parameter><inject bean="NamingJavaEEModuleInformer"/></parameter></constructor>
+    </bean>
+    <bean name="ComponentNamingDeployer" class="org.jboss.reloaded.naming.deployers.ComponentNamingDeployer">
+        <constructor><parameter><inject bean="NamingJavaEEComponentInformer"/></parameter></constructor>
+    </bean>
 </deployment>

Copied: trunk/server/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleIdentifier.java (from rev 99147, trunk/ejb3/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleInformer.java)
===================================================================
--- trunk/server/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleIdentifier.java	                        (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleIdentifier.java	2010-01-12 09:25:34 UTC (rev 99278)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.as.javaee;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.client.jboss.JBossClientMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision$
+ */
+public class SimpleJavaEEModuleIdentifier
+{
+   // TODO: this should really be hooked via an incallback visitor which dynamically identifies the deployment unit. So that this class has no tech dependencies.
+
+   private static final String[] REQUIRED_ATTACHMENTS = { JBossClientMetaData.class.getName(), JBossMetaData.class.getName(), JBossWebMetaData.class.getName() };
+
+   public JavaEEModuleInformer.ModuleType getModuleType(DeploymentUnit unit)
+   {
+      if(unit.isAttachmentPresent(JBossClientMetaData.class))
+         return JavaEEModuleInformer.ModuleType.APP_CLIENT;
+      if(unit.isAttachmentPresent(JBossMetaData.class) && isReallyAnEjbDeployment(unit))
+         return JavaEEModuleInformer.ModuleType.EJB;
+      if(unit.isAttachmentPresent(JBossWebMetaData.class))
+         return JavaEEModuleInformer.ModuleType.WEB;
+      return JavaEEModuleInformer.ModuleType.JAVA;
+   }
+
+   public String[] getRequiredAttachments()
+   {
+      return REQUIRED_ATTACHMENTS;
+   }
+
+   /*
+    * Some hacks to counter problems.
+    */
+   private boolean isReallyAnEjbDeployment(DeploymentUnit unit)
+   {
+      JBossMetaData metaData = unit.getAttachment(JBossMetaData.class);
+      // JBMETA-69
+      if(metaData.getEnterpriseBeans() == null || metaData.getEnterpriseBeans().size() == 0)
+         return false;
+      // JBMETA-70
+      // The chance of a persistence unit being defined with couple of EJB entity beans is
+      // pretty slim.
+      for(JBossEnterpriseBeanMetaData bean : metaData.getEnterpriseBeans())
+      {
+         if(!(bean instanceof JBossEntityBeanMetaData))
+            return true;
+      }
+      return false;
+   }
+}


Property changes on: trunk/server/src/main/java/org/jboss/as/javaee/SimpleJavaEEModuleIdentifier.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEApplicationInformer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEApplicationInformer.java	                        (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEApplicationInformer.java	2010-01-12 09:25:34 UTC (rev 99278)
@@ -0,0 +1,32 @@
+package org.jboss.as.naming.javaee;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.ear.jboss.JBossAppMetaData;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEApplicationInformer;
+
+/**
+ * @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class NamingJavaEEApplicationInformer implements JavaEEApplicationInformer
+{
+   private static final String REQUIRED_ATTACHMENTS[] = { JBossAppMetaData.class.getName() };
+
+   public String getApplicationName(DeploymentUnit deploymentUnit) throws IllegalArgumentException
+   {
+      if(!isJavaEEApplication(deploymentUnit))
+         return null;
+
+      String name = deploymentUnit.getSimpleName();
+      return name.substring(0, name.length() - 4);
+   }
+
+   public boolean isJavaEEApplication(DeploymentUnit deploymentUnit)
+   {
+      return deploymentUnit.isAttachmentPresent(JBossAppMetaData.class);
+   }
+
+   public String[] getRequiredAttachments()
+   {
+      return REQUIRED_ATTACHMENTS;
+   }   
+}


Property changes on: trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEApplicationInformer.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEComponentInformer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEComponentInformer.java	                        (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEComponentInformer.java	2010-01-12 09:25:34 UTC (rev 99278)
@@ -0,0 +1,21 @@
+package org.jboss.as.naming.javaee;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
+
+/**
+ * @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class NamingJavaEEComponentInformer extends NamingJavaEEModuleInformer implements JavaEEComponentInformer
+{
+   public String getComponentName(DeploymentUnit unit)
+   {
+      // FIXME: it's real ugly to analyze the deployment unit at this stage. Better to let the ComponentNamingDeployer be explicitly driven by meta data.
+      return null;
+   }
+
+   public boolean isJavaEEComponent(DeploymentUnit unit)
+   {
+      return false;
+   }
+}


Property changes on: trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEComponentInformer.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEModuleInformer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEModuleInformer.java	                        (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEModuleInformer.java	2010-01-12 09:25:34 UTC (rev 99278)
@@ -0,0 +1,37 @@
+package org.jboss.as.naming.javaee;
+
+import org.jboss.as.javaee.SimpleJavaEEModuleIdentifier;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+
+/**
+ * @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class NamingJavaEEModuleInformer extends NamingJavaEEApplicationInformer implements JavaEEModuleInformer
+{
+   // TODO: for now we delegate to the former JPA SPI informer. This informer should be merged with that one into one integration component
+   private SimpleJavaEEModuleIdentifier identifier;
+
+   public String getApplicationName(DeploymentUnit deploymentUnit)
+   {
+      return super.getApplicationName(deploymentUnit.getTopLevel());
+   }
+
+   public String getModulePath(DeploymentUnit deploymentUnit)
+   {
+      String path = deploymentUnit.getRelativePath();
+      if(path == null || path.length() == 0)
+         path = deploymentUnit.getSimpleName();
+      return path.substring(0, path.length() - 4);
+   }
+
+   public ModuleType getModuleType(DeploymentUnit deploymentUnit)
+   {
+      return identifier.getModuleType(deploymentUnit);
+   }
+
+   public void setJavaEEModuleIdentifier(SimpleJavaEEModuleIdentifier identifier)
+   {
+      this.identifier = identifier;
+   }
+}


Property changes on: trunk/server/src/main/java/org/jboss/as/naming/javaee/NamingJavaEEModuleInformer.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list