You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2006/03/31 05:48:28 UTC
svn commit: r390312 [2/2] - in /geronimo/branches/1.1:
modules/connector-builder/src/test/org/apache/geronimo/connector/deployment/
modules/deploy-tool/src/java/org/apache/geronimo/deployment/
modules/deployment/src/java/org/apache/geronimo/deployment/...
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=390312&r1=390311&r2=390312&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 Thu Mar 30 19:48:25 2006
@@ -16,22 +16,6 @@
*/
package org.apache.geronimo.kernel.config;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.geronimo.gbean.AbstractName;
-import org.apache.geronimo.gbean.GBeanData;
-import org.apache.geronimo.gbean.InvalidConfigurationException;
-import org.apache.geronimo.kernel.Naming;
-import org.apache.geronimo.kernel.jmx.JMXUtil;
-import org.apache.geronimo.kernel.repository.Artifact;
-import org.apache.geronimo.kernel.repository.ArtifactResolver;
-import org.apache.geronimo.kernel.repository.Dependency;
-import org.apache.geronimo.kernel.repository.Environment;
-import org.apache.geronimo.kernel.repository.ImportType;
-import org.apache.geronimo.kernel.repository.MissingDependencyException;
-
-import javax.management.ObjectName;
-
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
@@ -43,6 +27,18 @@
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
+import javax.management.ObjectName;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.InvalidConfigurationException;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
+import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.kernel.repository.ArtifactResolver;
+import org.apache.geronimo.kernel.repository.Dependency;
+import org.apache.geronimo.kernel.repository.Environment;
+import org.apache.geronimo.kernel.repository.ImportType;
+import org.apache.geronimo.kernel.repository.MissingDependencyException;
/**
* @version $Rev$ $Date$
@@ -53,16 +49,13 @@
protected final ArtifactResolver artifactResolver;
protected final Map configurations = new LinkedHashMap();
protected final Collection repositories;
- private final Naming naming;
- public SimpleConfigurationManager(Collection stores, ArtifactResolver artifactResolver, Naming naming, Collection repositories) {
- if (naming == null) throw new NullPointerException("naming is null");
+ public SimpleConfigurationManager(Collection stores, ArtifactResolver artifactResolver, Collection repositories) {
if (stores == null) stores = Collections.EMPTY_SET;
if (repositories == null) repositories = Collections.EMPTY_SET;
this.stores = stores;
this.artifactResolver = artifactResolver;
- this.naming = naming;
this.repositories = repositories;
}
@@ -91,7 +84,7 @@
if (configurations.containsKey(artifact)) {
return true;
}
-
+
List storeSnapshot = getStores();
for (int i = 0; i < storeSnapshot.size(); i++) {
ConfigurationStore store = (ConfigurationStore) storeSnapshot.get(i);
@@ -107,10 +100,6 @@
return configurationStatus.getConfiguration();
}
- protected Artifact getConfigurationId(Configuration configuration) {
- return configuration.getEnvironment().getConfigId();
- }
-
public synchronized boolean isLoaded(Artifact configId) {
return configurations.containsKey(configId);
}
@@ -123,24 +112,15 @@
return configurationStatus.getConfiguration();
}
- // load the GBeanData for the new configuration
- GBeanData gbeanData = loadConfigurationGBeanData(configurationId);
+ // load the ConfigurationData for the new configuration
+ ConfigurationData configurationData = loadConfigurationGBeanData(configurationId);
// load the configuration
- return loadConfiguration(gbeanData);
- }
-
- public Configuration loadConfiguration(ConfigurationData configurationData) throws NoSuchConfigException, IOException, InvalidConfigException {
- return loadConfiguration(configurationData, null);
+ return loadConfiguration(configurationData);
}
- public Configuration loadConfiguration(ConfigurationData configurationData, ConfigurationStore configurationStore) throws NoSuchConfigException, IOException, InvalidConfigException {
- GBeanData gbeanData = ConfigurationUtil.toConfigurationGBeanData(configurationData, configurationStore, repositories, artifactResolver);
- return loadConfiguration(gbeanData);
- }
-
- private synchronized Configuration loadConfiguration(GBeanData gbeanData) throws NoSuchConfigException, IOException, InvalidConfigException {
- Artifact id = getConfigurationId(gbeanData);
+ public synchronized Configuration loadConfiguration(ConfigurationData configurationData) throws NoSuchConfigException, IOException, InvalidConfigException {
+ Artifact id = configurationData.getId();
if (configurations.containsKey(id)) {
// already loaded, so just update the load count
ConfigurationStatus configurationStatus = (ConfigurationStatus) configurations.get(id);
@@ -150,7 +130,7 @@
// load configurations from the new child to the parents
LinkedHashMap unloadedConfigurations = new LinkedHashMap();
- loadDepthFirst(gbeanData, unloadedConfigurations);
+ loadDepthFirst(configurationData, unloadedConfigurations);
// load and start the unloaded configurations depth first
Map loadedConfigurations = new LinkedHashMap(unloadedConfigurations.size());
@@ -158,8 +138,8 @@
for (Iterator iterator = unloadedConfigurations.entrySet().iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
Artifact configurationId = (Artifact) entry.getKey();
- GBeanData configurationData = (GBeanData) entry.getValue();
- Configuration configuration = load(configurationData, loadedConfigurations);
+ UnloadedContiguration unloadedConfiguration = (UnloadedContiguration) entry.getValue();
+ Configuration configuration = load(unloadedConfiguration.getConfigurationData(), unloadedConfiguration.getResolvedParentIds(), loadedConfigurations);
loadedConfigurations.put(configurationId, configuration);
}
} catch (Exception e) {
@@ -177,7 +157,7 @@
for (Iterator iterator = loadedConfigurations.values().iterator(); iterator.hasNext();) {
Configuration configuration = (Configuration) iterator.next();
ConfigurationStatus configurationStatus = createConfigurationStatus(configuration);
- configurations.put(getConfigurationId(configuration), configurationStatus);
+ configurations.put(configuration.getId(), configurationStatus);
}
ConfigurationStatus configurationStatus = (ConfigurationStatus) configurations.get(id);
@@ -185,19 +165,12 @@
return configurationStatus.getConfiguration();
}
- protected Configuration load(GBeanData configurationData, Map loadedConfigurations) throws InvalidConfigException {
- Artifact configurationId = getConfigurationId(configurationData);
+ protected Configuration load(ConfigurationData configurationData, LinkedHashSet resolvedParentIds, Map loadedConfigurations) throws InvalidConfigException {
+ Artifact configurationId = configurationData.getId();
try {
- Environment environment = (Environment) configurationData.getAttribute("environment");
-
- Collection parents = resolveParents(environment, loadedConfigurations);
-
- ConfigurationModuleType moduleType = (ConfigurationModuleType) configurationData.getAttribute("moduleType");
- List classPath = (List) configurationData.getAttribute("classPath");
- byte[] gbeanState = (byte[]) configurationData.getAttribute("gBeanState");
- ConfigurationResolver configurationResolver = (ConfigurationResolver) configurationData.getAttribute("configurationResolver");
+ Collection parents = findParentConfigurations(resolvedParentIds, loadedConfigurations);
- Configuration configuration = new Configuration(parents, moduleType, environment, classPath, gbeanState, configurationResolver, naming);
+ Configuration configuration = new Configuration(parents, configurationData, new ConfigurationResolver(configurationData, repositories, artifactResolver));
configuration.doStart();
return configuration;
} catch (Exception e) {
@@ -205,32 +178,22 @@
}
}
- private Collection resolveParents(Environment environment, Map loadedConfigurations) throws MissingDependencyException, InvalidConfigException {
+ private Collection findParentConfigurations(LinkedHashSet resolvedParentIds, Map loadedConfigurations) throws InvalidConfigException {
LinkedHashMap parents = new LinkedHashMap();
- List dependencies = new ArrayList(environment.getDependencies());
- for (ListIterator iterator = dependencies.listIterator(); iterator.hasNext();) {
- Dependency dependency = (Dependency) iterator.next();
- Artifact resolvedArtifact = artifactResolver.resolve(dependency.getArtifact());
+ for (Iterator iterator = resolvedParentIds.iterator(); iterator.hasNext();) {
+ Artifact resolvedArtifact = (Artifact) iterator.next();
Configuration parent = null;
if (loadedConfigurations.containsKey(resolvedArtifact)) {
parent = (Configuration) loadedConfigurations.get(resolvedArtifact);
} else if (isConfiguration(resolvedArtifact)) {
parent = getConfiguration(resolvedArtifact);
- } else if (dependency.getImportType() == ImportType.SERVICES) {
- // Service depdendencies require that the depdencency be a configuration
- throw new InvalidConfigException("Dependency does not have services: " + resolvedArtifact);
+ } else {
+ throw new InvalidConfigException("Cound not find parent configuration: " + resolvedArtifact);
}
- if (parent != null) {
- parents.put(resolvedArtifact, parent);
-
- // update the dependency list to contain the resolved artifact
- dependency = new Dependency(resolvedArtifact, dependency.getImportType());
- iterator.set(dependency);
- }
+ parents.put(resolvedArtifact, parent);
}
- environment.setDependencies(dependencies);
return parents.values();
}
@@ -250,10 +213,9 @@
List parentStatuses = new ArrayList(parents.size());
for (Iterator iterator = parents.iterator(); iterator.hasNext();) {
Configuration parent = (Configuration) iterator.next();
- Artifact parentId = getConfigurationId(parent);
- ConfigurationStatus parentStatus = (ConfigurationStatus) configurations.get(parentId);
+ ConfigurationStatus parentStatus = (ConfigurationStatus) configurations.get(parent.getId());
if (parentStatus == null) {
- throw new IllegalStateException("Parent status not found " + parentId);
+ throw new IllegalStateException("Parent status not found " + parent.getId());
}
parentStatuses.add(parentStatus);
@@ -261,31 +223,24 @@
return parentStatuses;
}
- protected static Artifact getConfigurationId(GBeanData gbeanData) {
- Environment environment = (Environment) gbeanData.getAttribute("environment");
- return environment.getConfigId();
- }
-
- private synchronized void loadDepthFirst(GBeanData gbeanData, LinkedHashMap unloadedConfigurations) throws NoSuchConfigException, IOException, InvalidConfigException {
+ private synchronized void loadDepthFirst(ConfigurationData configurationData, LinkedHashMap unloadedConfigurations) throws NoSuchConfigException, IOException, InvalidConfigException {
try {
// if this parent hasn't already been processed, iterate into the parent
- Artifact configurationId = getConfigurationId(gbeanData);
+ Artifact configurationId = configurationData.getId();
if (!unloadedConfigurations.containsKey(configurationId)) {
- preprocessConfiguration(gbeanData);
+ LinkedHashSet resolvedParentIds = resolveParentIds(configurationData);
- Environment environment = (Environment) gbeanData.getAttribute("environment");
- for (Iterator iterator = environment.getDependencies().iterator(); iterator.hasNext();) {
- Dependency dependency = (Dependency) iterator.next();
- Artifact parentId = dependency.getArtifact();
+ for (Iterator iterator = resolvedParentIds.iterator(); iterator.hasNext();) {
+ Artifact parentId = (Artifact) iterator.next();
if (!configurations.containsKey(parentId) && isConfiguration(parentId)) {
- GBeanData parentGBeanData = loadConfigurationGBeanData(parentId);
- loadDepthFirst(parentGBeanData, unloadedConfigurations);
+ ConfigurationData parentConfigurationData = loadConfigurationGBeanData(parentId);
+ loadDepthFirst(parentConfigurationData, unloadedConfigurations);
}
}
- }
- // depth first - all unloaded parents have been added, now add this configuration
- unloadedConfigurations.put(configurationId, gbeanData);
+ // depth first - all unloaded parents have been added, now add this configuration
+ unloadedConfigurations.put(configurationId, new UnloadedContiguration(configurationData, resolvedParentIds));
+ }
} catch (NoSuchConfigException e) {
throw e;
} catch (IOException e) {
@@ -297,37 +252,29 @@
}
}
- private GBeanData loadConfigurationGBeanData(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
+ private ConfigurationData loadConfigurationGBeanData(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
List storeSnapshot = getStores();
for (int i = 0; i < storeSnapshot.size(); i++) {
ConfigurationStore store = (ConfigurationStore) storeSnapshot.get(i);
if (store.containsConfiguration(configId)) {
- GBeanData configurationGBean = store.loadConfiguration(configId);
- AbstractName configurationName = Configuration.getConfigurationAbstractName(configId);
- configurationGBean.setAbstractName(configurationName);
-
- Environment environment = (Environment) configurationGBean.getAttribute("environment");
- ConfigurationResolver configurationResolver = new ConfigurationResolver(environment.getConfigId(), store, repositories, artifactResolver);
- configurationGBean.setAttribute("configurationResolver", configurationResolver);
-
- return configurationGBean;
+ ConfigurationData configurationData = store.loadConfiguration(configId);
+ return configurationData;
}
}
throw new NoSuchConfigException("No configuration with id: " + configId);
}
- private void preprocessConfiguration(GBeanData gbeanData) throws MissingDependencyException, InvalidConfigException {
- Environment environment = (Environment) gbeanData.getAttribute("environment");
+ private LinkedHashSet resolveParentIds(ConfigurationData configurationData) throws MissingDependencyException, InvalidConfigException {
+ Environment environment = configurationData.getEnvironment();
- LinkedHashSet parentNames = new LinkedHashSet();
+ LinkedHashSet parentIds = new LinkedHashSet();
List dependencies = new ArrayList(environment.getDependencies());
for (ListIterator iterator = dependencies.listIterator(); iterator.hasNext();) {
Dependency dependency = (Dependency) iterator.next();
Artifact resolvedArtifact = artifactResolver.resolve(dependency.getArtifact());
if (isConfiguration(resolvedArtifact)) {
- AbstractName parentName = Configuration.getConfigurationAbstractName(resolvedArtifact);
- parentNames.add(parentName);
+ parentIds.add(resolvedArtifact);
// update the dependency list to contain the resolved artifact
dependency = new Dependency(resolvedArtifact, dependency.getImportType());
@@ -337,17 +284,35 @@
throw new InvalidConfigException("Dependency does not have services: " + resolvedArtifact);
}
}
- environment.setDependencies(dependencies);
- // add parents to the parents reference collection
- gbeanData.addDependencies(parentNames);
- gbeanData.setReferencePatterns("Parents", parentNames);
+// // add parents to the parents reference collection
+// configurationData.addDependencies(parentNames);
+// configurationData.setReferencePatterns("Parents", parentNames);
+//
+// configurationData.setAttribute("naming", naming);
+ return parentIds;
+ }
+
+ private static class UnloadedContiguration {
+ private final ConfigurationData configurationData;
+ private final LinkedHashSet resolvedParentIds;
+
+ public UnloadedContiguration(ConfigurationData configurationData, LinkedHashSet resolvedParentIds) {
+ this.configurationData = configurationData;
+ this.resolvedParentIds = resolvedParentIds;
+ }
+
+ public ConfigurationData getConfigurationData() {
+ return configurationData;
+ }
- gbeanData.setAttribute("naming", naming);
+ public LinkedHashSet getResolvedParentIds() {
+ return resolvedParentIds;
+ }
}
public void startConfiguration(Configuration configuration) throws InvalidConfigException {
- startConfiguration(getConfigurationId(configuration));
+ startConfiguration(configuration.getId());
}
public synchronized void startConfiguration(Artifact id) throws InvalidConfigException {
@@ -381,7 +346,7 @@
}
public void stopConfiguration(Configuration configuration) throws InvalidConfigException {
- stopConfiguration(getConfigurationId(configuration));
+ stopConfiguration(configuration.getId());
}
public synchronized void stopConfiguration(Artifact id) throws InvalidConfigException {
@@ -402,7 +367,7 @@
}
public void unloadConfiguration(Configuration configuration) throws NoSuchConfigException {
- unloadConfiguration(getConfigurationId(configuration));
+ unloadConfiguration(configuration.getId());
}
public synchronized void unloadConfiguration(Artifact id) throws NoSuchConfigException {
@@ -410,9 +375,8 @@
List unloadList = configurationStatus.unload();
for (Iterator iterator = unloadList.iterator(); iterator.hasNext();) {
Configuration configuration = (Configuration) iterator.next();
- Artifact configurationId = getConfigurationId(configuration);
unload(configuration);
- configurations.remove(configurationId);
+ configurations.remove(configuration.getId());
}
}
@@ -420,7 +384,7 @@
try {
configuration.doStop();
} catch (Exception e) {
- log.debug("Problem unloading config: " + getConfigurationId(configuration), e);
+ log.debug("Problem unloading config: " + configuration.getId(), e);
}
}
@@ -436,8 +400,9 @@
private int startCount = 0;
public ConfigurationStatus(Configuration configuration, List loadParents, List startParents) {
- if (!loadParents.containsAll(startParents))
+ if (!loadParents.containsAll(startParents)) {
throw new IllegalArgumentException("loadParents must contain all startParents");
+ }
this.configuration = configuration;
this.loadParents = loadParents;
this.startParents = startParents;
Modified: geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/config/ConfigurationManagerTest.java Thu Mar 30 19:48:25 2006
@@ -93,23 +93,23 @@
Environment e1 = new Environment();
e1.setConfigId(artifact1);
- ConfigurationData configurationData1 = new ConfigurationData(ConfigurationModuleType.CAR, null, null, null, e1, new File("."), kernel.getNaming());
- GBeanData gbeanData1 = ConfigurationUtil.toConfigurationGBeanData(configurationData1, configStore, Collections.singleton(testRepository), artifactResolver);
- configurations.put(artifact1, gbeanData1);
+ ConfigurationData configurationData1 = new ConfigurationData(e1, kernel.getNaming());
+ configurationData1.setConfigurationStore(configStore);
+ configurations.put(artifact1, configurationData1);
Environment e2 = new Environment();
e2.setConfigId(artifact2);
e2.addDependency(new Artifact("test", "1", (Version) null, "bar"), ImportType.ALL);
- ConfigurationData configurationData2 = new ConfigurationData(ConfigurationModuleType.CAR, null, null, null, e2, new File("."), kernel.getNaming());
- GBeanData gbeanData2 = ConfigurationUtil.toConfigurationGBeanData(configurationData2, configStore, Collections.singleton(testRepository), artifactResolver);
- configurations.put(artifact2, gbeanData2);
+ ConfigurationData configurationData2 = new ConfigurationData(e2, kernel.getNaming());
+ configurationData2.setConfigurationStore(configStore);
+ configurations.put(artifact2, configurationData2);
Environment e3 = new Environment();
e3.setConfigId(artifact3);
e3.addDependency(new Artifact("test", "2", (Version) null, "bar"), ImportType.ALL);
- ConfigurationData configurationData3 = new ConfigurationData(ConfigurationModuleType.CAR, null, null, null, e3, new File("."), kernel.getNaming());
- GBeanData gbeanData3 = ConfigurationUtil.toConfigurationGBeanData(configurationData3, configStore, Collections.singleton(testRepository), artifactResolver);
- configurations.put(artifact3, gbeanData3);
+ ConfigurationData configurationData3 = new ConfigurationData(e3, kernel.getNaming());
+ configurationData3.setConfigurationStore(configStore);
+ configurations.put(artifact3, configurationData3);
configurationManager = new KernelConfigurationManager(kernel,
@@ -131,8 +131,8 @@
throw new UnsupportedOperationException();
}
- public GBeanData loadConfiguration(Artifact configId) throws IOException, InvalidConfigException, NoSuchConfigException {
- return (GBeanData) configurations.get(configId);
+ public ConfigurationData loadConfiguration(Artifact configId) throws IOException, InvalidConfigException, NoSuchConfigException {
+ return (ConfigurationData) configurations.get(configId);
}
public boolean containsConfiguration(Artifact configId) {
Modified: geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java Thu Mar 30 19:48:25 2006
@@ -16,34 +16,29 @@
*/
package org.apache.geronimo.kernel.repository;
-import junit.framework.TestCase;
-import org.apache.geronimo.kernel.config.Configuration;
-import org.apache.geronimo.kernel.config.ConfigurationModuleType;
-import org.apache.geronimo.kernel.config.ConfigurationResolver;
-import org.apache.geronimo.kernel.config.ConfigurationStore;
-import org.apache.geronimo.kernel.config.NoSuchConfigException;
-import org.apache.geronimo.kernel.config.InvalidConfigException;
-import org.apache.geronimo.kernel.config.ConfigurationData;
-import org.apache.geronimo.kernel.Jsr77Naming;
-import org.apache.geronimo.gbean.AbstractName;
-import org.apache.geronimo.gbean.GBeanData;
-import org.apache.geronimo.gbean.GBeanInfo;
-import org.apache.geronimo.gbean.GBeanInfoBuilder;
-
import java.io.File;
import java.io.IOException;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectOutputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
-import java.util.List;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.net.URI;
+
+import junit.framework.TestCase;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.kernel.Jsr77Naming;
+import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.config.ConfigurationData;
+import org.apache.geronimo.kernel.config.ConfigurationResolver;
+import org.apache.geronimo.kernel.config.ConfigurationStore;
+import org.apache.geronimo.kernel.config.InvalidConfigException;
+import org.apache.geronimo.kernel.config.NoSuchConfigException;
/**
* @version $Rev$ $Date$
@@ -103,21 +98,20 @@
ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, mockRepository);
// create parent which uses version1 explicitly
- ConfigurationResolver configurationResolver = new ConfigurationResolver(loader,
- new MockConfigStore(new File("foo").toURL()),
- Collections.singleton(mockRepository),
- artifactResolver);
-
Environment environment = new Environment();
environment.setConfigId(loader);
environment.addDependency(version1, ImportType.CLASSES);
+
+ ConfigurationData parentConfigurationData = new ConfigurationData(environment, new Jsr77Naming());
+ parentConfigurationData.setConfigurationStore(new MockConfigStore(new File("foo").toURL()));
+
+ ConfigurationResolver configurationResolver = new ConfigurationResolver(parentConfigurationData,
+ Collections.singleton(mockRepository),
+ artifactResolver);
+
Configuration parent = new Configuration(null,
- ConfigurationModuleType.SERVICE,
- environment,
- null,
- null,
- configurationResolver,
- new Jsr77Naming());
+ parentConfigurationData,
+ configurationResolver);
LinkedHashSet parents = new LinkedHashSet();
parents.add(parent);
@@ -170,15 +164,10 @@
public void uninstall(Artifact configID) throws NoSuchConfigException, IOException {
}
- public GBeanData loadConfiguration(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
- AbstractName configurationName = Configuration.getConfigurationAbstractName(configId);
- GBeanData configData = new GBeanData(configurationName, Configuration.GBEAN_INFO);
- Environment environment = new Environment();
- environment.setConfigId(configId);
- configData.setAttribute("environment", environment);
- configData.setAttribute("gBeanState", NO_OBJECTS_OS);
- configData.setAttribute("configurationStore", this);
- return configData;
+ public ConfigurationData loadConfiguration(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
+ ConfigurationData configurationData = new ConfigurationData(configId, new Jsr77Naming());
+ configurationData.setConfigurationStore(this);
+ return configurationData;
}
public boolean containsConfiguration(Artifact configID) {
@@ -203,21 +192,10 @@
public final static GBeanInfo GBEAN_INFO;
- private static final byte[] NO_OBJECTS_OS;
-
static {
GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(MockConfigStore.class, "ConfigurationStore");
infoBuilder.addInterface(ConfigurationStore.class);
GBEAN_INFO = infoBuilder.getBeanInfo();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- try {
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.flush();
- NO_OBJECTS_OS = baos.toByteArray();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
}
}
}
Modified: geronimo/branches/1.1/modules/naming-builder/src/test/org/apache/geronimo/naming/deployment/MessageDestinationTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/naming-builder/src/test/org/apache/geronimo/naming/deployment/MessageDestinationTest.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/naming-builder/src/test/org/apache/geronimo/naming/deployment/MessageDestinationTest.java (original)
+++ geronimo/branches/1.1/modules/naming-builder/src/test/org/apache/geronimo/naming/deployment/MessageDestinationTest.java Thu Mar 30 19:48:25 2006
@@ -29,10 +29,9 @@
import org.apache.geronimo.j2ee.deployment.ServiceReferenceBuilder;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.config.Configuration;
-import org.apache.geronimo.kernel.config.ConfigurationModuleType;
import org.apache.geronimo.kernel.config.ConfigurationResolver;
+import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.repository.Artifact;
-import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.kernel.Naming;
import org.apache.geronimo.kernel.Jsr77Naming;
import org.apache.geronimo.naming.java.ComponentContextBuilder;
@@ -111,12 +110,8 @@
super.setUp();
Artifact id = new Artifact("test", "test", "", "car");
configuration = new Configuration(Collections.EMPTY_LIST,
- ConfigurationModuleType.RAR,
- new Environment(id),
- Collections.EMPTY_LIST,
- new byte[]{},
- new ConfigurationResolver(id, null),
- naming);
+ new ConfigurationData(id, naming),
+ new ConfigurationResolver(id, null));
baseName = naming.createRootName(configuration.getId(), "testRoot", NameFactory.RESOURCE_ADAPTER_MODULE);
}
Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ConfigurationDump.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ConfigurationDump.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ConfigurationDump.java (original)
+++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ConfigurationDump.java Thu Mar 30 19:48:25 2006
@@ -26,6 +26,7 @@
import org.apache.geronimo.kernel.config.ConfigurationInfo;
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
import org.apache.geronimo.kernel.config.ConfigurationStore;
+import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.log.GeronimoLogging;
import org.apache.geronimo.kernel.management.State;
import org.apache.geronimo.kernel.repository.Artifact;
@@ -290,9 +291,9 @@
return;
}
if (!kernel.isLoaded(name)) {
- GBeanData gbeanData = configurationStore.loadConfiguration(configId);
- kernel.loadGBean(gbeanData, ConfigurationDump.class.getClassLoader());
- kernel.startGBean(name);
+ ConfigurationData configurationData = configurationStore.loadConfiguration(configId);
+// kernel.loadGBean(gbeanData, ConfigurationDump.class.getClassLoader());
+// kernel.startGBean(name);
}
//put the earliest ancestors first, even if we have already started them.
ancestors.remove(configId);
Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ExecutableConfigurationUtil.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ExecutableConfigurationUtil.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ExecutableConfigurationUtil.java (original)
+++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/ExecutableConfigurationUtil.java Thu Mar 30 19:48:25 2006
@@ -33,16 +33,15 @@
import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.config.ConfigurationUtil;
-import org.apache.geronimo.kernel.config.InvalidConfigException;
/**
- * @version $Rev$ $Date$
+ * @version $Rev: 383067 $ $Date$
*/
public final class ExecutableConfigurationUtil {
private ExecutableConfigurationUtil() {
}
- public static void createExecutableConfiguration(ConfigurationData configurationData, Manifest manifest, File destinationFile) throws IOException, InvalidConfigException {
+ public static void createExecutableConfiguration(ConfigurationData configurationData, Manifest manifest, File destinationFile) throws IOException {
File configurationDir = configurationData.getConfigurationDir();
JarOutputStream out = null;
try {
@@ -86,17 +85,17 @@
}
}
- public static void writeConfiguration(ConfigurationData configurationData, JarOutputStream out) throws IOException, InvalidConfigException {
+ public static void writeConfiguration(ConfigurationData configurationData, JarOutputStream out) throws IOException {
// save the persisted form in the source directory
out.putNextEntry(new ZipEntry("META-INF/config.ser"));
try {
- ConfigurationUtil.storeBootstrapConfiguration(configurationData, out);
+ ConfigurationUtil.writeConfigurationData(configurationData, out);
} finally {
out.closeEntry();
}
}
- public static void writeConfiguration(ConfigurationData configurationData, File source) throws InvalidConfigException, IOException {
+ public static void writeConfiguration(ConfigurationData configurationData, File source) throws IOException {
// save the persisted form in the source directory
File metaInf = new File(source, "META-INF");
metaInf.mkdirs();
@@ -104,7 +103,7 @@
OutputStream out = new FileOutputStream(configSer);
try {
- ConfigurationUtil.storeBootstrapConfiguration(configurationData, out);
+ ConfigurationUtil.writeConfigurationData(configurationData, out);
} finally {
if (out != null) {
try {
Modified: geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/RepositoryConfigurationStore.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/RepositoryConfigurationStore.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/RepositoryConfigurationStore.java (original)
+++ geronimo/branches/1.1/modules/system/src/java/org/apache/geronimo/system/configuration/RepositoryConfigurationStore.java Thu Mar 30 19:48:25 2006
@@ -20,7 +20,6 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.ObjectInputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
@@ -32,24 +31,24 @@
import java.util.zip.ZipEntry;
import javax.management.ObjectName;
-import org.apache.geronimo.gbean.GBeanData;
+import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.kernel.Kernel;
-import org.apache.geronimo.kernel.jmx.JMXUtil;
import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException;
import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.config.ConfigurationInfo;
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.InvalidConfigException;
import org.apache.geronimo.kernel.config.NoSuchConfigException;
-import org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
import org.apache.geronimo.kernel.management.State;
import org.apache.geronimo.kernel.repository.Artifact;
-import org.apache.geronimo.kernel.repository.WritableListableRepository;
import org.apache.geronimo.kernel.repository.FileWriteMonitor;
+import org.apache.geronimo.kernel.repository.WritableListableRepository;
import org.apache.geronimo.system.repository.IOUtil;
/**
@@ -78,14 +77,14 @@
return objectName.toString();
}
- public GBeanData loadConfiguration(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
+ public ConfigurationData loadConfiguration(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
File location = repository.getLocation(configId);
if (!location.exists() && location.canRead()) {
throw new NoSuchConfigException("Configuration not found: " + configId);
}
- GBeanData config = new GBeanData();
+ ConfigurationData configurationData;
try {
if (location.isDirectory()) {
File serFile = new File(location, "META-INF");
@@ -99,8 +98,7 @@
InputStream in = new FileInputStream(serFile);
try {
- ObjectInputStream ois = new ObjectInputStream(in);
- config.readExternal(ois);
+ configurationData = ConfigurationUtil.readConfigurationData(in);
} finally {
IOUtil.close(in);
}
@@ -110,8 +108,7 @@
try {
ZipEntry entry = jarFile.getEntry("META-INF/config.ser");
in = jarFile.getInputStream(entry);
- ObjectInputStream ois = new ObjectInputStream(in);
- config.readExternal(ois);
+ configurationData = ConfigurationUtil.readConfigurationData(in);
} finally {
IOUtil.close(in);
IOUtil.close(jarFile);
@@ -121,7 +118,13 @@
throw new InvalidConfigException("Unable to load class from config: " + configId, e);
}
- return config;
+ configurationData.setConfigurationDir(location);
+ configurationData.setConfigurationStore(this);
+ if (kernel != null) {
+ configurationData.setNaming(kernel.getNaming());
+ }
+
+ return configurationData;
}
@@ -242,8 +245,8 @@
state = State.STOPPED;
}
- GBeanData bean = loadConfiguration(configId);
- ConfigurationModuleType type = (ConfigurationModuleType) bean.getAttribute("type");
+ ConfigurationData configurationData = loadConfiguration(configId);
+ ConfigurationModuleType type = configurationData.getModuleType();
configs.add(new ConfigurationInfo(objectName, configId, state, type));
} catch (Exception e) {
@@ -331,7 +334,6 @@
static {
GBeanInfoBuilder builder = GBeanInfoBuilder.createStatic(RepositoryConfigurationStore.class, "ConfigurationStore");
- builder.addInterface(ConfigurationStore.class);
builder.addAttribute("kernel", Kernel.class, false);
builder.addAttribute("objectName", String.class, false);
builder.addReference("Repository", WritableListableRepository.class, "Repository");
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=390312&r1=390311&r2=390312&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 Thu Mar 30 19:48:25 2006
@@ -16,10 +16,8 @@
*/
package org.apache.geronimo.tomcat.deployment;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
-import java.io.ObjectOutputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
@@ -32,7 +30,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-
import javax.management.ObjectName;
import javax.naming.Reference;
import javax.xml.namespace.QName;
@@ -66,7 +63,6 @@
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.ConfigurationResolver;
import org.apache.geronimo.kernel.config.ConfigurationStore;
import org.apache.geronimo.kernel.config.ConfigurationUtil;
import org.apache.geronimo.kernel.config.EditableKernelConfigurationManager;
@@ -79,9 +75,9 @@
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.security.SecurityServiceImpl;
import org.apache.geronimo.security.jacc.ApplicationPolicyConfigurationManager;
import org.apache.geronimo.security.jacc.ComponentPermissions;
-import org.apache.geronimo.security.SecurityServiceImpl;
import org.apache.geronimo.system.serverinfo.BasicServerInfo;
import org.apache.geronimo.tomcat.ConnectorGBean;
import org.apache.geronimo.tomcat.EngineGBean;
@@ -95,7 +91,7 @@
* @version $Rev:385232 $ $Date$
*/
public class TomcatModuleBuilderTest extends TestCase {
- private Naming naming = new Jsr77Naming();
+ private static Naming naming = new Jsr77Naming();
private Artifact baseId = new Artifact("test", "base", "1", "car");
private final AbstractName serverName = naming.createRootName(baseId, "Server", "J2EEServer");
@@ -386,28 +382,16 @@
configs.remove(configID);
}
- public GBeanData loadConfiguration(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
- AbstractName configurationObjectName = Configuration.getConfigurationAbstractName(configId);
- GBeanData configData = new GBeanData(configurationObjectName, Configuration.GBEAN_INFO);
+ public ConfigurationData loadConfiguration(Artifact configId) throws NoSuchConfigException, IOException, InvalidConfigException {
if (configs.containsKey(configId)) {
ConfigurationData configurationData = (ConfigurationData) configs.get(configId);
- configData.setAttribute("moduleType", configurationData.getModuleType());
- Environment environment = configurationData.getEnvironment();
- configData.setAttribute("environment", environment);
- configData.setAttribute("gBeanState", Configuration.storeGBeans(configurationData.getGBeans()));
- configData.setAttribute("classPath", configurationData.getClassPath());
-
- ConfigurationResolver configurationResolver = new ConfigurationResolver(configurationData.getEnvironment().getConfigId(), this, Collections.EMPTY_SET, new DefaultArtifactResolver(null, Collections.EMPTY_SET));
- configData.setAttribute("configurationResolver", configurationResolver);
-
+ configurationData.setConfigurationStore(this);
+ return configurationData;
} else {
- Environment environment = new Environment();
- environment.setConfigId(configId);
- configData.setAttribute("environment", environment);
- configData.setAttribute("moduleType", ConfigurationModuleType.WAR);
- configData.setAttribute("gBeanState", NO_OBJECTS_OS);
+ ConfigurationData configurationData = new ConfigurationData(configId, naming);
+ configurationData.setConfigurationStore(this);
+ return configurationData;
}
- return configData;
}
public boolean containsConfiguration(Artifact configID) {
@@ -432,21 +416,10 @@
public final static GBeanInfo GBEAN_INFO;
- private static final byte[] NO_OBJECTS_OS;
-
static {
GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(MockConfigStore.class, NameFactory.CONFIGURATION_STORE);
infoBuilder.addInterface(ConfigurationStore.class);
GBEAN_INFO = infoBuilder.getBeanInfo();
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- try {
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.flush();
- NO_OBJECTS_OS = baos.toByteArray();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
}
}
}
Modified: geronimo/branches/1.1/plugins/geronimo-assembly-plugin/src/java/org/apache/geronimo/plugin/assembly/BaseConfigInstaller.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-assembly-plugin/src/java/org/apache/geronimo/plugin/assembly/BaseConfigInstaller.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/plugins/geronimo-assembly-plugin/src/java/org/apache/geronimo/plugin/assembly/BaseConfigInstaller.java (original)
+++ geronimo/branches/1.1/plugins/geronimo-assembly-plugin/src/java/org/apache/geronimo/plugin/assembly/BaseConfigInstaller.java Thu Mar 30 19:48:25 2006
@@ -16,9 +16,9 @@
*/
package org.apache.geronimo.plugin.assembly;
-import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.kernel.config.InvalidConfigException;
import org.apache.geronimo.kernel.config.NoSuchConfigException;
+import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.ArtifactManager;
import org.apache.geronimo.kernel.repository.ArtifactResolver;
@@ -41,7 +41,7 @@
import java.util.LinkedHashSet;
/**
- * @version $Rev$ $Date$
+ * @version $Rev: 384686 $ $Date$
*/
public class BaseConfigInstaller {
public static final FileWriteMonitor LOG_COPY_START = new StartFileWriteMonitor();
@@ -161,8 +161,8 @@
// Determine the dependencies of this configuration
try {
- GBeanData config = targetStore.loadConfiguration(configId);
- Environment environment = (Environment) config.getAttribute("environment");
+ ConfigurationData configurationData = targetStore.loadConfiguration(configId);
+ Environment environment = configurationData.getEnvironment();
dependencies = new LinkedHashSet();
for (Iterator iterator = environment.getDependencies().iterator(); iterator.hasNext();) {
Dependency dependency = (Dependency) iterator.next();
Modified: geronimo/branches/1.1/plugins/geronimo-packaging-plugin/src/java/org/apache/geronimo/plugin/packaging/MavenConfigStore.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/plugins/geronimo-packaging-plugin/src/java/org/apache/geronimo/plugin/packaging/MavenConfigStore.java?rev=390312&r1=390311&r2=390312&view=diff
==============================================================================
--- geronimo/branches/1.1/plugins/geronimo-packaging-plugin/src/java/org/apache/geronimo/plugin/packaging/MavenConfigStore.java (original)
+++ geronimo/branches/1.1/plugins/geronimo-packaging-plugin/src/java/org/apache/geronimo/plugin/packaging/MavenConfigStore.java Thu Mar 30 19:48:25 2006
@@ -23,11 +23,11 @@
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.kernel.config.ConfigurationData;
-import org.apache.geronimo.kernel.config.ConfigurationStore;
import org.apache.geronimo.kernel.config.InvalidConfigException;
import org.apache.geronimo.kernel.config.NoSuchConfigException;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.WritableListableRepository;
+import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.system.configuration.ExecutableConfigurationUtil;
import org.apache.geronimo.system.configuration.RepositoryConfigurationStore;
@@ -39,8 +39,8 @@
* @version $Rev$ $Date$
*/
public class MavenConfigStore extends RepositoryConfigurationStore {
- public MavenConfigStore(String objectName, WritableListableRepository repository) {
- super(null, objectName, repository);
+ public MavenConfigStore(Kernel kernel, String objectName, WritableListableRepository repository) {
+ super(kernel, objectName, repository);
}
public File createNewConfigurationDir(Artifact configId) {
@@ -87,11 +87,10 @@
static {
GBeanInfoBuilder builder = GBeanInfoBuilder.createStatic(MavenConfigStore.class, "ConfigurationStore");
- builder.addInterface(ConfigurationStore.class);
- builder.addInterface(ConfigurationStore.class);
+ builder.addAttribute("kernel", Kernel.class, false);
builder.addAttribute("objectName", String.class, false);
builder.addReference("Repository", WritableListableRepository.class, "Repository");
- builder.setConstructor(new String[]{"objectName", "Repository"});
+ builder.setConstructor(new String[]{"kernel", "objectName", "Repository"});
GBEAN_INFO = builder.getBeanInfo();
}
}