This is an automated email from the ASF dual-hosted git repository. dklco pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-serviceusermapper.git
commit 61a7a11ff503dee607a0ea7590f0a56d6def8f5e Author: Dan Klco <[email protected]> AuthorDate: Tue Jan 9 20:47:04 2018 -0800 Exposing the Mapping POJO and the getActiveMappings method --- pom.xml | 23 +++++++ .../serviceusermapping/{impl => }/Mapping.java | 14 ++--- .../serviceusermapping/ServiceUserMapper.java | 71 +++++++++++++--------- .../impl/MappingConfigAmendment.java | 1 + .../impl/MappingInventoryPrinter.java | 1 + .../impl/ServiceUserMappedBundleFilter.java | 1 + .../impl/ServiceUserMapperImpl.java | 3 +- .../sling/serviceusermapping/package-info.java | 2 +- .../sling/serviceusermapping/impl/MappingTest.java | 2 + .../impl/ServiceUserMappedBundleFilterTest.java | 2 + 10 files changed, 83 insertions(+), 37 deletions(-) diff --git a/pom.xml b/pom.xml index a2cece3..c69423d 100644 --- a/pom.xml +++ b/pom.xml @@ -135,4 +135,27 @@ </dependency> </dependencies> + <profiles> + <profile> + <id>autoInstallBundle</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.sling</groupId> + <artifactId>maven-sling-plugin</artifactId> + <version>2.1.0</version> + <executions> + <execution> + <id>install-bundle</id> + <goals> + <goal>install</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + </project> diff --git a/src/main/java/org/apache/sling/serviceusermapping/impl/Mapping.java b/src/main/java/org/apache/sling/serviceusermapping/Mapping.java similarity index 93% rename from src/main/java/org/apache/sling/serviceusermapping/impl/Mapping.java rename to src/main/java/org/apache/sling/serviceusermapping/Mapping.java index 9dfc7c3..87608c0 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/impl/Mapping.java +++ b/src/main/java/org/apache/sling/serviceusermapping/Mapping.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.serviceusermapping.impl; +package org.apache.sling.serviceusermapping; import java.util.LinkedHashSet; import java.util.Set; @@ -25,13 +25,13 @@ import java.util.Set; * The <code>Mapping</code> class defines the mapping of a service's name and * optional service information to a user name and optionally to a set of principal names. */ -class Mapping implements Comparable<Mapping> { +public class Mapping implements Comparable<Mapping> { /** * The name of the osgi property holding the service name. */ - static String SERVICENAME = ".serviceName"; + public static String SERVICENAME = ".serviceName"; private final String serviceName; @@ -54,7 +54,7 @@ class Mapping implements Comparable<Mapping> { * @throws IllegalArgumentException if {@code spec} does not match the * expected pattern. */ - Mapping(final String spec) { + public Mapping(final String spec) { final int colon = spec.indexOf(':'); final int equals = spec.indexOf('='); @@ -85,7 +85,7 @@ class Mapping implements Comparable<Mapping> { } } - static Set<String> extractPrincipalNames(String s) { + public static Set<String> extractPrincipalNames(String s) { String[] sArr = s.substring(1, s.length() - 1).split(","); Set<String> set = new LinkedHashSet<>(); for (String name : sArr) { @@ -108,7 +108,7 @@ class Mapping implements Comparable<Mapping> { * {@code null}. * @return The user name if this mapping matches and the configuration doesn't specify a set of principal names; {@code null} otherwise. */ - String map(final String serviceName, final String subServiceName) { + public String map(final String serviceName, final String subServiceName) { if (this.serviceName.equals(serviceName) && equals(this.subServiceName, subServiceName)) { return userName; } @@ -130,7 +130,7 @@ class Mapping implements Comparable<Mapping> { * does specify a set of principal names (intstead of a single user name); {@code null} * otherwise. */ - Iterable<String> mapPrincipals(final String serviceName, final String subServiceName) { + public Iterable<String> mapPrincipals(final String serviceName, final String subServiceName) { if (this.serviceName.equals(serviceName) && equals(this.subServiceName, subServiceName)) { return principalNames; } diff --git a/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java b/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java index 8431d7e..303c2d6 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java +++ b/src/main/java/org/apache/sling/serviceusermapping/ServiceUserMapper.java @@ -18,6 +18,8 @@ */ package org.apache.sling.serviceusermapping; +import java.util.List; + import org.osgi.annotation.versioning.ProviderType; import org.osgi.framework.Bundle; @@ -57,33 +59,46 @@ import org.osgi.framework.Bundle; @ProviderType public interface ServiceUserMapper { - /** - * Returns the ID of a user to access the data store on behalf of the - * service. - * - * @param bundle The bundle implementing the service request access to - * resources. - * @param subServiceName Name of the sub service. This parameter is optional and - * may be an empty string or {@code null}. - * @return The ID of the user to use to provide access to the resources for - * 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}. - */ - String getServiceUserID(Bundle bundle, String subServiceName); + /** + * Returns the ID of a user to access the data store on behalf of the + * service. + * + * @param bundle + * The bundle implementing the service request access to + * resources. + * @param subServiceName + * Name of the sub service. This parameter is optional and may be + * an empty string or {@code null}. + * @return The ID of the user to use to provide access to the resources for + * 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}. + */ + String getServiceUserID(Bundle bundle, String subServiceName); + + /** + * Returns the principal names to access the data store on behalf of the + * service. + * + * @param bundle + * The bundle implementing the service request access to + * resources. + * @param subServiceName + * Name of the sub service. This parameter is optional and may be + * an empty string or {@code null}. + * @return The principal names to use to provide access to the resources for + * the service. This may be {@code null} if no mapping has been + * defined for the service identified by the bundle and the optional + * {@code serviceInfo} or if no principal names have been specified + * with the mapping. In this case + * {@link #getServiceUserID(Bundle, String)} should be used instead. + */ + Iterable<String> getServicePrincipalNames(Bundle bundle, String subServiceName); - /** - * Returns the principal names to access the data store on behalf of the - * service. - * - * @param bundle The bundle implementing the service request access to resources. - * @param subServiceName Name of the sub service. This parameter is optional - * and may be an empty string or {@code null}. - * @return The principal names to use to provide access to the resources for - * the service. This may be {@code null} if no mapping has been defined - * for the service identified by the bundle and the optional {@code serviceInfo} - * or if no principal names have been specified with the mapping. - * In this case {@link #getServiceUserID(Bundle, String)} should be used instead. - */ - Iterable<String> getServicePrincipalNames(Bundle bundle, String subServiceName); + /** + * Returns a list of all of the active mappings in the Service User Mapper. + * + * @return A list of the currently active mapped Service users + */ + List<Mapping> getActiveMappings(); } diff --git a/src/main/java/org/apache/sling/serviceusermapping/impl/MappingConfigAmendment.java b/src/main/java/org/apache/sling/serviceusermapping/impl/MappingConfigAmendment.java index 60a425d..7db359a 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/impl/MappingConfigAmendment.java +++ b/src/main/java/org/apache/sling/serviceusermapping/impl/MappingConfigAmendment.java @@ -20,6 +20,7 @@ package org.apache.sling.serviceusermapping.impl; import java.util.ArrayList; +import org.apache.sling.serviceusermapping.Mapping; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.ConfigurationPolicy; 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 8f32898..821a72c 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java +++ b/src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java @@ -30,6 +30,7 @@ import java.util.TreeMap; import org.apache.felix.inventory.Format; import org.apache.felix.inventory.InventoryPrinter; import org.apache.felix.utils.json.JSONWriter; +import org.apache.sling.serviceusermapping.Mapping; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; diff --git a/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilter.java b/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilter.java index a8b0719..bdf794c 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilter.java +++ b/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilter.java @@ -23,6 +23,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.Map; +import org.apache.sling.serviceusermapping.Mapping; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; import org.osgi.framework.ServiceEvent; diff --git a/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java b/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java index a963b95..7fb23e4 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java +++ b/src/main/java/org/apache/sling/serviceusermapping/impl/ServiceUserMapperImpl.java @@ -35,6 +35,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import org.apache.sling.serviceusermapping.Mapping; import org.apache.sling.serviceusermapping.ServicePrincipalsValidator; import org.apache.sling.serviceusermapping.ServiceUserMapped; import org.apache.sling.serviceusermapping.ServiceUserMapper; @@ -500,7 +501,7 @@ public class ServiceUserMapperImpl implements ServiceUserMapper { return bundle.getSymbolicName(); } - List<Mapping> getActiveMappings() { + public List<Mapping> getActiveMappings() { return Collections.unmodifiableList(Arrays.asList(activeMappings)); } diff --git a/src/main/java/org/apache/sling/serviceusermapping/package-info.java b/src/main/java/org/apache/sling/serviceusermapping/package-info.java index 1ee3078..547a6af 100644 --- a/src/main/java/org/apache/sling/serviceusermapping/package-info.java +++ b/src/main/java/org/apache/sling/serviceusermapping/package-info.java @@ -17,6 +17,6 @@ * under the License. */ [email protected]("1.3.0") [email protected]("1.4.0") package org.apache.sling.serviceusermapping; diff --git a/src/test/java/org/apache/sling/serviceusermapping/impl/MappingTest.java b/src/test/java/org/apache/sling/serviceusermapping/impl/MappingTest.java index 2ade43e..423de1b 100644 --- a/src/test/java/org/apache/sling/serviceusermapping/impl/MappingTest.java +++ b/src/test/java/org/apache/sling/serviceusermapping/impl/MappingTest.java @@ -23,6 +23,8 @@ import java.util.Arrays; import java.util.Set; import junit.framework.TestCase; + +import org.apache.sling.serviceusermapping.Mapping; import org.junit.Test; public class MappingTest { diff --git a/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilterTest.java b/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilterTest.java index 9f12426..e95ef7e 100644 --- a/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilterTest.java +++ b/src/test/java/org/apache/sling/serviceusermapping/impl/ServiceUserMappedBundleFilterTest.java @@ -21,6 +21,8 @@ package org.apache.sling.serviceusermapping.impl; import junit.framework.TestCase; + +import org.apache.sling.serviceusermapping.Mapping; import org.junit.Test; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
