This is an automated email from the ASF dual-hosted git repository. amichai pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/aries-rsa.git
commit 8c4037ed1404879c98e36a461830704dbe2bb664 Author: Amichai Rothman <[email protected]> AuthorDate: Mon Jun 3 11:10:48 2024 +0300 ARIES-2156 Remove support for deprecated EventListener interface --- .../apache/aries/rsa/discovery/mdns/Interest.java | 43 +++---------- .../aries/rsa/discovery/mdns/InterestManager.java | 15 +---- .../aries/rsa/discovery/mdns/MdnsDiscovery.java | 14 ----- .../discovery/mdns/PublishingEndpointListener.java | 17 +----- .../aries/rsa/discovery/zookeeper/Interest.java | 46 ++------------ .../rsa/discovery/zookeeper/InterestManager.java | 16 +---- .../zookeeper/PublishingEndpointListener.java | 18 +----- .../EndpointEventListenerTracker.java | 33 ++++------ .../exporter/EndpointListenerAdapter.java | 70 ---------------------- .../exporter/EndpointListenerNotifier.java | 6 -- .../importer/local/EndpointListenerManager.java | 30 +--------- .../exporter/EndpointListenerNotifierTest.java | 6 +- .../importer/local/EndpointListenerImplTest.java | 6 +- 13 files changed, 40 insertions(+), 280 deletions(-) diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java index 4dd4fe6f..1bc64d3b 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java @@ -35,7 +35,6 @@ import org.apache.aries.rsa.util.StringPlus; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,10 +45,10 @@ public class Interest { private final Long id; private final ConcurrentMap<String, EndpointDescription> added = new ConcurrentHashMap<>(); private final AtomicReference<List<String>> scopes = new AtomicReference<>(); - private final Object epListener; + private final EndpointEventListener epListener; - public Interest(Long id, Object epListener, Map<String, Object> props) { + public Interest(Long id, EndpointEventListener epListener, Map<String, Object> props) { this.id = id; this.scopes.set(StringPlus.normalize(props.get(ENDPOINT_LISTENER_SCOPE))); this.epListener = epListener; @@ -131,45 +130,17 @@ public class Interest { } private void notifyListener(EndpointEvent event, String filter) { - if (epListener instanceof EndpointEventListener) { - notifyEEListener(event, filter, (EndpointEventListener)epListener); - } else if (epListener instanceof EndpointListener) { - notifyEListener(event, filter, (EndpointListener)epListener); - } + EndpointDescription endpoint = event.getEndpoint(); + LOG.info("Calling endpointChanged on class {} for filter {}, type {}, endpoint {} ", + epListener, filter, event.getType(), endpoint); + epListener.endpointChanged(event, filter); } private Optional<String> getFirstMatch(EndpointDescription endpoint, List<String> scopes) { return scopes.stream().filter(endpoint::matches).findFirst(); } - private void notifyEEListener(EndpointEvent event, String currentScope, EndpointEventListener listener) { - EndpointDescription endpoint = event.getEndpoint(); - LOG.info("Calling endpointchanged on class {} for filter {}, type {}, endpoint {} ", - listener, currentScope, event.getType(), endpoint); - listener.endpointChanged(event, currentScope); - } - - private void notifyEListener(EndpointEvent event, String currentScope, EndpointListener listener) { - EndpointDescription endpoint = event.getEndpoint(); - LOG.info("Calling old listener on class {} for filter {}, type {}, endpoint {} ", - listener, currentScope, event.getType(), endpoint); - switch (event.getType()) { - case EndpointEvent.ADDED: - listener.endpointAdded(endpoint, currentScope); - break; - - case EndpointEvent.MODIFIED: - listener.endpointRemoved(endpoint, currentScope); - listener.endpointAdded(endpoint, currentScope); - break; - - case EndpointEvent.REMOVED: - listener.endpointRemoved(endpoint, currentScope); - break; - } - } - - @Override + @Override public String toString() { return "Interest [scopes=" + scopes + ", epListener=" + epListener.getClass() + "]"; } diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java index 42f215d7..3ba9bf99 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java @@ -39,7 +39,6 @@ import org.apache.aries.rsa.spi.EndpointDescriptionParser; import org.osgi.service.jaxrs.client.SseEventSourceFactory; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -163,23 +162,11 @@ public class InterestManager { interests.remove(getServiceId(props)); } - public void bindEndpointListener(EndpointListener epListener, Map<String, Object> props) { - addInterest(epListener, props); - } - - public void updatedEndpointListener(Map<String, Object> props) { - updatedInterest(props); - } - - public void unbindEndpointListener(Map<String, Object> props) { - interests.remove(getServiceId(props)); - } - private Long getServiceId(Map<String, Object> props) { return (Long) props.get("service.id"); } - private void addInterest(Object epListener, Map<String, Object> props) { + private void addInterest(EndpointEventListener epListener, Map<String, Object> props) { Long id = getServiceId(props); diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java index a217862d..441fe7b2 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java @@ -51,7 +51,6 @@ import org.osgi.service.jaxrs.client.SseEventSourceFactory; import org.osgi.service.jaxrs.runtime.JaxrsServiceRuntime; import org.osgi.service.jaxrs.runtime.dto.RuntimeDTO; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -99,19 +98,6 @@ public class MdnsDiscovery { interestManager.unbindEndpointEventListener(props); } - @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) - public void bindEndpointListener(EndpointListener epListener, Map<String, Object> props) { - interestManager.bindEndpointListener(epListener, props); - } - - public void updatedEndpointListener(Map<String, Object> props) { - interestManager.updatedEndpointListener(props); - } - - public void unbindEndpointListener(Map<String, Object> props) { - interestManager.unbindEndpointListener(props); - } - @Reference(policy = ReferencePolicy.DYNAMIC) public void bindJaxrsServiceRuntime(JaxrsServiceRuntime runtime) { updateAndRegister(runtime); diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java index d5f4b700..46872fc0 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java @@ -50,13 +50,12 @@ import org.osgi.service.jaxrs.whiteboard.annotations.RequireJaxrsWhiteboard; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.osgi.service.remoteserviceadmin.RemoteConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Listens for local {@link EndpointEvent}s using {@link EndpointEventListener} and old style {@link EndpointListener} + * Listens for local {@link EndpointEvent}s using {@link EndpointEventListener} * and publishes changes to listeners using Server Sent Events (SSE) */ @SuppressWarnings("deprecation") @@ -80,7 +79,7 @@ public class PublishingEndpointListener { public PublishingEndpointListener(EndpointDescriptionParser parser, BundleContext bctx, String uuid) { this.parser = parser; this.uuid = uuid; - String[] ifAr = {EndpointEventListener.class.getName(), EndpointListener.class.getName()}; + String[] ifAr = { EndpointEventListener.class.getName() }; Dictionary<String, Object> props = serviceProperties(uuid); listenerReg = bctx.registerService(ifAr, new ListenerFactory(), props); resourceReg = bctx.registerService(PublishingEndpointListener.class, this, @@ -181,7 +180,7 @@ public class PublishingEndpointListener { } - private class PerClientEndpointEventListener implements EndpointEventListener, EndpointListener { + private class PerClientEndpointEventListener implements EndpointEventListener { private final Long bundleId; @@ -194,16 +193,6 @@ public class PublishingEndpointListener { public void endpointChanged(EndpointEvent event, String filter) { endpointUpdate(bundleId, event.getEndpoint(), event.getType()); } - - @Override - public void endpointAdded(EndpointDescription endpoint, String matchedFilter) { - endpointUpdate(bundleId, endpoint, EndpointEvent.ADDED); - } - - @Override - public void endpointRemoved(EndpointDescription endpoint, String matchedFilter) { - endpointUpdate(bundleId, endpoint, EndpointEvent.REMOVED); - } } class Subscription { diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/Interest.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/Interest.java index 21c2eaf1..aa61087a 100644 --- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/Interest.java +++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/Interest.java @@ -28,7 +28,6 @@ import org.osgi.framework.ServiceReference; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,13 +37,13 @@ public class Interest { private final ServiceReference<?> sref; private final List<String> scopes; - private final Object epListener; + private final EndpointEventListener epListener; public Interest(ServiceReference<?> sref) { this(sref, null); } - public Interest(ServiceReference<?> sref, Object epListener) { + public Interest(ServiceReference<?> sref, EndpointEventListener epListener) { this.sref = sref; this.scopes = StringPlus.normalize(sref.getProperty(ENDPOINT_LISTENER_SCOPE)); this.epListener = epListener; @@ -54,21 +53,15 @@ public class Interest { return scopes; } - public Object getEpListener() { - return epListener; - } - public void notifyListener(EndpointEvent event) { EndpointDescription endpoint = event.getEndpoint(); Optional<String> currentScope = getFirstMatch(endpoint); if (currentScope.isPresent()) { LOG.debug("Matched {} against {}", endpoint, currentScope); - Object service = getEpListener(); - if (service instanceof EndpointEventListener) { - notifyEEListener(event, currentScope.get(), (EndpointEventListener)service); - } else if (service instanceof EndpointListener) { - notifyEListener(event, currentScope.get(), (EndpointListener)service); - } + String scope = currentScope.get(); + LOG.info("Calling endpointchanged on class {} for filter {}, type {}, endpoint {} ", + epListener, scope, event.getType(), endpoint); + epListener.endpointChanged(event, scope); } } @@ -76,33 +69,6 @@ public class Interest { return scopes.stream().filter(endpoint::matches).findFirst(); } - private void notifyEEListener(EndpointEvent event, String currentScope, EndpointEventListener listener) { - EndpointDescription endpoint = event.getEndpoint(); - LOG.info("Calling endpointchanged on class {} for filter {}, type {}, endpoint {} ", - listener, currentScope, event.getType(), endpoint); - listener.endpointChanged(event, currentScope); - } - - private void notifyEListener(EndpointEvent event, String currentScope, EndpointListener listener) { - EndpointDescription endpoint = event.getEndpoint(); - LOG.info("Calling old listener on class {} for filter {}, type {}, endpoint {} ", - listener, currentScope, event.getType(), endpoint); - switch (event.getType()) { - case EndpointEvent.ADDED: - listener.endpointAdded(endpoint, currentScope); - break; - - case EndpointEvent.MODIFIED: - listener.endpointRemoved(endpoint, currentScope); - listener.endpointAdded(endpoint, currentScope); - break; - - case EndpointEvent.REMOVED: - listener.endpointRemoved(endpoint, currentScope); - break; - } - } - @Override public int hashCode() { final int prime = 31; diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/InterestManager.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/InterestManager.java index 0d22a47d..d223782f 100644 --- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/InterestManager.java +++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/InterestManager.java @@ -32,7 +32,6 @@ import org.osgi.service.component.annotations.ReferenceCardinality; import org.osgi.service.component.annotations.ReferencePolicy; import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -82,20 +81,7 @@ public class InterestManager { interests.remove(new Interest(sref)); } - @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) - public void bindEndpointListener(ServiceReference<EndpointListener> sref, EndpointListener epListener) { - addInterest(sref, epListener); - } - - public void updatedEndpointListener(ServiceReference<EndpointListener> sref, EndpointListener epListener) { - addInterest(sref, epListener); - } - - public void unbindEndpointListener(ServiceReference<EndpointListener> sref) { - interests.remove(new Interest(sref)); - } - - private void addInterest(ServiceReference<?> sref, Object epListener) { + private void addInterest(ServiceReference<?> sref, EndpointEventListener epListener) { if (isOurOwnEndpointEventListener(sref)) { LOG.debug("Skipping our own EndpointEventListener"); return; diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/PublishingEndpointListener.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/PublishingEndpointListener.java index f43975ee..db6d35a0 100644 --- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/PublishingEndpointListener.java +++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/PublishingEndpointListener.java @@ -30,19 +30,17 @@ import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; import org.osgi.service.component.annotations.Reference; -import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.osgi.service.remoteserviceadmin.RemoteConstants; /** - * Listens for local {@link EndpointEvent}s using {@link EndpointEventListener} and old style {@link EndpointListener} + * Listens for local {@link EndpointEvent}s using {@link EndpointEventListener} * and publishes changes to the {@link ZookeeperEndpointRepository} */ @SuppressWarnings("deprecation") @Component(service = {}, immediate = true) -public class PublishingEndpointListener implements EndpointEventListener, EndpointListener { +public class PublishingEndpointListener implements EndpointEventListener { private ServiceRegistration<?> listenerReg; @@ -52,7 +50,7 @@ public class PublishingEndpointListener implements EndpointEventListener, Endpoi @Activate public void start(BundleContext bctx) { String uuid = bctx.getProperty(Constants.FRAMEWORK_UUID); - String[] ifAr = {EndpointEventListener.class.getName(), EndpointListener.class.getName()}; + String[] ifAr = { EndpointEventListener.class.getName() }; Dictionary<String, String> props = serviceProperties(uuid); listenerReg = bctx.registerService(ifAr, this, props); } @@ -67,16 +65,6 @@ public class PublishingEndpointListener implements EndpointEventListener, Endpoi repository.endpointChanged(event); } - @Override - public void endpointAdded(EndpointDescription endpoint, String matchedFilter) { - endpointChanged(new EndpointEvent(EndpointEvent.ADDED, endpoint), matchedFilter); - } - - @Override - public void endpointRemoved(EndpointDescription endpoint, String matchedFilter) { - endpointChanged(new EndpointEvent(EndpointEvent.REMOVED, endpoint), matchedFilter); - } - private Dictionary<String, String> serviceProperties(String uuid) { String scope = String.format("(&(%s=*)(%s=%s))", Constants.OBJECTCLASS, RemoteConstants.ENDPOINT_FRAMEWORK_UUID, uuid); diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/EndpointEventListenerTracker.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/EndpointEventListenerTracker.java index 1bd8d090..d0d8b8ed 100644 --- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/EndpointEventListenerTracker.java +++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/EndpointEventListenerTracker.java @@ -18,7 +18,6 @@ */ package org.apache.aries.rsa.topologymanager; -import org.apache.aries.rsa.topologymanager.exporter.EndpointListenerAdapter; import org.apache.aries.rsa.topologymanager.exporter.EndpointListenerNotifier; import org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport; import org.osgi.framework.BundleContext; @@ -27,11 +26,10 @@ import org.osgi.framework.FrameworkUtil; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.osgi.util.tracker.ServiceTracker; @SuppressWarnings({ "deprecation", "rawtypes", "unchecked" }) -final class EndpointEventListenerTracker extends ServiceTracker { +final class EndpointEventListenerTracker extends ServiceTracker<EndpointEventListener, EndpointEventListener> { private TopologyManagerExport tmExport; EndpointEventListenerTracker(BundleContext context, TopologyManagerExport tmExport) { @@ -40,8 +38,7 @@ final class EndpointEventListenerTracker extends ServiceTracker { } private static Filter getFilter() { - String filterSt = String.format("(|(objectClass=%s)(objectClass=%s))", EndpointEventListener.class.getName(), - EndpointListener.class.getName()); + String filterSt = String.format("(objectClass=%s)", EndpointEventListener.class.getName()); try { return FrameworkUtil.createFilter(filterSt); } catch (InvalidSyntaxException e) { @@ -50,29 +47,21 @@ final class EndpointEventListenerTracker extends ServiceTracker { } @Override - public Object addingService(ServiceReference reference) { - Object listener = super.addingService(reference); - EndpointEventListener actualListener = getListener(listener); - this.tmExport.addEPListener(actualListener, EndpointListenerNotifier.filtersFromEEL(reference)); - return actualListener; - } - - private EndpointEventListener getListener(Object listener) { - return (listener instanceof EndpointEventListener) - ? (EndpointEventListener) listener - : new EndpointListenerAdapter((EndpointListener) listener); + public EndpointEventListener addingService(ServiceReference reference) { + EndpointEventListener listener = super.addingService(reference); + this.tmExport.addEPListener(listener, EndpointListenerNotifier.filtersFromEEL(reference)); + return listener; } @Override - public void modifiedService(ServiceReference reference, Object listener) { - EndpointEventListener actualListener = getListener(listener); - this.tmExport.addEPListener(actualListener, EndpointListenerNotifier.filtersFromEEL(reference)); - super.modifiedService(reference, actualListener); + public void modifiedService(ServiceReference reference, EndpointEventListener listener) { + this.tmExport.addEPListener(listener, EndpointListenerNotifier.filtersFromEEL(reference)); + super.modifiedService(reference, listener); } @Override - public void removedService(ServiceReference reference, Object listener) { - this.tmExport.removeEPListener((EndpointEventListener) listener); + public void removedService(ServiceReference reference, EndpointEventListener listener) { + this.tmExport.removeEPListener(listener); super.removedService(reference, listener); } 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 deleted file mode 100644 index 888be769..00000000 --- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.aries.rsa.topologymanager.exporter; - -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.osgi.service.remoteserviceadmin.EndpointEvent; -import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; - -/** - * Wraps on old style EndpointListener into the new - * EndpointEventListener interface - */ -@SuppressWarnings("deprecation") -public class EndpointListenerAdapter implements EndpointEventListener { - private EndpointListener epl; - - public EndpointListenerAdapter(EndpointListener epl) { - this.epl = epl; - } - - @Override - public void endpointChanged(EndpointEvent event, String filter) { - EndpointDescription endpoint = event.getEndpoint(); - switch (event.getType()) { - case EndpointEvent.ADDED: - epl.endpointAdded(endpoint, filter); - break; - case EndpointEvent.REMOVED: - epl.endpointRemoved(endpoint, filter); - break; - case EndpointEvent.MODIFIED: - epl.endpointRemoved(endpoint, filter); - epl.endpointAdded(endpoint, filter); - break; - case EndpointEvent.MODIFIED_ENDMATCH: - epl.endpointRemoved(endpoint, filter); - break; - } - } - - /** - * Checks for equality of the adapted EndpointListener - */ - @Override - public boolean equals(Object obj) { - if (obj instanceof EndpointListenerAdapter) { - EndpointListenerAdapter ela = (EndpointListenerAdapter)obj; - return epl.equals(ela.epl); - } else { - return super.equals(obj); - } - } -} 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 2972f1d8..c9e53f9e 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 @@ -35,7 +35,6 @@ import org.osgi.framework.ServiceReference; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,11 +50,6 @@ public class EndpointListenerNotifier { this.listeners = new ConcurrentHashMap<>(); } - public static Set<Filter> filtersFromEL(ServiceReference<EndpointListener> sref) { - List<String> scopes = StringPlus.normalize(sref.getProperty(EndpointListener.ENDPOINT_LISTENER_SCOPE)); - return getFilterSet(scopes); - } - public static Set<Filter> filtersFromEEL(ServiceReference<EndpointEventListener> sref) { List<String> scopes = StringPlus.normalize(sref.getProperty(EndpointEventListener.ENDPOINT_LISTENER_SCOPE)); return getFilterSet(scopes); diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerManager.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerManager.java index a246a03b..03cfcfdf 100644 --- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerManager.java +++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerManager.java @@ -27,10 +27,7 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.osgi.framework.hooks.service.FindHook; import org.osgi.framework.hooks.service.ListenerHook; -import org.osgi.service.remoteserviceadmin.EndpointDescription; -import org.osgi.service.remoteserviceadmin.EndpointEvent; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,26 +40,7 @@ import org.slf4j.LoggerFactory; * the interest in the local system. */ @SuppressWarnings("deprecation") -public class EndpointListenerManager implements ServiceInterestListener{ - - private final class EndpointListenerAdapter implements EndpointListener, EndpointEventListener { - @Override - public void endpointRemoved(EndpointDescription endpoint, String matchedFilter) { - EndpointEvent event = new EndpointEvent(EndpointEvent.REMOVED, endpoint); - endpointListener.endpointChanged(event, matchedFilter); - } - - @Override - public void endpointAdded(EndpointDescription endpoint, String matchedFilter) { - EndpointEvent event = new EndpointEvent(EndpointEvent.ADDED, endpoint); - endpointListener.endpointChanged(event, matchedFilter); - } - - @Override - public void endpointChanged(EndpointEvent event, String filter) { - endpointListener.endpointChanged(event, filter); - } - } +public class EndpointListenerManager implements ServiceInterestListener { private static final Logger LOG = LoggerFactory.getLogger(EndpointListenerManager.class); @@ -87,10 +65,8 @@ public class EndpointListenerManager implements ServiceInterestListener{ } public void start() { - EndpointListener endpointListenerAdapter = new EndpointListenerAdapter(); - String[] ifAr = {EndpointListener.class.getName(), EndpointEventListener.class.getName()}; - serviceRegistration = bctx.registerService(ifAr, endpointListenerAdapter, getEELProperties()); - + String[] ifAr = { EndpointEventListener.class.getName() }; + serviceRegistration = bctx.registerService(ifAr, endpointListener, getEELProperties()); bctx.registerService(ListenerHook.class, listenerHook, null); bctx.registerService(FindHook.class, findHook, null); } 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 54feb5ac..b045b077 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 @@ -106,7 +106,7 @@ public class EndpointListenerNotifierTest { @Test public void testNormalizeScopeForSingleString() { ServiceReference sr = createListenerServiceWithFilter("(myProp=A)"); - Set<Filter> res = EndpointListenerNotifier.filtersFromEL(sr); + Set<Filter> res = EndpointListenerNotifier.filtersFromEEL(sr); assertEquals(1, res.size()); Filter filter = res.iterator().next(); filterMatches(filter); @@ -116,7 +116,7 @@ public class EndpointListenerNotifierTest { public void testNormalizeScopeForStringArray() { String[] filters = {"(myProp=A)", "(otherProp=B)"}; ServiceReference sr = createListenerServiceWithFilter(filters); - Set<Filter> res = EndpointListenerNotifier.filtersFromEL(sr); + Set<Filter> res = EndpointListenerNotifier.filtersFromEEL(sr); assertEquals(filters.length, res.size()); Iterator<Filter> it = res.iterator(); Filter filter1 = it.next(); @@ -130,7 +130,7 @@ public class EndpointListenerNotifierTest { public void testNormalizeScopeForCollection() { Collection<String> collection = Arrays.asList("(myProp=A)", "(otherProp=B)"); ServiceReference sr = createListenerServiceWithFilter(collection); - Set<Filter> res = EndpointListenerNotifier.filtersFromEL(sr); + Set<Filter> res = EndpointListenerNotifier.filtersFromEEL(sr); Iterator<Filter> it = res.iterator(); Filter filter1 = it.next(); Filter filter2 = it.next(); diff --git a/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerImplTest.java b/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerImplTest.java index dcdba609..7864ce44 100644 --- a/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerImplTest.java +++ b/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/importer/local/EndpointListenerImplTest.java @@ -22,7 +22,6 @@ import java.util.Dictionary; import java.util.List; import org.apache.aries.rsa.topologymanager.importer.TopologyManagerImport; -import org.apache.aries.rsa.topologymanager.importer.local.EndpointListenerManager; import org.easymock.EasyMock; import org.easymock.IAnswer; import org.easymock.IMocksControl; @@ -31,7 +30,6 @@ import org.junit.Test; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.osgi.service.remoteserviceadmin.EndpointEventListener; -import org.osgi.service.remoteserviceadmin.EndpointListener; @SuppressWarnings("deprecation") public class EndpointListenerImplTest extends Assert { @@ -46,7 +44,7 @@ public class EndpointListenerImplTest extends Assert { TopologyManagerImport tm = c.createMock(TopologyManagerImport.class); ServiceRegistration sr = c.createMock(ServiceRegistration.class); - String[] ifAr = {EndpointListener.class.getName(), EndpointEventListener.class.getName()}; + String[] ifAr = { EndpointEventListener.class.getName() }; // expect Listener registration EasyMock.expect(bc.registerService(EasyMock.aryEq(ifAr), EasyMock.anyObject(), @@ -60,7 +58,7 @@ public class EndpointListenerImplTest extends Assert { public Object answer() throws Throwable { Object[] args = EasyMock.getCurrentArguments(); Dictionary props = (Dictionary)args[0]; - List<String> scope = (List<String>)props.get(EndpointListener.ENDPOINT_LISTENER_SCOPE); + List<String> scope = (List<String>)props.get(EndpointEventListener.ENDPOINT_LISTENER_SCOPE); switch (testCase) { case 1: assertEquals(1, scope.size());
