[jboss-cvs] JBossAS SVN: r61533 - in trunk/server/src/main/org/jboss: ejb/deployers and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 21 05:33:39 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-03-21 05:33:39 -0400 (Wed, 21 Mar 2007)
New Revision: 61533

Modified:
   trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
   trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
   trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java
   trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
Log:
JBAS-4205, pull the container and bean dependencies up to the ejb module level

Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java	2007-03-21 09:32:25 UTC (rev 61532)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java	2007-03-21 09:33:39 UTC (rev 61533)
@@ -764,7 +764,7 @@
       }
       else if(localName.equals("depends"))
       {
-         bean.metaData.getDepends().add(ObjectNameFactory.create(value));
+         bean.metaData.addDepends(ObjectNameFactory.create(value));
       }
       // session and entity elements
       else if( localName.equals("call-by-value") )

Modified: trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java	2007-03-21 09:32:25 UTC (rev 61532)
+++ trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java	2007-03-21 09:33:39 UTC (rev 61533)
@@ -23,6 +23,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
@@ -195,6 +196,18 @@
          tms.setIDependOn(timerServiceName);
          dependencies.add(tms);
       }
+      // Add any declared dependencies
+      /* TODO: this is too coarse as bean to bean depends are being pulled up to the module level
+         and an ejb module cannot depend on the beans it creates. The ejb deployer needs to
+         be refactored into a component based deployer.
+      */
+      Set<ObjectName> moduleDepends = deployment.getDependencies();
+      for(ObjectName n : moduleDepends)
+      {
+         ServiceDependencyMetaData sdmd = new ServiceDependencyMetaData();
+         sdmd.setIDependOn(n.toString());
+         dependencies.add(sdmd);         
+      }
       ejbModule.setDependencies(dependencies);
 
       unit.addAttachment(ServiceMetaData.class, ejbModule);

Modified: trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java	2007-03-21 09:32:25 UTC (rev 61532)
+++ trunk/server/src/main/org/jboss/metadata/ApplicationMetaData.java	2007-03-21 09:33:39 UTC (rev 61533)
@@ -27,6 +27,7 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -65,7 +66,7 @@
    protected int ejbVersion;
    protected int ejbMinorVersion;
    /** ArrayList<BeanMetaData> for the ejbs */
-   private ArrayList beans = new ArrayList();
+   private ArrayList<BeanMetaData> beans = new ArrayList<BeanMetaData>();
    /** A HashMap<String, String> for webservice description publish locations */
    private HashMap wsdlPublishLocationMap = new HashMap();
    /** True if this is a web service deployment */
@@ -107,6 +108,20 @@
    {
    }
 
+   /**
+    * Merge the bean dependencies
+    * TODO: ObjectName is too specific a type with the mc
+    * @return the merged bean dependencies
+    */
+   public Set<ObjectName> getDependencies()
+   {
+      HashSet<ObjectName> depends = new HashSet<ObjectName>();
+      for(BeanMetaData bmd : beans)
+      {
+         depends.addAll(bmd.getDepends());
+      }
+      return depends;
+   }
    public String getDescription()
    {
       return description;

Modified: trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/BeanMetaData.java	2007-03-21 09:32:25 UTC (rev 61532)
+++ trunk/server/src/main/org/jboss/metadata/BeanMetaData.java	2007-03-21 09:33:39 UTC (rev 61533)
@@ -25,6 +25,7 @@
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -33,6 +34,8 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.management.ObjectName;
+
 import org.jboss.deployment.DeploymentException;
 import org.jboss.invocation.InvocationType;
 import org.jboss.metadata.serviceref.ServiceRefDelegate;
@@ -615,11 +618,18 @@
       return result;
    }
 
-   public Collection getDepends()
+   public void addDepends(ObjectName name)
    {
-      Collection allDepends = new LinkedList(depends);
+      depends.add(name);
+   }
+   /**
+    * @return Return an immutable copy of the depends set
+    */
+   public Set<ObjectName> getDepends()
+   {
+      HashSet<ObjectName> allDepends = new HashSet(depends);
       allDepends.addAll(getContainerConfiguration().getDepends());
-      return allDepends;
+      return Collections.unmodifiableSet(allDepends);
    }
 
    /**




More information about the jboss-cvs-commits mailing list