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 815686f5ef39034d47257e5057c584017c9818ab
Author: Amichai Rothman <[email protected]>
AuthorDate: Tue May 28 11:00:52 2024 +0300

    Clean up ServiceExportsRepository
---
 .../exporter/ServiceExportsRepository.java         | 51 +++++++++-------------
 1 file changed, 20 insertions(+), 31 deletions(-)

diff --git 
a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/ServiceExportsRepository.java
 
b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/ServiceExportsRepository.java
index da22cdd1..fad6e3d7 100644
--- 
a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/ServiceExportsRepository.java
+++ 
b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/ServiceExportsRepository.java
@@ -19,12 +19,7 @@
 package org.apache.aries.rsa.topologymanager.exporter;
 
 import java.io.Closeable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.remoteserviceadmin.EndpointDescription;
@@ -36,19 +31,18 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Holds all Exports of a given RemoteServiceAdmin
+ * Holds all Exports of a given RemoteServiceAdmin.
  */
 public class ServiceExportsRepository implements Closeable {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(ServiceExportsRepository.class);
 
-    private RemoteServiceAdmin rsa;
-    private EndpointListenerNotifier notifier;
-
+    private final RemoteServiceAdmin rsa;
+    private final EndpointListenerNotifier notifier;
     private final Map<ServiceReference<?>, 
Collection<ExportRegistrationHolder>> exportsMap = new LinkedHashMap<>();
 
     /**
-     * The holder allows us to work around that registration.getReference() is 
null when the registration is closed
+     * The holder allows us to work around that registration.getReference() is 
null when the registration is closed.
      */
     private class ExportRegistrationHolder {
         private final ExportRegistration registration;
@@ -59,8 +53,7 @@ public class ServiceExportsRepository implements Closeable {
             this.registration = registration;
             this.reference = registration.getExportReference();
             this.endpoint = endpoint;
-            EndpointEvent event = new EndpointEvent(EndpointEvent.ADDED, 
endpoint);
-            notifier.sendEvent(event);
+            notifier.sendEvent(new EndpointEvent(EndpointEvent.ADDED, 
endpoint));
         }
 
         ExportRegistration getRegistration() {
@@ -75,11 +68,9 @@ public class ServiceExportsRepository implements Closeable {
         }
 
         public void update(ServiceReference<?> sref) {
-            EndpointDescription updatedEndpoint = 
registration.update(getServiceProps(sref));
             if (reference != null) {
-                this.endpoint = updatedEndpoint;
-                EndpointEvent event = new 
EndpointEvent(EndpointEvent.MODIFIED, endpoint);
-                notifier.sendEvent(event);
+                endpoint = registration.update(getServiceProps(sref));
+                notifier.sendEvent(new EndpointEvent(EndpointEvent.MODIFIED, 
endpoint));
             }
         }
 
@@ -97,6 +88,7 @@ public class ServiceExportsRepository implements Closeable {
         this.notifier = notifier;
     }
 
+    @Override
     public void close() {
         LOG.debug("Closing registry for RemoteServiceAdmin {}", 
rsa.getClass().getName());
         for (ServiceReference<?> sref : exportsMap.keySet()) {
@@ -104,15 +96,13 @@ public class ServiceExportsRepository implements Closeable 
{
         }
     }
 
-    public synchronized void addService(ServiceReference<?> sref, 
Collection<ExportRegistration> exports) {
-        List<ExportRegistrationHolder> holderList = new 
ArrayList<>(exports.size());
-        exportsMap.put(sref, holderList);
-        for (ExportRegistration reg : exports) {
-            ExportReference exportReference = reg.getExportReference();
-            if (exportReference != null) {
-                EndpointDescription endpoint = 
exportReference.getExportedEndpoint();
-                ExportRegistrationHolder holder = new 
ExportRegistrationHolder(reg, endpoint);
-                holderList.add(holder);
+    public synchronized void addService(ServiceReference<?> sref, 
Collection<ExportRegistration> registrations) {
+        Collection<ExportRegistrationHolder> exports = new 
ArrayList<>(registrations.size());
+        exportsMap.put(sref, exports);
+        for (ExportRegistration reg : registrations) {
+            ExportReference reference = reg.getExportReference();
+            if (reference != null) {
+                exports.add(new ExportRegistrationHolder(reg, 
reference.getExportedEndpoint()));
             }
         }
     }
@@ -138,12 +128,11 @@ public class ServiceExportsRepository implements 
Closeable {
 
     public List<EndpointDescription> getAllEndpoints() {
         List<EndpointDescription> endpoints = new ArrayList<>();
-        for (ServiceReference<?> sref : exportsMap.keySet()) {
-            Collection<ExportRegistrationHolder> exports = 
exportsMap.get(sref);
+        for (Collection<ExportRegistrationHolder> exports : 
exportsMap.values()) {
             for (ExportRegistrationHolder reg : exports) {
-                ExportReference exportRef = 
reg.getRegistration().getExportReference();
-                if (exportRef != null) {
-                    endpoints.add(exportRef.getExportedEndpoint());
+                ExportReference reference = 
reg.getRegistration().getExportReference();
+                if (reference != null) {
+                    endpoints.add(reference.getExportedEndpoint());
                 }
             }
         }

Reply via email to