SLING-10321 : Deprecate service mapping by userID
diff --git a/src/main/java/org/apache/sling/serviceusermapping/Mapping.java b/src/main/java/org/apache/sling/serviceusermapping/Mapping.java
index 9139f15..151bf5a 100644
--- a/src/main/java/org/apache/sling/serviceusermapping/Mapping.java
+++ b/src/main/java/org/apache/sling/serviceusermapping/Mapping.java
@@ -18,6 +18,9 @@
*/
package org.apache.sling.serviceusermapping;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.util.LinkedHashSet;
import java.util.Set;
@@ -33,6 +36,8 @@
*/
public static String SERVICENAME = ".serviceName";
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
private final String serviceName;
private final String subServiceName;
@@ -86,6 +91,7 @@
} else {
this.userName = s;
this.principalNames = null;
+ log.warn("Deprecated service mapping by userId, refactor to mapping by principal names (e.g. '{}{}=[{}]').", serviceName, ((subServiceName == null) ? "" : ":"+subServiceName) , s);
}
}
diff --git a/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java b/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java
index d65cab8..de1f5f7 100644
--- a/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java
+++ b/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java
@@ -77,7 +77,9 @@
* the service. This may be {@code null} if no particular user can
* be derived for the service identified by the bundle and the
* optional {@code serviceInfo}.
+ * @deprecated Use {@link #getServicePrincipalNames(Bundle, String)} instead.
*/
+ @Deprecated
String getServiceUserID(Bundle bundle, String subServiceName);
/**
diff --git a/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java b/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
index 821a72c..0050b34 100644
--- a/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java
@@ -133,12 +133,12 @@
w.object();
w.key("title").value("Service User Mappings");
w.key("mappingsCount").value(data.size());
- w.key("uniqueUsersCount").value(byUser.keySet().size());
w.key("uniquePrincipalsCount").value(byPrincipalName.keySet().size());
+ w.key("uniqueUsersCount").value(byUser.keySet().size());
- w.key("mappingsByUser");
+ w.key("mappingsByPrincipal");
w.object();
- for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
+ for(Map.Entry<String, List<Mapping>> e : byPrincipalName.entrySet()) {
w.key(e.getKey());
w.array();
for(Mapping m : e.getValue()) {
@@ -148,9 +148,9 @@
}
w.endObject();
- w.key("mappingsByPrincipal");
+ w.key("mappingsByUser (deprecated)");
w.object();
- for(Map.Entry<String, List<Mapping>> e : byPrincipalName.entrySet()) {
+ for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
w.key(e.getKey());
w.array();
for(Mapping m : e.getValue()) {
@@ -182,23 +182,8 @@
private void renderText(PrintWriter out) {
final List<Mapping> data = mapper.getActiveMappings();
- final Map<String, List<Mapping>> byUser = getMappingsByUser(data);
-
- out.print("*** Mappings by user (");
- out.print(byUser.keySet().size());
- out.print(" users):");
- out.println(" (format: service name / sub service name / user)");
-
- for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
- out.print(" ");
- out.println(e.getKey());
- for(Mapping m : e.getValue()) {
- asText(out, m, " ");
- }
- }
-
final Map<String, List<Mapping>> byPrincipalName = getMappingsByPrincipalName(data);
-
+
out.print("*** Mappings by principals (");
out.print(byPrincipalName.keySet().size());
out.print(" principals):");
@@ -211,5 +196,20 @@
asText(out, m, " ");
}
}
+
+ final Map<String, List<Mapping>> byUser = getMappingsByUser(data);
+ out.println();
+ out.print("*** Deprecated mappings by user (");
+ out.print(byUser.keySet().size());
+ out.print(" users):");
+ out.println(" (format: service name / sub service name / user)");
+
+ for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
+ out.print(" ");
+ out.println(e.getKey());
+ for(Mapping m : e.getValue()) {
+ asText(out, m, " ");
+ }
+ }
}
}
\ No newline at end of file