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 ...]