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

angela pushed a commit to branch SLING-10321
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-serviceusermapper.git

commit 49dff0d3fc60eb4968be4739e3f4219f86f349af
Author: angela <[email protected]>
AuthorDate: Tue Apr 20 12:11:51 2021 +0200

    SLING-10321 : Deprecate service mapping by userID
---
 .../apache/sling/serviceusermapping/Mapping.java   |  6 ++++
 .../serviceusermapping/ServiceUserMapper.java      |  2 ++
 .../impl/MappingInventoryPrinter.java              | 40 +++++++++++-----------
 3 files changed, 28 insertions(+), 20 deletions(-)

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 class Mapping implements Comparable<Mapping> {
      */
     public static String SERVICENAME = ".serviceName";
 
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
     private final String serviceName;
 
     private final String subServiceName;
@@ -86,6 +91,7 @@ public class Mapping implements Comparable<Mapping> {
         } 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 @@ public interface ServiceUserMapper {
         *         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 @@ public class MappingInventoryPrinter implements 
InventoryPrinter {
         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 @@ public class MappingInventoryPrinter implements 
InventoryPrinter {
         }
         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,29 +182,29 @@ public class MappingInventoryPrinter implements 
InventoryPrinter {
     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)");
+        final Map<String, List<Mapping>> byPrincipalName = 
getMappingsByPrincipalName(data);
+        
+        out.print("*** Mappings by principals (");
+        out.print(byPrincipalName.keySet().size());
+        out.print(" principals):");
+        out.println(" (format: service name / sub service name / principal 
names)");
 
-        for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
+        for(Map.Entry<String, List<Mapping>> e : byPrincipalName.entrySet()) {
             out.print("  ");
             out.println(e.getKey());
             for(Mapping m : e.getValue()) {
                 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)");
 
-        final Map<String, List<Mapping>> byPrincipalName = 
getMappingsByPrincipalName(data);
-
-        out.print("*** Mappings by principals (");
-        out.print(byPrincipalName.keySet().size());
-        out.print(" principals):");
-        out.println(" (format: service name / sub service name / principal 
names)");
-
-        for(Map.Entry<String, List<Mapping>> e : byPrincipalName.entrySet()) {
+        for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
             out.print("  ");
             out.println(e.getKey());
             for(Mapping m : e.getValue()) {

Reply via email to