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));
- }
}
}