You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xu...@apache.org on 2012/01/05 14:39:45 UTC
svn commit: r1227586 - in /geronimo/server/branches/3.0-beta:
framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/
plugins/sharedlib/geronimo-sharedlib/src/main/java/org/apache/geronimo/system/sharedlib/
Author: xuhaihong
Date: Thu Jan 5 13:39:45 2012
New Revision: 1227586
URL: http://svn.apache.org/viewvc?rev=1227586&view=rev
Log:
GERONIMO-6254 Shared library does not work in the deployment process
Modified:
geronimo/server/branches/3.0-beta/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java
geronimo/server/branches/3.0-beta/plugins/sharedlib/geronimo-sharedlib/src/main/java/org/apache/geronimo/system/sharedlib/SharedLibExtender.java
Modified: geronimo/server/branches/3.0-beta/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0-beta/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java?rev=1227586&r1=1227585&r2=1227586&view=diff
==============================================================================
--- geronimo/server/branches/3.0-beta/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java (original)
+++ geronimo/server/branches/3.0-beta/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/DependencyManager.java Thu Jan 5 13:39:45 2012
@@ -290,8 +290,14 @@ public class DependencyManager implement
}
}
- private void addArtifactBundleEntry(Bundle bundle) {
- Artifact artifact = toArtifact(bundle.getLocation());
+ private PluginArtifactType addArtifactBundleEntry(Bundle bundle) {
+ PluginArtifactType pluginArtifactType = getCachedPluginMetadata(bundle);
+ Artifact artifact;
+ if (pluginArtifactType == null) {
+ artifact = toArtifact(bundle.getLocation());
+ } else {
+ artifact = pluginArtifactType.getModuleId().toArtifact();
+ }
if (artifact != null) {
artifactBundleMap.put(artifact, bundle);
bundleIdArtifactMap.put(bundle.getBundleId(), artifact);
@@ -300,13 +306,13 @@ public class DependencyManager implement
log.debug("fail to resovle artifact from the bundle location " + bundle.getLocation());
}
}
+ return pluginArtifactType;
}
private void removeArtifactBundleEntry(Bundle bundle) {
- Artifact artifact = toArtifact(bundle.getLocation());
+ Artifact artifact = bundleIdArtifactMap.remove(bundle.getBundleId());
if (artifact != null) {
artifactBundleMap.remove(artifact);
- bundleIdArtifactMap.remove(bundle.getBundleId());
}
}
@@ -428,8 +434,7 @@ public class DependencyManager implement
if (bundleIdArtifactMap.containsKey(bundle.getBundleId())) {
return;
}
- addArtifactBundleEntry(bundle);
- PluginArtifactType pluginArtifactType = getCachedPluginMetadata(bundle);
+ PluginArtifactType pluginArtifactType = addArtifactBundleEntry(bundle);
if (pluginArtifactType == null) {
return;
}
Modified: geronimo/server/branches/3.0-beta/plugins/sharedlib/geronimo-sharedlib/src/main/java/org/apache/geronimo/system/sharedlib/SharedLibExtender.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0-beta/plugins/sharedlib/geronimo-sharedlib/src/main/java/org/apache/geronimo/system/sharedlib/SharedLibExtender.java?rev=1227586&r1=1227585&r2=1227586&view=diff
==============================================================================
--- geronimo/server/branches/3.0-beta/plugins/sharedlib/geronimo-sharedlib/src/main/java/org/apache/geronimo/system/sharedlib/SharedLibExtender.java (original)
+++ geronimo/server/branches/3.0-beta/plugins/sharedlib/geronimo-sharedlib/src/main/java/org/apache/geronimo/system/sharedlib/SharedLibExtender.java Thu Jan 5 13:39:45 2012
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
@@ -32,7 +33,6 @@ import org.apache.geronimo.gbean.annotat
import org.apache.geronimo.gbean.annotation.SpecialAttributeType;
import org.apache.geronimo.hook.BundleHelper;
import org.apache.geronimo.hook.SharedLibraryRegistry;
-import org.apache.geronimo.kernel.config.Configuration;
import org.apache.geronimo.kernel.config.ConfigurationManager;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.system.configuration.DependencyManager;
@@ -64,7 +64,8 @@ public class SharedLibExtender implement
private final ReentrantLock registerLock = new ReentrantLock();
- public SharedLibExtender(@ParamSpecial(type = SpecialAttributeType.bundleContext) BundleContext bundleContext,
+ public SharedLibExtender(
+ @ParamSpecial(type = SpecialAttributeType.bundleContext) BundleContext bundleContext,
@ParamReference(name = "DependencyManager") DependencyManager dependencyManager,
@ParamReference(name = "ConfigurationManager", namingType = "ConfigurationManager") ConfigurationManager configurationManager) {
this.dependencyManager = dependencyManager;
@@ -100,20 +101,14 @@ public class SharedLibExtender implement
}
private void installSharedLibs(Bundle appBundle) {
- Artifact artifact = dependencyManager.getArtifact(appBundle.getBundleId());
- if (artifact == null) {
- if (logger.isDebugEnabled()) {
- logger.debug("Unable to recongnize the artifact id for the bundle " + appBundle.getSymbolicName());
- }
- return;
- }
- if (!configurationManager.isConfiguration(artifact)) {
- return;
- }
- Configuration configuration = configurationManager.getConfiguration(artifact);
+ Set<Long> dependentBundleIds = dependencyManager.getFullDependentBundleIds(appBundle.getBundleId());
List<Bundle> dependentSharedLibBundles = new ArrayList<Bundle>();
- for (Artifact parentArtifact : configuration.getDependencyNode().getParents()) {
- List<Bundle> sharedLibBundles = configruationSharedLibBundlesMap.get(parentArtifact);
+ for (Long bundleId : dependentBundleIds) {
+ Artifact currArtifact = dependencyManager.getArtifact(bundleId);
+ if (currArtifact == null) {
+ continue;
+ }
+ List<Bundle> sharedLibBundles = configruationSharedLibBundlesMap.get(currArtifact);
if (sharedLibBundles != null) {
dependentSharedLibBundles.addAll(sharedLibBundles);
}