Repository: aries-rsa Updated Branches: refs/heads/master 54df28a3c -> 6037e363d
Improving InterfaceMonitorManager and test Project: http://git-wip-us.apache.org/repos/asf/aries-rsa/repo Commit: http://git-wip-us.apache.org/repos/asf/aries-rsa/commit/6037e363 Tree: http://git-wip-us.apache.org/repos/asf/aries-rsa/tree/6037e363 Diff: http://git-wip-us.apache.org/repos/asf/aries-rsa/diff/6037e363 Branch: refs/heads/master Commit: 6037e363d15e67fa3a0edd2c3a62b90885c61af9 Parents: 54df28a Author: Christian Schneider <[email protected]> Authored: Tue Mar 15 14:53:21 2016 +0100 Committer: Christian Schneider <[email protected]> Committed: Tue Mar 15 14:53:21 2016 +0100 ---------------------------------------------------------------------- .../subscribe/InterfaceMonitorManager.java | 11 ++---- .../rsa/discovery/zookeeper/util/Utils.java | 3 ++ .../subscribe/InterfaceMonitorManagerTest.java | 39 ++++++++++---------- 3 files changed, 26 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/6037e363/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManager.java ---------------------------------------------------------------------- diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManager.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManager.java index 3a02a48..857588c 100644 --- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManager.java +++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManager.java @@ -76,14 +76,11 @@ public class InterfaceMonitorManager { LOG.debug("Skipping our own EndpointListener"); return; } - - LOG.info("updating EndpointListener interests: {}", endpointListener); - if (LOG.isDebugEnabled()) { - LOG.debug("updated EndpointListener properties: {}", getProperties(endpointListener)); - } - for (String scope : getScopes(endpointListener)) { + List<String> scopes = getScopes(endpointListener); + LOG.debug("adding Interests: {}", scopes); + + for (String scope : scopes) { String objClass = getObjectClass(scope); - LOG.debug("Adding interest in scope {}, objectClass {}", scope, objClass); addInterest(endpointListener, scope, objClass); } } http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/6037e363/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/util/Utils.java ---------------------------------------------------------------------- diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/util/Utils.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/util/Utils.java index 82ccb85..289ae32 100644 --- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/util/Utils.java +++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/util/Utils.java @@ -42,6 +42,9 @@ public final class Utils { */ public static List<String> removeEmpty(List<String> strings) { List<String> result = new ArrayList<String>(); + if (strings == null) { + return result; + } for (String s : strings) { if (s != null && !s.isEmpty()) { result.add(s); http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/6037e363/discovery/zookeeper/src/test/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManagerTest.java ---------------------------------------------------------------------- diff --git a/discovery/zookeeper/src/test/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManagerTest.java b/discovery/zookeeper/src/test/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManagerTest.java index 49c9dad..41684eb 100644 --- a/discovery/zookeeper/src/test/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManagerTest.java +++ b/discovery/zookeeper/src/test/java/org/apache/aries/rsa/discovery/zookeeper/subscribe/InterfaceMonitorManagerTest.java @@ -18,19 +18,21 @@ */ package org.apache.aries.rsa.discovery.zookeeper.subscribe; +import static org.easymock.EasyMock.getCurrentArguments; import static org.junit.Assert.assertEquals; -import java.util.HashMap; +import java.util.Collections; +import java.util.Dictionary; +import java.util.Hashtable; import java.util.List; -import java.util.Map; -import org.apache.aries.rsa.discovery.zookeeper.subscribe.InterfaceMonitorManager; import org.apache.zookeeper.ZooKeeper; import org.easymock.EasyMock; import org.easymock.IAnswer; import org.easymock.IMocksControl; import org.junit.Test; import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; import org.osgi.framework.ServiceReference; import org.osgi.service.remoteserviceadmin.EndpointListener; @@ -40,8 +42,8 @@ public class InterfaceMonitorManagerTest { public void testEndpointListenerTrackerCustomizer() { IMocksControl c = EasyMock.createNiceControl(); BundleContext ctx = c.createMock(BundleContext.class); - ServiceReference<EndpointListener> sref = createService(c); - ServiceReference<EndpointListener> sref2 = createService(c); + ServiceReference<EndpointListener> sref = createService(c, "(objectClass=mine)", "mine"); + ServiceReference<EndpointListener> sref2 = createService(c, "(objectClass=mine)", "mine"); ZooKeeper zk = c.createMock(ZooKeeper.class); InterfaceMonitorManager eltc = new InterfaceMonitorManager(ctx, zk); @@ -51,17 +53,17 @@ public class InterfaceMonitorManagerTest { assertEquals(0, eltc.getEndpointListenerScopes().size()); assertEquals(0, eltc.getInterests().size()); - eltc.addInterest(sref, "(objectClass=mine)", "mine"); + eltc.addInterest(sref); assertScopeIncludes(sref, eltc); assertEquals(1, eltc.getEndpointListenerScopes().size()); assertEquals(1, eltc.getInterests().size()); - eltc.addInterest(sref, "(objectClass=mine)", "mine"); + eltc.addInterest(sref); assertScopeIncludes(sref, eltc); assertEquals(1, eltc.getEndpointListenerScopes().size()); assertEquals(1, eltc.getInterests().size()); - eltc.addInterest(sref2, "(objectClass=mine)", "mine"); + eltc.addInterest(sref2); assertScopeIncludes(sref, eltc); assertScopeIncludes(sref2, eltc); assertEquals(2, eltc.getEndpointListenerScopes().size()); @@ -85,26 +87,23 @@ public class InterfaceMonitorManagerTest { } @SuppressWarnings("unchecked") - private ServiceReference<EndpointListener> createService(IMocksControl c) { - final Map<String, ?> p = new HashMap<String, Object>(); + private ServiceReference<EndpointListener> createService(IMocksControl c, String scope, String objectClass) { ServiceReference<EndpointListener> sref = c.createMock(ServiceReference.class); - EasyMock.expect(sref.getPropertyKeys()).andAnswer(new IAnswer<String[]>() { - public String[] answer() throws Throwable { - return p.keySet().toArray(new String[p.size()]); - } - }).anyTimes(); - + final Dictionary<String, String> props = new Hashtable<>(); + props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, scope); + props.put(Constants.OBJECTCLASS, objectClass); + String[] keys = Collections.list(props.keys()).toArray(new String[]{}); + EasyMock.expect(sref.getPropertyKeys()).andReturn(keys).anyTimes(); EasyMock.expect(sref.getProperty((String)EasyMock.anyObject())).andAnswer(new IAnswer<Object>() { public Object answer() throws Throwable { - String key = (String)(EasyMock.getCurrentArguments()[0]); - return p.get(key); + return props.get(getCurrentArguments()[0]); } }).anyTimes(); return sref; } - private void assertScopeIncludes(ServiceReference<EndpointListener> sref, InterfaceMonitorManager eltc) { - List<String> srefScope = eltc.getEndpointListenerScopes().get(sref); + private void assertScopeIncludes(ServiceReference<EndpointListener> sref, InterfaceMonitorManager imm) { + List<String> srefScope = imm.getEndpointListenerScopes().get(sref); assertEquals(1, srefScope.size()); assertEquals("(objectClass=mine)", srefScope.get(0));
