Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/ECFEventHookImpl.java')
-rw-r--r--compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/ECFEventHookImpl.java150
1 files changed, 104 insertions, 46 deletions
diff --git a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/ECFEventHookImpl.java b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/ECFEventHookImpl.java
index 2af80f3d2..e6125c66f 100644
--- a/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/ECFEventHookImpl.java
+++ b/compendium/bundles/org.eclipse.ecf.osgi.services.distribution/src/org/eclipse/ecf/internal/osgi/services/distribution/ECFEventHookImpl.java
@@ -1,12 +1,12 @@
/*******************************************************************************
-* Copyright (c) 2009 EclipseSource and others. All rights reserved. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License v1.0 which accompanies this distribution, and is
-* available at http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* EclipseSource - initial API and implementation
-******************************************************************************/
+ * Copyright (c) 2009 EclipseSource and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ ******************************************************************************/
package org.eclipse.ecf.internal.osgi.services.distribution;
import java.util.ArrayList;
@@ -32,26 +32,39 @@ public class ECFEventHookImpl extends AbstractEventHookImpl {
}
protected void registerRemoteService(ServiceReference serviceReference,
- String[] remoteInterfaces, String [] remoteConfigurationType) {
- if (remoteConfigurationType == null || remoteConfigurationType.length == 0) {
- trace("registerRemoteService","remoteConfigurationType is null or empty so does not match ECF remote configuration type");
+ String[] remoteInterfaces, String[] remoteConfigurationType) {
+ if (remoteConfigurationType == null
+ || remoteConfigurationType.length == 0) {
+ trace(
+ "registerRemoteService",
+ "remoteConfigurationType is null or empty so does not match ECF remote configuration type");
return;
}
- // If the first remote configuration type value is not for us, then we don't do anything with it
- if (!remoteConfigurationType[0].equals(ServiceConstants.ECF_REMOTE_CONFIGURATION_TYPE)) {
- trace("registerRemoteService","remoteConfigurationType not ECF type");
+ // If the first remote configuration type value is not for us, then we
+ // don't do anything with it
+ if (!remoteConfigurationType[0]
+ .equals(ServiceConstants.ECF_REMOTE_CONFIGURATION_TYPE)) {
+ trace("registerRemoteService",
+ "remoteConfigurationType not ECF type");
return;
}
Map ecfConfiguration = parseECFConfigurationType(remoteConfigurationType);
- // We get the list of ECF distribution providers (IRemoteServiceContainerAdapters)
- IRemoteServiceContainerAdapter [] rscas = findRemoteServiceContainerAdapters(serviceReference,ecfConfiguration);
- // If there are relevant ones then actually register a remote service with them.
+ // We get the list of ECF distribution providers
+ // (IRemoteServiceContainerAdapters)
+ IRemoteServiceContainerAdapter[] rscas = findRemoteServiceContainerAdapters(
+ serviceReference, ecfConfiguration);
+ // If there are relevant ones then actually register a remote service
+ // with them.
if (rscas == null) {
- trace("registerRemoteService","No remote service container adapters found for serviceReference="+serviceReference+" and configuration="+ecfConfiguration);
+ trace("registerRemoteService",
+ "No remote service container adapters found for serviceReference="
+ + serviceReference + " and configuration="
+ + ecfConfiguration);
return;
}
- // Now actually register remote service with remote service container adapters
- registerRemoteService(rscas,remoteInterfaces,serviceReference);
+ // Now actually register remote service with remote service container
+ // adapters
+ registerRemoteService(rscas, remoteInterfaces, serviceReference);
}
private Map parseECFConfigurationType(String[] remoteConfigurationType) {
@@ -60,59 +73,104 @@ public class ECFEventHookImpl extends AbstractEventHookImpl {
return results;
}
- protected void registerRemoteService(IRemoteServiceContainerAdapter[] rscas, String[] remoteInterfaces, ServiceReference sr) {
- for(int i=0; i < rscas.length; i++) {
- IRemoteServiceRegistration remoteRegistration = rscas[i].registerRemoteService(remoteInterfaces, getService(sr), createPropertiesForRemoteService(rscas[i],remoteInterfaces,sr));
- trace("registerRemoteService","REGISTERED REMOTE SERVICE serviceReference="+sr+" remoteRegistration="+remoteRegistration);
- fireRemoteServiceRegistered(sr,remoteRegistration);
+ protected void registerRemoteService(
+ IRemoteServiceContainerAdapter[] rscas, String[] remoteInterfaces,
+ ServiceReference sr) {
+ for (int i = 0; i < rscas.length; i++) {
+ IRemoteServiceRegistration remoteRegistration = rscas[i]
+ .registerRemoteService(remoteInterfaces, getService(sr),
+ createPropertiesForRemoteService(rscas[i],
+ remoteInterfaces, sr));
+ trace("registerRemoteService",
+ "REGISTERED REMOTE SERVICE serviceReference=" + sr
+ + " remoteRegistration=" + remoteRegistration);
+ fireRemoteServiceRegistered(sr, remoteRegistration);
}
}
-
+
protected Dictionary createPropertiesForRemoteService(
IRemoteServiceContainerAdapter iRemoteServiceContainerAdapter,
String[] remotes, ServiceReference sr) {
- String [] propKeys = sr.getPropertyKeys();
+ String[] propKeys = sr.getPropertyKeys();
Properties newProps = new Properties();
- for(int i=0; i < propKeys.length; i++) {
+ for (int i = 0; i < propKeys.length; i++) {
newProps.put(propKeys[i], sr.getProperty(propKeys[i]));
}
return newProps;
}
- protected IRemoteServiceContainerAdapter[] findRemoteServiceContainerAdapters(ServiceReference serviceReference, Map ecfConfiguration) {
- IContainerManager containerManager = Activator.getDefault().getContainerManager();
- return (containerManager != null)?getRSCAsFromContainers(containerManager.getAllContainers(),serviceReference,ecfConfiguration):null;
+ protected IRemoteServiceContainerAdapter[] findRemoteServiceContainerAdapters(
+ ServiceReference serviceReference, Map ecfConfiguration) {
+ IContainerManager containerManager = Activator.getDefault()
+ .getContainerManager();
+ return (containerManager != null) ? getRSCAsFromContainers(
+ containerManager.getAllContainers(), serviceReference,
+ ecfConfiguration) : null;
}
private IRemoteServiceContainerAdapter[] getRSCAsFromContainers(
- IContainer[] containers, ServiceReference serviceReference, Map ecfConfiguration) {
- if (containers == null) return null;
+ IContainer[] containers, ServiceReference serviceReference,
+ Map ecfConfiguration) {
+ if (containers == null)
+ return null;
List rscas = new ArrayList();
- for(int i=0; i < containers.length; i++) {
- IRemoteServiceContainerAdapter rsca = (IRemoteServiceContainerAdapter) containers[i].getAdapter(IRemoteServiceContainerAdapter.class);
+ for (int i = 0; i < containers.length; i++) {
+ IRemoteServiceContainerAdapter rsca = (IRemoteServiceContainerAdapter) containers[i]
+ .getAdapter(IRemoteServiceContainerAdapter.class);
if (rsca == null) {
- Trace.trace(Activator.PLUGIN_ID, DebugOptions.DEBUG, this.getClass(), "getRCSAsFromContainers", "Container="+containers[i]+" not an IRemoteServiceContainerAdapter. Excluding rsca="+rsca+" from remote registration");
+ Trace
+ .trace(
+ Activator.PLUGIN_ID,
+ DebugOptions.DEBUG,
+ this.getClass(),
+ "getRCSAsFromContainers",
+ "Container="
+ + containers[i]
+ + " not an IRemoteServiceContainerAdapter. Excluding rsca="
+ + rsca + " from remote registration");
continue;
- } else if (includeContainer(containers[i],rsca,serviceReference,ecfConfiguration)) rscas.add(rsca);
+ } else if (includeContainer(containers[i], rsca, serviceReference,
+ ecfConfiguration))
+ rscas.add(rsca);
}
- return (IRemoteServiceContainerAdapter[]) rscas.toArray(new IRemoteServiceContainerAdapter[] {});
+ return (IRemoteServiceContainerAdapter[]) rscas
+ .toArray(new IRemoteServiceContainerAdapter[] {});
}
-
- protected boolean includeContainer(IContainer container, IRemoteServiceContainerAdapter rsca, ServiceReference serviceReference, Map ecfConfiguration) {
- Object cID = serviceReference.getProperty(org.eclipse.ecf.remoteservice.Constants.REMOTE_SERVICE_CONTAINER_ID);
+
+ protected boolean includeContainer(IContainer container,
+ IRemoteServiceContainerAdapter rsca,
+ ServiceReference serviceReference, Map ecfConfiguration) {
+ Object cID = serviceReference
+ .getProperty(org.eclipse.ecf.remoteservice.Constants.REMOTE_SERVICE_CONTAINER_ID);
if (cID == null || !(cID instanceof ID)) {
- Trace.trace(Activator.PLUGIN_ID, DebugOptions.DEBUG, this.getClass(), "includeContainer", "serviceReference="+serviceReference+" does not set remote service container id service property. INCLUDING containerID="+container.getID()+" in remote registration");
+ Trace
+ .trace(
+ Activator.PLUGIN_ID,
+ DebugOptions.DEBUG,
+ this.getClass(),
+ "includeContainer",
+ "serviceReference="
+ + serviceReference
+ + " does not set remote service container id service property. INCLUDING containerID="
+ + container.getID()
+ + " in remote registration");
return true;
}
ID containerID = (ID) cID;
if (container.getID().equals(containerID)) {
- Trace.trace(Activator.PLUGIN_ID, DebugOptions.DEBUG, this.getClass(), "includeContainer", "serviceReference="+serviceReference+" has MATCHING container id="+containerID+". INCLUDING rsca="+rsca+" in remote registration");
+ Trace.trace(Activator.PLUGIN_ID, DebugOptions.DEBUG, this
+ .getClass(), "includeContainer", "serviceReference="
+ + serviceReference + " has MATCHING container id="
+ + containerID + ". INCLUDING rsca=" + rsca
+ + " in remote registration");
return true;
}
- Trace.trace(Activator.PLUGIN_ID, DebugOptions.DEBUG, this.getClass(), "includeContainer", "serviceReference="+serviceReference+" has non-matching container id="+containerID+". EXCLUDING rsca="+rsca+" in remote registration");
+ Trace.trace(Activator.PLUGIN_ID, DebugOptions.DEBUG, this.getClass(),
+ "includeContainer", "serviceReference=" + serviceReference
+ + " has non-matching container id=" + containerID
+ + ". EXCLUDING rsca=" + rsca
+ + " in remote registration");
return false;
}
-
-
}

Back to the top