Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-06-17 05:58:56 +0000
committerslewis2005-06-17 05:58:56 +0000
commit7265614805edc60d6ece67426126d22bf5995ec3 (patch)
tree0654a75d2e5466558bd35f843580ea4ccc1b8349
parentd50d3d68d8a0124476e3aa842b8a659c925b8043 (diff)
downloadorg.eclipse.ecf-7265614805edc60d6ece67426126d22bf5995ec3.tar.gz
org.eclipse.ecf-7265614805edc60d6ece67426126d22bf5995ec3.tar.xz
org.eclipse.ecf-7265614805edc60d6ece67426126d22bf5995ec3.zip
Added to discovery startup capabilities
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java2
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java119
2 files changed, 68 insertions, 53 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java
index c96b29288..f27f043f9 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java
@@ -88,8 +88,8 @@ public class ClientPlugin extends AbstractUIPlugin implements
public void start(BundleContext context) throws Exception {
super.start(context);
setPreferenceDefaults();
- serverStartup = new ServerStartup();
discoveryStartup = new DiscoveryStartup();
+ serverStartup = new ServerStartup();
}
/**
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java
index 2efd2a633..c1965ccb4 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java
@@ -4,6 +4,8 @@ import java.net.InetAddress;
import java.net.URI;
import java.util.Properties;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.core.ISharedObjectContainer;
import org.eclipse.ecf.core.SharedObjectContainerFactory;
import org.eclipse.ecf.core.identity.ID;
@@ -13,26 +15,34 @@ import org.eclipse.ecf.discovery.IServiceEvent;
import org.eclipse.ecf.discovery.IServiceListener;
import org.eclipse.ecf.discovery.IServiceTypeListener;
import org.eclipse.ecf.discovery.ServiceInfo;
+import org.eclipse.ecf.ui.views.DiscoveryView;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
public class DiscoveryStartup {
public static final String DISCOVERY_CONTAINER = "org.eclipse.ecf.provider.jmdns.container.JmDNS";
- public static final String TCPSERVER_DISCOVERY_TYPE = "_http._tcp._local.";
+ public static final String TCPSERVER_DISCOVERY_TYPE = "_ecftcp._tcp.local.";
+ public static final String PROP_PROTOCOL_NAME = "protocol";
+ public static final String PROP_CONTAINER_TYPE_NAME = "containertype";
+ public static final String PROP_CONTAINER_TYPE_VALUE = Client.GENERIC_CONTAINER_CLIENT_NAME;
+ public static final String PROP_PW_REQ_NAME = "pwrequired";
+ public static final String PROP_PW_REQ_VALUE = "false";
+ public static final String PROP_DEF_USER_NAME = "defaultuser";
+ public static final String PROP_DEF_USER_VALUE = "guest";
+ public static final String PROP_PATH_NAME = "path";
+ public static final int SVC_DEF_WEIGHT = 0;
+ public static final int SVC_DEF_PRIORITY = 0;
static IDiscoveryContainer discovery = null;
-
+ protected DiscoveryView discoveryView = null;
+
static String serviceTypes[] = new String[] {
- "_http._tcp.local.",
- "_ftp._tcp.local.",
- "_tftp._tcp.local.",
- "_ssh._tcp.local.",
- "_smb._tcp.local.",
- "_printer._tcp.local.",
- "_airport._tcp.local.",
- "_afpovertcp._tcp.local.",
- "_ichat._tcp.local.",
- "_eppc._tcp.local.",
- "_presence._tcp.local."
+ TCPSERVER_DISCOVERY_TYPE,
+ "_http._tcp.local."
};
public static IDiscoveryContainer getDefault() {
@@ -68,33 +78,42 @@ public class DiscoveryStartup {
}
- protected void setupDiscoveryContainer(final IDiscoveryContainer dc) {
- dc.addServiceTypeListener(new IServiceTypeListener() {
- public void serviceTypeAdded(IServiceEvent event) {
- System.out.println("serviceTypeAdded("+event.getServiceInfo());
- ServiceID svcID = event.getServiceInfo().getServiceID();
- dc.addServiceListener(svcID,
- new IServiceListener() {
- public void serviceAdded(IServiceEvent evt) {
- System.out.println("serviceAdded(" + evt.getServiceInfo());
- dc.requestServiceInfo(evt.getServiceInfo()
- .getServiceID(), 3000);
- }
-
- public void serviceRemoved(IServiceEvent evt) {
- System.out.println("serviceRemoved(" + evt.getServiceInfo());
- }
-
- public void serviceResolved(IServiceEvent evt) {
- System.out.println("serviceResolved(" + evt.getServiceInfo());
- }
- });
- dc.registerServiceType(svcID);
- }
- });
-
+ protected void setupDiscoveryContainer(final IDiscoveryContainer dc) {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ IWorkbenchWindow ww = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow();
+ IWorkbenchPage wp = ww.getActivePage();
+ IViewPart view = wp.showView("org.eclipse.ecf.ui.view.discoveryview");
+ discoveryView = (DiscoveryView) view;
+ discoveryView.setDiscoveryContainer(dc);
+ } catch (Exception e) {
+ IStatus status = new Status(IStatus.ERROR,ClientPlugin.PLUGIN_ID,IStatus.OK,"Exception showing presence view",e);
+ ClientPlugin.getDefault().getLog().log(status);
+ }
+ }
+ });
+ if (discoveryView != null) {
+ dc.addServiceTypeListener(new IServiceTypeListener() {
+ public void serviceTypeAdded(IServiceEvent event) {
+ ServiceID svcID = event.getServiceInfo().getServiceID();
+ discoveryView.addServiceTypeInfo(svcID.getServiceType());
+ dc.addServiceListener(event.getServiceInfo().getServiceID(), new IServiceListener() {
+ public void serviceAdded(IServiceEvent evt) {
+ discoveryView.addServiceInfo(evt.getServiceInfo().getServiceID());
+ dc.requestServiceInfo(evt.getServiceInfo().getServiceID(),3000);
+ }
+ public void serviceRemoved(IServiceEvent evt) {
+ discoveryView.removeServiceInfo(evt.getServiceInfo());
+ }
+ public void serviceResolved(IServiceEvent evt) {
+ discoveryView.addServiceInfo(evt.getServiceInfo());
+ }});
+ dc.registerServiceType(svcID);
+ }});
+ }
}
-
public static void unregisterServerType() {
if (discovery != null) {
discovery.unregisterAllServices();
@@ -102,29 +121,25 @@ public class DiscoveryStartup {
}
public static void registerServer(ID id) {
if (discovery != null) {
- // Make service info
String name = id.getName();
try {
URI uri = id.toURI();
String path = uri.getPath();
Properties props = new Properties();
- props.setProperty("id", name);
- props.setProperty("passwordrequired", "false");
- props.setProperty("defaultuser", "guest");
- props.setProperty("path", path);
- // Get localhost InetAddress
+ String protocol = uri.getScheme();
+ props.setProperty(PROP_PROTOCOL_NAME,protocol);
+ props.setProperty(PROP_PW_REQ_NAME, PROP_PW_REQ_VALUE);
+ props.setProperty(PROP_DEF_USER_NAME, PROP_DEF_USER_VALUE);
+ props.setProperty(PROP_PATH_NAME, path);
InetAddress host = InetAddress.getByName(uri.getHost());
int port = uri.getPort();
- ServiceID svcID = new ServiceID(TCPSERVER_DISCOVERY_TYPE,"foo");
- ServiceInfo svcinfo = new ServiceInfo(host, svcID, port, 0,
- 0, props);
- // Then register service
- System.out.println("registering serviceinfo "+svcinfo);
- discovery.registerService(svcinfo);
+ String svcName = System.getProperty("user.name")+"."+protocol;
+ discovery.registerService(new ServiceInfo(host, new ServiceID(TCPSERVER_DISCOVERY_TYPE,svcName), port, SVC_DEF_PRIORITY,
+ SVC_DEF_WEIGHT, props));
} catch (Exception e) {
ClientPlugin.log("Exception registering server " + name, e);
}
- }
+ }
}
public static void unregisterServer(ISharedObjectContainer container) {

Back to the top