diff options
| author | slewis | 2005-06-17 05:58:56 +0000 |
|---|---|---|
| committer | slewis | 2005-06-17 05:58:56 +0000 |
| commit | 7265614805edc60d6ece67426126d22bf5995ec3 (patch) | |
| tree | 0654a75d2e5466558bd35f843580ea4ccc1b8349 | |
| parent | d50d3d68d8a0124476e3aa842b8a659c925b8043 (diff) | |
| download | org.eclipse.ecf-7265614805edc60d6ece67426126d22bf5995ec3.tar.gz org.eclipse.ecf-7265614805edc60d6ece67426126d22bf5995ec3.tar.xz org.eclipse.ecf-7265614805edc60d6ece67426126d22bf5995ec3.zip | |
Added to discovery startup capabilities
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) { |
