From e1dc4d2248e0574c54e071aa2c2f528a380ed8c0 Mon Sep 17 00:00:00 2001 From: Markus Alexander Kuppe Date: Wed, 8 Jan 2014 17:12:32 +0100 Subject: Bug 424262: Add support for distribution provider-specified EndpointDescription properties https://bugs.eclipse.org/bugs/show_bug.cgi?id=424262 Change-Id: I206f8ebb9ae00ff3133c0f87bf394d5c31875437 --- .../osgi/services/remoteserviceadmin/PropertiesUtil.java | 13 ------------- .../services/remoteserviceadmin/RemoteServiceAdmin.java | 10 ++++++++-- 2 files changed, 8 insertions(+), 15 deletions(-) (limited to 'osgi') 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 f5b0ea6c2..486c30c34 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 @@ -359,15 +359,6 @@ public class PropertiesUtil { return target; } - public static Map copyNonECFProperties( - IRemoteServiceRegistration serviceRegistration, Map target) { - String[] keys = serviceRegistration.getPropertyKeys(); - for (int i = 0; i < keys.length; i++) - if (!isECFProperty(keys[i])) - target.put(keys[i], serviceRegistration.getProperty(keys[i])); - return target; - } - public static Map copyNonReservedProperties( ServiceReference serviceReference, Map target) { String[] keys = serviceReference.getPropertyKeys(); @@ -392,10 +383,6 @@ public class PropertiesUtil { overrides); } - public static Map mergeProperties(final IRemoteServiceRegistration remoteServiceRegistration, final Map properties) { - return copyProperties(copyNonECFProperties(remoteServiceRegistration, new HashMap()),properties); - } - public static Map mergeProperties(final Map source, final Map overrides) { diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java index 1226c0ec9..d93cc8abe 100644 --- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java +++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java @@ -39,6 +39,7 @@ import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator; import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.DebugOptions; import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.LogUtility; import org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.PropertiesUtil; +import org.eclipse.ecf.remoteservice.IExtendedRemoteServiceRegistration; import org.eclipse.ecf.remoteservice.IOSGiRemoteServiceContainerAdapter; import org.eclipse.ecf.remoteservice.IRemoteService; import org.eclipse.ecf.remoteservice.IRemoteServiceContainer; @@ -2024,8 +2025,13 @@ public class RemoteServiceAdmin implements .put(org.osgi.service.remoteserviceadmin.RemoteConstants.ENDPOINT_SERVICE_ID, remoteRegistration .getProperty(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID)); - - endpointDescriptionProperties = PropertiesUtil.mergeProperties(remoteRegistration, endpointDescriptionProperties); + + if (remoteRegistration instanceof IExtendedRemoteServiceRegistration) { + IExtendedRemoteServiceRegistration iersr = (IExtendedRemoteServiceRegistration) remoteRegistration; + Map extraProperties = iersr.getExtraProperties(); + endpointDescriptionProperties = PropertiesUtil.mergeProperties(endpointDescriptionProperties, extraProperties); + + } EndpointDescription endpointDescription = new EndpointDescription( serviceReference, endpointDescriptionProperties); -- cgit v1.2.3