Author: [email protected]
Date: Mon Dec 5 17:04:19 2011
New Revision: 1808
Log:
AMDATU-472 Using a pid alias to recognize previously created factory pids
Modified:
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetaTypeFileInstall.java
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetatypeArtifactInstaller.java
Modified:
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetaTypeFileInstall.java
==============================================================================
---
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetaTypeFileInstall.java
(original)
+++
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetaTypeFileInstall.java
Mon Dec 5 17:04:19 2011
@@ -38,6 +38,7 @@
public final class MetaTypeFileInstall implements BundleActivator {
public static final String FILENAME_KEY =
"org.apache.felix.fileinstall.metatype.file";
+ public static final String ORIGINAL_PID_KEY =
"org.apache.felix.fileinstall.metatype.orgPid";
interface Logger {
public void log(int level, String message);
Modified:
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetatypeArtifactInstaller.java
==============================================================================
---
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetatypeArtifactInstaller.java
(original)
+++
trunk/amdatu-core/fileinstall-metatype/src/main/java/org/amdatu/core/fileinstall/metatype/internal/MetatypeArtifactInstaller.java
Mon Dec 5 17:04:19 2011
@@ -90,6 +90,7 @@
if (designates == null) {
m_logger.log(LogService.LOG_WARNING,
"No designates found in metatype configuration file " +
artifact.getName());
+ return;
}
Map localOcds = metaData.getObjectClassDefinitions();
@@ -129,9 +130,30 @@
}
Configuration configuration = null;
- if (!(designate.getFactoryPid() == null ||
"".equals(designate.getFactoryPid()))) {
- configuration =
-
m_configAdmin.createFactoryConfiguration(designate.getFactoryPid(), null);
+ if (isFactoryConfig(designate)) {
+
+ Configuration[] configurations =
+ m_configAdmin.listConfigurations("(" +
MetaTypeFileInstall.ORIGINAL_PID_KEY + "="
+ + designate.getPid() + ")");
+ if (configurations != null && configurations.length > 0) {
+
+ m_logger.log(
+ LogService.LOG_DEBUG,
+ "Using existing factory configuration " +
configuration.getPid() + " for designate with pid "
+ + designate.getPid());
+ configuration = configurations[0];
+ }
+ else {
+
+ m_logger.log(
+ LogService.LOG_DEBUG,
+ "Creating new factory configuration for designate with
pid " + designate.getPid());
+
+ configuration =
+
m_configAdmin.createFactoryConfiguration(designate.getFactoryPid(), null);
+ dict.put(MetaTypeFileInstall.ORIGINAL_PID_KEY,
designate.getPid());
+ }
+
}
else {
configuration =
m_configAdmin.getConfiguration(designate.getPid(), null);
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits