Author: cziegeler
Date: Fri Aug 7 13:52:18 2015
New Revision: 1694686
URL: http://svn.apache.org/r1694686
Log:
SLING-4930 : InventoryPrinter for Service User Mappings
Modified:
sling/trunk/bundles/extensions/serviceusermapper/pom.xml
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
Modified: sling/trunk/bundles/extensions/serviceusermapper/pom.xml
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/serviceusermapper/pom.xml?rev=1694686&r1=1694685&r2=1694686&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/serviceusermapper/pom.xml (original)
+++ sling/trunk/bundles/extensions/serviceusermapper/pom.xml Fri Aug 7
13:52:18 2015
@@ -58,6 +58,7 @@
<configuration>
<instructions>
<Import-Package>
+ org.apache.sling.commons.json,
org.apache.felix.inventory;resolution:=optional,
*
</Import-Package>
Modified:
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java?rev=1694686&r1=1694685&r2=1694686&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
(original)
+++
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
Fri Aug 7 13:52:18 2015
@@ -27,21 +27,27 @@ import java.util.TreeMap;
import org.apache.felix.inventory.Format;
import org.apache.felix.inventory.InventoryPrinter;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.io.JSONWriter;
/** InventoryPrinter for service user mappings */
+@Component
+@Service(value = InventoryPrinter.class)
+@Properties({
+ @Property(name = InventoryPrinter.FORMAT, value = { "JSON", "TEXT" }),
+ @Property(name = InventoryPrinter.NAME, value = "slingserviceusers"),
+ @Property(name = InventoryPrinter.TITLE, value = "Sling Service User
Mappings"),
+ @Property(name = InventoryPrinter.WEBCONSOLE, boolValue = true)
+})
public class MappingInventoryPrinter implements InventoryPrinter {
- private volatile ServiceUserMapperImpl mapper;
-
- MappingInventoryPrinter(final ServiceUserMapperImpl mapper) {
- this.mapper = mapper;
- }
-
- void deactivate() {
- this.mapper = null;
- }
+ @Reference
+ private ServiceUserMapperImpl mapper;
@Override
public void print(PrintWriter out, Format format, boolean isZip) {
Modified:
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java?rev=1694686&r1=1694685&r2=1694686&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
(original)
+++
sling/trunk/bundles/extensions/serviceusermapper/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java
Fri Aug 7 13:52:18 2015
@@ -51,7 +51,6 @@ import org.apache.sling.serviceusermappi
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceFactory;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +59,7 @@ import org.slf4j.LoggerFactory;
metatype = true,
label = "Apache Sling Service User Mapper Service",
description = "Configuration for the service mapping service names to
names of users.")
-@Service(value=ServiceUserMapper.class)
+@Service(value={ServiceUserMapper.class, ServiceUserMapperImpl.class})
@References( {
@Reference(name="amendment",
referenceInterface=MappingConfigAmendment.class,
@@ -112,8 +111,6 @@ public class ServiceUserMapperImpl imple
private BundleContext bundleContext;
- private ServiceRegistration invPrinterReg;
-
@Activate
@Modified
void configure(BundleContext bundleContext, final Map<String, Object>
config) {
@@ -138,39 +135,10 @@ public class ServiceUserMapperImpl imple
this.bundleContext = bundleContext;
this.updateMappings();
}
-
- // check for reconfiguration (bundleContext is only null during tests!)
- if ( invPrinterReg == null && bundleContext != null ) {
- final Dictionary<String, Object> serviceProps = new
Hashtable<String, Object>();
- serviceProps.put("felix.inventory.printer.format", new String[] {
"JSON", "TEXT" });
- serviceProps.put("felix.inventory.printer.name", "serviceusers");
- serviceProps.put("felix.inventory.printer.title", "Service User
Mappings");
- serviceProps.put("felix.inventory.printer.webconsole", true);
- invPrinterReg =
bundleContext.registerService("org.apache.felix.inventory.InventoryPrinter",
- new ServiceFactory() {
-
- @Override
- public Object getService(final Bundle bundle, final
ServiceRegistration registration) {
- return new
MappingInventoryPrinter(ServiceUserMapperImpl.this);
- }
-
- @Override
- public void ungetService(final Bundle bundle, final
ServiceRegistration registration, final Object service) {
- if ( service instanceof MappingInventoryPrinter) {
-
((MappingInventoryPrinter)service).deactivate();
- }
- }
- }, serviceProps);
- }
}
@Deactivate
void deactivate() {
- if (invPrinterReg != null) {
- invPrinterReg.unregister();
- invPrinterReg = null;
- }
-
synchronized ( this.amendments) {
updateServiceMappings(new ArrayList<Mapping>());
bundleContext = null;