You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gd...@apache.org on 2004/11/27 11:13:42 UTC

svn commit: r106703 - /geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java

Author: gdamour
Date: Sat Nov 27 02:13:41 2004
New Revision: 106703

URL: http://svn.apache.org/viewcvs?view=rev&rev=106703
Log:
A configuration can be loaded by the Kernel and not running. In such a case,
it is not possible to retrieve its configurationClassLoader attribute as it
is not a special attribute.

In some specific situations, where the parent Configuration was loaded and not 
running, a DeploymentException was raised as the configurationClassLoader
could not be retrieved.

Note that this was working until now as the attribute previously retrieved
was classLoader, which is a special attribute.

Modified:
   geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java

Modified: geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java
Url: http://svn.apache.org/viewcvs/geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java?view=diff&rev=106703&p1=geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java&r1=106702&p2=geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java&r2=106703
==============================================================================
--- geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java	(original)
+++ geronimo/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java	Sat Nov 27 02:13:41 2004
@@ -51,6 +51,7 @@
 import org.apache.geronimo.gbean.jmx.GBeanMBean;
 import org.apache.geronimo.gbean.GBeanData;
 import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.management.State;
 import org.apache.geronimo.kernel.repository.Repository;
 import org.apache.geronimo.kernel.config.Configuration;
 import org.apache.geronimo.kernel.config.ConfigurationManager;
@@ -115,16 +116,20 @@
                 throw new DeploymentException("Unable to load parents", e);
             }
 
-            for (Iterator i = ancestors.iterator(); i.hasNext();) {
-                ObjectName name = (ObjectName) i.next();
-                try {
-                    // start the config to get the classloaders going,
-                    // by not specfying startRecursive none of the GBeans should start
-                    kernel.startGBean(name);
-                } catch (Exception e) {
-                    throw new DeploymentException(e);
+            try {
+                ObjectName currentConfig = parentName;
+                while ( State.RUNNING != State.fromInteger((Integer) kernel.getAttribute(currentConfig, "state")) ) {
+                    kernel.startGBean(currentConfig);
+                    URI currentParentID = (URI) kernel.getAttribute(currentConfig, "parentID");
+                    if ( null == currentParentID ) {
+                        break;
+                    }
+                    currentConfig = Configuration.getConfigurationObjectName(currentParentID);
                 }
+            } catch (Exception e) {
+                throw new DeploymentException(e);
             }
+                
             try {
                 parentCL = (ClassLoader) kernel.getAttribute(parentName, "configurationClassLoader");
             } catch (Exception e) {