Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 77782 invoked from network); 3 May 2006 04:35:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 3 May 2006 04:35:47 -0000 Received: (qmail 28505 invoked by uid 500); 3 May 2006 04:35:46 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 28475 invoked by uid 500); 3 May 2006 04:35:46 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 28464 invoked by uid 99); 3 May 2006 04:35:46 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 May 2006 21:35:46 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 02 May 2006 21:35:44 -0700 Received: (qmail 77680 invoked by uid 65534); 3 May 2006 04:35:24 -0000 Message-ID: <20060503043524.77679.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r399130 - in /geronimo/branches/1.1/modules: axis-builder/src/test/org/apache/geronimo/axis/builder/ connector-builder/src/test/org/apache/geronimo/connector/deployment/ deployment/src/java/org/apache/geronimo/deployment/ deployment/src/tes... Date: Wed, 03 May 2006 04:35:21 -0000 To: scm@geronimo.apache.org From: dain@apache.org X-Mailer: svnmailer-1.0.8 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: dain Date: Tue May 2 21:35:17 2006 New Revision: 399130 URL: http://svn.apache.org/viewcvs?rev=399130&view=rev Log: Fixed GERONIMO-1931 Deployers and the deploying classes are in separate class loader hierarchies Created a new DeploymentConfigurationManager which delegates to the main KernelConfigurationManager for already loaded configurations, but still loads new configurations into a private space for the deployment. Added: geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java Modified: geronimo/branches/1.1/modules/axis-builder/src/test/org/apache/geronimo/axis/builder/ServiceReferenceTest.java geronimo/branches/1.1/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/DeploymentContextTest.java geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARContext.java geronimo/branches/1.1/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/JettyModuleBuilderTest.java geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java geronimo/branches/1.1/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java geronimo/branches/1.1/modules/service-builder/src/test/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java geronimo/branches/1.1/modules/tomcat-builder/src/test/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java Modified: geronimo/branches/1.1/modules/axis-builder/src/test/org/apache/geronimo/axis/builder/ServiceReferenceTest.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/axis-builder/src/test/org/apache/geronimo/axis/builder/ServiceReferenceTest.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/axis-builder/src/test/org/apache/geronimo/axis/builder/ServiceReferenceTest.java (original) +++ geronimo/branches/1.1/modules/axis-builder/src/test/org/apache/geronimo/axis/builder/ServiceReferenceTest.java Tue May 2 21:35:17 2006 @@ -67,6 +67,8 @@ import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; import org.apache.geronimo.kernel.Jsr77Naming; import org.apache.geronimo.kernel.config.ConfigurationModuleType; +import org.apache.geronimo.kernel.config.ConfigurationManager; +import org.apache.geronimo.kernel.config.SimpleConfigurationManager; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.Environment; import org.apache.geronimo.kernel.repository.ArtifactManager; @@ -109,7 +111,8 @@ Jsr77Naming naming = new Jsr77Naming(); ArtifactManager artifactManager = new DefaultArtifactManager(); ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, Collections.EMPTY_SET, null); - context = new DeploymentContext(tmpbasedir, null, environment, ConfigurationModuleType.CAR, naming, Collections.EMPTY_SET, Collections.EMPTY_SET, artifactResolver); + ConfigurationManager configurationManager = new SimpleConfigurationManager(Collections.EMPTY_SET, artifactResolver, Collections.EMPTY_SET); + context = new DeploymentContext(tmpbasedir, null, environment, ConfigurationModuleType.CAR, naming, configurationManager, Collections.EMPTY_SET); File moduleLocation = new File(tmpbasedir, "ejb"); moduleLocation.mkdirs(); Modified: geronimo/branches/1.1/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java (original) +++ geronimo/branches/1.1/modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java Tue May 2 21:35:17 2006 @@ -359,9 +359,8 @@ module.getEnvironment(), module.getType(), naming, + configurationManager, Collections.EMPTY_SET, - Collections.singleton(configurationStore), - artifactResolver, new AbstractNameQuery(serverName, J2EEServerImpl.GBEAN_INFO.getInterfaces()), module.getModuleName(), //hardcode standalone here. transactionContextManagerName, Added: geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java?rev=399130&view=auto ============================================================================== --- geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java (added) +++ geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentConfigurationManager.java Tue May 2 21:35:17 2006 @@ -0,0 +1,253 @@ +/** + * + * Copyright 2005 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.geronimo.deployment; + +import java.util.Collection; +import java.util.List; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Iterator; +import java.util.Collections; +import java.util.Arrays; +import java.io.IOException; + +import org.apache.geronimo.kernel.config.SimpleConfigurationManager; +import org.apache.geronimo.kernel.config.ConfigurationManager; +import org.apache.geronimo.kernel.config.ConfigurationStore; +import org.apache.geronimo.kernel.config.NoSuchStoreException; +import org.apache.geronimo.kernel.config.Configuration; +import org.apache.geronimo.kernel.config.LifecycleResults; +import org.apache.geronimo.kernel.config.NoSuchConfigException; +import org.apache.geronimo.kernel.config.LifecycleException; +import org.apache.geronimo.kernel.config.LifecycleMonitor; +import org.apache.geronimo.kernel.config.ConfigurationData; +import org.apache.geronimo.kernel.config.InvalidConfigException; +import org.apache.geronimo.kernel.repository.ArtifactResolver; +import org.apache.geronimo.kernel.repository.Artifact; +import org.apache.geronimo.kernel.repository.Version; +import org.apache.geronimo.gbean.AbstractName; + +/** + * @version $Rev$ $Date$ + */ +public class DeploymentConfigurationManager extends SimpleConfigurationManager { + private final ConfigurationManager configurationManager; + + public DeploymentConfigurationManager(ConfigurationManager configurationManager, Collection repositories) { + super(Arrays.asList(configurationManager.getStores()), configurationManager.getArtifactResolver(), repositories); + this.configurationManager = configurationManager; + } + + // + // GENERAL DATA + // + + public synchronized boolean isInstalled(Artifact configId) { + return super.isInstalled(configId); + } + + public synchronized boolean isLoaded(Artifact configId) { + return configurationManager.isLoaded(configId) || super.isLoaded(configId); + } + + public synchronized boolean isRunning(Artifact configId) { + return configurationManager.isRunning(configId) || super.isRunning(configId); + } + + public boolean isConfiguration(Artifact artifact) { + return configurationManager.isConfiguration(artifact) || super.isConfiguration(artifact); + } + + public synchronized Configuration getConfiguration(Artifact configurationId) { + Configuration configuration = configurationManager.getConfiguration(configurationId); + if (configuration == null) { + configuration = super.getConfiguration(configurationId); + } + return configuration; + } + + public ArtifactResolver getArtifactResolver() { + return super.getArtifactResolver(); + } + + + // + // LOAD + // + + public synchronized LifecycleResults loadConfiguration(Artifact configurationId) throws NoSuchConfigException, LifecycleException { + return super.loadConfiguration(configurationId); + } + + public synchronized LifecycleResults loadConfiguration(Artifact configurationId, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { + return super.loadConfiguration(configurationId, monitor); + } + + public synchronized LifecycleResults loadConfiguration(ConfigurationData configurationData) throws NoSuchConfigException, LifecycleException { + return super.loadConfiguration(configurationData); + } + + public synchronized LifecycleResults loadConfiguration(ConfigurationData configurationData, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { + return super.loadConfiguration(configurationData, monitor); + } + + protected Configuration load(ConfigurationData configurationData, LinkedHashSet resolvedParentIds, Map loadedConfigurations) throws InvalidConfigException { + return super.load(configurationData, resolvedParentIds, loadedConfigurations); + } + + protected void load(Artifact configurationId) throws NoSuchConfigException { + if (configurationModel.containsConfiguration(configurationId)) { + super.load(configurationId); + } + } + + protected void addNewConfigurationToModel(Configuration configuration) throws NoSuchConfigException { + LinkedHashSet loadParents = getLoadParents(configuration); + for (Iterator iterator = loadParents.iterator(); iterator.hasNext();) { + Configuration loadParent= (Configuration) iterator.next(); + if (!configurationModel.containsConfiguration(loadParent.getId())) { + configurationModel.addConfiguation(loadParent.getId(), Collections.EMPTY_SET, Collections.EMPTY_SET); + configurationModel.load(loadParent.getId()); + } + } + LinkedHashSet startParents = getStartParents(configuration); + for (Iterator iterator = startParents.iterator(); iterator.hasNext();) { + Configuration startParent = (Configuration) iterator.next(); + if (!configurationModel.containsConfiguration(startParent.getId())) { + configurationModel.addConfiguation(startParent.getId(), Collections.EMPTY_SET, Collections.EMPTY_SET); + configurationModel.load(startParent.getId()); + } + } + super.addNewConfigurationToModel(configuration); + } + + // + // UNLOAD + // + + public synchronized LifecycleResults unloadConfiguration(Artifact id) throws NoSuchConfigException { + return super.unloadConfiguration(id); + } + + public synchronized LifecycleResults unloadConfiguration(Artifact id, LifecycleMonitor monitor) throws NoSuchConfigException { + return super.unloadConfiguration(id, monitor); + } + + protected void unload(Configuration configuration) { + super.unload(configuration); + } + + // + // STOP.. used by unload + // + protected void stop(Configuration configuration) { + super.stop(configuration); + } + + + // + // UNSUPPORTED + // + + public Artifact[] getInstalled(Artifact query) { + throw new UnsupportedOperationException(); + } + + public Artifact[] getLoaded(Artifact query) { + throw new UnsupportedOperationException(); + } + + public Artifact[] getRunning(Artifact query) { + throw new UnsupportedOperationException(); + } + + public List listStores() { + throw new UnsupportedOperationException(); + } + + public ConfigurationStore[] getStores() { + throw new UnsupportedOperationException(); + } + + public List listConfigurations() { + throw new UnsupportedOperationException(); + } + + public ConfigurationStore getStoreForConfiguration(Artifact configId) { + throw new UnsupportedOperationException(); + } + + public List listConfigurations(AbstractName storeName) throws NoSuchStoreException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults startConfiguration(Artifact id) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults startConfiguration(Artifact id, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + protected void start(Configuration configuration) throws Exception { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults stopConfiguration(Artifact id) throws NoSuchConfigException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults stopConfiguration(Artifact id, LifecycleMonitor monitor) throws NoSuchConfigException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults restartConfiguration(Artifact id) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults restartConfiguration(Artifact id, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults reloadConfiguration(Artifact id) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults reloadConfiguration(Artifact id, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults reloadConfiguration(Artifact id, Version version) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public synchronized LifecycleResults reloadConfiguration(Artifact id, Version version, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { + throw new UnsupportedOperationException(); + } + + public LifecycleResults reloadConfiguration(ConfigurationData configurationData) throws LifecycleException, NoSuchConfigException { + throw new UnsupportedOperationException(); + } + + public LifecycleResults reloadConfiguration(ConfigurationData configurationData, LifecycleMonitor monitor) throws LifecycleException, NoSuchConfigException { + throw new UnsupportedOperationException(); + } + + public synchronized void uninstallConfiguration(Artifact configurationId) throws IOException, NoSuchConfigException { + throw new UnsupportedOperationException(); + } +} Modified: geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java (original) +++ geronimo/branches/1.1/modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java Tue May 2 21:35:17 2006 @@ -56,12 +56,8 @@ import org.apache.geronimo.kernel.config.ConfigurationManager; import org.apache.geronimo.kernel.config.ConfigurationModuleType; import org.apache.geronimo.kernel.config.NoSuchConfigException; -import org.apache.geronimo.kernel.config.SimpleConfigurationManager; 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; /** @@ -78,8 +74,8 @@ private final Naming naming; private final List additionalDeployment = new ArrayList(); - public DeploymentContext(File baseDir, File inPlaceConfigurationDir, Environment environment, ConfigurationModuleType moduleType, Naming naming, Collection repositories, Collection stores, ArtifactResolver artifactResolver) throws DeploymentException { - this(baseDir, inPlaceConfigurationDir, environment, moduleType, naming, createConfigurationManager(repositories, stores, artifactResolver)); + public DeploymentContext(File baseDir, File inPlaceConfigurationDir, Environment environment, ConfigurationModuleType moduleType, Naming naming, ConfigurationManager configurationManager, Collection repositories) throws DeploymentException { + this(baseDir, inPlaceConfigurationDir, environment, moduleType, naming, createConfigurationManager(configurationManager, repositories)); } public DeploymentContext(File baseDir, File inPlaceConfigurationDir, Environment environment, ConfigurationModuleType moduleType, Naming naming, ConfigurationManager configurationManager) throws DeploymentException { @@ -108,10 +104,8 @@ } } - private static ConfigurationManager createConfigurationManager(Collection repositories, Collection stores, ArtifactResolver artifactResolver) { -// ArtifactManager artifactManager = new DefaultArtifactManager(); -// ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, repositories, null); - return new SimpleConfigurationManager(stores, artifactResolver, repositories); + private static ConfigurationManager createConfigurationManager(ConfigurationManager configurationManager, Collection repositories) { + return new DeploymentConfigurationManager(configurationManager, repositories); } private static Configuration createTempConfiguration(Environment environment, ConfigurationModuleType moduleType, File baseDir, File inPlaceConfigurationDir, ConfigurationManager configurationManager, Naming naming) throws DeploymentException { Modified: geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/DeploymentContextTest.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/DeploymentContextTest.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/DeploymentContextTest.java (original) +++ geronimo/branches/1.1/modules/deployment/src/test/org/apache/geronimo/deployment/DeploymentContextTest.java Tue May 2 21:35:17 2006 @@ -30,6 +30,7 @@ import net.sf.cglib.proxy.MethodInterceptor; import org.apache.geronimo.kernel.Jsr77Naming; import org.apache.geronimo.kernel.config.ConfigurationModuleType; +import org.apache.geronimo.kernel.config.SimpleConfigurationManager; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.Environment; import org.apache.geronimo.kernel.repository.ArtifactManager; @@ -54,7 +55,8 @@ environment.setConfigId(configId); ArtifactManager artifactManager = new DefaultArtifactManager(); ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, Collections.EMPTY_SET, null); - DeploymentContext context = new DeploymentContext(basedir, null, environment, ConfigurationModuleType.CAR, new Jsr77Naming(), Collections.EMPTY_SET, Collections.EMPTY_SET, artifactResolver); + SimpleConfigurationManager configurationManager = new SimpleConfigurationManager(Collections.EMPTY_SET, artifactResolver, Collections.EMPTY_SET); + DeploymentContext context = new DeploymentContext(basedir, null, environment, ConfigurationModuleType.CAR, new Jsr77Naming(), configurationManager, Collections.EMPTY_SET); Enhancer enhancer = new Enhancer(); enhancer.setInterfaces(new Class[]{DataSource.class}); enhancer.setCallbackType(MethodInterceptor.class); Modified: geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java (original) +++ geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java Tue May 2 21:35:17 2006 @@ -63,6 +63,9 @@ import org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException; import org.apache.geronimo.kernel.config.ConfigurationModuleType; import org.apache.geronimo.kernel.config.ConfigurationStore; +import org.apache.geronimo.kernel.config.ConfigurationManager; +import org.apache.geronimo.kernel.config.SimpleConfigurationManager; +import org.apache.geronimo.kernel.config.ConfigurationUtil; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.ArtifactResolver; import org.apache.geronimo.kernel.repository.Environment; @@ -88,6 +91,7 @@ private final static QName APPLICATION_QNAME = GerApplicationDocument.type.getDocumentElementName(); + private final ConfigurationManager configurationManager; private final Collection repositories; private final SingleElementCollection ejbConfigBuilder; private final SingleElementCollection webConfigBuilder; @@ -130,6 +134,7 @@ nonTransactionalTimerAbstractName, corbaGBeanAbstractName, serverName, + ConfigurationUtil.getConfigurationManager(kernel), repositories, new SingleElementCollection(ejbConfigBuilder), new SingleElementCollection(ejbReferenceBuilder), @@ -163,6 +168,7 @@ nonTransactionalTimerAbstractName, corbaGBeanAbstractName, serverName, + null, repositories, new SingleElementCollection(ejbConfigBuilder), new SingleElementCollection(ejbReferenceBuilder), @@ -181,6 +187,7 @@ AbstractNameQuery nonTransactionalTimerAbstractName, AbstractNameQuery corbaGBeanAbstractName, AbstractNameQuery serverName, + ConfigurationManager configurationManager, Collection repositories, SingleElementCollection ejbConfigBuilder, SingleElementCollection ejbReferenceBuilder, @@ -190,6 +197,7 @@ SingleElementCollection appClientConfigBuilder, SingleElementCollection serviceReferenceBuilder, Naming naming) { + this.configurationManager = configurationManager; this.repositories = repositories; this.defaultEnvironment = defaultEnvironment; @@ -421,6 +429,10 @@ throw new DeploymentException(e); } + ConfigurationManager configurationManager = this.configurationManager; + if (configurationManager == null) { + configurationManager = new SimpleConfigurationManager(configurationStores, artifactResolver, repositories); + } try { // Create the output ear context earContext = new EARContext(configurationDir, @@ -428,9 +440,8 @@ applicationInfo.getEnvironment(), applicationType, naming, + configurationManager, repositories, - configurationStores, - artifactResolver, serverName, applicationInfo.getBaseName(), transactionContextManagerObjectName, Modified: geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARContext.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARContext.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARContext.java (original) +++ geronimo/branches/1.1/modules/j2ee-builder/src/java/org/apache/geronimo/j2ee/deployment/EARContext.java Tue May 2 21:35:17 2006 @@ -58,9 +58,8 @@ Environment environment, ConfigurationModuleType moduleType, Naming naming, - Collection repositories, - Collection configurationStores, - ArtifactResolver artifactResolver, AbstractNameQuery serverName, + ConfigurationManager configurationManager, Collection repositories, + AbstractNameQuery serverName, AbstractName baseName, AbstractNameQuery transactionContextManagerObjectName, AbstractNameQuery connectionTrackerObjectName, @@ -68,7 +67,7 @@ AbstractNameQuery nonTransactedTimerName, AbstractNameQuery corbaGBeanObjectName, RefContext refContext) throws DeploymentException { - super(baseDir, inPlaceConfigurationDir, environment, moduleType, naming, repositories, configurationStores, artifactResolver); + super(baseDir, inPlaceConfigurationDir, environment, moduleType, naming, configurationManager, repositories); moduleName = baseName; this.serverName = serverName; @@ -80,6 +79,7 @@ this.corbaGBeanObjectName = corbaGBeanObjectName; this.refContext = refContext; } + public EARContext(File baseDir, File inPlaceConfigurationDir, Environment environment, Modified: geronimo/branches/1.1/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/JettyModuleBuilderTest.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/JettyModuleBuilderTest.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/JettyModuleBuilderTest.java (original) +++ geronimo/branches/1.1/modules/jetty-builder/src/test/org/apache/geronimo/jetty/deployment/JettyModuleBuilderTest.java Tue May 2 21:35:17 2006 @@ -149,9 +149,8 @@ environment, ConfigurationModuleType.WAR, naming, + configurationManager, repositories, - Collections.singleton(configStore), - artifactResolver, new AbstractNameQuery(serverName), moduleName, new AbstractNameQuery(tcmName), Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java (original) +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java Tue May 2 21:35:17 2006 @@ -128,6 +128,9 @@ return (ConfigurationStore[]) storeSnapshot.toArray(new ConfigurationStore[storeSnapshot.size()]); } + public Collection getRepositories() { + return repositories; + } public List listConfigurations() { List storeSnapshot = getStoreList(); @@ -229,9 +232,9 @@ if(!configurationId.isResolved()) { throw new IllegalArgumentException("Artifact "+configurationId+" is not fully resolved"); } - if (configurationModel.isLoaded(configurationId)) { + if (isLoaded(configurationId)) { // already loaded, so just mark the configuration as user loaded - configurationModel.load(configurationId); + load(configurationId); monitor.finished(); return new LifecycleResults(); @@ -259,7 +262,7 @@ public synchronized LifecycleResults loadConfiguration(ConfigurationData configurationData, LifecycleMonitor monitor) throws NoSuchConfigException, LifecycleException { Artifact id = configurationData.getId(); LifecycleResults results = new LifecycleResults(); - if (!configurationModel.isLoaded(id)) { + if (!isLoaded(id)) { // recursively load configurations from the new child to the parents LinkedHashMap configurationsToLoad = new LinkedHashMap(); try { @@ -301,11 +304,15 @@ addNewConfigurationsToModel(actuallyLoaded); results.setLoaded(actuallyLoaded.keySet()); } - configurationModel.load(id); + load(id); monitor.finished(); return results; } + protected void load(Artifact configurationId) throws NoSuchConfigException { + configurationModel.load(configurationId); + } + protected Configuration load(ConfigurationData configurationData, LinkedHashSet resolvedParentIds, Map loadedConfigurations) throws InvalidConfigException { Artifact configurationId = configurationData.getId(); try { @@ -327,7 +334,7 @@ Configuration parent = null; if (loadedConfigurations.containsKey(resolvedArtifact)) { parent = (Configuration) loadedConfigurations.get(resolvedArtifact); - } else if (configurations.containsKey(resolvedArtifact)) { + } else if (isLoaded(resolvedArtifact)) { parent = getConfiguration(resolvedArtifact); } else { throw new InvalidConfigException("Cound not find parent configuration: " + resolvedArtifact); @@ -352,7 +359,7 @@ configurations.put(configuration.getId(), configuration); } - private LinkedHashSet getLoadParents(Configuration configuration) { + protected LinkedHashSet getLoadParents(Configuration configuration) { LinkedHashSet loadParent = new LinkedHashSet(configuration.getClassParents()); for (Iterator iterator = configuration.getChildren().iterator(); iterator.hasNext();) { Configuration childConfiguration = (Configuration) iterator.next(); @@ -366,7 +373,7 @@ return loadParent; } - private LinkedHashSet getStartParents(Configuration configuration) { + protected LinkedHashSet getStartParents(Configuration configuration) { LinkedHashSet startParent = new LinkedHashSet(configuration.getServiceParents()); for (Iterator iterator = configuration.getChildren().iterator(); iterator.hasNext();) { Configuration childConfiguration = (Configuration) iterator.next(); @@ -398,7 +405,7 @@ for (Iterator iterator = resolvedParentIds.iterator(); iterator.hasNext();) { Artifact parentId = (Artifact) iterator.next(); // if this parent id hasn't already been loaded and is actually a configuration - if (!configurations.containsKey(parentId) && isConfiguration(parentId)) { + if (!isLoaded(parentId) && isConfiguration(parentId)) { ConfigurationData parentConfigurationData = loadConfigurationData(parentId, monitor); loadDepthFirst(parentConfigurationData, configurationsToLoad, monitor); } @@ -671,13 +678,17 @@ results.addUnloaded(configurationId); // clean up the model - configurationModel.removeConfiguration(configurationId); - configurations.remove(configurationId); + removeConfigurationFromModel(configurationId); } monitor.finished(); return results; } + protected void removeConfigurationFromModel(Artifact configurationId) throws NoSuchConfigException { + configurationModel.removeConfiguration(configurationId); + configurations.remove(configurationId); + } + protected void unload(Configuration configuration) { try { configuration.doStop(); @@ -1018,8 +1029,7 @@ for (Iterator iterator = results.getUnloaded().iterator(); iterator.hasNext();) { Artifact childId = (Artifact) iterator.next(); configurationModel.unload(childId); - configurationModel.removeConfiguration(childId); - configurations.remove(childId); + removeConfigurationFromModel(childId); } throw new LifecycleException("reload", newConfigurationId, results); @@ -1072,8 +1082,7 @@ configurations.put(configurationId, configuration); } else { - configurationModel.removeConfiguration(configurationId); - configurations.remove(configurationId); + removeConfigurationFromModel(configurationId); } } catch (Exception e) { // the configuraiton failed to restart Modified: geronimo/branches/1.1/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java (original) +++ geronimo/branches/1.1/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java Tue May 2 21:35:17 2006 @@ -59,6 +59,9 @@ import org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException; import org.apache.geronimo.kernel.config.ConfigurationModuleType; import org.apache.geronimo.kernel.config.ConfigurationStore; +import org.apache.geronimo.kernel.config.ConfigurationManager; +import org.apache.geronimo.kernel.config.ConfigurationUtil; +import org.apache.geronimo.kernel.config.SimpleConfigurationManager; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.Environment; import org.apache.geronimo.kernel.repository.Repository; @@ -81,18 +84,23 @@ private Map refRefMap; private static final QName SERVICE_QNAME = ConfigurationDocument.type.getDocumentElementName(); private final Naming naming; - + private final ConfigurationManager configurationManager; public ServiceConfigBuilder(Environment defaultEnvironment, Collection repositories, Naming naming) { - this(defaultEnvironment, repositories, null, null, naming); + this(defaultEnvironment, repositories, null, null, naming, null); } public ServiceConfigBuilder(Environment defaultEnvironment, Collection repositories, Collection xmlAttributeBuilders, Collection xmlReferenceBuilders, Kernel kernel) { - this(defaultEnvironment, repositories, xmlAttributeBuilders, xmlReferenceBuilders, kernel.getNaming()); + this(defaultEnvironment, repositories, xmlAttributeBuilders, xmlReferenceBuilders, kernel.getNaming(), ConfigurationUtil.getConfigurationManager(kernel)); } public ServiceConfigBuilder(Environment defaultEnvironment, Collection repositories, Collection xmlAttributeBuilders, Collection xmlReferenceBuilders, Naming naming) { + this(defaultEnvironment, repositories, xmlAttributeBuilders, xmlReferenceBuilders, naming, null); + } + private ServiceConfigBuilder(Environment defaultEnvironment, Collection repositories, Collection xmlAttributeBuilders, Collection xmlReferenceBuilders, Naming naming, ConfigurationManager configurationManager) { this.naming = naming; + this.configurationManager = configurationManager; + EnvironmentBuilder environmentBuilder = new EnvironmentBuilder(); xmlAttributeBuilderMap.put(environmentBuilder.getNamespace(), environmentBuilder); //cf registering EnvironmentBuilder as a property editor in the static gbeaninfo block. @@ -220,14 +228,18 @@ throw new DeploymentException(e); } - DeploymentContext context = new DeploymentContext(outfile, + ConfigurationManager configurationManager = this.configurationManager; + if (configurationManager == null) { + configurationManager = new SimpleConfigurationManager(configurationStores, artifactResolver, repositories); + } + DeploymentContext context = new DeploymentContext(outfile, inPlaceDeployment && null != jar ? DeploymentUtil.toFile(jar) : null, environment, ConfigurationModuleType.SERVICE, - naming, - repositories, - configurationStores, - artifactResolver); + naming, + configurationManager, + repositories + ); if(jar != null) { File file = new File(jar.getName()); context.addIncludeAsPackedJar(URI.create(file.getName()), jar); Modified: geronimo/branches/1.1/modules/service-builder/src/test/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/service-builder/src/test/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/service-builder/src/test/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java (original) +++ geronimo/branches/1.1/modules/service-builder/src/test/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java Tue May 2 21:35:17 2006 @@ -28,6 +28,8 @@ import org.apache.geronimo.gbean.ReferenceCollection; import org.apache.geronimo.gbean.ReferenceCollectionListener; import org.apache.geronimo.kernel.config.ConfigurationModuleType; +import org.apache.geronimo.kernel.config.ConfigurationManager; +import org.apache.geronimo.kernel.config.SimpleConfigurationManager; import org.apache.geronimo.kernel.repository.Environment; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.kernel.repository.ListableRepository; @@ -61,7 +63,7 @@ File file = new File(url.getPath()); JarFile jar = new JarFile(file); assertTrue(file.exists()); - ServiceConfigBuilder builder = new ServiceConfigBuilder(parentEnvironment, null, null, null, new Jsr77Naming()); + ServiceConfigBuilder builder = new ServiceConfigBuilder(parentEnvironment, null, new Jsr77Naming()); assertNull(builder.getDeploymentPlan(null, jar, new ModuleIDBuilder())); jar.close(); } @@ -88,7 +90,8 @@ MockRepository mockRepository = new MockRepository(); ArtifactManager artifactManager = new DefaultArtifactManager(); ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, Collections.singleton(mockRepository), null); - DeploymentContext context = new DeploymentContext(outFile, null, environment, ConfigurationModuleType.CAR, naming, Collections.singleton(mockRepository), Collections.EMPTY_SET, artifactResolver); + ConfigurationManager configurationManager = new SimpleConfigurationManager(Collections.EMPTY_SET, artifactResolver, Collections.EMPTY_SET); + DeploymentContext context = new DeploymentContext(outFile, null, environment, ConfigurationModuleType.CAR, naming, configurationManager, Collections.singleton(mockRepository)); AbstractName j2eeContext = naming.createRootName(environment.getConfigId(), environment.getConfigId().toString(), "Configuration"); GbeanType[] gbeans = plan.getGbeanArray(); Modified: geronimo/branches/1.1/modules/tomcat-builder/src/test/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/tomcat-builder/src/test/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java?rev=399130&r1=399129&r2=399130&view=diff ============================================================================== --- geronimo/branches/1.1/modules/tomcat-builder/src/test/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java (original) +++ geronimo/branches/1.1/modules/tomcat-builder/src/test/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java Tue May 2 21:35:17 2006 @@ -178,9 +178,8 @@ environment, ConfigurationModuleType.WAR, naming, + configurationManager, repositories, - Collections.singleton(configStore), - artifactResolver, new AbstractNameQuery(serverName), moduleName, new AbstractNameQuery(tcmName),