You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2013/03/01 09:01:06 UTC
svn commit: r1451513 - in
/sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant:
TenantProvider.java spi/TenantCustomizer.java
Author: fmeschbe
Date: Fri Mar 1 08:01:05 2013
New Revision: 1451513
URL: http://svn.apache.org/r1451513
Log:
Declare implementation concept for TenantProvider and -Customizer:
- Provider not to be implemented by consumers
- Customizer to be implemented by consumers
Modified:
sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/TenantProvider.java
sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/spi/TenantCustomizer.java
Modified: sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/TenantProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/TenantProvider.java?rev=1451513&r1=1451512&r2=1451513&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/TenantProvider.java (original)
+++ sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/TenantProvider.java Fri Mar 1 08:01:05 2013
@@ -20,6 +20,8 @@ package org.apache.sling.tenant;
import java.util.Iterator;
+import aQute.bnd.annotation.ProviderType;
+
/**
* The <code>TenantProvider</code> defines the service interface of for a sevice
* which may be asked for {@link Tenant tenant instances}.
@@ -27,6 +29,7 @@ import java.util.Iterator;
* For now this provider interface provides access to a tenant applying to a
* particular request as well as to all tenants known to this provider.
*/
+@ProviderType
public interface TenantProvider {
/**
@@ -38,6 +41,9 @@ public interface TenantProvider {
/**
* Returns an iterator of all {@link Tenant tenants} known to this provider.
* If no tenants are known the iterator is empty.
+ * <p>
+ * This method is equivalent to calling {@link #getTenants(String)} with
+ * {@code null} or an empty string.
*/
Iterator<Tenant> getTenants();
@@ -46,14 +52,17 @@ public interface TenantProvider {
* <code>tenantFilter</code>.
* <p>
* The <code>tenantFilter</code> is a valid OSGi filter string as defined in
- * Section 3.2.6, Filter Syntax, of the OSGi Core Specification, Release 4.
+ * Section 3.2.6, Filter Syntax, of the OSGi Core Specification, Release 4
+ * or {@code null} to return all tenants.
+ * <p>
+ * Calling this method with an empty string or {@code null} is equivalent to
+ * calling the {@link #getTenants()} method and returns all tenants.
* <p>
- * If no tenants match the <code>tenantFilter</code> or the
- * <code>tenantFilter</code> is not a valid filter string the iterator is
- * empty.
+ * If no tenants match the <code>tenantFilter</code> the iterator is empty.
+ * {@code null} is never returned.
*
* @throws IllegalArgumentException if filter syntax is invalid. A more
- * detailed exception may be wrapped by the exception.
+ * detailed exception may be wrapped by the exception.
*/
Iterator<Tenant> getTenants(String tenantFilter);
}
Modified: sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/spi/TenantCustomizer.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/spi/TenantCustomizer.java?rev=1451513&r1=1451512&r2=1451513&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/spi/TenantCustomizer.java (original)
+++ sling/trunk/contrib/extensions/tenant/src/main/java/org/apache/sling/tenant/spi/TenantCustomizer.java Fri Mar 1 08:01:05 2013
@@ -23,10 +23,13 @@ import java.util.Map;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.tenant.Tenant;
+import aQute.bnd.annotation.ConsumerType;
+
/**
* This is a service interface which services are called by the WebConsole
* plugin (or admin tool) to complete the Tenant setup.
*/
+@ConsumerType
public interface TenantCustomizer {
/**