Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2008-01-26 05:36:40 +0000
committerslewis2008-01-26 05:36:40 +0000
commit605fd4f316ed519767569d511159a0bf49590a3a (patch)
tree05562a46f75c24a503fec47cebfad2b51a62e2cb /framework/bundles/org.eclipse.ecf.discovery
parent6e99e78320340784640ca23b0320d9a6c09366fe (diff)
downloadorg.eclipse.ecf-605fd4f316ed519767569d511159a0bf49590a3a.tar.gz
org.eclipse.ecf-605fd4f316ed519767569d511159a0bf49590a3a.tar.xz
org.eclipse.ecf-605fd4f316ed519767569d511159a0bf49590a3a.zip
Refactoring of DiscoveryView and associated classes. This makes the DiscoveryView much simpler, and removes all discovery code from collab example app. Also formatted and did string externalization for org.eclipse.ecf.discovery.ui classes. Added extension point org.eclipse.ecf.discovery.ui.serviceAccessHandler extension point so that plugins can add service access handlers to the context menu for individual service entries in the discovery view.v20080125-2139
Diffstat (limited to 'framework/bundles/org.eclipse.ecf.discovery')
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java31
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties2
4 files changed, 35 insertions, 2 deletions
diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java
index 740359bb1..6c5a0f0ab 100644
--- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java
+++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/ServiceInfo.java
@@ -10,11 +10,12 @@
package org.eclipse.ecf.discovery;
import java.io.Serializable;
-import java.net.URI;
+import java.net.*;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IAdapterManager;
import org.eclipse.ecf.discovery.identity.IServiceID;
import org.eclipse.ecf.internal.discovery.DiscoveryPlugin;
+import org.eclipse.ecf.internal.discovery.Messages;
/**
* Base implementation of {@link IServiceInfo}. Subclasses
@@ -26,6 +27,7 @@ public class ServiceInfo implements IServiceInfo, Serializable, IContainerServic
public static final int DEFAULT_PRIORITY = 0;
public static final int DEFAULT_WEIGHT = 0;
+ public static final String DEFAULT_PROTOCOL = "xxxxx"; //$NON-NLS-1$
protected URI uri = null;
@@ -51,6 +53,31 @@ public class ServiceInfo implements IServiceInfo, Serializable, IContainerServic
this.properties = (props == null) ? new ServiceProperties() : props;
}
+ public ServiceInfo(String host, int port, IServiceID serviceID, int priority, int weight, IServiceProperties props) {
+ try {
+ if (host == null)
+ host = InetAddress.getLocalHost().getHostAddress();
+ uri = new URI(DEFAULT_PROTOCOL, null, host, port, null, null, null);
+ } catch (URISyntaxException e) {
+ throw new IllegalArgumentException(Messages.ServiceInfo_EXCEPTION_INVALID_HOST_ARG);
+ } catch (UnknownHostException e) {
+ throw new IllegalArgumentException(Messages.ServiceInfo_EXCEPTION_NO_LOCALHOST);
+ }
+ this.serviceID = serviceID;
+ Assert.isNotNull(serviceID);
+ this.priority = priority;
+ this.weight = weight;
+ this.properties = (props == null) ? new ServiceProperties() : props;
+ }
+
+ public ServiceInfo(String host, int port, IServiceID serviceID, IServiceProperties props) {
+ this(host, port, serviceID, DEFAULT_PRIORITY, DEFAULT_WEIGHT, props);
+ }
+
+ public ServiceInfo(String host, int port, IServiceID serviceID) {
+ this(host, port, serviceID, new ServiceProperties());
+ }
+
public ServiceInfo(URI anURI, IServiceID serviceID, IServiceProperties props) {
this(anURI, serviceID, DEFAULT_PRIORITY, DEFAULT_WEIGHT, props);
}
@@ -147,6 +174,8 @@ public class ServiceInfo implements IServiceInfo, Serializable, IContainerServic
if (connectTarget != null)
return connectTarget;
String t = properties.getPropertyString(IDiscoveryContainerAdapter.CONTAINER_CONNECT_TARGET_PROTOCOL);
+ if (t == null)
+ return null;
StringBuffer target = new StringBuffer(t);
String auth = uri.getAuthority();
String path = properties.getPropertyString(IDiscoveryContainerAdapter.CONTAINER_CONNECT_TARGET_PATH);
diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java
index 7f7ba48c2..27b359947 100644
--- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java
+++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/discovery/service/IDiscoveryService.java
@@ -20,5 +20,5 @@ import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter;
*/
public interface IDiscoveryService extends IDiscoveryContainerAdapter {
// All methods provided by superclass
-
+ public static final String CONTAINER_ID = "org.eclipse.ecf.discovery.containerID"; //$NON-NLS-1$
}
diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java
index db397ef0a..e26822594 100644
--- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java
+++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/Messages.java
@@ -18,6 +18,8 @@ import org.eclipse.osgi.util.NLS;
*/
public class Messages extends NLS {
private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.discovery.messages"; //$NON-NLS-1$
+ public static String ServiceInfo_EXCEPTION_INVALID_HOST_ARG;
+ public static String ServiceInfo_EXCEPTION_NO_LOCALHOST;
public static String ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_NULL;
public static String ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_PARSEABLE;
static {
diff --git a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties
index 3ab8c19b9..e25eb48f2 100644
--- a/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties
+++ b/framework/bundles/org.eclipse.ecf.discovery/src/org/eclipse/ecf/internal/discovery/messages.properties
@@ -1,2 +1,4 @@
+ServiceInfo_EXCEPTION_INVALID_HOST_ARG=Invalid host argument
+ServiceInfo_EXCEPTION_NO_LOCALHOST=Cannot get localhost address
ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_NULL=ServiceTypeID cannot be null
ServiceTypeID_EXCEPTION_SERVICE_TYPE_ID_NOT_PARSEABLE=ServiceTypeID cannot be parsed

Back to the top