Improved implementation for
https://bugs.eclipse.org/bugs/show_bug.cgi?id=569910
Change-Id: I0000000000000000000000000000000000000000
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF
index 3e2f9f5..4962026 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: ECF RS Example Timeservice Consumer DS
Bundle-SymbolicName: com.mycorp.examples.timeservice.consumer.ds
Automatic-Module-Name: com.mycorp.examples.timeservice.consumer.ds
-Bundle-Version: 1.0.300.qualifier
+Bundle-Version: 1.0.400.qualifier
Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: com.mycorp.examples.timeservice;version="[2.0.0,3.0.0)",
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/TimeServiceConsumer.generic.edeffile.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/TimeServiceConsumer.generic.edeffile.product
new file mode 100644
index 0000000..26f8e08
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/TimeServiceConsumer.generic.edeffile.product
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="TimeServiceConsumer Generic EDEF File-based Discovery" uid="com.mycorp.examples.timeservice.consumer.generic.edeffile.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice.async"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.felix.scr"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.console"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice.async" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.scr" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties
index e9e1c55..aa98c54 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties
@@ -5,7 +5,8 @@
launch/,\
about.html,\
runningexample.readme.txt,\
- TimeServiceConsumer.generic.zeroconf.product
+ TimeServiceConsumer.generic.zeroconf.product,\
+ TimeServiceConsumer.generic.edeffile.product
source.. = src/
src.includes = launch/,\
about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/pom.xml b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/pom.xml
index 6c79415..37ed53d 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/pom.xml
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/pom.xml
@@ -10,6 +10,6 @@
</parent>
<groupId>org.eclipse.ecf</groupId>
<artifactId>com.mycorp.examples.timeservice.consumer.ds</artifactId>
- <version>1.0.300-SNAPSHOT</version>
+ <version>1.0.400-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF
index 60e1b73..16c132a 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@
Bundle-Version: 1.2.102.qualifier
Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Remote-Service: timeserviceendpointdescription.xml
+Remote-Service: edef/
Require-Capability: osgi.extender; filter:=(&(osgi.extender=osgi.remoteserviceadmin) (version>=1.1) (!(version>=2.0))),
osgi.extender;filter:="(&(osgi.extender=osgi.remoteserviceadmin.localdiscovery)(version>=1.0)(!(version>=2.0)))"
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties
index 42b1d7f..6d33315d 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties
@@ -2,7 +2,9 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
- timeserviceendpointdescription.xml,\
- about.html
-src.includes = timeserviceendpointdescription.xml,\
+ edef/timeserviceendpointdescription.xml,\
+ about.html,\
+ edef/default.properties,\
+ edef/timeserviceendpointdescription.properties
+src.includes = edef/timeserviceendpointdescription.xml,\
about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/default.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/default.properties
new file mode 100644
index 0000000..9c2e569
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/default.properties
@@ -0,0 +1,5 @@
+# other properties required by RSA specification (chap 122 in compendium spec)
+service.imported=true
+endpoint.framework.uuid:uuid=
+endpoint.id:uuid=
+endpoint.service.id:Long=0
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/timeserviceendpointdescription.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/timeserviceendpointdescription.properties
new file mode 100644
index 0000000..3942825
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/timeserviceendpointdescription.properties
@@ -0,0 +1,11 @@
+# service type properties...service interface and version
+objectClass:array=com.mycorp.examples.timeservice.ITimeService
+endpoint.package.version.com.mycorp.examples.timeservice=2.0.0
+# ecf properties to select and configure distribution provider
+ecf.endpoint.id=ecftcp://localhost:3288/server
+ecf.endpoint.id.ns=org.eclipse.ecf.core.identity.StringID
+ecf.endpoint.ts:Long:nanoTime=0
+# rsa properties to select and configure distribution provider
+service.imported.configs:array=ecf.generic.server
+remote.configs.supported:array=ecf.generic.server
+remote.intents.supported:array=passByValue,exactlyOnce,ordered
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/timeserviceendpointdescription.xml b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/timeserviceendpointdescription.xml
new file mode 100644
index 0000000..d2fda97
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/edef/timeserviceendpointdescription.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
+ <endpoint-description>
+ </endpoint-description>
+</endpoint-descriptions>
\ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml
deleted file mode 100644
index 156b074..0000000
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
- <endpoint-description>
- <property name="ecf.endpoint.id" value-type="String" value="ecftcp://localhost:3288/server"/>
- <property name="ecf.endpoint.id.ns" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/>
- <property name="ecf.endpoint.ts" value-type="Long" value="1387233380373"/>
- <property name="endpoint.framework.uuid" value-type="String" value="20cc5d57-e8f0-0012-192b-c570b422d1f9"/>
- <property name="endpoint.id" value-type="String" value="87d3ef4f-8e8f-4187-873e-166dcc58c9ea"/>
- <property name="endpoint.package.version.com.mycorp.examples.timeservice" value-type="String" value="1.0.0"/>
- <property name="endpoint.service.id" value-type="Long" value="0"/>
- <property name="objectClass" value-type="String">
- <array>
- <value>com.mycorp.examples.timeservice.ITimeService</value>
- </array>
- </property>
- <property name="remote.configs.supported" value-type="String">
- <array>
- <value>ecf.generic.server</value>
- </array>
- </property>
- <property name="remote.intents.supported" value-type="String">
- <array>
- <value>passByValue</value>
- <value>exactlyOnce</value>
- <value>ordered</value>
- </array>
- </property>
- <property name="service.id" value-type="Long" value="66"/>
- <property name="service.imported" value-type="String" value="true"/>
- <property name="service.imported.configs" value-type="String">
- <array>
- <value>ecf.generic.server</value>
- </array>
- </property>
- </endpoint-description>
-</endpoint-descriptions>
\ No newline at end of file
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java
index de6996c..e95d11e 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/internal/osgi/services/remoteserviceadmin/PropertiesUtil.java
@@ -390,7 +390,15 @@
return mergeProperties(copyProperties(serviceReference, new HashMap()), overrides);
}
+ public static Map mergePropertiesRaw(final Map<String,Object> source, final Map<String,Object> overrides) {
+ return mergeProperties0(source, overrides, true);
+ }
+
public static Map mergeProperties(final Map<String, Object> source, final Map<String, Object> overrides) {
+ return mergeProperties0(source, overrides, false);
+ }
+
+ public static Map mergeProperties0(final Map<String, Object> source, final Map<String, Object> overrides, boolean raw) {
// copy to target from service reference
final Map target = copyProperties(source, new TreeMap<String, Object>(String.CASE_INSENSITIVE_ORDER));
@@ -398,18 +406,16 @@
// now do actual merge
for (final String key : overrides.keySet()) {
// skip keys not allowed
- if (Constants.SERVICE_ID.equals(key) || Constants.OBJECTCLASS.equals(key)) {
+ if (!raw && (Constants.SERVICE_ID.equals(key) || Constants.OBJECTCLASS.equals(key))) {
continue;
}
- // to lower case
- String k = key.toLowerCase();
// remove from target if exists
- target.remove(k);
+ target.remove(key);
// get value associated with key
- Object value = overrides.get(k);
+ Object value = overrides.get(key);
// if value not null then put new key->value into target
if (value != null) {
- target.put(k, value);
+ target.put(key, value);
}
}
return target;
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java
index af00591..8cc2ea3 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionLocator.java
@@ -75,6 +75,7 @@
/**
* Implementation of EndpointDescription discovery mechanism, using any/all ECF
* discovery providers (implementers if {@link IDiscoveryLocator}.
+ *
* @since 4.8
*
*/
@@ -949,6 +950,10 @@
protected org.osgi.service.remoteserviceadmin.EndpointDescription[] handleEndpointDescriptionFile(Bundle bundle,
URL fileURL) {
+
+ trace("handleEndpointDescriptionFile", //$NON-NLS-1$
+ "edef file detected. BundleId=" + bundle.getBundleId() + " fileURL=" + fileURL + " found"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
InputStream ins = null;
Map<String, Object> mergeProperties = findOverrideProperties(bundle, fileURL);
try {
@@ -1266,8 +1271,12 @@
switch (simpleType) {
case "long": //$NON-NLS-1$
case "Long": //$NON-NLS-1$
- if ("unique".equals(this.type2)) { //$NON-NLS-1$
+ if ("unique".equalsIgnoreCase(this.type2)) { //$NON-NLS-1$
return getNextLong();
+ } else if ("nanoTime".equalsIgnoreCase(this.type2)) { //$NON-NLS-1$
+ return System.nanoTime();
+ } else if ("milliTime".equalsIgnoreCase(this.type2)) { //$NON-NLS-1$
+ return System.currentTimeMillis();
}
return getSimpleValue(Long.class, value);
case "double": //$NON-NLS-1$
@@ -1396,31 +1405,35 @@
Map<String, Object> mergedProps = new HashMap<String, Object>();
URL defaultPropsFileURL = getDefaultPropsURLFromEDFileURL(fileURL);
if (defaultPropsFileURL != null) {
+ trace("handleEndpointDescriptionFile", //$NON-NLS-1$
+ "Attempting to load default.properties. BundleId=" + bundle.getBundleId() + " defaultPropsFileURL=" //$NON-NLS-1$ //$NON-NLS-2$
+ + defaultPropsFileURL);
try {
- mergedProps = PropertiesUtil.mergeProperties(mergedProps,
+ mergedProps = PropertiesUtil.mergePropertiesRaw(mergedProps,
processProperties(loadProperties(defaultPropsFileURL)));
- LogUtility.logWarning("findOverrideProperties", DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, getClass(), //$NON-NLS-1$
- "loaded default properties for edef file=" + fileURL.getFile() //$NON-NLS-1$
- + " with default properties file=" //$NON-NLS-1$
- + defaultPropsFileURL.getFile());
+ trace("findOverrideProperties", "loaded default.properties file=" + defaultPropsFileURL.getFile() //$NON-NLS-1$ //$NON-NLS-2$
+ + " properties loaded=" //$NON-NLS-1$
+ + mergedProps);
} catch (IOException e) {
LogUtility.logWarning("findOverrideProperties", DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, getClass(), //$NON-NLS-1$
- "Could not load default properties fileUrl=" + defaultPropsFileURL + ",fileUrl=" //$NON-NLS-1$ //$NON-NLS-2$
- + fileURL.getFile(),
- e);
+ "Could not load default properties file=" + defaultPropsFileURL + ",edef fileUrl=" //$NON-NLS-1$ //$NON-NLS-2$
+ + fileURL.getFile());
}
}
URL propsFileURL = getPropsURLFromEDFileURL(fileURL);
if (propsFileURL != null) {
+ trace("handleEndpointDescriptionFile", //$NON-NLS-1$
+ "Attemping to load <file>.properties. BundleId=" + bundle.getBundleId() + " propsFileURL=" //$NON-NLS-1$ //$NON-NLS-2$
+ + propsFileURL);
try {
- mergedProps = PropertiesUtil.mergeProperties(mergedProps,
+ mergedProps = PropertiesUtil.mergePropertiesRaw(mergedProps,
processProperties(loadProperties(propsFileURL)));
- LogUtility.logWarning("findOverrideProperties", DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, getClass(), //$NON-NLS-1$
- "loaded override properties for edef file=" + fileURL.getFile() + " with properties file=" //$NON-NLS-1$ //$NON-NLS-2$
- + propsFileURL.getFile());
+ trace("findOverrideProperties", //$NON-NLS-1$
+ "loaded override properties file=" + fileURL.getFile() + " merged Properties=" //$NON-NLS-1$ //$NON-NLS-2$
+ + mergedProps);
} catch (IOException e) {
LogUtility.logWarning("findOverrideProperties", DebugOptions.ENDPOINT_DESCRIPTION_LOCATOR, getClass(), //$NON-NLS-1$
- "Could not load properties fileUrl=" + propsFileURL + ",fileUrl=" + fileURL.getFile(), e); //$NON-NLS-1$ //$NON-NLS-2$
+ "Could not load properties fileUrl=" + propsFileURL + ",fileUrl=" + fileURL.getFile()); //$NON-NLS-1$ //$NON-NLS-2$
}
}
return (!mergedProps.isEmpty()) ? mergedProps : null;
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java
index 6735260..b2bc52b 100644
--- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java
+++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.java
@@ -49,13 +49,19 @@
// For each one parsed, get properties and
for (EndpointDescriptionParser.EndpointDescription ed : parsedDescriptions) {
Map<String, Object> parsedProperties = ed.getProperties();
+ LogUtility.trace("readEndpointDescriptions", DebugOptions.ENDPOINT_DESCRIPTION_READER, getClass(), //$NON-NLS-1$
+ "parsed properties=" + parsedProperties); //$NON-NLS-1$
Map<String, Object> mergedProperties = null;
if (overrideProperties != null) {
+ LogUtility.trace("readEndpointDescriptions", DebugOptions.ENDPOINT_DESCRIPTION_READER, getClass(), //$NON-NLS-1$
+ "override properties=" + overrideProperties); //$NON-NLS-1$
mergedProperties = mergeWithParsed(parsedProperties, overrideProperties);
} else {
mergedProperties = parsedProperties;
}
try {
+ LogUtility.trace("readEndpointDescriptions", DebugOptions.ENDPOINT_DESCRIPTION_READER, getClass(), //$NON-NLS-1$
+ "endpoint description properties=" + mergedProperties); //$NON-NLS-1$
results.add(new EndpointDescription(mergedProperties));
} catch (Exception e) {
LogUtility.logError("readEndpointDescriptions", //$NON-NLS-1$
@@ -73,7 +79,7 @@
*/
protected Map<String, Object> mergeWithParsed(Map<String, Object> parsedProperties,
Map<String, Object> mergeProperties) {
- return PropertiesUtil.mergeProperties(parsedProperties, mergeProperties);
+ return PropertiesUtil.mergePropertiesRaw(parsedProperties, mergeProperties);
}
}