You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by pi...@apache.org on 2011/04/13 17:20:50 UTC
svn commit: r1091817 -
/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
Author: pieber
Date: Wed Apr 13 15:20:49 2011
New Revision: 1091817
URL: http://svn.apache.org/viewvc?rev=1091817&view=rev
Log:
[KARAF-562] Fix multible deployment of config-factories in features <config> tag
Modified:
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
Modified: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java?rev=1091817&r1=1091816&r2=1091817&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java Wed Apr 13 15:20:49 2011
@@ -458,7 +458,7 @@ public class FeaturesServiceImpl impleme
Configuration cfg = findExistingConfiguration(configAdmin, pid[0], pid[1]);
if (cfg == null) {
cfg = createConfiguration(configAdmin, pid[0], pid[1]);
- String key = (pid[1] == null ? pid[0] : pid[0] + "-" + pid[1]);
+ String key = createConfigurationKey(pid[0], pid[1]);
props.put(CONFIG_KEY, key);
if (cfg.getBundleLocation() != null) {
cfg.setBundleLocation(null);
@@ -478,6 +478,10 @@ public class FeaturesServiceImpl impleme
state.features.put(feature, bundles);
}
+ private String createConfigurationKey(String pid, String factoryPid) {
+ return factoryPid == null ? pid : pid + "-" + factoryPid;
+ }
+
protected List<BundleInfo> resolve(Feature feature) throws Exception {
String resolver = feature.getResolver();
// If no resolver is specified, we expect a list of uris
@@ -1018,19 +1022,16 @@ public class FeaturesServiceImpl impleme
if (factoryPid == null) {
filter = "(" + Constants.SERVICE_PID + "=" + pid + ")";
} else {
- filter = "(" + ConfigurationAdmin.SERVICE_FACTORYPID + "=" + factoryPid + ")";
+ String key = createConfigurationKey(pid, factoryPid);
+ filter = "(" + CONFIG_KEY + "=" + key + ")";
}
Configuration[] configurations = configurationAdmin.listConfigurations(filter);
- if (configurations != null && configurations.length > 0)
- {
+ if (configurations != null && configurations.length > 0) {
return configurations[0];
}
- else
- {
- return null;
- }
+ return null;
}
-
+
protected void saveState() {
try {
File file = bundleContext.getDataFile("FeaturesServiceState.properties");