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 [5/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/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java?rev=755494&view=auto
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java (added)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java Wed Mar 18 07:07:17 2009
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.kernel.config;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Set;
+import java.util.LinkedHashSet;
+
+import org.apache.geronimo.kernel.classloader.JarFileClassLoader;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class MutableClassLoaderHolder extends ClassLoaderHolder {
+
+ private final ConfigurationResolver configurationResolver;
+ private final LinkedHashSet<String> classPath = new LinkedHashSet<String>();
+
+ public MutableClassLoaderHolder(JarFileClassLoader internalClassLoader, ClassLoader externalClassLoader, ConfigurationResolver configurationResolver) {
+ super(internalClassLoader, externalClassLoader);
+ this.configurationResolver = configurationResolver;
+ }
+
+ public void addToClassPath(String pattern) throws IOException {
+ if (!classPath.contains(pattern)) {
+ try {
+ Set<URL> matches = configurationResolver.resolve(pattern);
+ for (URL url : matches) {
+ ((JarFileClassLoader)getInternalClassLoader()).addURL(url);
+ }
+ classPath.add(pattern);
+ } catch (Exception e) {
+ throw (IOException)new IOException("Unable to extend classpath with " + pattern).initCause(e);
+ }
+ }
+ }
+
+ public LinkedHashSet<String> getClassPath() {
+ return new LinkedHashSet<String>(classPath);
+ }
+}
Propchange: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MutableClassLoaderHolder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/NoSuchConfigException.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/NoSuchConfigException.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/NoSuchConfigException.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/NoSuchConfigException.java Wed Mar 18 07:07:17 2009
@@ -32,6 +32,11 @@
this.configId = configId;
}
+ public NoSuchConfigException(Artifact configId, String message) {
+ super(message);
+ this.configId = configId;
+ }
+
public Artifact getConfigId() {
return configId;
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SerializedGBeanState.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SerializedGBeanState.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SerializedGBeanState.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SerializedGBeanState.java Wed Mar 18 07:07:17 2009
@@ -85,6 +85,20 @@
addGBean(gBeanData);
return gBeanData;
}
+
+ public GBeanData addGBean(String name, Class gbeanClass, Naming naming, Environment environment) {
+ if (gbeanState != null) {
+ throw new IllegalStateException("GBeans have been serialized, so no more GBeans can be added");
+ }
+ GBeanData gBeanData = new GBeanData(gbeanClass);
+
+ String j2eeType = gBeanData.getGBeanInfo().getJ2eeType();
+ if (j2eeType == null) j2eeType = "GBean";
+ AbstractName abstractName = naming.createRootName(environment.getConfigId(), name, j2eeType);
+ gBeanData.setAbstractName(abstractName);
+ addGBean(gBeanData);
+ return gBeanData;
+ }
private void writeObject(java.io.ObjectOutputStream stream) throws IOException {
if (gbeanState == null) {
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/SimpleConfigurationManager.java Wed Mar 18 07:07:17 2009
@@ -27,6 +27,7 @@
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
+import java.net.MalformedURLException;
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.GBeanData;
@@ -56,6 +57,8 @@
protected final Collection<? extends Repository> repositories;
protected final Collection<DeploymentWatcher> watchers;
+ private final JarFileClassLoaderFactory classLoaderFactory = new JarFileClassLoaderFactory();
+
/**
* When this is not null, it points to the "new" configuration that is
* part of an in-process reload operation. This configuration will
@@ -135,7 +138,7 @@
}
- public List listStores() {
+ public List<AbstractName> listStores() {
List<ConfigurationStore> storeSnapshot = getStoreList();
List<AbstractName> result = new ArrayList<AbstractName>(storeSnapshot.size());
for (ConfigurationStore store : storeSnapshot) {
@@ -330,15 +333,65 @@
}
protected Configuration load(ConfigurationData configurationData, LinkedHashSet<Artifact> resolvedParentIds, Map<Artifact, Configuration> loadedConfigurations) throws InvalidConfigException {
- Artifact configurationId = configurationData.getId();
try {
- Collection<Configuration> parents = findParentConfigurations(resolvedParentIds, loadedConfigurations);
+ ConfigurationResolver configurationResolver = new ConfigurationResolver(configurationData, repositories, artifactResolver);
- Configuration configuration = new Configuration(parents, configurationData, new ConfigurationResolver(configurationData, repositories, artifactResolver), null);
- configuration.doStart();
- return configuration;
+ return doLoad(configurationData, resolvedParentIds, loadedConfigurations, configurationResolver);
} catch (Exception e) {
- throw new InvalidConfigException("Error starting configuration gbean " + configurationId, e);
+ throw new InvalidConfigException("Error starting configuration gbean " + configurationData.getId(), e);
+ }
+ }
+
+ protected Configuration doLoad(ConfigurationData configurationData, LinkedHashSet<Artifact> resolvedParentIds, Map<Artifact, Configuration> loadedConfigurations, ConfigurationResolver configurationResolver) throws Exception {
+ DependencyNode dependencyNode = buildDependencyNode(configurationData);
+
+ ClassLoaderHolder classLoaderHolder = buildClassLoaders(configurationData, loadedConfigurations, dependencyNode, configurationResolver);
+
+ List<Configuration> allServiceParents = buildAllServiceParents(loadedConfigurations, dependencyNode);
+
+ Configuration configuration = new Configuration(classLoaderHolder, configurationData, dependencyNode, allServiceParents, null, configurationResolver);
+ configuration.doStart();
+ //TODO why???
+ resolvedParentIds.add(configuration.getId());
+
+ Map<Artifact, Configuration> moreLoadedConfigurations = new LinkedHashMap<Artifact, Configuration>(loadedConfigurations);
+ moreLoadedConfigurations.put(dependencyNode.getId(), configuration);
+ for (Map.Entry<String, ConfigurationData> childEntry: configurationData.getChildConfigurations().entrySet()) {
+ ConfigurationResolver childResolver = configurationResolver.createChildResolver(childEntry.getKey());
+ Configuration child = doLoad(childEntry.getValue(), resolvedParentIds, moreLoadedConfigurations, childResolver);
+ configuration.addChild(child);
+ }
+ return configuration;
+ }
+
+ protected List<Configuration> buildAllServiceParents(Map<Artifact, Configuration> loadedConfigurations, DependencyNode dependencyNode) throws InvalidConfigException {
+ List<Configuration> allServiceParents = new ArrayList<Configuration>();
+ for (Artifact parentId: dependencyNode.getServiceParents()) {
+ addDepthFirstServiceParents(parentId, allServiceParents, new HashSet<Artifact>(), loadedConfigurations);
+ }
+ return allServiceParents;
+ }
+
+ protected ClassLoaderHolder buildClassLoaders(ConfigurationData configurationData, Map<Artifact, Configuration> loadedConfigurations, DependencyNode dependencyNode, ConfigurationResolver configurationResolver) throws InvalidConfigException, MissingDependencyException, MalformedURLException, NoSuchConfigException {
+ Collection<Configuration> parents = findParentConfigurations(dependencyNode.getClassParents(), loadedConfigurations);
+ LinkedHashSet<String> classPath = new LinkedHashSet<String>(configurationData.getClassPath());
+ ClassLoaderHolder classLoaderHolder = classLoaderFactory.buildClassLoaders(parents, configurationData.getEnvironment(), classPath, configurationResolver);
+ return classLoaderHolder;
+ }
+
+ protected DependencyNode buildDependencyNode(ConfigurationData configurationData) throws MissingDependencyException {
+ DependencyNode dependencyNode = DependencyNodeUtil.toDependencyNode(configurationData.getEnvironment(), artifactResolver, this);
+ return dependencyNode;
+ }
+
+ private void addDepthFirstServiceParents(Artifact id, List<Configuration> ancestors, Set<Artifact> ids, Map<Artifact, Configuration> loadedConfigurations) throws InvalidConfigException {
+ if (!ids.contains(id)) {
+ Configuration configuration = getConfiguration(id, loadedConfigurations);
+ ancestors.add(configuration);
+ ids.add(id);
+ for (Artifact parentId : configuration.getDependencyNode().getServiceParents()) {
+ addDepthFirstServiceParents(parentId, ancestors, ids, loadedConfigurations);
+ }
}
}
@@ -346,20 +399,25 @@
LinkedHashMap<Artifact, Configuration> parents = new LinkedHashMap<Artifact, Configuration>();
for (Artifact resolvedArtifact : resolvedParentIds) {
- Configuration parent;
- if (loadedConfigurations.containsKey(resolvedArtifact)) {
- parent = loadedConfigurations.get(resolvedArtifact);
- } else if (isLoaded(resolvedArtifact)) {
- parent = getConfiguration(resolvedArtifact);
- } else {
- throw new InvalidConfigException("Cound not find parent configuration: " + resolvedArtifact);
- }
+ Configuration parent = getConfiguration(resolvedArtifact, loadedConfigurations);
parents.put(resolvedArtifact, parent);
}
return parents.values();
}
+ private Configuration getConfiguration(Artifact resolvedArtifact, Map<Artifact, Configuration> loadedConfigurations) throws InvalidConfigException {
+ Configuration parent;
+ if (loadedConfigurations.containsKey(resolvedArtifact)) {
+ parent = loadedConfigurations.get(resolvedArtifact);
+ } else if (isLoaded(resolvedArtifact)) {
+ parent = getConfiguration(resolvedArtifact);
+ } else {
+ throw new InvalidConfigException("Cound not find parent configuration: " + resolvedArtifact);
+ }
+ return parent;
+ }
+
private void addNewConfigurationsToModel(Map<Artifact, Configuration> loadedConfigurations) throws NoSuchConfigException {
for (Configuration configuration : loadedConfigurations.values()) {
addNewConfigurationToModel(configuration);
@@ -373,30 +431,52 @@
configurations.put(configuration.getId(), configuration);
}
- protected LinkedHashSet<Configuration> getLoadParents(Configuration configuration) {
- LinkedHashSet<Configuration> loadParent = new LinkedHashSet<Configuration>(configuration.getClassParents());
+ protected LinkedHashSet<Configuration> getLoadParents(Configuration configuration) throws NoSuchConfigException {
+ LinkedHashSet<Configuration> loadParent = new LinkedHashSet<Configuration>();
+ getLoadParentsInternal(configuration, loadParent, this);
+ return loadParent;
+ }
+
+ private void getLoadParentsInternal(final Configuration configuration, LinkedHashSet<Configuration> parents, final ConfigurationSource configurationSource) throws NoSuchConfigException {
+ DependencyNodeUtil.addClassParents(configuration.getDependencyNode(), parents, configurationSource);
for (Configuration childConfiguration : configuration.getChildren()) {
- LinkedHashSet<Configuration> childLoadParent = getLoadParents(childConfiguration);
+ ConfigurationSource childSource = new ConfigurationSource() {
+ public Configuration getConfiguration(Artifact configurationId) {
+ if (configurationId.equals(configuration.getId())) {
+ return configuration;
+ }
+ return configurationSource.getConfiguration(configurationId);
+ }
+ };
+ getLoadParentsInternal(childConfiguration, parents, childSource);
// remove this configuration from the parent Ids since it will cause an infinite loop
- childLoadParent.remove(configuration);
-
- loadParent.addAll(childLoadParent);
+ parents.remove(configuration);
}
- return loadParent;
}
- protected LinkedHashSet<Configuration> getStartParents(Configuration configuration) {
- LinkedHashSet<Configuration> startParent = new LinkedHashSet<Configuration>(configuration.getServiceParents());
+ protected LinkedHashSet<Configuration> getStartParents(Configuration configuration) throws NoSuchConfigException {
+ LinkedHashSet<Configuration> startParent = new LinkedHashSet<Configuration>();
+ getStartParentsInternal(configuration, startParent, this);
+ return startParent;
+ }
+
+ private void getStartParentsInternal(final Configuration configuration, LinkedHashSet<Configuration> parents, final ConfigurationSource configurationSource) throws NoSuchConfigException {
+ DependencyNodeUtil.addServiceParents(configuration.getDependencyNode(), parents, configurationSource);
for (Configuration childConfiguration : configuration.getChildren()) {
- LinkedHashSet<Configuration> childStartParent = getStartParents(childConfiguration);
+ ConfigurationSource childSource = new ConfigurationSource() {
+ public Configuration getConfiguration(Artifact configurationId) {
+ if (configurationId.equals(configuration.getId())) {
+ return configuration;
+ }
+ return configurationSource.getConfiguration(configurationId);
+ }
+ };
+ getStartParentsInternal(childConfiguration, parents, childSource);
// remove this configuration from the parent Ids since it will cause an infinite loop
- childStartParent.remove(configuration);
-
- startParent.addAll(childStartParent);
+ parents.remove(configuration);
}
- return startParent;
}
private static LinkedHashSet<Artifact> getConfigurationIds(Collection<Configuration> configurations) {
@@ -901,7 +981,7 @@
// note: we are iterating in reverse order
LifecycleResults results = new LifecycleResults();
- for (Artifact configurationId: reverse(reloadChildren).keySet()) {
+ for (Artifact configurationId : reverse(reloadChildren).keySet()) {
Configuration configuration = getConfiguration(configurationId);
// first make sure it is stopped
@@ -948,15 +1028,15 @@
boolean reinstatedExisting = false;
/* reduce variable scope */
{
- Map<Artifact, Configuration> loadedParents = new LinkedHashMap<Artifact, Configuration>();
- Map<Artifact, Configuration> startedParents = new LinkedHashMap<Artifact, Configuration>();
+ Map<Artifact, Configuration> loadedParents = new LinkedHashMap<Artifact, Configuration>();
+ Map<Artifact, Configuration> startedParents = new LinkedHashMap<Artifact, Configuration>();
Configuration newConfiguration = null;
Artifact configurationId = null;
try {
//
// load all of the new configurations
//
- for (Map.Entry<Artifact, UnloadedConfiguration> entry : newConfigurations.entrySet()) {
+ for (Map.Entry<Artifact, UnloadedConfiguration> entry : newConfigurations.entrySet()) {
configurationId = entry.getKey();
UnloadedConfiguration unloadedConfiguration = entry.getValue();
@@ -1069,7 +1149,8 @@
try {
configuration = load(existingUnloadedConfiguration.getConfigurationData(),
existingUnloadedConfiguration.getResolvedParentIds(),
- Collections.<Artifact, Configuration>emptyMap());
+ Collections.<Artifact, Configuration>emptyMap()
+ );
reloadingConfiguration = configuration;
// if the configuration was started before restart it
if (started.contains(existingConfigurationId)) {
@@ -1133,7 +1214,11 @@
// if the resolved parent ids is null, then we are not supposed to reload this configuration
if (resolvedParentIds != null) {
monitor.loading(configurationId);
- configuration = load(unloadedConfiguration.getConfigurationData(), resolvedParentIds, Collections.<Artifact, Configuration>emptyMap());
+ configuration = load(unloadedConfiguration.getConfigurationData(),
+ resolvedParentIds,
+ Collections.<Artifact,
+ Configuration>emptyMap()
+ );
reloadingConfiguration = configuration;
monitor.succeeded(configurationId);
@@ -1210,18 +1295,7 @@
}
private static LinkedHashSet<Artifact> getResolvedParentIds(Configuration configuration) {
- LinkedHashSet<Artifact> resolvedParentIds = new LinkedHashSet<Artifact>();
- for (Configuration classParent : configuration.getClassParents()) {
- resolvedParentIds.add(classParent.getId());
- }
- for (Configuration serviceParent : configuration.getServiceParents()) {
- resolvedParentIds.add(serviceParent.getId());
- }
- for (Configuration child : configuration.getChildren()) {
- resolvedParentIds.addAll(getResolvedParentIds(child));
- }
-
- return resolvedParentIds;
+ return configuration.getDependencyNode().getParents();
}
public synchronized void uninstallConfiguration(Artifact configurationId) throws IOException, NoSuchConfigException {
@@ -1238,7 +1312,7 @@
}
uninstall(configurationId);
- for (ConfigurationStore store: getStoreList()) {
+ for (ConfigurationStore store : getStoreList()) {
if (store.containsConfiguration(configurationId)) {
store.uninstall(configurationId);
}
@@ -1303,19 +1377,20 @@
}
return map;
}
-
+
/**
- * Used to apply overrides to a configuration's gbeans.
+ * Used to apply overrides to a configuration's gbeans.
* The overrides are applied before configuration restart.
+ *
* @param configuration configuration to customize
* @throws InvalidConfigException on error
*/
- private void applyOverrides(Configuration configuration) throws InvalidConfigException{
- ClassLoader configurationClassLoader = configuration.getConfigurationClassLoader();
+ private void applyOverrides(Configuration configuration) throws InvalidConfigException {
+ ClassLoader configurationClassLoader = configuration.getConfigurationClassLoader();
Collection<GBeanData> gbeans = configuration.getConfigurationData().getGBeans(configurationClassLoader);
if (configuration.getManageableAttributeStore() != null) {
- configuration.getManageableAttributeStore().applyOverrides(configuration.getId(), gbeans,
- configurationClassLoader);
+ configuration.getManageableAttributeStore().applyOverrides(configuration.getId(), gbeans,
+ configurationClassLoader);
}
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java Wed Mar 18 07:07:17 2009
@@ -101,6 +101,20 @@
return gBeanData;
}
+ public GBeanData addGBean(String name, Class gbeanClass, Naming naming, Environment environment) {
+ if (gbeanState != null) {
+ throw new IllegalStateException("GBeans have been serialized, so no more GBeans can be added");
+ }
+ GBeanData gBeanData = new GBeanData(gbeanClass);
+
+ String j2eeType = gBeanData.getGBeanInfo().getJ2eeType();
+ if (j2eeType == null) j2eeType = "GBean";
+ AbstractName abstractName = naming.createRootName(environment.getConfigId(), name, j2eeType);
+ gBeanData.setAbstractName(abstractName);
+ addGBean(gBeanData);
+ return gBeanData;
+ }
+
private static List<GBeanData> loadGBeans(Element element, ClassLoader classLoader) throws InvalidConfigException {
if (element != null) {
// Set the thread context classloader so deserializing classes can grab the cl from the thread
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManager.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManager.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ArtifactManager.java Wed Mar 18 07:07:17 2009
@@ -23,7 +23,7 @@
* @version $Rev$ $Date$
*/
public interface ArtifactManager {
- void loadArtifacts(Artifact artifact, Set artifacts);
+ void loadArtifacts(Artifact artifact, Set<Artifact> artifacts);
void unloadAllArtifacts(Artifact artifact);
- SortedSet getLoadedArtifacts(Artifact query);
+ SortedSet<Artifact> getLoadedArtifacts(Artifact query);
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactManager.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactManager.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactManager.java Wed Mar 18 07:07:17 2009
@@ -33,13 +33,12 @@
* @version $Rev$ $Date$
*/
public class DefaultArtifactManager implements ArtifactManager {
- private final Map artifactsByLoader = new HashMap();
- private final Map artifactsByArtifact = new HashMap();
+ private final Map<Artifact, Set<Artifact>> artifactsByLoader = new HashMap<Artifact, Set<Artifact>>();
+ private final Map<String, List<Artifact>> artifactsByArtifact = new HashMap<String, List<Artifact>>();
- public void loadArtifacts(Artifact loader, Set artifacts) {
+ public void loadArtifacts(Artifact loader, Set<Artifact> artifacts) {
if (!loader.isResolved()) throw new IllegalArgumentException("loader is not a resolved artifact: " + loader);
- for (Iterator iterator = artifacts.iterator(); iterator.hasNext();) {
- Artifact artifact = (Artifact) iterator.next();
+ for (Artifact artifact : artifacts) {
if (!artifact.isResolved()) {
throw new IllegalArgumentException("artifact is not a resolved artifact: " + artifact);
}
@@ -50,17 +49,16 @@
artifactsByLoader.put(loader, artifacts);
processArtifact(loader);
- for (Iterator iterator = artifacts.iterator(); iterator.hasNext();) {
- Artifact artifact = (Artifact) iterator.next();
+ for (Artifact artifact : artifacts) {
processArtifact(artifact);
}
}
}
private void processArtifact(Artifact artifact) {
- List values = (List) artifactsByArtifact.get(artifact.getArtifactId());
+ List<Artifact> values = artifactsByArtifact.get(artifact.getArtifactId());
if (values == null) {
- values = new ArrayList();
+ values = new ArrayList<Artifact>();
artifactsByArtifact.put(artifact.getArtifactId(), values);
}
values.add(artifact);
@@ -69,19 +67,18 @@
public synchronized void unloadAllArtifacts(Artifact loader) {
removeArtifact(loader);
- Collection artifacts = (Collection) artifactsByLoader.remove(loader);
+ Set<Artifact> artifacts = artifactsByLoader.remove(loader);
if (artifacts == null) {
return;
}
- for (Iterator iterator = artifacts.iterator(); iterator.hasNext();) {
- Artifact artifact = (Artifact) iterator.next();
+ for (Artifact artifact : artifacts) {
removeArtifact(artifact);
}
}
private void removeArtifact(Artifact artifact) {
- List values = (List) artifactsByArtifact.get(artifact.getArtifactId());
+ List<Artifact> values = artifactsByArtifact.get(artifact.getArtifactId());
if (values != null) {
values.remove(artifact);
if (values.isEmpty()) {
@@ -90,13 +87,12 @@
}
}
- public SortedSet getLoadedArtifacts(Artifact query) {
- List values = (List) artifactsByArtifact.get(query.getArtifactId());
- SortedSet results = new TreeSet();
+ public SortedSet<Artifact> getLoadedArtifacts(Artifact query) {
+ List<Artifact> values = artifactsByArtifact.get(query.getArtifactId());
+ SortedSet<Artifact> results = new TreeSet<Artifact>();
if (values != null) {
- for (int i = 0; i < values.size(); i++) {
- Artifact test = (Artifact) values.get(i);
- if(query.matches(test)) {
+ for (Artifact test : values) {
+ if (query.matches(test)) {
results.add(test);
}
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactResolver.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactResolver.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/DefaultArtifactResolver.java Wed Mar 18 07:07:17 2009
@@ -26,27 +26,41 @@
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamAttribute;
+import org.apache.geronimo.gbean.annotation.ParamReference;
import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
+import org.apache.geronimo.kernel.config.DependencyNodeUtil;
/**
* @version $Rev$ $Date$
*/
+
+@GBean(j2eeType = "ArtifactResolver")
public class DefaultArtifactResolver implements ArtifactResolver {
private final ArtifactManager artifactManager;
- private final Collection<? extends ListableRepository> repositories;
+ private final Collection<ListableRepository> repositories;
private final Map<Artifact, Artifact> explicitResolution = new ConcurrentHashMap<Artifact, Artifact>();
+ private final Collection<ConfigurationManager> configurationManagers;
public DefaultArtifactResolver(ArtifactManager artifactManager, ListableRepository repository) {
this.artifactManager = artifactManager;
this.repositories = Collections.singleton(repository);
+ configurationManagers = Collections.emptyList();
}
- public DefaultArtifactResolver(ArtifactManager artifactManager, Collection<? extends ListableRepository> repositories, Map<Artifact, Artifact> explicitResolution) {
+ public DefaultArtifactResolver(
+ @ParamReference(name="ArtifactManager", namingType = "ArtifactManager")ArtifactManager artifactManager,
+ @ParamReference(name="Repositories", namingType = "Repository")Collection<ListableRepository> repositories,
+ @ParamAttribute(name="explicitResolution")Map<Artifact, Artifact> explicitResolution,
+ @ParamReference(name="ConfigurationManagers", namingType = "ConfigurationManager")Collection<ConfigurationManager> configurationManagers) {
this.artifactManager = artifactManager;
this.repositories = repositories;
if (explicitResolution != null) {
this.explicitResolution.putAll(explicitResolution);
}
+ this.configurationManagers = configurationManagers;
}
protected Map<Artifact, Artifact> getExplicitResolution() {
@@ -148,6 +162,7 @@
list.addAll(repository.list(working));
}
+ //TODO WTF???
if (list.isEmpty()) {
if ("xbean-naming".equals(working.getArtifactId())) {
return new Artifact("org.apache.xbean", "xbean-naming", "2.8", "jar");
@@ -170,37 +185,62 @@
return (Artifact) existingArtifacts.last();
}
+ //TODO not clear modifications to use artifactManager work for SimpleConfigurationManager
private Artifact searchParents(Collection<Configuration> parentConfigurations, Artifact working) {
for (Configuration configuration : parentConfigurations) {
+ Artifact artifact = searchParent(configuration, working);
+ if (artifact != null) {
+ return artifact;
+ }
+ }
+ return null;
+ }
+
+ private Artifact searchParent(Configuration configuration, Artifact working) {
+ // check if this parent matches the groupId, artifactId, and type
+ if (matches(configuration.getId(), working)) {
+ return configuration.getId();
+ }
- // check if this parent matches the groupId, artifactId, and type
- if (matches(configuration.getId(), working)) {
- return configuration.getId();
+ Environment environment = configuration.getEnvironment();
+ if (environment.getClassLoadingRules().isInverseClassLoading()) {
+ // Search dependencies of the configuration before searching the parents
+// Artifact artifact = getArtifactVersion(configuration.getDependencies(), working);
+ Artifact artifact = getArtifactVersion(artifactManager.getLoadedArtifacts(configuration.getId()), working);
+ if (artifact != null) {
+ return artifact;
}
- Environment environment = configuration.getEnvironment();
- if (environment.getClassLoadingRules().isInverseClassLoading()) {
- // Search dependencies of the configuration before searching the parents
- Artifact artifact = getArtifactVersion(configuration.getDependencies(), working);
- if (artifact != null) {
- return artifact;
- }
+ // wasn't declared in the dependencies, so search the parents of the configuration
+ artifact = searchOneParent(configuration, working);
+ if (artifact != null) {
+ return artifact;
+ }
- // wasn't declared in the dependencies, so search the parents of the configuration
- artifact = searchParents(configuration.getClassParents(), working);
- if (artifact != null) {
- return artifact;
- }
+ } else {
+ // Search the parents before the dependencies of the configuration
+ Artifact artifact = searchOneParent(configuration, working);
- } else {
- // Search the parents before the dependencies of the configuration
- Artifact artifact = searchParents(configuration.getClassParents(), working);
- if (artifact != null) {
- return artifact;
- }
+ if (artifact != null) {
+ return artifact;
+ }
+
+ // wasn't declared in a parent check the dependencies of the configuration
+// Artifact artifact = getArtifactVersion(configuration.getDependencies(), working);
+ artifact = getArtifactVersion(artifactManager.getLoadedArtifacts(configuration.getId()), working);
+ if (artifact != null) {
+ return artifact;
+ }
+ }
+ return null;
+ }
- // wasn't declared in a parent check the dependencies of the configuration
- artifact = getArtifactVersion(configuration.getDependencies(), working);
+ private Artifact searchOneParent(Configuration configuration, Artifact working) {
+ LinkedHashSet<Artifact> parentIds = configuration.getDependencyNode().getClassParents();
+ if (!parentIds.isEmpty()) {
+ for (Artifact parentId: parentIds) {
+ Configuration parent = getConfiguration(parentId);
+ Artifact artifact = searchParent(parent, working);
if (artifact != null) {
return artifact;
}
@@ -209,6 +249,13 @@
return null;
}
+ private Configuration getConfiguration(Artifact parentId) {
+ if (configurationManagers.size() != 1) {
+ throw new IllegalStateException("no configuration manager");
+ }
+ return configurationManagers.iterator().next().getConfiguration(parentId);
+ }
+
private Artifact getArtifactVersion(Collection<Artifact> artifacts, Artifact query) {
for (Artifact artifact : artifacts) {
if (matches(artifact, query)) {
@@ -222,26 +269,4 @@
return query.matches(candidate);
}
- public static final GBeanInfo GBEAN_INFO;
-
- static {
- GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(DefaultArtifactResolver.class, "ArtifactResolver");
- infoFactory.addAttribute("explicitResolution", Map.class, true, true);
- infoFactory.addReference("ArtifactManager", ArtifactManager.class, "ArtifactManager");
- infoFactory.addReference("Repositories", ListableRepository.class, "Repository");
- infoFactory.addInterface(ArtifactResolver.class);
-
- infoFactory.setConstructor(new String[]{
- "ArtifactManager",
- "Repositories",
- "explicitResolution"
- });
-
-
- GBEAN_INFO = infoFactory.getBeanInfo();
- }
-
- public static GBeanInfo getGBeanInfo() {
- return GBEAN_INFO;
- }
}
\ No newline at end of file
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/ConfigTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/ConfigTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/ConfigTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/ConfigTest.java Wed Mar 18 07:07:17 2009
@@ -23,9 +23,9 @@
import org.apache.geronimo.gbean.GBeanData;
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.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.repository.Artifact;
import org.apache.geronimo.kernel.repository.DefaultArtifactManager;
@@ -39,7 +39,7 @@
private AbstractName gbeanName1;
private AbstractName gbeanName2;
private ConfigurationData configurationData;
- private EditableConfigurationManager configurationManager;
+ private ConfigurationManager configurationManager;
public void testConfigLifecycle() throws Exception {
Artifact configurationId = configurationData.getId();
@@ -150,30 +150,30 @@
}
- public void testAddToConfig() throws Exception {
- Artifact configurationId = configurationData.getId();
-
- // load and start the config
- configurationManager.loadConfiguration(configurationData);
- Configuration configuration = configurationManager.getConfiguration(configurationId);
- assertNotNull(configuration.getConfigurationClassLoader());
-
- GBeanData mockBean3 = new GBeanData(MockGBean.getGBeanInfo());
- try {
- kernel.getGBeanState(mockBean3.getAbstractName());
- fail("Gbean should not be found yet");
- } catch (GBeanNotFoundException e) {
- }
- mockBean3.setAttribute("value", "1234");
- mockBean3.setAttribute("name", "child");
- mockBean3.setAttribute("finalInt", new Integer(1));
- configurationManager.addGBeanToConfiguration(configurationId, "MyMockGMBean3", mockBean3, true);
-
- assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(mockBean3.getAbstractName()));
- assertEquals(new Integer(1), kernel.getAttribute(mockBean3.getAbstractName(), "finalInt"));
- assertEquals("1234", kernel.getAttribute(mockBean3.getAbstractName(), "value"));
- assertEquals("child", kernel.getAttribute(mockBean3.getAbstractName(), "name"));
- }
+// public void testAddToConfig() throws Exception {
+// Artifact configurationId = configurationData.getId();
+//
+// // load and start the config
+// configurationManager.loadConfiguration(configurationData);
+// Configuration configuration = configurationManager.getConfiguration(configurationId);
+// assertNotNull(configuration.getConfigurationClassLoader());
+//
+// GBeanData mockBean3 = new GBeanData(MockGBean.getGBeanInfo());
+// try {
+// kernel.getGBeanState(mockBean3.getAbstractName());
+// fail("Gbean should not be found yet");
+// } catch (GBeanNotFoundException e) {
+// }
+// mockBean3.setAttribute("value", "1234");
+// mockBean3.setAttribute("name", "child");
+// mockBean3.setAttribute("finalInt", new Integer(1));
+// configurationManager.addGBeanToConfiguration(configurationId, "MyMockGMBean3", mockBean3, true);
+//
+// assertEquals(State.RUNNING_INDEX, kernel.getGBeanState(mockBean3.getAbstractName()));
+// assertEquals(new Integer(1), kernel.getAttribute(mockBean3.getAbstractName(), "finalInt"));
+// assertEquals("1234", kernel.getAttribute(mockBean3.getAbstractName(), "value"));
+// assertEquals("child", kernel.getAttribute(mockBean3.getAbstractName(), "name"));
+// }
protected void setUp() throws Exception {
super.setUp();
@@ -184,16 +184,16 @@
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());
ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
- configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
+ configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
configurationData = new ConfigurationData(new Artifact("test", "test", "", "car"), kernel.getNaming());
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/SimpleGBeanTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/SimpleGBeanTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/SimpleGBeanTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/SimpleGBeanTest.java Wed Mar 18 07:07:17 2009
@@ -39,7 +39,7 @@
ConfigurationData bootstrap = new ConfigurationData(new Artifact("bootstrap", "bootstrap", "", "car"), kernel.getNaming());
bootstrap.addGBean("ConfigurationManager", KernelConfigurationManager.GBEAN_INFO);
ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
- ConfigurationManager configurationManager = (ConfigurationManager) kernel.getGBean(ConfigurationManager.class);
+ ConfigurationManager configurationManager = kernel.getGBean(ConfigurationManager.class);
// create a configuration for our test bean
Artifact configurationId = new Artifact("test", "test", "", "car");
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/EditableKernelConfigurationManagerTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/EditableKernelConfigurationManagerTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/EditableKernelConfigurationManagerTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/config/EditableKernelConfigurationManagerTest.java Wed Mar 18 07:07:17 2009
@@ -41,7 +41,7 @@
private ConfigurationStore storeA;
private ConfigurationStore storeB;
- private EditableKernelConfigurationManager manager;
+ private KernelConfigurationManager manager;
private Artifact artifact;
private Collection<ConfigurationStore> stores;
private AbstractName nameA;
@@ -71,8 +71,7 @@
nameB = new AbstractName(artifact, Collections.singletonMap("name", "B"));
modify().multiplicity(expect.from(0)).returnValue(nameB);
- manager = new EditableKernelConfigurationManager(kernel,
- new AbstractNameQuery(artifact, Collections.singletonMap("name", "B")),
+ manager = new KernelConfigurationManager(kernel,
stores,
attributeStore,
configurationList,
@@ -82,7 +81,8 @@
Collections.EMPTY_LIST,
EditableKernelConfigurationManagerTest.class.getClassLoader());
}
-
+
+ //TODO this test is not valid for KernelConfigurationManager
public void testThatFirstStoreOfListStoresIsDefaultStore() throws Exception {
stores.add(storeA);
stores.add(storeB);
@@ -91,8 +91,8 @@
List listStores = manager.listStores();
assertEquals(2, listStores.size());
- assertEquals(nameB, listStores.get(0));
- assertEquals(nameA, listStores.get(1));
+// assertEquals(nameB, listStores.get(0));
+// assertEquals(nameA, listStores.get(1));
}
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/mock/MockConfigStore.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/mock/MockConfigStore.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/mock/MockConfigStore.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/mock/MockConfigStore.java Wed Mar 18 07:07:17 2009
@@ -90,6 +90,13 @@
return IOUtil.search(file, pattern);
}
+ public void installFake(Artifact configId, File file) {
+ if (!configs.containsKey(configId)) {
+ configs.put(configId, null);
+ }
+ locations.put(configId, file);
+ }
+
private static File createTempDir() throws IOException {
File tempDir = File.createTempFile("geronimo-deploymentUtil", ".tmpdir");
tempDir.delete();
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-kernel/src/test/java/org/apache/geronimo/kernel/repository/ArtifactResolverTest.java Wed Mar 18 07:07:17 2009
@@ -83,40 +83,41 @@
assertEquals(version2, artifact);
}
- public void testParentLoaded() throws Exception {
- MockRepository mockRepository = getRepo();
+ //TODO resurrect this test
- ArtifactManager artifactManager = new DefaultArtifactManager();
- Set<Artifact> loaded = new HashSet<Artifact>();
- loaded.add(version1);
- loaded.add(version2);
- artifactManager.loadArtifacts(loader, loaded);
-
- ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, mockRepository);
-
- // create parent which uses version1 explicitly
- Environment environment = new Environment();
- environment.setConfigId(loader);
- environment.addDependency(version1, ImportType.CLASSES);
-
- ConfigurationData parentConfigurationData = new ConfigurationData(environment, new Jsr77Naming());
- parentConfigurationData.setConfigurationStore(new MockConfigStore());
-
- ConfigurationResolver configurationResolver = new ConfigurationResolver(parentConfigurationData,
- Collections.singleton(mockRepository),
- artifactResolver);
-
- Configuration parent = new Configuration(null,
- parentConfigurationData,
- configurationResolver,
- null);
-
- LinkedHashSet<Configuration> parents = new LinkedHashSet<Configuration>();
- parents.add(parent);
-
- Artifact unresolvedArtifact = new Artifact("version", "version", (Version) null, "jar");
- Artifact artifact = artifactResolver.resolveInClassLoader(unresolvedArtifact, parents);
- assertEquals(version1, artifact);
- }
+// public void testParentLoaded() throws Exception {
+// MockRepository mockRepository = getRepo();
+//
+// ArtifactManager artifactManager = new DefaultArtifactManager();
+// Set<Artifact> loaded = new HashSet<Artifact>();
+// loaded.add(version1);
+// loaded.add(version2);
+// artifactManager.loadArtifacts(loader, loaded);
+//
+// ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, mockRepository);
+//
+// // create parent which uses version1 explicitly
+// Environment environment = new Environment();
+// environment.setConfigId(loader);
+// environment.addDependency(version1, ImportType.CLASSES);
+//
+// ConfigurationData parentConfigurationData = new ConfigurationData(environment, new Jsr77Naming());
+// parentConfigurationData.setConfigurationStore(new MockConfigStore());
+//
+// ConfigurationResolver configurationResolver = new ConfigurationResolver(parentConfigurationData,
+// Collections.singleton(mockRepository),
+// artifactResolver);
+//
+// Configuration parent = new Configuration(
+// classLoaderHolder, parentConfigurationData,
+// dependencyNode, allServiceParents, null);
+//
+// LinkedHashSet<Configuration> parents = new LinkedHashSet<Configuration>();
+// parents.add(parent);
+//
+// Artifact unresolvedArtifact = new Artifact("version", "version", (Version) null, "jar");
+// Artifact artifact = artifactResolver.resolveInClassLoader(unresolvedArtifact, parents);
+// assertEquals(version1, artifact);
+// }
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/AbstractEntryFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/AbstractEntryFactory.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/AbstractEntryFactory.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/AbstractEntryFactory.java Wed Mar 18 07:07:17 2009
@@ -103,7 +103,7 @@
}
}
- public Configuration getConfiguration(Kernel kernel) {
+ public Configuration getConfiguration(Kernel kernel) throws GBeanNotFoundException {
ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
Configuration configuration = configurationManager.getConfiguration(configId[0]);
if (configuration == null) {
@@ -117,7 +117,7 @@
break next;
}
}
- throw new IllegalStateException("No configuration found for id: " + configId[i]);
+ throw new GBeanNotFoundException("No configuration found for id: " + configId[i], null);
}
return configuration;
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/ConfigurationAwareReference.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/ConfigurationAwareReference.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/ConfigurationAwareReference.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/ConfigurationAwareReference.java Wed Mar 18 07:07:17 2009
@@ -55,7 +55,7 @@
this.abstractNameQueries = abstractNameQueries;
}
- public Configuration getConfiguration() {
+ public Configuration getConfiguration() throws GBeanNotFoundException {
Kernel kernel = getKernel();
ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
Configuration configuration = configurationManager.getConfiguration(configId[0]);
@@ -70,7 +70,7 @@
break next;
}
}
- throw new IllegalStateException("No configuration found for id: " + configId[i]);
+ throw new GBeanNotFoundException("No configuration found for id: " + configId[i], null);
}
return configuration;
}
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/JavaCompGBeanTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/JavaCompGBeanTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/JavaCompGBeanTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/JavaCompGBeanTest.java Wed Mar 18 07:07:17 2009
@@ -16,13 +16,22 @@
*/
package org.apache.geronimo.gjndi;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelFactory;
import org.apache.geronimo.kernel.config.ConfigurationData;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
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.repository.Artifact;
import org.apache.geronimo.kernel.repository.DefaultArtifactManager;
import org.apache.geronimo.kernel.repository.DefaultArtifactResolver;
@@ -31,15 +40,6 @@
import org.apache.xbean.naming.context.ImmutableContext;
import org.apache.xbean.naming.global.GlobalContextManager;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.naming.NameNotFoundException;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-
/**
* @version $Rev$ $Date$
*/
@@ -90,16 +90,16 @@
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());
ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
- EditableConfigurationManager configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
+ ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
ConfigurationData configurationData = new ConfigurationData(new Artifact("test", "test", "", "car"), kernel.getNaming());
configurationData.addGBean("GlobalContext", GlobalContextGBean.GBEAN_INFO);
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/KernelContextGBeanTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/KernelContextGBeanTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/KernelContextGBeanTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/KernelContextGBeanTest.java Wed Mar 18 07:07:17 2009
@@ -27,23 +27,22 @@
import javax.sql.DataSource;
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.gbean.AbstractNameQuery;
import org.apache.geronimo.gbean.annotation.AnnotationGBeanInfoBuilder;
+import org.apache.geronimo.gjndi.binding.ResourceBinding;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelFactory;
import org.apache.geronimo.kernel.config.ConfigurationData;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
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.repository.Artifact;
import org.apache.geronimo.kernel.repository.DefaultArtifactManager;
import org.apache.geronimo.kernel.repository.DefaultArtifactResolver;
import org.apache.geronimo.naming.java.RootContext;
-import org.apache.geronimo.gjndi.binding.GBeanFormatBinding;
-import org.apache.geronimo.gjndi.binding.ResourceBinding;
import org.apache.xbean.naming.context.ImmutableContext;
import org.apache.xbean.naming.global.GlobalContextManager;
@@ -52,7 +51,7 @@
*/
public class KernelContextGBeanTest extends AbstractContextTest {
private Kernel kernel;
- private EditableConfigurationManager configurationManager;
+ private ConfigurationManager configurationManager;
private ConfigurationData configurationData;
private GBeanInfo immutableContextGBeanInfo;
private Hashtable contextEnv;
@@ -183,16 +182,16 @@
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());
ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
- configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
+ configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
configurationData = new ConfigurationData(new Artifact("test", "test", "", "car"), kernel.getNaming());
configurationData.addGBean("GlobalContext", GlobalContextGBean.GBEAN_INFO);
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/binding/GBeanBindingTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/binding/GBeanBindingTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/binding/GBeanBindingTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-naming/src/test/java/org/apache/geronimo/gjndi/binding/GBeanBindingTest.java Wed Mar 18 07:07:17 2009
@@ -16,6 +16,16 @@
*/
package org.apache.geronimo.gjndi.binding;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
import org.apache.geronimo.gbean.GBeanData;
@@ -25,23 +35,14 @@
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelFactory;
import org.apache.geronimo.kernel.config.ConfigurationData;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
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.repository.Artifact;
import org.apache.geronimo.kernel.repository.DefaultArtifactManager;
import org.apache.geronimo.kernel.repository.DefaultArtifactResolver;
import org.apache.xbean.naming.global.GlobalContextManager;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.sql.DataSource;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-
/**
* @version $Rev$ $Date$
*/
@@ -99,16 +100,16 @@
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());
ConfigurationUtil.loadBootstrapConfiguration(kernel, bootstrap, getClass().getClassLoader());
- EditableConfigurationManager configurationManager = ConfigurationUtil.getEditableConfigurationManager(kernel);
+ ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
ConfigurationData configurationData = new ConfigurationData(new Artifact("test", "test", "", "car"), kernel.getNaming());
configurationData.addGBean("GlobalContext", GlobalContextGBean.GBEAN_INFO);
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-security/src/main/java/org/apache/geronimo/security/keystore/FileKeystoreManager.java Wed Mar 18 07:07:17 2009
@@ -55,9 +55,6 @@
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.GBeanLifecycle;
import org.apache.geronimo.kernel.Kernel;
-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.management.geronimo.KeyIsLocked;
import org.apache.geronimo.management.geronimo.KeystoreException;
import org.apache.geronimo.management.geronimo.KeystoreInstance;
@@ -172,21 +169,21 @@
}
}
data.setAttribute("keystoreType", type);
- EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
- if(mgr != null) {
- try {
- mgr.addGBeanToConfiguration(myName.getArtifact(), data, true);
- return (KeystoreInstance) kernel.getProxyManager().createProxy(aName, KeystoreInstance.class);
- } catch (InvalidConfigException e) {
- log.error("Should never happen", e);
- throw new IllegalStateException("Unable to add Keystore GBean ("+e.getMessage()+")", e);
- } finally {
- ConfigurationUtil.releaseConfigurationManager(kernel, mgr);
- }
- } else {
+// EditableConfigurationManager mgr = ConfigurationUtil.getEditableConfigurationManager(kernel);
+// if(mgr != null) {
+// try {
+// mgr.addGBeanToConfiguration(myName.getArtifact(), data, true);
+// return (KeystoreInstance) kernel.getProxyManager().createProxy(aName, KeystoreInstance.class);
+// } catch (InvalidConfigException e) {
+// log.error("Should never happen", e);
+// throw new IllegalStateException("Unable to add Keystore GBean ("+e.getMessage()+")", e);
+// } finally {
+// ConfigurationUtil.releaseConfigurationManager(kernel, mgr);
+// }
+// } else {
log.warn("The ConfigurationManager in the kernel does not allow changes at runtime");
return null;
- }
+// }
}
/**
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java Wed Mar 18 07:07:17 2009
@@ -49,6 +49,7 @@
import org.apache.geronimo.gbean.GBeanLifecycle;
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.ConfigurationManager;
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
@@ -87,7 +88,7 @@
this(defaultEnvironment, repositories, Collections.EMPTY_LIST, naming, null);
}
- public ServiceConfigBuilder(Environment defaultEnvironment, Collection repositories, Collection<NamespaceDrivenBuilder> serviceBuilders, Kernel kernel) {
+ public ServiceConfigBuilder(Environment defaultEnvironment, Collection repositories, Collection<NamespaceDrivenBuilder> serviceBuilders, Kernel kernel) throws GBeanNotFoundException {
this(defaultEnvironment, repositories, serviceBuilders, kernel.getNaming(), ConfigurationUtil.getConfigurationManager(kernel));
}
@@ -236,7 +237,7 @@
File file = new File(jar.getName());
context.addIncludeAsPackedJar(URI.create(file.getName()), jar);
}
-
+ context.initializeConfiguration();
serviceBuilders.build(moduleType, context, context);
return context;
} catch (DeploymentException de) {
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/test/java/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/test/java/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/test/java/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-service-builder/src/test/java/org/apache/geronimo/deployment/service/ServiceConfigBuilderTest.java Wed Mar 18 07:07:17 2009
@@ -50,6 +50,7 @@
import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.kernel.repository.ListableRepository;
import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.kernel.repository.Repository;
/**
* @version $Rev$ $Date$
@@ -95,11 +96,11 @@
repo.add(Artifact.create("geronimo/foo4/DEV/car"));
ListableRepository mockRepository = new MockRepository(repo);
ArtifactManager artifactManager = new DefaultArtifactManager();
- ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, Collections.singleton(mockRepository), null);
+ ArtifactResolver artifactResolver = new DefaultArtifactResolver(artifactManager, mockRepository);
ConfigurationManager configurationManager = new SimpleConfigurationManager(Collections.EMPTY_SET, artifactResolver, Collections.EMPTY_SET);
AbstractName moduleName = naming.createRootName(environment.getConfigId(), "foo", "bar");
- DeploymentContext context = new DeploymentContext(outFile, null, environment, moduleName, ConfigurationModuleType.CAR, naming, configurationManager, Collections.singleton(mockRepository));
-
+ DeploymentContext context = new DeploymentContext(outFile, null, environment, moduleName, ConfigurationModuleType.CAR, naming, configurationManager, Collections.<Repository>singleton(mockRepository));
+ context.initializeConfiguration();
gbeanBuilder.build(plan, context, context);
Set gbeanNames = context.getGBeanNames();
assertEquals(1, gbeanNames.size());
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/main/CommandLine.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/main/CommandLine.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/main/CommandLine.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/main/CommandLine.java Wed Mar 18 07:07:17 2009
@@ -22,13 +22,9 @@
import java.net.URL;
import java.util.Collection;
import java.util.Enumeration;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.geronimo.common.GeronimoEnvironment;
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
import org.apache.geronimo.kernel.GBeanNotFoundException;
@@ -38,12 +34,14 @@
import org.apache.geronimo.kernel.config.ConfigurationData;
import org.apache.geronimo.kernel.config.ConfigurationManager;
import org.apache.geronimo.kernel.config.ConfigurationUtil;
+import org.apache.geronimo.kernel.config.DebugLoggingLifecycleMonitor;
import org.apache.geronimo.kernel.config.LifecycleException;
-import org.apache.geronimo.kernel.config.NoSuchConfigException;
import org.apache.geronimo.kernel.config.LifecycleMonitor;
-import org.apache.geronimo.kernel.config.DebugLoggingLifecycleMonitor;
+import org.apache.geronimo.kernel.config.NoSuchConfigException;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.MissingDependencyException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @version $Rev$ $Date$
@@ -168,7 +166,7 @@
throw new NoSuchConfigException(moduleId);
}
- protected void loadConfigurations(List configurations) throws NoSuchConfigException, LifecycleException, MissingDependencyException {
+ protected void loadConfigurations(List configurations) throws NoSuchConfigException, LifecycleException, MissingDependencyException, GBeanNotFoundException {
// load and start the configurations
ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
Collection<Artifact> resolvedModules = configurationManager.getArtifactResolver().resolveInClassLoader(configurations);
Modified: geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/resolver/ExplicitDefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/resolver/ExplicitDefaultArtifactResolver.java?rev=755494&r1=755493&r2=755494&view=diff
==============================================================================
--- geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/resolver/ExplicitDefaultArtifactResolver.java (original)
+++ geronimo/sandbox/djencks/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/resolver/ExplicitDefaultArtifactResolver.java Wed Mar 18 07:07:17 2009
@@ -25,19 +25,25 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import java.util.Collections;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamAttribute;
+import org.apache.geronimo.gbean.annotation.ParamReference;
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.DefaultArtifactResolver;
import org.apache.geronimo.kernel.repository.ListableRepository;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
import org.apache.geronimo.system.serverinfo.ServerInfo;
/**
* @version $Rev$ $Date$
*/
+@GBean(j2eeType = "ArtifactResolver")
public class ExplicitDefaultArtifactResolver extends DefaultArtifactResolver implements LocalAliasedArtifactResolver {
private static final String COMMENT = "#You can use this file to indicate that you want to substitute one module for another.\n" +
"#format is oldartifactid=newartifactId e.g.\n" +
@@ -50,17 +56,18 @@
public ExplicitDefaultArtifactResolver(String versionMapLocation,
ArtifactManager artifactManager,
- Collection<? extends ListableRepository> repositories,
- ServerInfo serverInfo ) throws IOException {
- this(versionMapLocation, artifactManager, repositories, null, serverInfo);
+ Collection<ListableRepository> repositories,
+ ServerInfo serverInfo) throws IOException {
+ this(versionMapLocation, artifactManager, repositories, null, serverInfo, Collections.<ConfigurationManager>emptyList());
}
- public ExplicitDefaultArtifactResolver(String versionMapLocation,
- ArtifactManager artifactManager,
- Collection<? extends ListableRepository> repositories,
- Map<String, String> additionalAliases,
- ServerInfo serverInfo ) throws IOException {
- super(artifactManager, repositories, buildExplicitResolution(versionMapLocation, additionalAliases, serverInfo));
+ public ExplicitDefaultArtifactResolver(@ParamAttribute(name = "versionMapLocation") String versionMapLocation,
+ @ParamReference(name = "ArtifactManager", namingType = "ArtifactManager") ArtifactManager artifactManager,
+ @ParamReference(name = "Repositories", namingType = "Repository") Collection<ListableRepository> repositories,
+ @ParamAttribute(name = "additionalAliases") Map<String, String> additionalAliases,
+ @ParamReference(name = "ServerInfo") ServerInfo serverInfo,
+ @ParamReference(name = "ConfigurationManagers", namingType = "ConfigurationManager") Collection<ConfigurationManager> configurationManagers) throws IOException {
+ super(artifactManager, repositories, buildExplicitResolution(versionMapLocation, additionalAliases, serverInfo), configurationManagers);
this.artifactAliasesFile = versionMapLocation;
this.serverInfo = serverInfo;
}
@@ -75,7 +82,7 @@
return null;
}
Properties properties = new Properties();
- File location = serverInfo == null? new File(versionMapLocation): serverInfo.resolveServer(versionMapLocation);
+ File location = serverInfo == null ? new File(versionMapLocation) : serverInfo.resolveServer(versionMapLocation);
if (location.exists()) {
FileInputStream in = new FileInputStream(location);
try {
@@ -106,7 +113,7 @@
if (versionMapLocation == null) {
return;
}
- File location = serverInfo == null? new File(versionMapLocation): serverInfo.resolveServer(versionMapLocation);
+ File location = serverInfo == null ? new File(versionMapLocation) : serverInfo.resolveServer(versionMapLocation);
if (!location.exists()) {
File parent = location.getParentFile();
if (!parent.exists() && !parent.mkdirs()) {
@@ -124,7 +131,7 @@
private static Properties artifactMapToProperties(Map<Artifact, Artifact> artifactMap) {
Properties properties = new Properties();
- for (Map.Entry<Artifact, Artifact> entry: artifactMap.entrySet()) {
+ for (Map.Entry<Artifact, Artifact> entry : artifactMap.entrySet()) {
properties.setProperty(entry.getKey().toString(), entry.getValue().toString());
}
return properties;
@@ -133,8 +140,9 @@
/**
* Add some more artifact aliases. The plugin installer calls this
* TODO when a plugin is uninstalled, remove the aliases?
+ *
* @param properties Properties object containing the new aliases
- * @throws IOException if the modified aliases map cannot be saved.
+ * @throws IOException if the modified aliases map cannot be saved.
*/
public synchronized void addAliases(Properties properties) throws IOException {
Map<Artifact, Artifact> explicitResolutions = propertiesToArtifactMap(properties);
@@ -142,31 +150,4 @@
saveExplicitResolution(getExplicitResolution(), artifactAliasesFile, serverInfo);
}
- public static final GBeanInfo GBEAN_INFO;
-
- static {
- GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(ExplicitDefaultArtifactResolver.class, "ArtifactResolver");
- infoFactory.addAttribute("versionMapLocation", String.class, true, true);
- infoFactory.addAttribute("additionalAliases", Map.class, true, true);
- infoFactory.addReference("ArtifactManager", ArtifactManager.class, "ArtifactManager");
- infoFactory.addReference("Repositories", ListableRepository.class, "Repository");
- infoFactory.addReference("ServerInfo", ServerInfo.class, "GBean");
- infoFactory.addInterface(ArtifactResolver.class);
-
- infoFactory.setConstructor(new String[]{
- "versionMapLocation",
- "ArtifactManager",
- "Repositories",
- "additionalAliases",
- "ServerInfo"
- });
-
-
- GBEAN_INFO = infoFactory.getBeanInfo();
-
- }
-
- public static GBeanInfo getGBeanInfo() {
- return GBEAN_INFO;
- }
}
Propchange: geronimo/sandbox/djencks/framework/modules/geronimo-upgrade/src/test/resources/
('svn:mergeinfo' removed)