[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