diff options
author | mkuppe | 2009-02-25 14:12:15 +0000 |
---|---|---|
committer | mkuppe | 2009-02-25 14:12:15 +0000 |
commit | adaaf14a4f73b9f2c86d0f802cee56d406289a30 (patch) | |
tree | b78789b03651094b49bb6b0225fa9824ebb71308 | |
parent | d255394a8d4a304a6e0e022299d9de07cf4e1dda (diff) | |
download | org.eclipse.ecf-adaaf14a4f73b9f2c86d0f802cee56d406289a30.tar.gz org.eclipse.ecf-adaaf14a4f73b9f2c86d0f802cee56d406289a30.tar.xz org.eclipse.ecf-adaaf14a4f73b9f2c86d0f802cee56d406289a30.zip |
NEW - bug 254832: [Discovery][SLP] Provider may cache discovered services for lifetime
https://bugs.eclipse.org/bugs/show_bug.cgi?id=254832
NEW - bug 257861: Split org.eclipse.ecf.discovery.IDiscoveryContainerAdapter into "Locator" and a "Advertiser"
https://bugs.eclipse.org/bugs/show_bug.cgi?id=257861
4 files changed, 75 insertions, 21 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF index 8c2a2cd81..402bc9aa2 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF @@ -3,7 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin.name Bundle-SymbolicName: org.eclipse.ecf.tests.provider.discovery Bundle-Version: 2.1.0.qualifier -Import-Package: org.osgi.framework;version="1.4.0", +Import-Package: org.eclipse.equinox.concurrent.future;version="1.0.0", + org.osgi.framework;version="1.4.0", org.osgi.util.tracker;version="1.3.3" Require-Bundle: org.junit, org.eclipse.ecf, diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java index dc4038df1..efcee462c 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java @@ -16,9 +16,9 @@ import org.eclipse.ecf.core.ContainerConnectException; import org.eclipse.ecf.core.util.ECFRuntimeException; import org.eclipse.ecf.discovery.identity.IServiceTypeID; import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; -import org.eclipse.ecf.tests.discovery.DiscoveryTest; +import org.eclipse.ecf.tests.discovery.DiscoveryContainerTest; -public class CompositeDiscoveryContainerTest extends DiscoveryTest { +public class CompositeDiscoveryContainerTest extends DiscoveryContainerTest { private TestDiscoveryContainer testDiscoveryContainer; @@ -36,7 +36,7 @@ public class CompositeDiscoveryContainerTest extends DiscoveryTest { */ protected void setUp() throws Exception { super.setUp(); - eventsToExpect = ((CompositeDiscoveryContainer) discoveryContainer).getDiscoveryContainers().size(); + eventsToExpect = ((CompositeDiscoveryContainer) discoveryLocator).getDiscoveryContainers().size(); } /** @@ -45,47 +45,45 @@ public class CompositeDiscoveryContainerTest extends DiscoveryTest { */ public void testAddContainerWithRegisteredServices() throws ContainerConnectException { try { - container.connect(null, null); try { - discoveryContainer.registerService(serviceInfo); + discoveryAdvertiser.registerService(serviceInfo); } catch (ECFRuntimeException e) { fail("Registering a service failed on a new IDCA"); } - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryContainer; + CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; testDiscoveryContainer = new TestDiscoveryContainer(); assertTrue(cdc.addContainer(testDiscoveryContainer)); List registeredServices = testDiscoveryContainer.getRegisteredServices(); assertEquals("registerService(aService) wasn't called on TestDiscoveryContainer", serviceInfo, registeredServices.get(0)); } finally { - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryContainer; + CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; assertTrue(cdc.removeContainer(testDiscoveryContainer)); } } public void testAddContainerWithoutRegisteredServices() throws ContainerConnectException { try { - container.connect(null, null); try { - discoveryContainer.registerService(serviceInfo); - discoveryContainer.unregisterService(serviceInfo); + discoveryAdvertiser.registerService(serviceInfo); + discoveryAdvertiser.unregisterService(serviceInfo); } catch (ECFRuntimeException e) { fail("Re-/Unregistering a service failed on a new IDCA"); } - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryContainer; + CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; testDiscoveryContainer = new TestDiscoveryContainer(); assertTrue(cdc.addContainer(testDiscoveryContainer)); List registeredServices = testDiscoveryContainer.getRegisteredServices(); assertTrue(registeredServices.isEmpty()); } finally { - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryContainer; + CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; assertTrue(cdc.removeContainer(testDiscoveryContainer)); } } // protected void addServiceListener(TestServiceListener serviceListener) { -// discoveryContainer.addServiceListener(serviceListener); +// discoveryLocator.addServiceListener(serviceListener); // addListenerRegisterAndWait(serviceListener, serviceInfo); -// discoveryContainer.removeServiceListener(serviceListener); +// discoveryLocator.removeServiceListener(serviceListener); // IContainerEvent[] events = serviceListener.getEvent(); // assertNotNull("Test listener didn't receive discovery", events); // assertEquals("Test listener received more than expected discovery event", eventsToExpect, events.length); diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java index 241b51564..91aac5fc0 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java @@ -10,7 +10,9 @@ ******************************************************************************/ package org.eclipse.ecf.tests.provider.discovery; +import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter; import org.eclipse.ecf.discovery.identity.IServiceTypeID; +import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; import org.eclipse.ecf.tests.discovery.DiscoveryServiceTest; public class CompositeDiscoveryServiceContainerTest extends @@ -24,6 +26,15 @@ public class CompositeDiscoveryServiceContainerTest extends //TODO-mkuppe https://bugs.eclipse.org/bugs/show_bug.cgi?id=218308 setScope(IServiceTypeID.DEFAULT_SCOPE[0]); } + + /* (non-Javadoc) + * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#setUp() + */ + protected void setUp() throws Exception { + super.setUp(); + eventsToExpect = ((CompositeDiscoveryContainer) discoveryLocator).getDiscoveryContainers().size(); + } + // // protected void addServiceListener(TestServiceListener serviceListener) { // discoveryContainer.addServiceListener(serviceListener); diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/TestDiscoveryContainer.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/TestDiscoveryContainer.java index 905e4c028..20d6cc00d 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/TestDiscoveryContainer.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/TestDiscoveryContainer.java @@ -15,14 +15,16 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.ecf.core.identity.Namespace; -import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter; +import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; +import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.eclipse.ecf.discovery.IServiceInfo; import org.eclipse.ecf.discovery.IServiceListener; import org.eclipse.ecf.discovery.IServiceTypeListener; import org.eclipse.ecf.discovery.identity.IServiceID; import org.eclipse.ecf.discovery.identity.IServiceTypeID; +import org.eclipse.equinox.concurrent.future.IFuture; -public class TestDiscoveryContainer implements IDiscoveryContainerAdapter { +public class TestDiscoveryContainer implements IDiscoveryLocator, IDiscoveryAdvertiser { private List services = new ArrayList(); @@ -38,14 +40,14 @@ public class TestDiscoveryContainer implements IDiscoveryContainerAdapter { */ public void addServiceListener(IServiceTypeID type, IServiceListener listener) { - throw new UnsupportedOperationException(); + // nop } /* (non-Javadoc) * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#addServiceTypeListener(org.eclipse.ecf.discovery.IServiceTypeListener) */ public void addServiceTypeListener(IServiceTypeListener listener) { - throw new UnsupportedOperationException(); + // nop } /* (non-Javadoc) @@ -94,7 +96,7 @@ public class TestDiscoveryContainer implements IDiscoveryContainerAdapter { * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceListener(org.eclipse.ecf.discovery.IServiceListener) */ public void removeServiceListener(IServiceListener listener) { - throw new UnsupportedOperationException(); + // nop } /* (non-Javadoc) @@ -109,7 +111,7 @@ public class TestDiscoveryContainer implements IDiscoveryContainerAdapter { * @see org.eclipse.ecf.discovery.IDiscoveryContainerAdapter#removeServiceTypeListener(org.eclipse.ecf.discovery.IServiceTypeListener) */ public void removeServiceTypeListener(IServiceTypeListener listener) { - throw new UnsupportedOperationException(); + // nop } /* (non-Javadoc) @@ -129,4 +131,46 @@ public class TestDiscoveryContainer implements IDiscoveryContainerAdapter { public List getRegisteredServices() { return services; } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryLocator#purgeCache() + */ + public IServiceInfo[] purgeCache() { + throw new UnsupportedOperationException(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryAsyncLocator#getAsyncServiceInfo(org.eclipse.ecf.discovery.identity.IServiceID) + */ + public IFuture getAsyncServiceInfo(IServiceID aServiceId) { + throw new UnsupportedOperationException(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryAsyncLocator#getAsyncServiceTypes() + */ + public IFuture getAsyncServiceTypes() { + throw new UnsupportedOperationException(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryAsyncLocator#getAsyncServices() + */ + public IFuture getAsyncServices() { + throw new UnsupportedOperationException(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryAsyncLocator#getAsyncServices(org.eclipse.ecf.discovery.identity.IServiceTypeID) + */ + public IFuture getAsyncServices(IServiceTypeID aServiceTypeId) { + throw new UnsupportedOperationException(); + } + + /* (non-Javadoc) + * @see org.eclipse.ecf.discovery.IDiscoveryAdvertiser#unregisterAllServices() + */ + public void unregisterAllServices() { + throw new UnsupportedOperationException(); + } } |