You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2018/02/02 06:14:35 UTC
aries-rsa git commit: [ARIES-1763] Move old interface out of notifier
Repository: aries-rsa
Updated Branches:
refs/heads/master ba7a6a047 -> 094996dc0
[ARIES-1763] Move old interface out of notifier
Project: http://git-wip-us.apache.org/repos/asf/aries-rsa/repo
Commit: http://git-wip-us.apache.org/repos/asf/aries-rsa/commit/094996dc
Tree: http://git-wip-us.apache.org/repos/asf/aries-rsa/tree/094996dc
Diff: http://git-wip-us.apache.org/repos/asf/aries-rsa/diff/094996dc
Branch: refs/heads/master
Commit: 094996dc0ce29bc8ab79357178253c6755906ed9
Parents: ba7a6a0
Author: Christian Schneider <cs...@adobe.com>
Authored: Fri Feb 2 07:14:30 2018 +0100
Committer: Christian Schneider <cs...@adobe.com>
Committed: Fri Feb 2 07:14:30 2018 +0100
----------------------------------------------------------------------
.../aries/rsa/topologymanager/Activator.java | 12 ++--
.../exporter/EndpointListenerAdapter.java | 2 +-
.../exporter/EndpointListenerNotifier.java | 12 +---
.../exporter/EndpointListenerNotifierTest.java | 75 +++++++++-----------
4 files changed, 42 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/094996dc/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/Activator.java
----------------------------------------------------------------------
diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/Activator.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/Activator.java
index e67b5a1..70d1111 100644
--- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/Activator.java
+++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/Activator.java
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.aries.rsa.spi.ExportPolicy;
import org.apache.aries.rsa.topologymanager.exporter.DefaultExportPolicy;
+import org.apache.aries.rsa.topologymanager.exporter.EndpointListenerAdapter;
import org.apache.aries.rsa.topologymanager.exporter.EndpointListenerNotifier;
import org.apache.aries.rsa.topologymanager.exporter.EndpointRepository;
import org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport;
@@ -158,7 +159,8 @@ public class Activator implements BundleActivator {
@Override
public EndpointListener addingService(ServiceReference<EndpointListener> reference) {
EndpointListener listener = super.addingService(reference);
- notifier.add(listener, EndpointListenerNotifier.filtersFromEL(reference));
+ EndpointListenerAdapter adapter = new EndpointListenerAdapter(listener);
+ notifier.add(adapter, EndpointListenerNotifier.filtersFromEL(reference));
return listener;
}
@@ -166,13 +168,15 @@ public class Activator implements BundleActivator {
public void modifiedService(ServiceReference<EndpointListener> reference,
EndpointListener listener) {
super.modifiedService(reference, listener);
- notifier.add(listener, EndpointListenerNotifier.filtersFromEL(reference));
+ EndpointListenerAdapter adapter = new EndpointListenerAdapter(listener);
+ notifier.add(adapter, EndpointListenerNotifier.filtersFromEL(reference));
}
@Override
public void removedService(ServiceReference<EndpointListener> reference,
EndpointListener listener) {
- notifier.remove(listener);
+ EndpointListenerAdapter adapter = new EndpointListenerAdapter(listener);
+ notifier.remove(adapter);
super.removedService(reference, listener);
}
}
@@ -192,8 +196,8 @@ public class Activator implements BundleActivator {
@Override
public void modifiedService(ServiceReference<EndpointEventListener> reference,
EndpointEventListener listener) {
- super.modifiedService(reference, listener);
notifier.add(listener, EndpointListenerNotifier.filtersFromEEL(reference));
+ super.modifiedService(reference, listener);
}
@Override
http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/094996dc/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerAdapter.java
----------------------------------------------------------------------
diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerAdapter.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerAdapter.java
index 0e0e1cc..7b15d0a 100644
--- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerAdapter.java
+++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerAdapter.java
@@ -28,7 +28,7 @@ import org.osgi.service.remoteserviceadmin.EndpointListener;
* EndpointEventListener interface
*/
@SuppressWarnings("deprecation")
-class EndpointListenerAdapter implements EndpointEventListener {
+public class EndpointListenerAdapter implements EndpointEventListener {
private EndpointListener epl;
public EndpointListenerAdapter(EndpointListener epl) {
http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/094996dc/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java
----------------------------------------------------------------------
diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java
index 7864bb4..827fe6a 100644
--- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java
+++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java
@@ -74,17 +74,7 @@ public class EndpointListenerNotifier implements EndpointEventListener {
return filters;
}
- public void add(EndpointListener ep, Set<Filter> filters) {
- LOG.debug("new EndpointListener detected");
- EndpointListenerAdapter adapter = new EndpointListenerAdapter(ep);
- listeners.put(adapter, filters);
- for (EndpointDescription endpoint : endpointRepo.getAllEndpoints()) {
- EndpointEvent event = new EndpointEvent(EndpointEvent.ADDED, endpoint);
- notifyListener(event, adapter, filters);
- }
- }
-
- public void remove(EndpointListener ep) {
+ public void removre(EndpointListener ep) {
LOG.debug("EndpointListener modified");
EndpointListenerAdapter adapter = new EndpointListenerAdapter(ep);
listeners.remove(adapter);
http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/094996dc/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java
----------------------------------------------------------------------
diff --git a/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java b/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java
index ccbeecf..3b88abd 100644
--- a/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java
+++ b/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java
@@ -18,6 +18,11 @@
*/
package org.apache.aries.rsa.topologymanager.exporter;
+import static java.util.Arrays.asList;
+import static org.easymock.EasyMock.capture;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.newCapture;
+import static org.hamcrest.Matchers.samePropertyValuesAs;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
@@ -31,8 +36,12 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import org.easymock.Capture;
+import org.easymock.CaptureType;
import org.easymock.EasyMock;
+import org.easymock.IMocksControl;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkUtil;
@@ -40,69 +49,48 @@ import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
import org.osgi.service.remoteserviceadmin.EndpointDescription;
import org.osgi.service.remoteserviceadmin.EndpointEvent;
-import org.osgi.service.remoteserviceadmin.EndpointListener;
+import org.osgi.service.remoteserviceadmin.EndpointEventListener;
import org.osgi.service.remoteserviceadmin.RemoteConstants;
@SuppressWarnings({
- "rawtypes", "unchecked", "deprecation"
+ "rawtypes", "unchecked",
})
public class EndpointListenerNotifierTest {
+
+ @Before
+ public void before() {
+ }
@Test
public void testNotifyListener() throws InvalidSyntaxException {
+ IMocksControl c = EasyMock.createControl();
+ EndpointEventListener epl = c.createMock(EndpointEventListener.class);
+ Capture<EndpointEvent> capturedEvents = newCapture(CaptureType.ALL);
+ Capture<String> capturedFilters = newCapture(CaptureType.ALL);
+ epl.endpointChanged(capture(capturedEvents), capture(capturedFilters));
+ expectLastCall().anyTimes();
+
EndpointDescription endpoint1 = createEndpoint("myClass");
EndpointDescription endpoint2 = createEndpoint("notMyClass");
- // Expect listener to be called for endpoint1 but not for endpoint2
- EndpointListener epl = listenerExpects(endpoint1, "(objectClass=myClass)");
-
EndpointRepository exportRepository = new EndpointRepository();
EndpointListenerNotifier notifier = new EndpointListenerNotifier(exportRepository);
- EasyMock.replay(epl);
- Set<Filter> filters = new HashSet<Filter>();
- filters.add(FrameworkUtil.createFilter("(objectClass=myClass)"));
- notifier.add(epl, filters);
+ c.replay();
+ Filter filter = FrameworkUtil.createFilter("(objectClass=myClass)");
+ notifier.add(epl, new HashSet(asList(filter)));
notifier.endpointChanged(new EndpointEvent(EndpointEvent.ADDED, endpoint1), null);
notifier.endpointChanged(new EndpointEvent(EndpointEvent.ADDED, endpoint2), null);
notifier.endpointChanged(new EndpointEvent(EndpointEvent.REMOVED, endpoint1), null);
notifier.endpointChanged(new EndpointEvent(EndpointEvent.REMOVED, endpoint2), null);
- EasyMock.verify(epl);
- }
+ c.verify();
- private EndpointListener listenerExpects(EndpointDescription endpoint, String filter) {
- EndpointListener epl = EasyMock.createStrictMock(EndpointListener.class);
- epl.endpointAdded(EasyMock.eq(endpoint), EasyMock.eq(filter));
- EasyMock.expectLastCall().once();
- epl.endpointRemoved(EasyMock.eq(endpoint), EasyMock.eq(filter));
- EasyMock.expectLastCall().once();
- return epl;
+ // Expect listener to be called for endpoint1 but not for endpoint2
+ assertThat(capturedEvents.getValues().get(0), samePropertyValuesAs(new EndpointEvent(EndpointEvent.ADDED, endpoint1)));
+ assertThat(capturedEvents.getValues().get(1), samePropertyValuesAs(new EndpointEvent(EndpointEvent.REMOVED, endpoint1)));
}
-
- @Test
- public void testNotifyListeners() throws InvalidSyntaxException {
- EndpointDescription endpoint1 = createEndpoint("myClass");
-
- EndpointListener epl = EasyMock.createStrictMock(EndpointListener.class);
- epl.endpointAdded(EasyMock.eq(endpoint1), EasyMock.eq("(objectClass=myClass)"));
- EasyMock.expectLastCall().once();
- epl.endpointRemoved(EasyMock.eq(endpoint1), EasyMock.eq("(objectClass=myClass)"));
- EasyMock.expectLastCall().once();
-
- EndpointRepository exportRepository = new EndpointRepository();
- EndpointListenerNotifier tm = new EndpointListenerNotifier(exportRepository);
- EasyMock.replay(epl);
- Set<Filter> filters = new HashSet<Filter>();
- filters.add(FrameworkUtil.createFilter("(objectClass=myClass)"));
- tm.add(epl, filters);
- tm.endpointChanged(new EndpointEvent(EndpointEvent.ADDED, endpoint1), null);
- tm.endpointChanged(new EndpointEvent(EndpointEvent.REMOVED, endpoint1), null);
- tm.remove(epl);
- EasyMock.verify(epl);
- }
-
- public EndpointDescription createEndpoint(String iface) {
+ private EndpointDescription createEndpoint(String iface) {
Map<String, Object> props = new Hashtable<String, Object>();
props.put("objectClass", new String[]{iface});
props.put(RemoteConstants.ENDPOINT_ID, iface);
@@ -154,8 +142,9 @@ public class EndpointListenerNotifierTest {
private ServiceReference createListenerServiceWithFilter(Object filters) {
ServiceReference sr = EasyMock.createMock(ServiceReference.class);
- EasyMock.expect(sr.getProperty(EndpointListener.ENDPOINT_LISTENER_SCOPE)).andReturn(filters);
+ EasyMock.expect(sr.getProperty(EndpointEventListener.ENDPOINT_LISTENER_SCOPE)).andReturn(filters);
EasyMock.replay(sr);
return sr;
}
+
}