You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2021/11/01 08:57:16 UTC

[sling-org-apache-sling-adapter] branch master updated: SLING-10898 : Remove support for event admin events

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-adapter.git


The following commit(s) were added to refs/heads/master by this push:
     new f27f374  SLING-10898 : Remove support for event admin events
f27f374 is described below

commit f27f37411df3a8e890141d73beff765dc85a8f02
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Nov 1 09:57:07 2021 +0100

    SLING-10898 : Remove support for event admin events
---
 pom.xml                                            |  6 ----
 .../sling/adapter/internal/AdapterManagerImpl.java | 37 +++++++---------------
 2 files changed, 11 insertions(+), 32 deletions(-)

diff --git a/pom.xml b/pom.xml
index 716a15a..0729103 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,12 +108,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.event</artifactId>
-            <version>1.3.1</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
diff --git a/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java b/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java
index 8053a92..709b7fc 100644
--- a/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java
+++ b/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java
@@ -38,14 +38,13 @@ import org.apache.sling.api.adapter.AdapterManager;
 import org.apache.sling.api.adapter.SlingAdaptable;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 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.component.annotations.ReferenceCardinality;
 import org.osgi.service.component.annotations.ReferencePolicy;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventAdmin;
 import org.osgi.service.packageadmin.PackageAdmin;
 import org.osgi.util.converter.Converter;
 import org.osgi.util.converter.Converters;
@@ -90,13 +89,7 @@ public class AdapterManagerImpl implements AdapterManager {
      */
     private final ConcurrentMap<String, Map<String, List<AdapterFactoryDescriptor>>> factoryCache = new ConcurrentHashMap<>();
 
-    /**
-     * The optional event admin
-     */
-    @Reference(cardinality=ReferenceCardinality.OPTIONAL, policy=ReferencePolicy.DYNAMIC)
-    private volatile EventAdmin eventAdmin;
-
-    private PackageAdmin packageAdmin;
+    private final PackageAdmin packageAdmin;
 
     // ---------- AdapterManager interface -------------------------------------
 
@@ -262,13 +255,6 @@ public class AdapterManagerImpl implements AdapterManager {
                     SlingConstants.PROPERTY_ADAPTABLE_CLASSES, Arrays.toString(adaptables),
                     SlingConstants.PROPERTY_ADAPTER_CLASSES, Arrays.toString(adapters) });
         }
-
-        // send event
-        final EventAdmin localEA = this.eventAdmin;
-        if ( localEA != null ) {
-            localEA.postEvent(new Event(SlingConstants.TOPIC_ADAPTER_FACTORY_ADDED,
-                    props));
-        }
     }
 
     static String getPackageName(String clazz) {
@@ -319,21 +305,20 @@ public class AdapterManagerImpl implements AdapterManager {
             // removed
             this.factoryCache.clear();
 
-            removedDescriptor.getAdaption().unregister();
+            final ServiceRegistration<Adaption> reg = removedDescriptor.getAdaption();
+            if ( reg != null ) {
+                removedDescriptor.setAdaption(null);
+                try {
+                   reg.unregister();
+                } catch ( final IllegalStateException ignore) {
+                    // ignore IAE on shutdown
+                } 
+            }
             if (log.isDebugEnabled()) {
                 log.debug("Unregistered service {} with {} : {} and {} : {}", new Object[] { Adaption.class.getName(),
                         SlingConstants.PROPERTY_ADAPTABLE_CLASSES, Arrays.toString(removedDescriptor.getAdaptables()),
                         SlingConstants.PROPERTY_ADAPTER_CLASSES, Arrays.toString(removedDescriptor.getAdapters()) });
             }
-
-            // send event
-            final EventAdmin localEA = this.eventAdmin;
-            if ( localEA != null ) {
-                final Dictionary<String, Object> props = new Hashtable<>();
-                props.put(SlingConstants.PROPERTY_ADAPTABLE_CLASSES, removedDescriptor.getAdaptables());
-                props.put(SlingConstants.PROPERTY_ADAPTER_CLASSES, removedDescriptor.getAdapters());
-                localEA.postEvent(new Event(SlingConstants.TOPIC_ADAPTER_FACTORY_REMOVED, props));
-            }
         }
     }