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 2009/03/18 08:07:19 UTC

svn commit: r755494 [2/5] - in /geronimo/sandbox/djencks/framework: ./ buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ configs/client-system/src/main/plan/ configs/geronimo-gbean-deployer/src/it/j2ee-system-2/src/main/...

Added: geronimo/sandbox/djencks/framework/cl-factore.patch.1
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/cl-factore.patch.1?rev=755494&view=auto
==============================================================================
--- geronimo/sandbox/djencks/framework/cl-factore.patch.1 (added)
+++ geronimo/sandbox/djencks/framework/cl-factore.patch.1 Wed Mar 18 07:07:17 2009
@@ -0,0 +1,1937 @@
+Index: plugins/clustering/geronimo-deploy-farm/src/main/java/org/apache/geronimo/farm/deployment/BasicClusterConfigurationController.java
+===================================================================
+--- plugins/clustering/geronimo-deploy-farm/src/main/java/org/apache/geronimo/farm/deployment/BasicClusterConfigurationController.java	(revision 755317)
++++ plugins/clustering/geronimo-deploy-farm/src/main/java/org/apache/geronimo/farm/deployment/BasicClusterConfigurationController.java	(working copy)
+@@ -28,6 +28,7 @@
+ import org.apache.geronimo.gbean.annotation.ParamAttribute;
+ import org.apache.geronimo.gbean.annotation.ParamReference;
+ import org.apache.geronimo.kernel.Kernel;
++import org.apache.geronimo.kernel.GBeanNotFoundException;
+ import org.apache.geronimo.kernel.config.ConfigurationManager;
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+ import org.apache.geronimo.kernel.repository.Artifact;
+@@ -127,7 +128,7 @@
+         }
+     }
+     
+-    protected ConfigurationManager newConfigurationManager(Kernel kernel) {
++    protected ConfigurationManager newConfigurationManager(Kernel kernel) throws GBeanNotFoundException {
+         return ConfigurationUtil.getConfigurationManager(kernel);
+     }
+ 
+Index: plugins/cxf/geronimo-cxf-tools/src/main/java/org/apache/geronimo/cxf/tools/CXFWsdlGenerator.java
+===================================================================
+--- plugins/cxf/geronimo-cxf-tools/src/main/java/org/apache/geronimo/cxf/tools/CXFWsdlGenerator.java	(revision 755317)
++++ plugins/cxf/geronimo-cxf-tools/src/main/java/org/apache/geronimo/cxf/tools/CXFWsdlGenerator.java	(working copy)
+@@ -89,11 +89,7 @@
+                 throw new DeploymentException("Unable to find the service wsdl file");
+             }
+             if (options.getAddToClassPath()) {
+-                try {
+-                    context.getConfiguration().addToClassPath(baseDir.getName());
+-                } catch (IOException e) {
+-                    throw new DeploymentException("Failed to update module classpath");
+-                }
++                context.addToClassPath(baseDir.getName());
+             }
+             return WsdlGeneratorUtils.getRelativeNameOrURL(moduleBase, wsdlFile);
+         } else {
+Index: plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java
+===================================================================
+--- plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java	(revision 755317)
++++ plugins/j2ee/geronimo-web-2.5-builder/src/main/java/org/apache/geronimo/web25/deployment/AbstractWebModuleBuilder.java	(working copy)
+@@ -284,7 +284,7 @@
+             // always add WEB-INF/classes to the classpath regardless of whether
+             // any classes exist.  This must be searched BEFORE the WEB-INF/lib jar files,
+             // per the servlet specifications.
+-            moduleContext.getConfiguration().addToClassPath("WEB-INF/classes/");
++            moduleContext.addToClassPath("WEB-INF/classes/");
+             manifestcp.add("WEB-INF/classes/");
+ 
+             // install the libs
+@@ -351,7 +351,6 @@
+             WebServiceBuilder serviceBuilder = (WebServiceBuilder) aWebServiceBuilder;
+             serviceBuilder.findWebServices(module, false, servletNameToPathMap, module.getEnvironment(), sharedContext);
+         }
+-        serviceBuilders.build(gerWebApp, earContext, module.getEarContext());
+     }
+ 
+     static URI invertURI(URI baseUri) {
+@@ -599,6 +598,7 @@
+     }
+ 
+     protected void configureBasicWebModuleAttributes(WebAppType webApp, XmlObject vendorPlan, EARContext moduleContext, EARContext earContext, WebModule webModule, GBeanData webModuleData) throws DeploymentException {
++        serviceBuilders.build(vendorPlan, earContext, moduleContext);
+         Map<NamingBuilder.Key, Object> buildingContext = new HashMap<NamingBuilder.Key, Object>();
+         buildingContext.put(NamingBuilder.GBEAN_NAME_KEY, moduleContext.getModuleName());
+ 
+Index: plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockWARConfigBuilder.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockWARConfigBuilder.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockWARConfigBuilder.java	(working copy)
+@@ -58,6 +58,9 @@
+         assertNotNull(earFile);
+         assertNotNull(earContext);
+         this.earContext = earContext;
++        webModule.setRootEarContext(earContext);
++        //TODO for more realism, create a child context
++        webModule.setEarContext(earContext);
+ //        assertEquals(this.webModule, webModule);
+ //        if ( null != this.webModule.getAltSpecDD() ) {
+ //            assertEquals(this.webModule.getAltSpecDD(), webModule.getAltSpecDD());
+Index: plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockConnectorConfigBuilder.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockConnectorConfigBuilder.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockConnectorConfigBuilder.java	(working copy)
+@@ -59,6 +59,8 @@
+         assertNotNull(earFile);
+         assertNotNull(earContext);
+         this.earContext = earContext;
++        connectorModule.setEarContext(earContext);
++        connectorModule.setRootEarContext(earContext);
+ //        assertEquals(this.connectorModule, connectorModule);
+ //        if ( null != this.connectorModule.getAltSpecDD() ) {
+ //            assertEquals(this.connectorModule.getAltSpecDD(), connectorModule.getAltSpecDD());
+Index: plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java	(working copy)
+@@ -116,7 +116,7 @@
+     protected final AbstractNameQuery corbaGBeanAbstractNameQuery = new AbstractNameQuery(serverName, null);
+ 
+     private ListableRepository repository;
+-    protected ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, Collections.singleton(repository), null);
++    protected ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, repository);
+     protected Collection<? extends ArtifactResolver> artifactResolvers = Collections.singleton(new DefaultArtifactResolver(artifactManager, repository));
+ 
+     protected void setUp() throws Exception {
+Index: plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockEJBConfigBuilder.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockEJBConfigBuilder.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockEJBConfigBuilder.java	(working copy)
+@@ -55,6 +55,8 @@
+         assertNotNull(earFile);
+         assertNotNull(earContext);
+         this.earContext = earContext;
++        ejbModule.setEarContext(earContext);
++        ejbModule.setRootEarContext(earContext);
+ //        assertEquals(this.ejbModule, ejbModule);
+ //        if ( null != this.ejbModule.getAltSpecDD() ) {
+ //            assertEquals(this.ejbModule.getAltSpecDD(), ejbModule.getAltSpecDD());
+Index: plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/ApplicationInfo.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/ApplicationInfo.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/ApplicationInfo.java	(working copy)
+@@ -31,7 +31,7 @@
+  */
+ public class ApplicationInfo extends Module {
+     private ConfigurationModuleType type;
+-    private LinkedHashSet modules;
++    private LinkedHashSet<Module> modules;
+     private ModuleList moduleLocations;
+ 
+ 
+@@ -51,11 +51,11 @@
+         return type;
+     }
+ 
+-    public LinkedHashSet getModules() {
++    public LinkedHashSet<Module> getModules() {
+         return modules;
+     }
+ 
+-    public void setModules(LinkedHashSet modules) {
++    public void setModules(LinkedHashSet<Module> modules) {
+         this.modules = modules;
+     }
+ 
+Index: plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/ConnectorModule.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/ConnectorModule.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/ConnectorModule.java	(working copy)
+@@ -40,8 +40,8 @@
+         return ConfigurationModuleType.RAR;
+     }
+ 
+-    public void addClass(URI location, String fqcn, byte[] bytes, DeploymentContext context) throws IOException, URISyntaxException {
+-        context.addClass(location, fqcn, bytes);
+-    }
++//    public void addClass(URI location, String fqcn, byte[] bytes, DeploymentContext context) throws IOException, URISyntaxException {
++//        context.addClass(location, fqcn, bytes);
++//    }
+ }
+ 
+Index: plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java	(working copy)
+@@ -70,6 +70,7 @@
+ import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
+ import org.apache.geronimo.kernel.Kernel;
+ import org.apache.geronimo.kernel.Naming;
++import org.apache.geronimo.kernel.GBeanNotFoundException;
+ import org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException;
+ import org.apache.geronimo.kernel.config.ConfigurationData;
+ import org.apache.geronimo.kernel.config.ConfigurationManager;
+@@ -160,7 +161,7 @@
+                             Collection<NamespaceDrivenBuilder> serviceBuilders,
+                             Collection<ModuleBuilderExtension> persistenceUnitBuilders,
+                             Collection<? extends ArtifactResolver> artifactResolvers,
+-                            Kernel kernel) {
++                            Kernel kernel) throws GBeanNotFoundException {
+         this(defaultEnvironment,
+                 transactionManagerAbstractName,
+                 connectionTrackerAbstractName,
+@@ -569,24 +570,27 @@
+             GerApplicationType geronimoApplication = (GerApplicationType) applicationInfo.getVendorDD();
+ 
+             // each module installs it's files into the output context.. this is different for each module type
+-            LinkedHashSet modules = applicationInfo.getModules();
+-            for (Object module2 : modules) {
+-                Module module = (Module) module2;
++            for (Module module : applicationInfo.getModules()) {
+                 getBuilder(module).installModule(earFile, earContext, module, configurationStores, targetConfigurationStore, repositories);
+             }
+ 
+             earContext.flush();
++            earContext.initializeConfiguration();
++            for (Module module : applicationInfo.getModules()) {
++                if (earContext != module.getEarContext()) {
++                    module.getEarContext().initializeConfiguration();
++                }
++            }
+ 
+             // give each module a chance to populate the earContext now that a classloader is available
+             ClassLoader cl = earContext.getClassLoader();
+-            for (Object module3 : modules) {
+-                Module module = (Module) module3;
++            for (Module module : applicationInfo.getModules()) {
+                 if (createPlanMode.get()) {
+                     try {
+                         getBuilder(module).initContext(earContext, module, cl);
+                     } catch (Exception e) {
+                         // ignore any exceptions to continue processing with the rest of the modules;
+-                        System.out.println("Exception during initContext() phase");
++                        log.info("Ignored error during init context phase: module: " + module.getName(), e);
+                     }
+                 } else {
+                     getBuilder(module).initContext(earContext, module, cl);
+@@ -639,14 +643,13 @@
+             }
+ 
+             // each module can now add it's GBeans
+-            for (Object module1 : modules) {
+-                Module module = (Module) module1;
++            for (Module module : applicationInfo.getModules()) {
+                 if (createPlanMode.get()) {
+                     try {
+                         getBuilder(module).addGBeans(earContext, module, cl, repositories);
+                     } catch (DeploymentException e) {
+                         // ignore any exceptions to continue processing with the rest of the modules;
+-                        System.out.println("Exception during addGBeans() phase");
++                        log.info("Ignored error during addGBeans phase: module: " + module.getName(), e);
+                     }
+                 } else {
+                     getBuilder(module).addGBeans(earContext, module, cl, repositories);
+Index: plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EJBModule.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EJBModule.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EJBModule.java	(working copy)
+@@ -42,9 +42,9 @@
+         return ConfigurationModuleType.EJB;
+     }
+ 
+-    public void addClass(URI location, String fqcn, byte[] bytes, DeploymentContext context) throws IOException, URISyntaxException {
+-        context.addClass(location, fqcn, bytes);
+-    }
++//    public void addClass(URI location, String fqcn, byte[] bytes, DeploymentContext context) throws IOException, URISyntaxException {
++//        context.addClass(location, fqcn, bytes);
++//    }
+ 
+     public AbstractName getModuleCmpEngineName() {
+         return moduleCmpEngineName;
+Index: plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/AppClientModule.java
+===================================================================
+--- plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/AppClientModule.java	(revision 755317)
++++ plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/AppClientModule.java	(working copy)
+@@ -74,9 +74,9 @@
+         return mainClassName;
+     }
+ 
+-    public void addClass(URI location, String fqcn, byte[] bytes, DeploymentContext context) throws IOException, URISyntaxException {
+-        context.addClass(location, fqcn, bytes);
+-    }
++//    public void addClass(URI location, String fqcn, byte[] bytes, DeploymentContext context) throws IOException, URISyntaxException {
++//        context.addClass(location, fqcn, bytes);
++//    }
+ 
+     public Collection<ConnectorModule> getResourceModules() {
+         return resourceModules;
+Index: plugins/j2ee/geronimo-test-ddbean/src/main/java/org/apache/geronimo/deployment/tools/loader/WebDeployable.java
+===================================================================
+--- plugins/j2ee/geronimo-test-ddbean/src/main/java/org/apache/geronimo/deployment/tools/loader/WebDeployable.java	(revision 755317)
++++ plugins/j2ee/geronimo-test-ddbean/src/main/java/org/apache/geronimo/deployment/tools/loader/WebDeployable.java	(working copy)
+@@ -39,10 +39,10 @@
+         this(moduleURL, null);
+     }
+     
+-    public WebDeployable(URL moduleURL, List parentClassLoaders) throws DDBeanCreateException {
++    public WebDeployable(URL moduleURL, List<ClassLoader> parentClassLoaders) throws DDBeanCreateException {
+         super(ModuleType.WAR, moduleURL, "WEB-INF/web.xml");
+         ClassLoader parent = super.getModuleLoader();
+-        List path = new ArrayList();
++        List<URL> path = new ArrayList<URL>();
+         URL url = parent.getResource("WEB-INF/classes/");
+         if (url != null) {
+             path.add(url);
+@@ -57,11 +57,10 @@
+                 }
+             }
+         }
+-        URL[] urls = (URL[]) path.toArray(new URL[path.size()]);
++        URL[] urls = path.toArray(new URL[path.size()]);
+         if (parentClassLoaders != null) {
+             parentClassLoaders.add(parent);
+-            ClassLoader[] parents = (ClassLoader[]) parentClassLoaders.toArray(new ClassLoader[parentClassLoaders.size()]);
+-            webLoader = new MultiParentClassLoader(null, urls, parents);
++            webLoader = new MultiParentClassLoader(null, urls, parentClassLoaders);
+         } else {
+             webLoader = new URLClassLoader(urls, parent);
+         }
+Index: plugins/j2ee/geronimo-security-builder/src/test/java/org/apache/geronimo/security/deployment/LoginConfigBuilderTest.java
+===================================================================
+--- plugins/j2ee/geronimo-security-builder/src/test/java/org/apache/geronimo/security/deployment/LoginConfigBuilderTest.java	(revision 755317)
++++ plugins/j2ee/geronimo-security-builder/src/test/java/org/apache/geronimo/security/deployment/LoginConfigBuilderTest.java	(working copy)
+@@ -34,6 +34,7 @@
+ import org.apache.geronimo.kernel.mock.MockConfigurationManager;
+ import org.apache.geronimo.kernel.repository.Artifact;
+ import org.apache.geronimo.kernel.repository.Environment;
++import org.apache.geronimo.kernel.repository.Repository;
+ import org.apache.xmlbeans.XmlCursor;
+ import org.apache.xmlbeans.XmlException;
+ import org.apache.xmlbeans.XmlObject;
+@@ -117,7 +118,8 @@
+         XmlCursor cursor = xmlObject.newCursor();
+         cursor.toFirstContentToken();
+         xmlObject = cursor.getObject();
+-        DeploymentContext context = new DeploymentContext(new File("."), null, new Environment(Artifact.create("test/foo/1.0/car")), null, ConfigurationModuleType.SERVICE, new Jsr77Naming(), new MockConfigurationManager(), Collections.emptySet());
++        DeploymentContext context = new DeploymentContext(new File("."), null, new Environment(Artifact.create("test/foo/1.0/car")), null, ConfigurationModuleType.SERVICE, new Jsr77Naming(), new MockConfigurationManager(), Collections.<Repository>emptySet());
++        context.initializeConfiguration();
+         AbstractName parentName = new AbstractName(URI.create("test/foo/1.0/car?name=parent,j2eeType=foo"));
+         builder.getReferences(xmlObject, context, parentName, getClass().getClassLoader());
+         secBuilder.doStop();
+Index: plugins/axis2/geronimo-axis2/src/test/java/org/apache/geronimo/axis2/Axis2WebServiceContainerTest.java
+===================================================================
+--- plugins/axis2/geronimo-axis2/src/test/java/org/apache/geronimo/axis2/Axis2WebServiceContainerTest.java	(revision 755317)
++++ plugins/axis2/geronimo-axis2/src/test/java/org/apache/geronimo/axis2/Axis2WebServiceContainerTest.java	(working copy)
+@@ -55,7 +55,8 @@
+     }
+     
+     public void testGetWSDL() throws Exception {
+-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
++//        ClassLoader cl = Thread.currentThread().getContextClassLoader();
++        ClassLoader cl = getClass().getClassLoader();
+ 
+         PortInfo portInfo = new PortInfo();
+         portInfo.setLocation("/axis2/HelloWorld");
+Index: plugins/axis2/geronimo-axis2/pom.xml
+===================================================================
+--- plugins/axis2/geronimo-axis2/pom.xml	(revision 755317)
++++ plugins/axis2/geronimo-axis2/pom.xml	(working copy)
+@@ -79,8 +79,17 @@
+             <groupId>org.apache.axis2</groupId>
+             <artifactId>axis2-metadata</artifactId>
+         </dependency>
+-        
++
+         <dependency>
++            <groupId>org.apache.axis2</groupId>
++            <artifactId>axis2-transport-tcp</artifactId>
++        </dependency>
++        <dependency>
++            <groupId>org.apache.axis2</groupId>
++            <artifactId>axis2-transport-local</artifactId>
++        </dependency>
++
++        <dependency>
+             <groupId>org.apache.ws.commons.axiom</groupId>
+             <artifactId>axiom-api</artifactId>
+         </dependency>
+Index: plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/AbstractWebModuleTest.java
+===================================================================
+--- plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/AbstractWebModuleTest.java	(revision 755317)
++++ plugins/tomcat/geronimo-tomcat6/src/test/java/org/apache/geronimo/tomcat/AbstractWebModuleTest.java	(working copy)
+@@ -75,6 +75,7 @@
+         TomcatWebAppContext app = new TomcatWebAppContext(cl,
+                 null,
+                 null,
++                null,
+                 new URL(configurationBaseURL, relativeWebAppRoot.getPath()),
+                 securityHolder,
+                 null,
+Index: plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatManagerImpl.java
+===================================================================
+--- plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatManagerImpl.java	(revision 755317)
++++ plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatManagerImpl.java	(working copy)
+@@ -41,6 +41,7 @@
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+ import org.apache.geronimo.kernel.config.EditableConfigurationManager;
+ import org.apache.geronimo.kernel.config.InvalidConfigException;
++import org.apache.geronimo.kernel.config.ConfigurationManager;
+ import org.apache.geronimo.kernel.proxy.ProxyManager;
+ import org.apache.geronimo.management.geronimo.NetworkConnector;
+ import org.apache.geronimo.management.geronimo.WebAccessLog;
+@@ -226,10 +227,10 @@
+             if (!found) {
+                 throw new GBeanNotFoundException(connectorName);
+             }
+-            EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+-            if(mgr != null) {
++            ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++            if (mgr instanceof EditableConfigurationManager) {
+                 try {
+-                    mgr.removeGBeanFromConfiguration(connectorName.getArtifact(), connectorName);
++                    ((EditableConfigurationManager) mgr).removeGBeanFromConfiguration(connectorName.getArtifact(), connectorName);
+                 } catch (InvalidConfigException e) {
+                     log.error("Unable to add GBean", e);
+                 } finally {
+@@ -305,19 +306,22 @@
+         AbstractName serverInfo = (AbstractName)set.iterator().next();
+         gbeanData.setReferencePattern("ServerInfo", serverInfo);
+ 
+-        EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+-        if (mgr != null) {
+-            try {
+-                mgr.addGBeanToConfiguration(containerName.getArtifact(), gbeanData, false);
+-            } catch (InvalidConfigException e) {
+-                log.error("Unable to add GBean", e);
++        try {
++            ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++            if (mgr instanceof EditableConfigurationManager) {
++                ((EditableConfigurationManager) mgr).addGBeanToConfiguration(containerName.getArtifact(), gbeanData, false);
++            } else {
++                log.warn("The ConfigurationManager in the kernel does not allow editing");
+                 return null;
+-            } finally {
+-                ConfigurationUtil.releaseConfigurationManager(kernel, mgr);
+             }
+-        } else {
+-            log.warn("The ConfigurationManager in the kernel does not allow editing");
++        } catch (InvalidConfigException e) {
++            log.error("Unable to add GBean", e);
+             return null;
++        } catch (GBeanNotFoundException e) {
++            log.warn("No ConfigurationManager found");
++            return null;
++        } finally {
++//                ConfigurationUtil.releaseConfigurationManager(kernel, mgr);
+         }
+         return name;
+     }
+Index: plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
+===================================================================
+--- plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java	(revision 755317)
++++ plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java	(working copy)
+@@ -55,6 +55,10 @@
+ import org.apache.geronimo.j2ee.management.impl.InvalidObjectNameException;
+ import org.apache.geronimo.kernel.Kernel;
+ import org.apache.geronimo.kernel.ObjectNameUtil;
++import org.apache.geronimo.kernel.repository.Artifact;
++import org.apache.geronimo.kernel.config.ConfigurationManager;
++import org.apache.geronimo.kernel.config.ConfigurationUtil;
++import org.apache.geronimo.kernel.config.ConfigurationStore;
+ import org.apache.geronimo.management.J2EEApplication;
+ import org.apache.geronimo.management.J2EEServer;
+ import org.apache.geronimo.management.StatisticsProvider;
+@@ -106,7 +110,7 @@
+     private final Map webServices;
+     private final String objectName;
+     private final String originalSpecDD;
+-    private final URL configurationBaseURL;
++//    private final URL configurationBaseURL;
+     private final Holder holder;
+     private final RuntimeCustomizer contextCustomizer;
+ 
+@@ -123,6 +127,7 @@
+     public TomcatWebAppContext(
+             ClassLoader classLoader,
+             String objectName,
++            AbstractName abstractName,
+             String originalSpecDD,
+             URL configurationBaseUrl,
+             SecurityHolder securityHolder,
+@@ -193,7 +198,7 @@
+         }
+ 
+ 
+-        this.configurationBaseURL = configurationBaseUrl;
++//        this.configurationBaseURL = configurationBaseUrl;
+ 
+         this.holder = holder == null? new Holder(): holder;
+         this.contextCustomizer = contextCustomizer;
+@@ -311,7 +316,7 @@
+     }
+ 
+     public URL getWARDirectory() {
+-        return configurationBaseURL;
++        return null;//configurationBaseURL;
+     }
+ 
+     public String getWARName() {
+@@ -555,6 +560,7 @@
+ 
+         infoBuilder.addAttribute("classLoader", ClassLoader.class, false);
+         infoBuilder.addAttribute("objectName", String.class, false);
++        infoBuilder.addAttribute("abstractName", AbstractName.class, false);
+         infoBuilder.addAttribute("deploymentDescriptor", String.class, true);
+         infoBuilder.addAttribute("configurationBaseUrl", URL.class, true);
+ 
+@@ -591,6 +597,7 @@
+         infoBuilder.setConstructor(new String[] {
+                 "classLoader",
+                 "objectName",
++                "abstractName",
+                 "deploymentDescriptor",
+                 "configurationBaseUrl",
+                 "securityHolder",
+Index: plugins/tomcat/geronimo-tomcat6-builder/src/test/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java
+===================================================================
+--- plugins/tomcat/geronimo-tomcat6-builder/src/test/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java	(revision 755317)
++++ plugins/tomcat/geronimo-tomcat6-builder/src/test/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java	(working copy)
+@@ -56,6 +56,7 @@
+ import org.apache.geronimo.kernel.config.ConfigurationStore;
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+ import org.apache.geronimo.kernel.config.EditableKernelConfigurationManager;
++import org.apache.geronimo.kernel.config.KernelConfigurationManager;
+ import org.apache.geronimo.kernel.management.State;
+ import org.apache.geronimo.kernel.mock.MockConfigStore;
+ import org.apache.geronimo.kernel.repository.Artifact;
+@@ -66,6 +67,7 @@
+ import org.apache.geronimo.kernel.repository.Environment;
+ import org.apache.geronimo.kernel.repository.ImportType;
+ import org.apache.geronimo.kernel.repository.Repository;
++import org.apache.geronimo.kernel.repository.ListableRepository;
+ import org.apache.geronimo.security.SecurityNames;
+ import org.apache.geronimo.security.SecurityServiceImpl;
+ import org.apache.geronimo.security.credentialstore.DirectConfigurationCredentialStoreImpl;
+@@ -146,10 +148,11 @@
+         recursiveCopy(path, dest);
+         UnpackedJarFile jarFile = new UnpackedJarFile(path);
+         Module module = builder.createModule(null, jarFile, kernel.getNaming(), new ModuleIDBuilder());
+-        Repository repository = null;
++        ListableRepository repository = null;
+ 
+         AbstractName moduleName = module.getModuleName();
+         EARContext earContext = createEARContext(outputPath, defaultEnvironment, repository, configStore, moduleName);
++        earContext.initializeConfiguration();
+         AbstractName jaccBeanName = kernel.getNaming().createChildName(moduleName, "foo", SecurityNames.JACC_MANAGER);
+         GBeanData jaccBeanData = new GBeanData(jaccBeanName, ApplicationPolicyConfigurationManager.GBEAN_INFO);
+         PermissionCollection excludedPermissions = new Permissions();
+@@ -173,6 +176,7 @@
+         Artifact configurationId = configurationData.getId();
+         configurationManager.loadConfiguration(configurationData);
+         Configuration configuration = configurationManager.getConfiguration(configurationId);
++        ((MockConfigStore)configStore).installFake(configurationId, outputPath);
+         configurationManager.startConfiguration(configurationId);
+ 
+         return new WebModuleInfo(moduleName, configuration);
+@@ -183,10 +187,9 @@
+         configurationManager.unloadConfiguration(configuration.getId());
+     }
+ 
+-    private EARContext createEARContext(File outputPath, Environment environment, Repository repository, ConfigurationStore configStore, AbstractName moduleName) throws DeploymentException {
++    private EARContext createEARContext(File outputPath, Environment environment, ListableRepository repository, ConfigurationStore configStore, AbstractName moduleName) throws DeploymentException {
+         Set repositories = repository == null ? Collections.EMPTY_SET : Collections.singleton(repository);
+         ArtifactManager artifactManager = new DefaultArtifactManager();
+-        ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, repositories, null);
+         return new EARContext(outputPath,
+                 null,
+                 environment,
+@@ -244,10 +247,10 @@
+ 
+         GBeanData artifactManagerData = bootstrap.addGBean("ArtifactManager", DefaultArtifactManager.GBEAN_INFO);
+ 
+-        GBeanData artifactResolverData = bootstrap.addGBean("ArtifactResolver", DefaultArtifactResolver.GBEAN_INFO);
++        GBeanData artifactResolverData = bootstrap.addGBean("ArtifactResolver", DefaultArtifactResolver.class);
+         artifactResolverData.setReferencePattern("ArtifactManager", artifactManagerData.getAbstractName());
+ 
+-        GBeanData configurationManagerData = bootstrap.addGBean("ConfigurationManager", EditableKernelConfigurationManager.GBEAN_INFO);
++        GBeanData configurationManagerData = bootstrap.addGBean("ConfigurationManager", KernelConfigurationManager.class);
+         configurationManagerData.setReferencePattern("ArtifactManager", artifactManagerData.getAbstractName());
+         configurationManagerData.setReferencePattern("ArtifactResolver", artifactResolverData.getAbstractName());
+         configurationManagerData.setReferencePattern("Stores", configStoreName);
+@@ -324,7 +327,7 @@
+ 
+         ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
+ 
+-        configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
++        configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
+         configStore = (ConfigurationStore) kernel.getGBean(configStoreName);
+         configStore.install(bootstrap);
+ 
+Index: plugins/tomcat/geronimo-tomcat6-builder/src/test/resources/deployables/war-spaces-in-context/WEB-INF/geronimo-web.xml
+===================================================================
+--- plugins/tomcat/geronimo-tomcat6-builder/src/test/resources/deployables/war-spaces-in-context/WEB-INF/geronimo-web.xml	(revision 755317)
++++ plugins/tomcat/geronimo-tomcat6-builder/src/test/resources/deployables/war-spaces-in-context/WEB-INF/geronimo-web.xml	(working copy)
+@@ -24,8 +24,10 @@
+ 	>
+ 	<environment>
+ 		<moduleId>
+-			<groupId>contextRootTest</groupId>
+-			<artifactId>spacesInContext</artifactId>
++			<groupId>foo</groupId>
++			<artifactId>bar</artifactId>
++            <version>1</version>
++            <type>car</type>
+ 		</moduleId>
+ 	</environment>
+ 	
+Index: plugins/welcome/geronimo-welcome/src/main/java/org/apache/geronimo/welcome/AbsentSampleServlet.java
+===================================================================
+--- plugins/welcome/geronimo-welcome/src/main/java/org/apache/geronimo/welcome/AbsentSampleServlet.java	(revision 755317)
++++ plugins/welcome/geronimo-welcome/src/main/java/org/apache/geronimo/welcome/AbsentSampleServlet.java	(working copy)
+@@ -89,22 +89,24 @@
+         if (results.isFailed()) {
+             throw new ServletException("Unable to install sample application", results.getFailure());
+         }
+-        ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
+-        for (Artifact artifact: results.getInstalledConfigIDs()) {
+-            if (mgr.isConfiguration(artifact)) {
+-                try {
++        try {
++            ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++            for (Artifact artifact : results.getInstalledConfigIDs()) {
++                if (mgr.isConfiguration(artifact)) {
+                     if (!mgr.isLoaded(artifact)) {
+                         mgr.loadConfiguration(artifact);
+                     }
+                     if (!mgr.isRunning(artifact)) {
+                         mgr.startConfiguration(artifact);
+                     }
+-                } catch (NoSuchConfigException e) {
+-                    throw new ServletException("Unable to start sample application", e);
+-                } catch (LifecycleException e) {
+-                    throw new ServletException("Unable to start sample application", e);
+                 }
+             }
++        } catch (NoSuchConfigException e) {
++            throw new ServletException("Unable to start sample application", e);
++        } catch (LifecycleException e) {
++            throw new ServletException("Unable to start sample application", e);
++        } catch (GBeanNotFoundException e) {
++            throw new ServletException("Unable to start sample application", e);
+         }
+         response.sendRedirect(request.getContextPath() + request.getServletPath() + "/");
+     }
+Index: plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java
+===================================================================
+--- plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java	(revision 755317)
++++ plugins/jetty/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/AbstractWebModuleTest.java	(working copy)
+@@ -100,6 +100,7 @@
+ 
+         JettyWebAppContext app = new JettyWebAppContext(null,
+                 null,
++                null,
+                 Collections.<String, Object>emptyMap(),
+                 cl,
+                 new URL(configurationBaseURL, uriString),
+Index: plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebAppContext.java
+===================================================================
+--- plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebAppContext.java	(revision 755317)
++++ plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyWebAppContext.java	(working copy)
+@@ -40,6 +40,7 @@
+ import org.apache.geronimo.gbean.GBeanInfo;
+ import org.apache.geronimo.gbean.GBeanInfoBuilder;
+ import org.apache.geronimo.gbean.GBeanLifecycle;
++import org.apache.geronimo.gbean.AbstractName;
+ import org.apache.geronimo.j2ee.RuntimeCustomizer;
+ import org.apache.geronimo.j2ee.annotation.Holder;
+ import org.apache.geronimo.j2ee.annotation.LifecycleMethod;
+@@ -55,6 +56,10 @@
+ import org.apache.geronimo.jetty6.handler.UserTransactionHandler;
+ import org.apache.geronimo.kernel.Kernel;
+ import org.apache.geronimo.kernel.ObjectNameUtil;
++import org.apache.geronimo.kernel.repository.Artifact;
++import org.apache.geronimo.kernel.config.ConfigurationManager;
++import org.apache.geronimo.kernel.config.ConfigurationUtil;
++import org.apache.geronimo.kernel.config.ConfigurationStore;
+ import org.apache.geronimo.management.J2EEApplication;
+ import org.apache.geronimo.management.J2EEServer;
+ import org.apache.geronimo.management.geronimo.WebContainer;
+@@ -87,6 +92,7 @@
+     private final ClassLoader webClassLoader;
+     private final JettyContainer jettyContainer;
+ 
++    //TODO wtf?
+     private final String webAppRoot;
+     private final URL configurationBaseURL;
+     private String displayName;
+@@ -101,6 +107,7 @@
+     private final Set<String> servletNames = new HashSet<String>();
+ 
+     public JettyWebAppContext(String objectName,
++                              AbstractName abstractName,
+             String originalSpecDD,
+             Map<String, Object> componentContext,
+             ClassLoader classLoader,
+@@ -583,6 +590,7 @@
+ 
+         infoBuilder.addAttribute("kernel", Kernel.class, false);
+         infoBuilder.addAttribute("objectName", String.class, false);
++        infoBuilder.addAttribute("abstractName", AbstractName.class, false);
+         infoBuilder.addAttribute("application", String.class, false);
+         infoBuilder.addAttribute("javaVMs", String[].class, false);
+         infoBuilder.addAttribute("servlets", String[].class, false);
+@@ -591,6 +599,7 @@
+ 
+         infoBuilder.setConstructor(new String[]{
+                 "objectName",
++                "abstractName",
+                 "deploymentDescriptor",
+                 "componentContext",
+                 "classLoader",
+Index: plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java
+===================================================================
+--- plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java	(revision 755317)
++++ plugins/jetty/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/JettyManagerImpl.java	(working copy)
+@@ -47,6 +47,7 @@
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+ import org.apache.geronimo.kernel.config.EditableConfigurationManager;
+ import org.apache.geronimo.kernel.config.InvalidConfigException;
++import org.apache.geronimo.kernel.config.ConfigurationManager;
+ import org.apache.geronimo.kernel.proxy.ProxyManager;
+ import org.apache.geronimo.management.geronimo.KeystoreManager;
+ import org.apache.geronimo.management.geronimo.NetworkConnector;
+@@ -178,10 +179,10 @@
+             if (!found) {
+                 throw new GBeanNotFoundException(connectorName);
+             }
+-            EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+-            if (mgr != null) {
++            ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++            if (mgr instanceof EditableConfigurationManager) {
+                 try {
+-                    mgr.removeGBeanFromConfiguration(connectorName.getArtifact(), connectorName);
++                    ((EditableConfigurationManager) mgr).removeGBeanFromConfiguration(connectorName.getArtifact(), connectorName);
+                 } catch (InvalidConfigException e) {
+                     log.error("Unable to add GBean", e);
+                 } finally {
+@@ -255,32 +256,35 @@
+                 gbeanData.setAttribute(connectorAttribute.getAttributeName(), connectorAttribute.getValue());
+             }
+         }
+-        
++
+         // provide a reference to KeystoreManager gbean for HTTPS connectors
+         if (connectorType.equals(HTTPS_NIO) || connectorType.equals(HTTPS_BIO)) {
+             AbstractNameQuery query = new AbstractNameQuery(KeystoreManager.class.getName());
+             gbeanData.setReferencePattern("KeystoreManager", query);
+         }
+-        
+-        EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+-        if (mgr != null) {
+-            try {
+-                mgr.addGBeanToConfiguration(containerName.getArtifact(), gbeanData, false);
+-            } catch (InvalidConfigException e) {
+-                log.error("Unable to add GBean", e);
++
++        try {
++            ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++            if (mgr instanceof EditableConfigurationManager) {
++                ((EditableConfigurationManager) mgr).addGBeanToConfiguration(containerName.getArtifact(), gbeanData, false);
++            } else {
++                log.warn("The ConfigurationManager in the kernel does not allow editing");
+                 return null;
+-            } finally {
+-                ConfigurationUtil.releaseConfigurationManager(kernel, mgr);
+             }
+-        } else {
+-            log.warn("The ConfigurationManager in the kernel does not allow editing");
++        } catch (InvalidConfigException e) {
++            log.error("Unable to add GBean", e);
+             return null;
++        } catch (GBeanNotFoundException e) {
++            log.warn("No ConfigurationManager found");
++            return null;
++        } finally {
++//                ConfigurationUtil.releaseConfigurationManager(kernel, mgr);
+         }
+         return name;
+     }
+-    
++
+     public ConnectorType getConnectorType(AbstractName connectorName) {
+-        ConnectorType connectorType = null; 
++        ConnectorType connectorType = null;
+         try {
+             GBeanInfo info = kernel.getGBeanInfo(connectorName);
+             boolean found = false;
+@@ -295,7 +299,7 @@
+                 throw new GBeanNotFoundException(connectorName);
+             }
+             String searchingFor = info.getName();
+-            for (Entry<ConnectorType, GBeanInfo> entry : CONNECTOR_GBEAN_INFOS.entrySet() ) {
++            for (Entry<ConnectorType, GBeanInfo> entry : CONNECTOR_GBEAN_INFOS.entrySet()) {
+                 String candidate = entry.getValue().getName();
+                 if (candidate.equals(searchingFor)) {
+                     return entry.getKey();
+@@ -306,7 +310,7 @@
+         } catch (Exception e) {
+             log.error("Failed to get connector type", e);
+         }
+-            
++
+         return connectorType;
+     }
+ 
+@@ -378,7 +382,7 @@
+             throw (IllegalArgumentException) new IllegalArgumentException("Unable to look up connectors for Jetty container '" + containerName + "'").initCause(e);
+         }
+     }
+-    
++
+     private static void addCommonConnectorAttributes(List<ConnectorAttribute> connectorAttributes) {
+         connectorAttributes.add(new ConnectorAttribute<String>("host", "0.0.0.0", Messages.getString("JettyManagerImpl.30"), String.class, true)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+         connectorAttributes.add(new ConnectorAttribute<Integer>("port", 8080, Messages.getString("JettyManagerImpl.32"), Integer.class, true)); //$NON-NLS-1$ //$NON-NLS-2$
+@@ -391,7 +395,7 @@
+         connectorAttributes.add(new ConnectorAttribute<Integer>("redirectPort", 8443, Messages.getString("JettyManagerImpl.42"), Integer.class)); //$NON-NLS-1$ //$NON-NLS-2$
+         //connectorAttributes.add(new ConnectorAttribute<Integer>("maxIdleTimeMs", 30000, " The time in milliseconds that a connection can be idle before being closed.", Integer.class));
+     }
+-    
++
+     private static void addSslConnectorAttributes(List<ConnectorAttribute> connectorAttributes) {
+         //connectorAttributes.add(new ConnectorAttribute<Boolean>("clientAuthRequested", false, "clientAuthRequested", Boolean.class));
+         connectorAttributes.add(new ConnectorAttribute<Boolean>("clientAuthRequired", false, Messages.getString("JettyManagerImpl.44"), Boolean.class)); //$NON-NLS-1$ //$NON-NLS-2$
+@@ -402,7 +406,7 @@
+         connectorAttributes.add(new ConnectorAttribute<String>("algorithm", "Default", Messages.getString("JettyManagerImpl.56"), String.class)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+     }
+ 
+-    private static <T> void setAttribute (List<ConnectorAttribute> connectorAttributes, String attributeName, T value) {
++    private static <T> void setAttribute(List<ConnectorAttribute> connectorAttributes, String attributeName, T value) {
+         for (ConnectorAttribute connectorAttribute : connectorAttributes) {
+             if (connectorAttribute.getAttributeName().equals(attributeName)) {
+                 connectorAttribute.setValue(value);
+Index: plugins/jetty/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java
+===================================================================
+--- plugins/jetty/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java	(revision 755317)
++++ plugins/jetty/geronimo-jetty6-builder/src/test/java/org/apache/geronimo/jetty6/deployment/JettyModuleBuilderTest.java	(working copy)
+@@ -17,40 +17,28 @@
+ package org.apache.geronimo.jetty6.deployment;
+ 
+ import java.io.File;
+-import java.io.IOException;
+-import java.net.MalformedURLException;
+-import java.net.URL;
++import java.util.ArrayList;
++import java.util.Arrays;
+ import java.util.Collection;
+ import java.util.Collections;
+-import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.Iterator;
+-import java.util.Map;
+ import java.util.Set;
+-import java.util.ArrayList;
+-import java.util.Arrays;
+ 
+-import org.apache.geronimo.testsupport.TestSupport;
+-
+ import org.apache.geronimo.common.DeploymentException;
+ import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinatorGBean;
+ import org.apache.geronimo.deployment.ModuleIDBuilder;
+-import org.apache.geronimo.deployment.NamespaceDrivenBuilder;
+ import org.apache.geronimo.deployment.service.GBeanBuilder;
+-import org.apache.geronimo.deployment.util.DeploymentUtil;
+ import org.apache.geronimo.deployment.util.UnpackedJarFile;
+ import org.apache.geronimo.gbean.AbstractName;
+ import org.apache.geronimo.gbean.AbstractNameQuery;
+ import org.apache.geronimo.gbean.GBeanData;
+-import org.apache.geronimo.gbean.GBeanInfo;
+-import org.apache.geronimo.gbean.GBeanInfoBuilder;
+ import org.apache.geronimo.j2ee.deployment.EARContext;
+ import org.apache.geronimo.j2ee.deployment.Module;
++import org.apache.geronimo.j2ee.deployment.ModuleBuilderExtension;
++import org.apache.geronimo.j2ee.deployment.NamingBuilderCollection;
+ import org.apache.geronimo.j2ee.deployment.UnavailableWebServiceBuilder;
+ import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
+-import org.apache.geronimo.j2ee.deployment.NamingBuilderCollection;
+-import org.apache.geronimo.j2ee.deployment.ModuleBuilderExtension;
+-import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+ import org.apache.geronimo.j2ee.management.impl.J2EEServerImpl;
+ import org.apache.geronimo.jetty6.JettyContainerImpl;
+ import org.apache.geronimo.jetty6.connector.HTTPSocketConnector;
+@@ -58,21 +46,17 @@
+ import org.apache.geronimo.kernel.Kernel;
+ import org.apache.geronimo.kernel.KernelFactory;
+ import org.apache.geronimo.kernel.Naming;
+-import org.apache.geronimo.kernel.mock.MockConfigStore;
+ import org.apache.geronimo.kernel.config.Configuration;
+ import org.apache.geronimo.kernel.config.ConfigurationData;
+ import org.apache.geronimo.kernel.config.ConfigurationManager;
+ import org.apache.geronimo.kernel.config.ConfigurationModuleType;
+ import org.apache.geronimo.kernel.config.ConfigurationStore;
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+-import org.apache.geronimo.kernel.config.EditableKernelConfigurationManager;
+-import org.apache.geronimo.kernel.config.InvalidConfigException;
+-import org.apache.geronimo.kernel.config.NoSuchConfigException;
+-import org.apache.geronimo.kernel.config.NullConfigurationStore;
++import org.apache.geronimo.kernel.config.KernelConfigurationManager;
+ import org.apache.geronimo.kernel.management.State;
++import org.apache.geronimo.kernel.mock.MockConfigStore;
+ import org.apache.geronimo.kernel.repository.Artifact;
+ import org.apache.geronimo.kernel.repository.ArtifactManager;
+-import org.apache.geronimo.kernel.repository.ArtifactResolver;
+ import org.apache.geronimo.kernel.repository.DefaultArtifactManager;
+ import org.apache.geronimo.kernel.repository.DefaultArtifactResolver;
+ import org.apache.geronimo.kernel.repository.Environment;
+@@ -80,6 +64,7 @@
+ import org.apache.geronimo.kernel.repository.Repository;
+ import org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl;
+ import org.apache.geronimo.system.serverinfo.BasicServerInfo;
++import org.apache.geronimo.testsupport.TestSupport;
+ import org.apache.geronimo.transaction.manager.GeronimoTransactionManagerGBean;
+ import org.apache.geronimo.xbeans.geronimo.j2ee.GerSecurityDocument;
+ import org.apache.xmlbeans.impl.schema.SchemaTypeImpl;
+@@ -118,6 +103,7 @@
+         module.setEarContext(earContext);
+         module.setRootEarContext(earContext);
+         builder.initContext(earContext, module, cl);
++        earContext.initializeConfiguration();
+         builder.addGBeans(earContext, module, cl, Collections.EMPTY_SET);
+         ConfigurationData configurationData = earContext.getConfigurationData();
+         earContext.close();
+@@ -126,6 +112,7 @@
+         Artifact configurationId = configurationData.getId();
+         configurationManager.loadConfiguration(configurationData);
+         Configuration configuration = configurationManager.getConfiguration(configurationId);
++        ((MockConfigStore)configStore).installFake(configurationId, outputPath);
+         configurationManager.startConfiguration(configurationId);
+ 
+         assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(moduleName));
+@@ -156,6 +143,7 @@
+         module.setEarContext(earContext);
+         module.setRootEarContext(earContext);
+         builder.initContext(earContext, module, cl);
++        earContext.initializeConfiguration();
+         builder.addGBeans(earContext, module, cl, Collections.EMPTY_SET);
+         ConfigurationData configurationData = earContext.getConfigurationData();
+         earContext.close();
+@@ -164,6 +152,7 @@
+         Artifact configurationId = configurationData.getId();
+         configurationManager.loadConfiguration(configurationData);
+         Configuration configuration = configurationManager.getConfiguration(configurationId);
++        ((MockConfigStore)configStore).installFake(configurationId, outputPath);
+         configurationManager.startConfiguration(configurationId);
+ 
+         String contextRoot = (String) kernel.getAttribute(moduleName, "contextPath");
+@@ -225,10 +214,10 @@
+ 
+         GBeanData artifactManagerData = bootstrap.addGBean("ArtifactManager", DefaultArtifactManager.GBEAN_INFO);
+ 
+-        GBeanData artifactResolverData = bootstrap.addGBean("ArtifactResolver", DefaultArtifactResolver.GBEAN_INFO);
++        GBeanData artifactResolverData = bootstrap.addGBean("ArtifactResolver", DefaultArtifactResolver.class);
+         artifactResolverData.setReferencePattern("ArtifactManager", artifactManagerData.getAbstractName());
+ 
+-        GBeanData configurationManagerData = bootstrap.addGBean("ConfigurationManager", EditableKernelConfigurationManager.GBEAN_INFO);
++        GBeanData configurationManagerData = bootstrap.addGBean("ConfigurationManager", KernelConfigurationManager.class);
+         configurationManagerData.setReferencePattern("ArtifactManager", artifactManagerData.getAbstractName());
+         configurationManagerData.setReferencePattern("ArtifactResolver", artifactResolverData.getAbstractName());
+         configurationManagerData.setReferencePattern("Stores", configStoreName);
+@@ -264,7 +253,7 @@
+ 
+         ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
+ 
+-        configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
++        configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
+         configStore = (ConfigurationStore) kernel.getGBean(configStoreName);
+         configStore.install(bootstrap);
+ 
+Index: plugins/jetty/geronimo-jetty6-builder/src/test/resources/deployables/war-spaces-in-context/WEB-INF/geronimo-web.xml
+===================================================================
+--- plugins/jetty/geronimo-jetty6-builder/src/test/resources/deployables/war-spaces-in-context/WEB-INF/geronimo-web.xml	(revision 755317)
++++ plugins/jetty/geronimo-jetty6-builder/src/test/resources/deployables/war-spaces-in-context/WEB-INF/geronimo-web.xml	(working copy)
+@@ -23,8 +23,10 @@
+ 	>
+ 	<environment>
+ 		<moduleId>
+-			<groupId>contextRootTest</groupId>
+-			<artifactId>spacesInContext</artifactId>
++			<groupId>foo</groupId>
++			<artifactId>bar</artifactId>
++            <version>1</version>
++            <type>car</type>
+ 		</moduleId>
+ 	</environment>
+ 	
+Index: plugins/debugviews/debugviews-portlets/src/main/java/org/apache/geronimo/console/classloaderview/ClassLoaderViewPortlet.java
+===================================================================
+--- plugins/debugviews/debugviews-portlets/src/main/java/org/apache/geronimo/console/classloaderview/ClassLoaderViewPortlet.java	(revision 755317)
++++ plugins/debugviews/debugviews-portlets/src/main/java/org/apache/geronimo/console/classloaderview/ClassLoaderViewPortlet.java	(working copy)
+@@ -153,10 +153,10 @@
+         
+         if (classloader instanceof org.apache.geronimo.kernel.config.MultiParentClassLoader) {
+             org.apache.geronimo.kernel.config.MultiParentClassLoader mpclassloader = (org.apache.geronimo.kernel.config.MultiParentClassLoader) classloader;
+-            ClassLoader[] parents = mpclassloader.getParents();
++            List<ClassLoader> parents = mpclassloader.getParents();
+             if (parents != null)
+-                for (int i = 0; i < parents.length; i++) {
+-                    StringTree parentNode = inverseTree(parents[i],parentNodes);
++                for (ClassLoader parent: parents) {
++                    StringTree parentNode = inverseTree(parent, parentNodes);
+                     node.addChild(parentNode);
+                 }
+         } else if (classloader.getParent() != null) {
+@@ -186,15 +186,12 @@
+ 
+             if (classloader instanceof org.apache.geronimo.kernel.config.MultiParentClassLoader) {
+                 org.apache.geronimo.kernel.config.MultiParentClassLoader mpclassloader = (org.apache.geronimo.kernel.config.MultiParentClassLoader) classloader;
+-                ClassLoader[] parents = mpclassloader.getParents();
+-                if (parents == null)
++                List<ClassLoader> parents = mpclassloader.getParents();
++                if (parents == null || parents.isEmpty()) {
+                     parentNodes.add(node);
+-                else if (parents.length == 0)
+-                    parentNodes.add(node);
+-                else {
+-                    for (int i = 0; i < parents.length; i++) {
+-                        StringTree parentNode = updateTree(parents[i],
+-                                parentNodes);
++                } else {
++                    for (ClassLoader parent: parents) {
++                        StringTree parentNode = updateTree(parent, parentNodes);
+                         parentNode.addChild(node);
+                     }
+                 }
+Index: plugins/debugviews/debugviews-portlets/src/main/java/org/apache/geronimo/console/dependencyview/DependencyViewPortlet.java
+===================================================================
+--- plugins/debugviews/debugviews-portlets/src/main/java/org/apache/geronimo/console/dependencyview/DependencyViewPortlet.java	(revision 755317)
++++ plugins/debugviews/debugviews-portlets/src/main/java/org/apache/geronimo/console/dependencyview/DependencyViewPortlet.java	(working copy)
+@@ -44,8 +44,10 @@
+ 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.config.DependencyNode;
+ import org.apache.geronimo.kernel.repository.Artifact;
+ import org.apache.geronimo.kernel.repository.ListableRepository;
++import org.apache.geronimo.kernel.GBeanNotFoundException;
+ 
+ public class DependencyViewPortlet extends BasePortlet {
+ 
+@@ -106,7 +108,7 @@
+ 
+     private static ArrayList parentNodes = new ArrayList();
+ 
+-    public static String getJSONTrees(RenderRequest renderRequest) {
++    public static String getJSONTrees(RenderRequest renderRequest) throws PortletException {
+         List list = getTrees(renderRequest);
+         if (list == null)
+             return "[]";
+@@ -128,18 +130,13 @@
+             return;
+         StringTree dep = new StringTree("dependencies");
+         curr.addChild(dep);
+-        for (Iterator iterator = conf.getDependencies().iterator(); iterator
+-                .hasNext();) {
+-            dep.addChild(iterator.next().toString());
++        DependencyNode dependencyNode = conf.getDependencyNode();
++        for (Artifact dependency: dependencyNode.getParents()) {
++            dep.addChild(dependency.toString());
+         }
+-        for (Iterator iterator = conf.getServiceParents().iterator(); iterator
+-                .hasNext();) {
+-            Configuration config = (Configuration) iterator.next();
+-            dep.addChild(config.getId().toString());
+-        }
+     }
+ 
+-    public static ArrayList getTrees(RenderRequest request) {
++    public static ArrayList getTrees(RenderRequest request) throws PortletException {
+ 
+         ArrayList arryList = new ArrayList();
+         StringTree treeEAR = new StringTree("Enterprise Applications");
+@@ -163,8 +160,12 @@
+         org.apache.geronimo.kernel.Kernel kernel = org.apache.geronimo.kernel.KernelRegistry
+                 .getSingleKernel();
+ 
+-        ConfigurationManager configManager = ConfigurationUtil
+-                .getConfigurationManager(kernel);
++        ConfigurationManager configManager = null;
++        try {
++            configManager = ConfigurationUtil.getConfigurationManager(kernel);
++        } catch (GBeanNotFoundException e) {
++            throw new PortletException(e);
++        }
+ 
+         List infos = configManager.listConfigurations();
+         for (Iterator infoIterator = infos.iterator(); infoIterator.hasNext();) {
+Index: plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/JMSBrokerPortlet.java
+===================================================================
+--- plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/JMSBrokerPortlet.java	(revision 755317)
++++ plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/JMSBrokerPortlet.java	(working copy)
+@@ -434,9 +434,14 @@
+     }
+ 
+     private void validateBrokerName(AbstractName brokerAbName, ActionRequest actionRequest) throws PortletException {
+-        Configuration brokersConfiguration = PortletManager.getConfigurationManager().getConfiguration(
++        Configuration brokersConfiguration = null;
++        try {
++            brokersConfiguration = PortletManager.getConfigurationManager().getConfiguration(
+                 brokerAbName.getArtifact());
+-        Map<AbstractName, GBeanData> abNameGBeanDataMap = (Map<AbstractName, GBeanData>) brokersConfiguration
++        } catch (GBeanNotFoundException e) {
++            throw new PortletException(e);
++        }
++        Map<AbstractName, GBeanData> abNameGBeanDataMap = brokersConfiguration
+                 .getGBeans();
+         String sNewBrokerName = brokerAbName.getNameProperty("name");
+         for (AbstractName abName : abNameGBeanDataMap.keySet()) {
+Index: plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/BaseJMSPortlet.java
+===================================================================
+--- plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/BaseJMSPortlet.java	(revision 755317)
++++ plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/server/BaseJMSPortlet.java	(working copy)
+@@ -53,11 +53,11 @@
+         //Currently, all the brokers are in the activemq-broker configuration, we will list all the gbeans in it.
+         //But we still could not load those GBeans which are marked with load="false"
+         Artifact activeMQBrokersConfig = PortletManager.getNameFor(renderRequest, manager).getArtifact();
+-        Configuration configuration = PortletManager.getConfigurationManager().getConfiguration(activeMQBrokersConfig);
+-        AbstractNameQuery query = new AbstractNameQuery(ActiveMQBroker.class.getName());
+-        LinkedHashSet<GBeanData> brokerNameSet = configuration.findGBeanDatas(Collections.singleton(query));
+-        Kernel kernel = PortletManager.getKernel();
+         try {
++            Configuration configuration = PortletManager.getConfigurationManager().getConfiguration(activeMQBrokersConfig);
++            AbstractNameQuery query = new AbstractNameQuery(ActiveMQBroker.class.getName());
++            LinkedHashSet<GBeanData> brokerNameSet = configuration.findGBeanDatas(Collections.singleton(query));
++            Kernel kernel = PortletManager.getKernel();
+             for (GBeanData gBeanData : brokerNameSet) {
+                 AbstractName abstractName = gBeanData.getAbstractName();
+                 String brokerName = abstractName.getNameProperty("name");
+Index: plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/AbstractJMSManager.java
+===================================================================
+--- plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/AbstractJMSManager.java	(revision 755317)
++++ plugins/activemq/activemq-portlets/src/main/java/org/apache/geronimo/console/jmsmanager/AbstractJMSManager.java	(working copy)
+@@ -40,10 +40,6 @@
+     protected static final Artifact ACTIVEMQ_ARTIFACT = new Artifact("geronimo", "activemq", org.apache.geronimo.system.serverinfo.ServerConstants.getVersion(), "car");
+     protected static final Kernel kernel = KernelRegistry.getSingleKernel();
+ 
+-    protected static final ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
+-    protected final Configuration BROKER_CONFIGURATION = configurationManager.getConfiguration(ACTIVEMQ_BROKER_ARTIFACT);
+-    protected final Configuration CONNECTOR_CONFIGURATION = configurationManager.getConfiguration(ACTIVEMQ_ARTIFACT);
+-
+     private static final AbstractName earName = kernel.getNaming().createRootName(ACTIVEMQ_ARTIFACT, NameFactory.NULL, NameFactory.J2EE_APPLICATION);
+     protected static final AbstractName RESOURCE_ADAPTER_MODULE_NAME = kernel.getNaming().createChildName(earName, ACTIVEMQ_ARTIFACT.toString(), NameFactory.RESOURCE_ADAPTER_MODULE);
+     protected static final AbstractName RESOURCE_ADAPTER_NAME = kernel.getNaming().createChildName(RESOURCE_ADAPTER_MODULE_NAME, ACTIVEMQ_ARTIFACT.toString(), NameFactory.RESOURCE_ADAPTER);
+@@ -83,6 +79,21 @@
+ 
+     protected static final String BASE_CONFIG_URI = "runtimedestination/";
+ 
++
++    protected final ConfigurationManager configurationManager;
++    protected Configuration BROKER_CONFIGURATION;
++    protected Configuration CONNECTOR_CONFIGURATION;
++
++    protected AbstractJMSManager() {
++        try {
++            configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
++            BROKER_CONFIGURATION = configurationManager.getConfiguration(ACTIVEMQ_BROKER_ARTIFACT);
++            CONNECTOR_CONFIGURATION = configurationManager.getConfiguration(ACTIVEMQ_ARTIFACT);
++        } catch (GBeanNotFoundException e) {
++            throw new RuntimeException(e);
++        }
++    }
++
+     protected GBeanData getResourceAdapterModuleData() throws GBeanNotFoundException {
+         return CONNECTOR_CONFIGURATION.findGBeanData(new AbstractNameQuery(RESOURCE_ADAPTER_MODULE_NAME));
+     }
+Index: plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/management/ActiveMQManagerGBean.java
+===================================================================
+--- plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/management/ActiveMQManagerGBean.java	(revision 755317)
++++ plugins/activemq/geronimo-activemq/src/main/java/org/apache/geronimo/activemq/management/ActiveMQManagerGBean.java	(working copy)
+@@ -38,6 +38,7 @@
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+ import org.apache.geronimo.kernel.config.EditableConfigurationManager;
+ import org.apache.geronimo.kernel.config.InvalidConfigException;
++import org.apache.geronimo.kernel.config.ConfigurationManager;
+ import org.apache.geronimo.management.geronimo.JMSBroker;
+ import org.apache.geronimo.management.geronimo.JMSConnector;
+ import org.apache.geronimo.management.geronimo.NetworkConnector;
+@@ -177,11 +178,11 @@
+     
+     public JMSBroker addBroker(String brokerName, GBeanData brokerGBeanData) throws KernelException,
+             InvalidConfigException {
+-        EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+-        if (mgr != null) {
++        ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++        if (mgr instanceof EditableConfigurationManager) {
+             AbstractName brokerAbstractName = null;
+             try {
+-                mgr.addGBeanToConfiguration(kernel.getAbstractNameFor(this).getArtifact(), brokerGBeanData, false);
++                ((EditableConfigurationManager)mgr).addGBeanToConfiguration(kernel.getAbstractNameFor(this).getArtifact(), brokerGBeanData, false);
+                 brokerAbstractName = brokerGBeanData.getAbstractName();
+                 return (JMSBroker) kernel.getProxyManager().createProxy(brokerAbstractName,
+                         ActiveMQBroker.class.getClassLoader());
+@@ -198,10 +199,10 @@
+     }
+ 
+     public void removeBroker(AbstractName brokerAbstractName) throws KernelException, InvalidConfigException {
+-        EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+-        if (mgr != null) {
++        ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
++        if (mgr instanceof EditableConfigurationManager) {
+             try {
+-                mgr.removeGBeanFromConfiguration(brokerAbstractName.getArtifact(), brokerAbstractName);
++                ((EditableConfigurationManager)mgr).removeGBeanFromConfiguration(brokerAbstractName.getArtifact(), brokerAbstractName);
+             } catch (InvalidConfigException e) {
+                 log.error("Unable to remove ActiveMQ broker [" + brokerAbstractName + "]", e);
+                 throw e;
+Index: plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java
+===================================================================
+--- plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java	(revision 755317)
++++ plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java	(working copy)
+@@ -422,34 +422,36 @@
+ 
+     public void installModule(JarFile earFile, EARContext earContext, Module module, Collection configurationStores, ConfigurationStore targetConfigurationStore, Collection repository) throws DeploymentException {
+         installModule(module, earContext);
+-        EARContext moduleContext;
+-        if (module.isStandAlone()) {
+-            moduleContext = earContext;
+-        } else {
+-            Environment environment = earContext.getConfiguration().getEnvironment();
+-            File configurationDir = new File(earContext.getBaseDir(), module.getTargetPath());
++//        EARContext moduleContext;
++//        if (module.isStandAlone()) {
++//            moduleContext = earContext;
++//        } else {
++//            Environment environment = earContext.getConfiguration().getEnvironment();
++//            File configurationDir = new File(earContext.getBaseDir(), module.getTargetPath());
+ //            configurationDir.mkdirs();
+ 
+             // construct the ejb app deployment context... this is the same class used by the ear context
+-            try {
+-                File inPlaceConfigurationDir = null;
+-                if (null != earContext.getInPlaceConfigurationDir()) {
+-                    inPlaceConfigurationDir = new File(earContext.getInPlaceConfigurationDir(), module.getTargetPath());
+-                }
+-                moduleContext = new EARContext(configurationDir,
+-                        inPlaceConfigurationDir,
+-                        environment,
+-                        ConfigurationModuleType.EJB,
+-                        module.getModuleName(),
+-                        earContext);
+-            } catch (DeploymentException e) {
+-                cleanupConfigurationDir(configurationDir);
+-                throw e;
+-            }
+-        }
+-        module.setEarContext(moduleContext);
++//            try {
++//                File inPlaceConfigurationDir = null;
++//                if (null != earContext.getInPlaceConfigurationDir()) {
++//                    inPlaceConfigurationDir = new File(earContext.getInPlaceConfigurationDir(), module.getTargetPath());
++//                }
++//                moduleContext = new EARContext(configurationDir,
++//                        inPlaceConfigurationDir,
++//                        environment,
++//                        ConfigurationModuleType.EJB,
++//                        module.getModuleName(),
++//                        earContext);
++//            } catch (DeploymentException e) {
++//                cleanupConfigurationDir(configurationDir);
++//                throw e;
++//            }
++//        }
++//        module.setEarContext(moduleContext);
++        module.setEarContext(earContext);
+         module.setRootEarContext(earContext);
+         if (((EjbModule) module).getEjbJar().getAssemblyDescriptor() != null) {
++            //????TODO WTF???
+             namingBuilder.buildEnvironment(null, null, module.getEnvironment());
+         }
+         for (ModuleBuilderExtension builder : moduleBuilderExtensions) {
+@@ -767,7 +769,7 @@
+         // add enc
+         ejbDeploymentBuilder.buildEnc();
+ 
+-        Set<GBeanData> gBeanDatas = earContext.getConfiguration().findGBeanDatas(Collections.singleton(new AbstractNameQuery(PersistenceUnitGBean.class.getName())));
++        Set<GBeanData> gBeanDatas = earContext.findGBeanDatas(Collections.singleton(new AbstractNameQuery(PersistenceUnitGBean.class.getName())));
+         LinkResolver<String> linkResolver = new UniqueDefaultLinkResolver<String>();
+         for (GBeanData gBeanData : gBeanDatas) {
+             String name = (String) gBeanData.getAttribute("persistenceUnitName");
+Index: plugins/openejb/openejb-portlets/src/main/java/org/apache/geronimo/console/ejbserver/EjbHelper.java
+===================================================================
+--- plugins/openejb/openejb-portlets/src/main/java/org/apache/geronimo/console/ejbserver/EjbHelper.java	(revision 755317)
++++ plugins/openejb/openejb-portlets/src/main/java/org/apache/geronimo/console/ejbserver/EjbHelper.java	(working copy)
+@@ -17,13 +17,13 @@
+ package org.apache.geronimo.console.ejbserver;
+ 
+ import java.lang.reflect.Method;
++import java.text.MessageFormat;
+ import java.util.ArrayList;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Properties;
+ import java.util.Set;
+ import java.util.TreeMap;
+-import java.text.MessageFormat;
+ 
+ import javax.servlet.http.HttpServletRequest;
+ 
+@@ -53,7 +53,6 @@
+ import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
+ import org.apache.openejb.loader.SystemInstance;
+ import org.apache.openejb.spi.ContainerSystem;
+-import org.apache.openejb.util.Duration;
+ import org.directwebremoting.annotations.RemoteMethod;
+ import org.directwebremoting.annotations.RemoteProxy;
+ import org.slf4j.Logger;
+@@ -63,7 +62,7 @@
+ public class EjbHelper extends BaseRemoteProxy {
+ 
+     private static final Logger log = LoggerFactory.getLogger(EjbHelper.class);
+-    
++
+     private static final String POOLSIZE = "PoolSize";
+     private static final String BULKPASSIVATE = "BulkPassivate";
+     private static final String CAPACITY = "Capacity";
+@@ -97,7 +96,7 @@
+     private static final String CI_KEY="portlet.openejb.view.containerid";
+     private static final String CD_KEY="portlet.openejb.view.containerdescription";
+     private static final String DN_KEY="portlet.openejb.view.displayname";
+-    
++
+     private ContainerSystem containerSystem;
+     private OpenEjbConfiguration configuration;
+     private Kernel kernel;
+@@ -174,12 +173,12 @@
+         }
+         return deployments;
+     }
+-    
++
+     @RemoteMethod
+     public String getCurrentContainerProperty(String containerId, String propertyKey){
+         ContainerSystemInfo systemInfo = configuration.containerSystem;
+-        List<ContainerInfo> containerInfos = systemInfo.containers;        
+-        
++        List<ContainerInfo> containerInfos = systemInfo.containers;
++
+         for (ContainerInfo containerInfo : containerInfos) {
+         	containerId = replaceEscapes(containerId);
+             if (containerInfo.id.equals(containerId)) {
+@@ -191,7 +190,7 @@
+ 
+     @RemoteMethod
+     public List<EjbInformation> getContainerInfo(String containerId, HttpServletRequest request) {
+-    	containerId = replaceEscapes(containerId); 
++    	containerId = replaceEscapes(containerId);
+         Container container = containerSystem.getContainer(containerId);
+         if (container == null)
+             return null;
+@@ -238,7 +237,7 @@
+                 editableProperties.add(ACCESSTIMEOUT);
+                 editableProperties.add(CAPACITY);
+                 editableProperties.add(STRICTPOOLING);
+-                editableProperties.add(INSTANCELIMIT);                
++                editableProperties.add(INSTANCELIMIT);
+ 
+                 for (Map.Entry entry : containerInfo.properties.entrySet()) {
+                     information = new EjbInformation();
+@@ -282,17 +281,17 @@
+             String propertyValue, HttpServletRequest request) {
+         propertyKey = propertyKey.trim();
+         propertyValue = propertyValue.trim();
+-        
++
+         containerId = replaceEscapes(containerId);
+-        
++
+         List<String> numericProperties = new ArrayList<String>();
+         numericProperties.add(POOLSIZE);
+         numericProperties.add(BULKPASSIVATE);
+         numericProperties.add(TIMEOUT);
+-        numericProperties.add(INSTANCELIMIT); 
++        numericProperties.add(INSTANCELIMIT);
+         numericProperties.add(CAPACITY);
+         numericProperties.add(ACCESSTIMEOUT);
+-        
++
+         if (numericProperties.contains(propertyKey)) {
+             try {
+                 Integer.parseInt(propertyValue);
+@@ -303,7 +302,7 @@
+             if (!propertyValue.equalsIgnoreCase(TRUE)
+                     && !propertyValue.equalsIgnoreCase(FALSE)) {
+                 return new JSCommonMessage(CommonMessage.Type.Error, getLocalizedString(request, BUNDLE_NAME, "portlet.openejb.view.boolean", propertyKey), null);
+-            }        
++            }
+         } else {
+             try {
+                 EjbHelper.class.getClassLoader().loadClass(propertyValue);
+@@ -329,7 +328,12 @@
+                 }
+                 props.put(containerId + "." + propertyKey, propertyValue);
+                 openEjbSystem.setProperties(props);
+-                getGBeanDataFromConfiguration(absName).setAttribute("properties", props);
++                try {
++                    getGBeanDataFromConfiguration(absName).setAttribute("properties", props);
++                } catch (GBeanNotFoundException e) {
++                    return new JSCommonMessage(CommonMessage.Type.Error,
++                            getLocalizedString(request, BUNDLE_NAME, "portlet.openejb.view.errorMessage1", propertyKey), null);
++                }
+ 
+             }
+         } else {
+@@ -343,7 +347,7 @@
+                     if (containerId.equals(id)) {
+                         AbstractName absName = (AbstractName) obj;
+                         GBeanData gData1  = kernel.getGBeanData(absName);
+-                        ManageableAttributeStore attributeStore = kernel.getGBean(ManageableAttributeStore.class);                        
++                        ManageableAttributeStore attributeStore = kernel.getGBean(ManageableAttributeStore.class);
+                         GBeanData gData  = getGBeanDataFromConfiguration(absName);
+                         for(String attributeName : gData.getAttributeNames()){
+                             if(attributeName.equalsIgnoreCase(propertyKey)){
+@@ -370,11 +374,11 @@
+         }
+         return new JSCommonMessage(CommonMessage.Type.Warn, getLocalizedString(request, BUNDLE_NAME, "portlet.openejb.view.restart"), null);
+     }
+-    
+-    private GBeanData getGBeanDataFromConfiguration(AbstractName absName){
++
++    private GBeanData getGBeanDataFromConfiguration(AbstractName absName) throws GBeanNotFoundException {
+         Configuration configuration = ConfigurationUtil.getConfigurationManager(kernel).getConfiguration(absName.getArtifact());
+         GBeanData gData  = configuration.getGBeans().get(absName);
+-        return gData;    	
++        return gData;
+     }
+     @RemoteMethod
+     public List<EjbInformation> getDeploymentInfo(String containerId,
+@@ -384,7 +388,7 @@
+                 .getDeploymentInfo(deploymentId);
+         List<EjbInformation> informations = new ArrayList<EjbInformation>();
+         EjbInformation information = new EjbInformation();
+-        information.setName(getLocalizedString(request, BUNDLE_NAME, BEANCLASSNAME_KEY));        
++        information.setName(getLocalizedString(request, BUNDLE_NAME, BEANCLASSNAME_KEY));
+         information.setValue(deploymentInfo.getBeanClass().getName());
+         informations.add(information);
+ 
+@@ -542,11 +546,11 @@
+         }
+         return data;
+     }
+-    
++
+     private String replaceEscapes(String escaped){
+     	if (escaped.indexOf("%20") != -1) {
+     	    return escaped.replaceAll("%20"," ");
+-    	} 
++    	}
+     	return escaped;
+     }
+ 
+Index: plugins/connector/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/MessageDestinationTest.java
+===================================================================
+--- plugins/connector/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/MessageDestinationTest.java	(revision 755317)
++++ plugins/connector/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/MessageDestinationTest.java	(working copy)
+@@ -77,6 +77,7 @@
+             null);
+         module.setEarContext(earContext);
+         module.setRootEarContext(earContext);
++        earContext.initializeConfiguration();
+         configuration = earContext.getConfiguration();
+         baseName = naming.createRootName(configuration.getId(), "testRoot", NameFactory.RESOURCE_ADAPTER_MODULE);
+     }
+Index: plugins/connector/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java
+===================================================================
+--- plugins/connector/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java	(revision 755317)
++++ plugins/connector/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java	(working copy)
+@@ -54,10 +54,10 @@
+ import org.apache.geronimo.kernel.Naming;
+ import org.apache.geronimo.kernel.config.Configuration;
+ import org.apache.geronimo.kernel.config.ConfigurationData;
++import org.apache.geronimo.kernel.config.ConfigurationManager;
+ import org.apache.geronimo.kernel.config.ConfigurationStore;
+ import org.apache.geronimo.kernel.config.ConfigurationUtil;
+-import org.apache.geronimo.kernel.config.EditableConfigurationManager;
+-import org.apache.geronimo.kernel.config.EditableKernelConfigurationManager;
++import org.apache.geronimo.kernel.config.KernelConfigurationManager;
+ import org.apache.geronimo.kernel.management.State;
+ import org.apache.geronimo.kernel.mock.MockConfigStore;
+ import org.apache.geronimo.kernel.mock.MockRepository;
+@@ -104,7 +104,7 @@
+     };
+ 
+     private Kernel kernel;
+-    private EditableConfigurationManager configurationManager;
++    private ConfigurationManager configurationManager;
+     private static final Naming naming = new Jsr77Naming();
+     private static final Artifact bootId = new Artifact("test", "test", "42", "car");
+ 
+@@ -138,7 +138,7 @@
+             ConfigurationData configData = null;
+             DeploymentContext context = null;
+             ArtifactManager artifactManager = new DefaultArtifactManager();
+-            ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, Collections.singleton(repository), null);
++            ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, repository);
+ 
+             try {
+                 File planFile = new File(BASEDIR, "src/test/resources/data/external-application-plan.xml");
+@@ -344,6 +344,7 @@
+                 );
+ 
+                 action.install(moduleBuilder, earContext, module, configurationStore);
++                earContext.initializeConfiguration();
+                 earContext.getClassLoader();
+                 moduleBuilder.initContext(earContext, module, cl);
+                 moduleBuilder.addGBeans(earContext, module, cl, Collections.singleton(repository));
+@@ -522,10 +523,10 @@
+ 
+         GBeanData artifactManagerData = bootstrap.addGBean("ArtifactManager", DefaultArtifactManager.GBEAN_INFO);
+ 
+-        GBeanData artifactResolverData = bootstrap.addGBean("ArtifactResolver", DefaultArtifactResolver.GBEAN_INFO);
++        GBeanData artifactResolverData = bootstrap.addGBean("ArtifactResolver", DefaultArtifactResolver.class);
+         artifactResolverData.setReferencePattern("ArtifactManager", artifactManagerData.getAbstractName());
+ 
+-        GBeanData configurationManagerData = bootstrap.addGBean("ConfigurationManager", EditableKernelConfigurationManager.GBEAN_INFO);
++        GBeanData configurationManagerData = bootstrap.addGBean("ConfigurationManager", KernelConfigurationManager.GBEAN_INFO);
+         configurationManagerData.setReferencePattern("ArtifactManager", artifactManagerData.getAbstractName());
+         configurationManagerData.setReferencePattern("ArtifactResolver", artifactResolverData.getAbstractName());
+         configurationManagerData.setReferencePattern("Stores", configStoreName);
+@@ -549,7 +550,7 @@
+         repo.add(bootId);
+ 
+ 
+-        configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
++        configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
+ //        configurationManager.getConfiguration(bootstrap.getId());
+         ConfigurationStore configStore = (ConfigurationStore) kernel.getGBean(configStoreName);
+         configStore.install(bootstrap);
+Index: plugins/connector/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java
+===================================================================
+--- plugins/connector/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java	(revision 755317)
++++ plugins/connector/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java	(working copy)
+@@ -384,6 +384,8 @@
+     }
+ 
+     public void installModule(JarFile earFile, EARContext earContext, Module module, Collection configurationStores, ConfigurationStore targetConfigurationStore, Collection repository) throws DeploymentException {
++        module.setRootEarContext(earContext);
++        module.setEarContext(earContext);
+         try {
+             JarFile moduleFile = module.getModuleFile();
+ 
+Index: plugins/openjpa/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/PersistenceUnitGBeanTest.java
+===================================================================
+--- plugins/openjpa/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/PersistenceUnitGBeanTest.java	(revision 755317)
++++ plugins/openjpa/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/PersistenceUnitGBeanTest.java	(working copy)
+@@ -51,7 +51,7 @@
+         assertNotNull(gbean.getManagedClassNames());
+         assertNotNull(gbean.getProperties());
+         assertNotNull(gbean.getJarFileUrls());
+-        assertNotNull(gbean.getPersistenceUnitRootUrl());
++//        assertNotNull(gbean.getPersistenceUnitRootUrl());
+         assertNotNull(gbean.getPersistenceProviderClassName());
+     }
+ }
+Index: plugins/openjpa/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java
+===================================================================
+--- plugins/openjpa/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java	(revision 755317)
++++ plugins/openjpa/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java	(working copy)
+@@ -87,10 +87,11 @@
+             ClassLoader classLoader) throws URISyntaxException, MalformedURLException, ResourceException {
+         List<String> mappingFileNames = mappingFileNamesUntyped == null? NO_STRINGS: new ArrayList<String>(mappingFileNamesUntyped);
+         this.persistenceUnitRoot = persistenceUnitRoot;
+-        URI configurationBaseURI = new File(configurationBaseURL.getFile()).toURI();
+-        URL rootURL = configurationBaseURI.resolve(persistenceUnitRoot).normalize().toURL();
++        URL rootURL = null;
+         List<URL> jarFileUrls = NO_URLS;
+         if (!excludeUnlistedClassesValue) {
++            URI configurationBaseURI = new File(configurationBaseURL.getFile()).toURI();
++            rootURL = configurationBaseURI.resolve(persistenceUnitRoot).normalize().toURL();
+             jarFileUrls = new ArrayList<URL>();
+             //Per the EJB3.0 Persistence Specification section 6.2, the jar-file should be related to the Persistence Unit Root, which is the jar or directory where the persistence.xml is found             
+             URI persistenceUnitBaseURI = configurationBaseURI.resolve(persistenceUnitRoot);
+Index: plugins/jaxws/geronimo-jaxws-sun-tools/src/main/java/org/apache/geronimo/jaxws/builder/WsdlGenerator.java

[... 387 lines stripped ...]