Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2007-09-05 23:24:12 +0000
committerslewis2007-09-05 23:24:12 +0000
commitb290d24f74ad1998df3a48ac39573363d17f731e (patch)
tree9d89ff61b9bd2957309f468c34f55c6a9e30dbe8
parent157cba3e616cb32a28ed3f9338f348441d7a00ad (diff)
downloadorg.eclipse.ecf-b290d24f74ad1998df3a48ac39573363d17f731e.tar.gz
org.eclipse.ecf-b290d24f74ad1998df3a48ac39573363d17f731e.tar.xz
org.eclipse.ecf-b290d24f74ad1998df3a48ac39573363d17f731e.zip
Changes to discovery API and implementations as per bug 200791 and bug 202036
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java3
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java56
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java28
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java89
4 files changed, 136 insertions, 40 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java
index 59176475c..b74dd9dcf 100755
--- a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java
+++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java
@@ -23,8 +23,9 @@ public class AllTests {
TestSuite suite = new TestSuite(
"Test for org.eclipse.ecf.tests.discovery");
//$JUnit-BEGIN$
- suite.addTestSuite(DiscoveryTest.class);
suite.addTestSuite(DiscoveryServiceTest.class);
+ suite.addTestSuite(DiscoveryTest.class);
+ suite.addTestSuite(JMDNSNamespaceTest.class);
//$JUnit-END$
return suite;
}
diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java
index 5edb10170..d5e2418f0 100755
--- a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java
@@ -22,23 +22,23 @@ import org.eclipse.ecf.discovery.IServiceTypeListener;
import org.eclipse.ecf.discovery.ServiceInfo;
import org.eclipse.ecf.discovery.ServiceProperties;
import org.eclipse.ecf.discovery.identity.IServiceID;
-import org.eclipse.ecf.discovery.identity.ServiceID;
+import org.eclipse.ecf.discovery.identity.ServiceIDFactory;
import org.eclipse.ecf.discovery.service.IDiscoveryService;
public class DiscoveryServiceTest extends TestCase {
-
+
static final String TEST_SERVICE_TYPE = "_ecftcp._tcp.local.";
static final String TEST_PROTOCOL = "ecftcp";
static final String TEST_HOST = "localhost";
static final int TEST_PORT = 3282;
static final String TEST_SERVICE_NAME = System.getProperty("user.name") + "." + TEST_PROTOCOL;
-
+
protected IDiscoveryService discoveryInstance = null;
-
+
protected IDiscoveryService getDiscoveryInstance() {
return Activator.getDefault().getDiscoveryService();
}
-
+
/*
* (non-Javadoc)
*
@@ -48,7 +48,7 @@ public class DiscoveryServiceTest extends TestCase {
super.setUp();
discoveryInstance = getDiscoveryInstance();
}
-
+
/*
* (non-Javadoc)
*
@@ -60,30 +60,29 @@ public class DiscoveryServiceTest extends TestCase {
public void testAddServiceTypeListener() throws Exception {
assertNotNull(discoveryInstance);
- discoveryInstance
- .addServiceTypeListener(new CollabServiceTypeListener());
+ discoveryInstance.addServiceTypeListener(new CollabServiceTypeListener());
}
-
+
public void testRegisterServiceType() throws Exception {
- discoveryInstance.registerServiceType(TEST_SERVICE_TYPE);
- System.out.println("registered service type "+TEST_SERVICE_TYPE+" waiting 5s");
+ final IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(discoveryInstance.getServicesNamespace(), TEST_SERVICE_TYPE);
+ discoveryInstance.registerServiceType(serviceID.getServiceTypeID());
+ System.out.println("registered service type " + TEST_SERVICE_TYPE + " waiting 5s");
Thread.sleep(5000);
}
-
+
public void testRegisterService() throws Exception {
- Properties props = new Properties();
- String protocol = TEST_PROTOCOL;
- InetAddress host = InetAddress.getByName(TEST_HOST);
- int port = TEST_PORT;
- String svcName = System.getProperty("user.name") + "."
- + protocol;
- ServiceInfo svcInfo = new ServiceInfo(host, new ServiceID(
- TEST_SERVICE_TYPE, svcName), port,
- 0, 0, new ServiceProperties(props));
+ final Properties props = new Properties();
+ final String protocol = TEST_PROTOCOL;
+ final InetAddress host = InetAddress.getByName(TEST_HOST);
+ final int port = TEST_PORT;
+ final String svcName = System.getProperty("user.name") + "." + protocol;
+ final IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(discoveryInstance.getServicesNamespace(), TEST_SERVICE_TYPE, svcName);
+ final ServiceInfo svcInfo = new ServiceInfo(host, serviceID, port, 0, 0, new ServiceProperties(props));
discoveryInstance.registerService(svcInfo);
}
+
public final void testDiscovery() throws Exception {
-
+
System.out.println("Discovery started. Waiting 10s for discovered services");
Thread.sleep(10000);
}
@@ -91,21 +90,22 @@ public class DiscoveryServiceTest extends TestCase {
class CollabServiceTypeListener implements IServiceTypeListener {
public void serviceTypeAdded(IServiceEvent event) {
System.out.println("serviceTypeAdded(" + event + ")");
- IServiceID svcID = event.getServiceInfo().getServiceID();
- discoveryInstance.addServiceListener(svcID.getServiceType(),
- new CollabServiceListener());
- discoveryInstance.registerServiceType(svcID.getServiceType());
+ final IServiceID svcID = event.getServiceInfo().getServiceID();
+ discoveryInstance.addServiceListener(svcID.getServiceTypeID(), new CollabServiceListener());
+ discoveryInstance.registerServiceType(svcID.getServiceTypeID());
}
}
+
class CollabServiceListener implements IServiceListener {
public void serviceAdded(IServiceEvent event) {
System.out.println("serviceAdded(" + event + ")");
- discoveryInstance.requestServiceInfo(event.getServiceInfo()
- .getServiceID(), 3000);
+ discoveryInstance.requestServiceInfo(event.getServiceInfo().getServiceID(), 3000);
}
+
public void serviceRemoved(IServiceEvent event) {
System.out.println("serviceRemoved(" + event + ")");
}
+
public void serviceResolved(IServiceEvent event) {
System.out.println("serviceResolved(" + event + ")");
}
diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java
index 8b8ee4d7c..e70ff77b1 100755
--- a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java
@@ -18,6 +18,8 @@ import junit.framework.TestCase;
import org.eclipse.ecf.core.ContainerFactory;
import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.Namespace;
import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter;
import org.eclipse.ecf.discovery.IServiceEvent;
import org.eclipse.ecf.discovery.IServiceListener;
@@ -25,7 +27,7 @@ import org.eclipse.ecf.discovery.IServiceTypeListener;
import org.eclipse.ecf.discovery.ServiceInfo;
import org.eclipse.ecf.discovery.ServiceProperties;
import org.eclipse.ecf.discovery.identity.IServiceID;
-import org.eclipse.ecf.discovery.identity.ServiceID;
+import org.eclipse.ecf.discovery.identity.ServiceIDFactory;
public class DiscoveryTest extends TestCase {
@@ -63,18 +65,22 @@ public class DiscoveryTest extends TestCase {
}
public void testRegisterServiceType() throws Exception {
- discoveryContainer.registerServiceType(TEST_SERVICE_TYPE);
+ final IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(discoveryContainer.getServicesNamespace(), TEST_SERVICE_TYPE);
+ discoveryContainer.registerServiceType(serviceID.getServiceTypeID());
System.out.println("registered service type " + TEST_SERVICE_TYPE + " waiting 5s");
Thread.sleep(5000);
}
public void testRegisterService() throws Exception {
- Properties props = new Properties();
- String protocol = TEST_PROTOCOL;
- InetAddress host = InetAddress.getByName(TEST_HOST);
- int port = TEST_PORT;
- String svcName = System.getProperty("user.name") + "." + protocol;
- ServiceInfo svcInfo = new ServiceInfo(host, new ServiceID(TEST_SERVICE_TYPE, svcName), port, 0, 0, new ServiceProperties(props));
+ final Properties props = new Properties();
+ final String protocol = TEST_PROTOCOL;
+ final InetAddress host = InetAddress.getByName(TEST_HOST);
+ final int port = TEST_PORT;
+ final String svcName = System.getProperty("user.name") + "." + protocol;
+ // XXX change this to create IServiceID in appropriate way
+ final Namespace ns = IDFactory.getDefault().getNamespaceByName("ecf.namespace.jmdns");
+ final IServiceID serviceID = (IServiceID) IDFactory.getDefault().createID(ns, new Object[] {TEST_SERVICE_TYPE, svcName});
+ final ServiceInfo svcInfo = new ServiceInfo(host, serviceID, port, 0, 0, new ServiceProperties(props));
discoveryContainer.registerService(svcInfo);
}
@@ -87,9 +93,9 @@ public class DiscoveryTest extends TestCase {
class CollabServiceTypeListener implements IServiceTypeListener {
public void serviceTypeAdded(IServiceEvent event) {
System.out.println("serviceTypeAdded(" + event + ")");
- IServiceID svcID = event.getServiceInfo().getServiceID();
- discoveryContainer.addServiceListener(svcID.getServiceType(), new CollabServiceListener());
- discoveryContainer.registerServiceType(svcID.getServiceType());
+ final IServiceID svcID = event.getServiceInfo().getServiceID();
+ discoveryContainer.addServiceListener(svcID.getServiceTypeID(), new CollabServiceListener());
+ discoveryContainer.registerServiceType(svcID.getServiceTypeID());
}
}
diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java
new file mode 100755
index 000000000..ea0fe8ee2
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Versant Corp.
+ * 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:
+ * Markus Kuppe (mkuppe <at> versant <dot> com) - initial API and implementation
+ ******************************************************************************/
+
+package org.eclipse.ecf.tests.discovery;
+
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+import org.eclipse.ecf.core.identity.IDCreateException;
+import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.discovery.identity.IServiceID;
+import org.eclipse.ecf.discovery.identity.IServiceTypeID;
+import org.eclipse.ecf.discovery.identity.ServiceIDFactory;
+
+/**
+ *
+ */
+public class JMDNSNamespaceTest extends TestCase {
+ private IServiceID createID(String serviceType, String serviceName) {
+ try {
+ return createIDWithEx(serviceType, serviceName);
+ } catch (final IDCreateException e) {
+ fail(e.getMessage());
+ } catch (final ClassCastException e) {
+ fail(e.getMessage());
+ }
+ return null;
+ }
+
+ private IServiceID createIDWithEx(String serviceType, String serviceName) throws IDCreateException {
+ return ServiceIDFactory.getDefault().createServiceID(IDFactory.getDefault().getNamespaceByName("ecf.namespace.jmdns"), serviceType, serviceName);
+ }
+
+ public void testJMDNSServiceTypeID() {
+ final IServiceID sid = createID(DiscoveryServiceTest.TEST_SERVICE_TYPE, null);
+ final IServiceTypeID stid = sid.getServiceTypeID();
+ assertEquals(stid.getName(), DiscoveryServiceTest.TEST_SERVICE_TYPE);
+ assertEquals(stid.getNamingAuthority(), "IANA");
+ assertTrue(Arrays.equals(stid.getProtocols(), new String[] {"tcp"}));
+ assertTrue(Arrays.equals(stid.getScopes(), new String[] {"local"}));
+ assertTrue(Arrays.equals(stid.getServices(), new String[] {"ecftcp"}));
+ }
+
+ public void testJMDNSServiceTypeID2() {
+ final String serviceType = "_service._dns-srv._udp.ecf.eclipse.org.";
+ final IServiceID sid = createID(serviceType, null);
+ final IServiceTypeID stid = sid.getServiceTypeID();
+ assertEquals(stid.getName(), serviceType);
+ assertEquals(stid.getNamingAuthority(), "IANA");
+ assertTrue(Arrays.equals(stid.getProtocols(), new String[] {"udp"}));
+ assertTrue(Arrays.equals(stid.getScopes(), new String[] {"ecf.eclipse.org"}));
+ assertTrue(Arrays.equals(stid.getServices(), new String[] {"service", "dns-srv"}));
+ }
+
+ public void testJMDNSServiceTypeIDWithNullString() {
+ try {
+ createIDWithEx(null, null);
+ } catch (final IDCreateException ex) {
+ return;
+ }
+ fail();
+ }
+
+ public void testJMDNSServiceTypeIDWithEmptyString() {
+ try {
+ createIDWithEx("", null);
+ } catch (final IDCreateException ex) {
+ return;
+ }
+ fail();
+ }
+
+ /*
+ public void testJMDNSServiceTypeIDWithIPv6() {
+ final String serviceType = "1.0.0.0.0.c.e.f.f.f.6.5.0.5.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa.";
+ fail("Not implemented yet, don't know how to handle this service type " + serviceType + " if it even is one");
+ }
+ */
+
+}

Back to the top