You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2014/09/11 23:23:23 UTC

svn commit: r1624397 - in /felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http: context/ runtime/ runtime/dto/ whiteboard/

Author: cziegeler
Date: Thu Sep 11 21:23:22 2014
New Revision: 1624397

URL: http://svn.apache.org/r1624397
Log:
[RFC189] : Update to latest api

Modified:
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/context/ServletContextHelper.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntime.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntimeConstants.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/BaseServletDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/DTOConstants.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ErrorPageDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedErrorPageDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedFilterDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedListenerDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedResourceDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletContextDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FilterDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ListenerDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RequestInfoDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ResourceDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RuntimeDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletContextDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletDTO.java
    felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/whiteboard/HttpWhiteboardConstants.java

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/context/ServletContextHelper.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/context/ServletContextHelper.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/context/ServletContextHelper.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/context/ServletContextHelper.java Thu Sep 11 21:23:22 2014
@@ -27,55 +27,71 @@ import org.osgi.annotation.versioning.Co
 import org.osgi.framework.Bundle;
 
 /**
- * Helper service for the servlet context used by whiteboard services for HTTP
- * requests.
+ * Helper service for a servlet context used by a Http Whiteboard implementation
+ * to serve HTTP requests.
+ *
+ * <p>
+ * This service defines methods that the Http Whiteboard Implementation may call
+ * to get information for a request when dealing with whiteboard services.
  * 
  * <p>
- * This service defines methods that the Http Whiteboard Service implementation
- * may call to get information for a request when dealing with whiteboard
- * services.
+ * Each {@code ServletContextHelper} is registered with a
+ * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
+ * service property} containing a name to reference by servlets, servlet
+ * filters, resources, and listeners. If there is more than one
+ * {@code ServletContextHelper} registered with the same context name, the one
+ * with the highest service ranking is active, the others are inactive.
+ * 
+ * <p>
+ * A context is registered with the
+ * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_PATH
+ * service property} to define a path under which all services registered with
+ * this context are reachable. If there is more than one
+ * {@code ServletContextHelper} registered with the same path, the one with the
+ * highest service ranking is active, the others are inactive.
  * 
  * <p>
  * Servlets, servlet filters, resources, and listeners services may be
- * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
- * associated} with an {@code ServletContextHelper} service. Those whiteboard
- * services that are associated using the same {@code ServletContextHelper}
- * object will share the same {@code ServletContext} object.
+ * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_SELECT
+ * associated} with a {@code ServletContextHelper} service. If the referenced
+ * {@code ServletContextHelper} service does not exist or is currently not
+ * active, the whiteboard services for that {@code ServletContextHelper} are not
+ * active either.
+ * 
+ * <p>
+ * If no {@code ServletContextHelper} service is associated, that is no
+ * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_SELECT}
+ * is configured for a whiteboard service, a default
+ * {@code ServletContextHelper} is used.
  * 
  * <p>
- * If no {@code ServletContextHelper} service is associated, a default
- * {@code ServletContextHelper} is used. The behavior of the methods on the
- * default {@code ServletContextHelper} is defined as follows:
+ * Those whiteboard services that are associated using the same
+ * {@code ServletContextHelper} object will share the same
+ * {@code ServletContext} object.
+ * 
+ * <p>
+ * The behavior of the methods on the default {@code ServletContextHelper} is
+ * defined as follows:
  * <ul>
  * <li>{@code getMimeType} - Does not define any customized MIME types for the
- * {@code Content-Type} header in the response, and calls the parent context if
- * it exists. Otherwise it always returns {@code null}.</li>
+ * {@code Content-Type} header in the response, and always returns {@code null}.
+ * </li>
  * <li>{@code handleSecurity} - Performs implementation-defined authentication
  * on the request.</li>
  * <li>{@code getResource} - Assumes the named resource is in the bundle of the
  * whiteboard service. This method calls the whiteboard service bundle's
  * {@code Bundle.getEntry} method, and returns the appropriate URL to access the
  * resource. On a Java runtime environment that supports permissions, the Http
- * Whiteboard Service needs to be granted
+ * Whiteboard Implementation needs to be granted
  * {@code org.osgi.framework.AdminPermission[*,RESOURCE]}.</li>
  * <li>{@code getResourcePaths} - Assumes that the resources are in the bundle
  * of the whiteboard service. This method calls {@code Bundle.findEntries}
  * method, and returns the found entries. On a Java runtime environment that
- * supports permissions, the Http Whiteboard Service needs to be granted
+ * supports permissions, the Http Whiteboard Implementation needs to be granted
  * {@code org.osgi.framework.AdminPermission[*,RESOURCE]}.</li>
- * <li>{@code getRealPath} - This method returns {@code null}.
+ * <li>{@code getRealPath} - This method returns {@code null}.</li>
  * </ul>
  * 
- * It is possible to register own {@code ServletContextHelper} services with a
- * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
- * service property}.
- * 
- * <p>
- * A context can be registered with the
- * {@link org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_PATH
- * service property} to define a path under which all services registered with
- * this context are reachable.
- * 
  * @ThreadSafe
  * @author $Id$
  * @see org.osgi.service.http.whiteboard.HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
@@ -131,9 +147,9 @@ public abstract class ServletContextHelp
 	 * Handles security for the specified request.
 	 * 
 	 * <p>
-	 * The Http Whiteboard Service calls this method prior to servicing the
-	 * specified request. This method controls whether the request is processed
-	 * in the normal manner or an error is returned.
+	 * The Http Whiteboard Implementation calls this method prior to servicing
+	 * the specified request. This method controls whether the request is
+	 * processed in the normal manner or an error is returned.
 	 * 
 	 * <p>
 	 * If the request requires authentication and the Authorization header in
@@ -150,10 +166,10 @@ public abstract class ServletContextHelp
 	 * object to Forbidden(403) and return {@code false}.
 	 * 
 	 * <p>
-	 * When this method returns {@code false}, the Http Whiteboard Service will
-	 * send the response back to the client, thereby completing the request.
-	 * When this method returns {@code true}, the Http Whitboard Service will
-	 * proceed with servicing the request.
+	 * When this method returns {@code false}, the Http Whiteboard
+	 * Implementation will send the response back to the client, thereby
+	 * completing the request. When this method returns {@code true}, the Http
+	 * Whitboard Implementation will proceed with servicing the request.
 	 * 
 	 * <p>
 	 * If the specified request has been authenticated, this method must set the
@@ -178,11 +194,11 @@ public abstract class ServletContextHelp
 	 * @param request The HTTP request.
 	 * @param response The HTTP response.
 	 * @return {@code true} if the request should be serviced, {@code false} if
-	 *         the request should not be serviced and Http Whiteboard Service
-	 *         will send the response back to the client.
+	 *         the request should not be serviced and Http Whiteboard
+	 *         Implementation will send the response back to the client.
 	 * @throws java.io.IOException may be thrown by this method. If this occurs,
-	 *         the Http Whiteboard Service will terminate the request and close
-	 *         the socket.
+	 *         the Http Whiteboard Implementation will terminate the request and
+	 *         close the socket.
 	 */
 	public boolean handleSecurity(final HttpServletRequest request,
 			                      final HttpServletResponse response)
@@ -194,11 +210,12 @@ public abstract class ServletContextHelp
 	 * Maps a resource name to a URL.
 	 * 
 	 * <p>
-	 * Called by the Http Whiteboard Service to map the specified resource name
-	 * to a URL. For servlets, Http Whiteboard Service will call this method to
-	 * support the {@code ServletContext} methods {@code getResource} and
-	 * {@code getResourceAsStream}. For resource servlets, Http Whiteboard
-	 * Service will call this method to locate the named resource.
+	 * Called by the Http Whiteboard Implementation to map the specified
+	 * resource name to a URL. For servlets, the Http Whiteboard Implementation
+	 * will call this method to support the {@code ServletContext} methods
+	 * {@code getResource} and {@code getResourceAsStream}. For resources, the
+	 * Http Whiteboard Implementation will call this method to locate the named
+	 * resource.
 	 * 
 	 * <p>
 	 * The context can control from where resources come. For example, the
@@ -207,8 +224,8 @@ public abstract class ServletContextHelp
 	 * the context's bundle via {@code getClass().getResource(name)}
 	 * 
 	 * @param name The name of the requested resource.
-	 * @return A URL that Http Whiteboard Service can use to read the resource
-	 *         or {@code null} if the resource does not exist.
+	 * @return A URL that a Http Whiteboard Implementation can use to read the
+	 *         resource or {@code null} if the resource does not exist.
 	 */
 	public URL getResource(String name) {
 		final Bundle localBundle = this.bundle;
@@ -226,12 +243,12 @@ public abstract class ServletContextHelp
 	 * Maps a name to a MIME type.
 	 * 
 	 * <p>
-	 * Called by the Http Whiteboard Service to determine the MIME type for the
-	 * specified name. For whiteboard services, the Http Whiteboard Service will
-	 * call this method to support the {@code ServletContext} method
-	 * {@code getMimeType}. For resource servlets, the Http Whiteboard Service
-	 * will call this method to determine the MIME type for the
-	 * {@code Content-Type} header in the response.
+	 * Called by the Http Whiteboard Implementation to determine the MIME type
+	 * for the specified name. For whiteboard services, the Http Whiteboard
+	 * Implementation will call this method to support the
+	 * {@code ServletContext} method {@code getMimeType}. For resource servlets,
+	 * the Http Whiteboard Implementation will call this method to determine the
+	 * MIME type for the {@code Content-Type} header in the response.
 	 *
 	 * @param name The name for which to determine the MIME type.
 	 * @return The MIME type (e.g. text/html) of the specified name or
@@ -248,7 +265,7 @@ public abstract class ServletContextHelp
 	 * argument.
 	 * 
 	 * <p>
-	 * Called by the Http Whiteboard Service to support the
+	 * Called by the Http Whiteboard Implementation to support the
 	 * {@code ServletContext} method {@code getResourcePaths} for whiteboard
 	 * services.
 	 * 
@@ -277,7 +294,7 @@ public abstract class ServletContextHelp
 	 * Gets the real path corresponding to the given virtual path.
 	 * 
 	 * <p>
-	 * Called by the Http Whiteboard Service to support the
+	 * Called by the Http Whiteboard Implementation to support the
 	 * {@code ServletContext} method {@code getRealPath} for whiteboard
 	 * services.
 	 * 

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntime.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntime.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntime.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntime.java Thu Sep 11 21:23:22 2014
@@ -22,7 +22,7 @@ import org.osgi.service.http.runtime.dto
 
 /**
  * The {@code HttpServiceRuntime} service represents the runtime information of
- * a Http (Whiteboard) Service implementation.
+ * a Http (Whiteboard) Implementation.
  *
  * <p>
  * It provides access to DTOs representing the current state of the service.

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntimeConstants.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntimeConstants.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntimeConstants.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/HttpServiceRuntimeConstants.java Thu Sep 11 21:23:22 2014
@@ -28,17 +28,17 @@ public final class HttpServiceRuntimeCon
 	}
 
 	/**
-	 * Http service runtime registration property specifying the endpoints upon
-	 * which the Http service runtime is listening.
+	 * Http Runtime Service registration property specifying the endpoints upon
+	 * which the Http Service Runtime is listening.
 	 * 
 	 * <p>
 	 * An endpoint value is a URL or a relative path, to which the Http service
 	 * runtime is listening. For example, {@code http://192.168.1.10:8080/} or
 	 * {@code /myapp/}. A relative path may be used if the scheme and authority
 	 * parts of the URL are not known, e.g. in a bridged Http Service
-	 * implementation. If the Http Service implementation is serving the root context and
-	 * neither scheme nor authority is known, the value of the property is "/".
-	 * Both, a URL and a relative path, must end with a slash.
+	 * implementation. If the Http Service implementation is serving the root
+	 * context and neither scheme nor authority is known, the value of the
+	 * property is "/". Both, a URL and a relative path, must end with a slash.
 	 * <p>
 	 * An Http Service Runtime can be listening on multiple endpoints.
 	 * 

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/BaseServletDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/BaseServletDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/BaseServletDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/BaseServletDTO.java Thu Sep 11 21:23:22 2014
@@ -27,7 +27,7 @@ import org.osgi.dto.DTO;
  */
 public abstract class BaseServletDTO extends DTO {
 	/**
-	 * The name of the servlet.
+	 * The name of the servlet. This value is never {@code null}.
 	 */
 	public String				name;
 
@@ -45,24 +45,26 @@ public abstract class BaseServletDTO ext
 	public boolean				asyncSupported;
 
 	/**
-	 * The servlet initialization parameters as provided during registration
-	 * of the servlet. Additional parameters like the Http Service Runtime
-	 * attributes are not included.
+	 * The servlet initialization parameters as provided during registration of
+	 * the servlet. Additional parameters like the Http Service Runtime
+	 * attributes are not included. If the service has no initialization
+	 * parameters, the map is empty.
 	 */
 	public Map<String, String>	initParams;
 
 	/**
-	 * The service id of the {@code ServletContext} for the servlet.
+	 * The service id of the servlet context for the servlet represented by this
+	 * DTO.
 	 */
 	public long		servletContextId;
 
 	/**
-	 * Service property identifying the servlet. In the case of a servlet registered
-	 * in the service registry and picked up by a whiteboard implementation, this value 
-	 * is not negative and corresponds to the service id in the registry. 
-	 * If the servlet has not been registered in the service registry, the value
-	 * is negative and a unique negative value is generated by the Http Service Runtime
-	 * in this case.
+	 * Service property identifying the servlet. In the case of a servlet
+	 * registered in the service registry and picked up by a Http Whiteboard
+	 * Implementation, this value is not negative and corresponds to the service
+	 * id in the registry. If the servlet has not been registered in the service
+	 * registry, the value is negative and a unique negative value is generated
+	 * by the Http Service Runtime in this case.
 	 */
 	public long		serviceId;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/DTOConstants.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/DTOConstants.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/DTOConstants.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/DTOConstants.java Thu Sep 11 21:23:22 2014
@@ -32,15 +32,15 @@ public final class DTOConstants {
 	public static final int	FAILURE_REASON_UNKNOWN		= 0;
 
 	/**
-	 * No matching servlet context
+	 * No matching {@code ServletContextHelper}.
 	 * <p>
 	 * The value of {@code FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING} is 1.
 	 **/
 	public static final int	FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING	= 1;
 
 	/**
-	 * Matching servlet context, but servlet context is not used due to a
-	 * problem with the context.
+	 * Matching {@code ServletContextHelper}, but the context is not used due to
+	 * a problem with the context.
 	 * <p>
 	 * The value of {@code FAILURE_REASON_SERVLET_CONTEXT_FAILURE} is 2.
 	 */
@@ -63,7 +63,7 @@ public final class DTOConstants {
 	public static final int	FAILURE_REASON_EXCEPTION_ON_INIT			= 4;
 
 	/**
-	 * The service is registered in the servlet registry but getting the service
+	 * The service is registered in the service registry but getting the service
 	 * fails as it returns {@code null}.
 	 * <p>
 	 * The value of {@code FAILURE_REASON_SERVICE_NOT_GETTABLE} is 5.
@@ -71,7 +71,7 @@ public final class DTOConstants {
 	public static final int	FAILURE_REASON_SERVICE_NOT_GETTABLE			= 5;
 
 	/**
-	 * The service is registered in the servlet registry but the provided
+	 * The service is registered in the service registry but the provided
 	 * registration properties are invalid.
 	 * <p>
 	 * The value of {@code FAILURE_REASON_VALIDATION_FAILED} is 6.

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ErrorPageDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ErrorPageDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ErrorPageDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ErrorPageDTO.java Thu Sep 11 21:23:22 2014
@@ -17,8 +17,8 @@
 package org.osgi.service.http.runtime.dto;
 
 /**
- * Represents a {@code javax.servlet.Servlet} servlet for handling errors and
- * currently being used by a servlet context.
+ * Represents a {@code javax.servlet.Servlet} for handling errors and currently
+ * being used by a servlet context.
  *
  * @NotThreadSafe
  * @author $Id$

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedErrorPageDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedErrorPageDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedErrorPageDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedErrorPageDTO.java Thu Sep 11 21:23:22 2014
@@ -18,11 +18,11 @@ package org.osgi.service.http.runtime.dt
 
 /**
  * Represents a {@code javax.servlet.Servlet} service registered as an error
- * page but currently not being used for a servlet context due to a problem.
+ * page but currently not being used by a servlet context due to a problem.
  * <p>
  * As the servlet represented by this DTO is not used due to a failure, the
  * field {@link FailedErrorPageDTO#servletContextId} always returns {@code 0}
- * and does not point to an existing servlet context.
+ * and does not point to an existing {@code ServletContextHelper}.
  * 
  * @NotThreadSafe
  * @author $Id$

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedFilterDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedFilterDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedFilterDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedFilterDTO.java Thu Sep 11 21:23:22 2014
@@ -17,8 +17,8 @@
 package org.osgi.service.http.runtime.dto;
 
 /**
- * Represents a servlet {@code Filter} filter which is currently not being 
- * used for a servlet context due to a problem.
+ * Represents a servlet {@code Filter} service which is currently not being used
+ * by a servlet context due to a problem.
  * <p>
  * As the service represented by this DTO is not used due to a failure, the
  * field {@link FailedFilterDTO#servletContextId} always returns {@code 0} and
@@ -30,7 +30,7 @@ package org.osgi.service.http.runtime.dt
 public class FailedFilterDTO extends FilterDTO {
 
 	/**
-	 * The reason why the filter represented by this DTO is not used.
+	 * The reason why the servlet filter represented by this DTO is not used.
 	 * 
 	 * @see DTOConstants#FAILURE_REASON_UNKNOWN
 	 * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedListenerDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedListenerDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedListenerDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedListenerDTO.java Thu Sep 11 21:23:22 2014
@@ -17,8 +17,8 @@
 package org.osgi.service.http.runtime.dto;
 
 /**
- * Represents a listener service which is currently not being 
- * used for a servlet context due to a problem.
+ * Represents a listener service which is currently not being used by a servlet
+ * context due to a problem.
  * <p>
  * As the listener represented by this DTO is not used due to a failure, the
  * field {@link FailedErrorPageDTO#servletContextId} always returns {@code 0}

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedResourceDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedResourceDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedResourceDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedResourceDTO.java Thu Sep 11 21:23:22 2014
@@ -17,10 +17,10 @@
 package org.osgi.service.http.runtime.dto;
 
 /**
- * Represents a resource definition which is currently not being 
- * used for a servlet context due to a problem.
+ * Represents a resource definition which is currently not being used by a
+ * servlet context due to a problem.
  * <p>
- * As the service represented by this DTO is not used due to a failure, the
+ * As the resource represented by this DTO is not used due to a failure, the
  * field {@link FailedResourceDTO#servletContextId} always returns {@code 0} and
  * does not point to an existing servlet context.
  * 

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletContextDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletContextDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletContextDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletContextDTO.java Thu Sep 11 21:23:22 2014
@@ -17,8 +17,7 @@
 package org.osgi.service.http.runtime.dto;
 
 /**
- * Represents a {@code javax.servlet.ServletContext} servlet context that is
- * currently not used due to some problem.
+ * Represents a servlet context that is currently not used due to some problem.
  * 
  * The following fields return an empty array for a
  * {@code FailedServletContextDTO}:

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FailedServletDTO.java Thu Sep 11 21:23:22 2014
@@ -17,8 +17,8 @@
 package org.osgi.service.http.runtime.dto;
 
 /**
- * Represents a {@code javax.servlet.Servlet} servlet which is currently not
- * being used for a servlet context due to a problem.
+ * Represents a {@code javax.servlet.Servlet} service which is currently not
+ * being used by a servlet context due to a problem.
  * <p>
  * As the servlet represented by this DTO is not used due to a failure, the
  * field {@link FailedErrorPageDTO#servletContextId} always returns {@code 0}

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FilterDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FilterDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FilterDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/FilterDTO.java Thu Sep 11 21:23:22 2014
@@ -20,15 +20,15 @@ import java.util.Map;
 import org.osgi.dto.DTO;
 
 /**
- * Represents a servlet {@code javax.servlet.Filter} filter currently being used
- * for a servlet context.
+ * Represents a servlet {@code javax.servlet.Filter} service currently being
+ * used for by a servlet context.
  * 
  * @NotThreadSafe
  * @author $Id$
  */
 public class FilterDTO extends DTO {
 	/**
-	 * The name of the servlet filter.
+	 * The name of the servlet filter. This field is never {@code null}.
 	 */
 	public String				name;
 
@@ -36,8 +36,8 @@ public class FilterDTO extends DTO {
 	 * The request mappings for the servlet filter.
 	 * 
 	 * <p>
-	 * The specified patterns are used to determine whether a request is
-	 * mapped to the servlet filter.
+	 * The specified patterns are used to determine whether a request is mapped
+	 * to the servlet filter. This array might be empty.
 	 */
 	public String[]				patterns;
 
@@ -45,8 +45,8 @@ public class FilterDTO extends DTO {
 	 * The servlet names for the servlet filter.
 	 * 
 	 * <p>
-	 * The specified names are used to determine the servlets whose requests
-	 * are mapped to the servlet filter.
+	 * The specified names are used to determine the servlets whose requests are
+	 * mapped to the servlet filter. This array might be empty.
 	 */
 	public String[]				servletNames;
 
@@ -55,7 +55,7 @@ public class FilterDTO extends DTO {
 	 * 
 	 * <p>
 	 * The specified regular expressions are used to determine whether a request
-	 * is mapped to the servlet filter.
+	 * is mapped to the servlet filter. This array might be empty.
 	 */
 	public String[]				regexs;
 
@@ -69,29 +69,31 @@ public class FilterDTO extends DTO {
 	 * 
 	 * <p>
 	 * The specified names are used to determine in what occasions the servlet
-	 * filter is called
+	 * filter is called. This array is never {@code null}.
 	 */
 	public String[]				dispatcher;
 
 	/**
-	 * The filter initialization parameters as provided during registration
-	 * of the filter. Additional parameters like the Http Service Runtime
-	 * attributes are not included.
+	 * The servlet filter initialization parameters as provided during
+	 * registration of the servlet filter. Additional parameters like the Http
+	 * Service Runtime attributes are not included. If the servlet filter has
+	 * not initialization parameters, this map is empty.
 	 */
 	public Map<String, String>	initParams;
 
 	/**
-	 * Service property identifying the filter. In the case of a filter registered
-	 * in the service registry and picked up by a whiteboard implementation, this value 
-	 * is not negative and corresponds to the service id in the registry. 
-	 * If the filter has not been registered in the service registry, the value
-	 * is negative and a unique negative value is generated by the Http Service Runtime
-	 * in this case.
+	 * Service property identifying the servlet filter. In the case of a servlet
+	 * filter registered in the service registry and picked up by a Http
+	 * Whiteboard Implementation, this value is not negative and corresponds to
+	 * the service id in the registry. If the servlet filter has not been
+	 * registered in the service registry, the value is negative and a unique
+	 * negative value is generated by the Http Service Runtime in this case.
 	 */
 	public long					serviceId;
 
 	/**
-	 * The service id of the {@code ServletContext} for the servlet filter.
+	 * The service id of the servlet context for the servlet filter represented
+	 * by this DTO.
 	 */
 	public long		servletContextId;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ListenerDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ListenerDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ListenerDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ListenerDTO.java Thu Sep 11 21:23:22 2014
@@ -19,7 +19,7 @@ package org.osgi.service.http.runtime.dt
 import org.osgi.dto.DTO;
 
 /**
- * Represents a listener currently being used for a servlet context.
+ * Represents a listener currently being used by a servlet context.
  * 
  * @NotThreadSafe
  * @author $Id$
@@ -27,14 +27,14 @@ import org.osgi.dto.DTO;
 public class ListenerDTO extends DTO {
 
 	/**
-	 * The fully qualified type names the listener.
+	 * The fully qualified type names the listener. This array is never empty.
 	 */
 	public String[]				types;
 
 	/**
-	 * Service property identifying the listener. In the case of a listener
-	 * registered in the service registry and picked up by a whiteboard
-	 * implementation, this value is not negative and corresponds to the service
+	 * Service property identifying the listener. In the case of a Listener
+	 * registered in the service registry and picked up by a Http Whiteboard
+	 * Implementation, this value is not negative and corresponds to the service
 	 * id in the registry. If the listener has not been registered in the
 	 * service registry, the value is negative and a unique negative value is
 	 * generated by the Http Service Runtime in this case.
@@ -42,7 +42,8 @@ public class ListenerDTO extends DTO {
 	public long					serviceId;
 
 	/**
-	 * The service id of the {@code ServletContext} for the listener.
+	 * The service id of the servlet context for the listener represented by
+	 * this DTO.
 	 */
 	public long		servletContextId;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RequestInfoDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RequestInfoDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RequestInfoDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RequestInfoDTO.java Thu Sep 11 21:23:22 2014
@@ -31,30 +31,30 @@ public class RequestInfoDTO extends DTO 
 	public String				path;
 
 	/**
-	 * The service id of the {@code ServletContext} for this request.
+	 * The service id of the servlet context processing the request represented
+	 * by this DTO.
 	 */
 	public long		servletContextId;
 	
 	/**
-	 * The filters processing this request.
+	 * The servlet filters processing this request. If no servlet filters are
+	 * called for processing this request, an empty array is returned.
 	 */
 	public FilterDTO[] filterDTOs;
 	
 	/**
-	 * The servlet processing this request. 
-	 * If the request is processed by a servlet, this field
-	 * points to the DTO of the servlet. If the request is
-	 * processed by another type of component like a resource, this
-	 * field is null.
+	 * The servlet processing this request. If the request is processed by a
+	 * servlet, this field points to the DTO of the servlet. If the request is
+	 * processed by another type of component like a resource, this field is
+	 * {@code null}.
 	 */
 	public ServletDTO servletDTO;
 
 	/**
-	 * The resource processing this request. 
-	 * If the request is processed by a resource, this field
-	 * points to the DTO of the resource. If the request is
-	 * processed by another type of component like a servlet, this
-	 * field is null.
+	 * The resource processing this request. If the request is processed by a
+	 * resource, this field points to the DTO of the resource. If the request is
+	 * processed by another type of component like a servlet, this field is
+	 * {@code null}.
 	 */
 	public ResourceDTO resourceDTO;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ResourceDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ResourceDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ResourceDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ResourceDTO.java Thu Sep 11 21:23:22 2014
@@ -19,7 +19,7 @@ package org.osgi.service.http.runtime.dt
 import org.osgi.dto.DTO;
 
 /**
- * Represents a resource definition currently being used for a servlet context.
+ * Represents a resource definition currently being used by a servlet context.
  * 
  * @NotThreadSafe
  * @author $Id$
@@ -29,8 +29,8 @@ public class ResourceDTO extends DTO {
 	 * The request mappings for the resource.
 	 * 
 	 * <p>
-	 * The specified patterns are used to determine whether a request is
-	 * mapped to the resource.
+	 * The specified patterns are used to determine whether a request is mapped
+	 * to the resource. This value is never {@code null}.
 	 */
 	public String[]				patterns;
 
@@ -40,17 +40,18 @@ public class ResourceDTO extends DTO {
 	public String				prefix;
 
 	/**
-	 * Service property identifying the resource. In the case of a resource registered
-	 * in the service registry and picked up by a whiteboard implementation, this value 
-	 * is not negative and corresponds to the service id in the registry. 
-	 * If the resource has not been registered in the service registry, the value
-	 * is negative and a unique negative value is generated by the Http Service Runtime
-	 * in this case.
+	 * Service property identifying the resource. In the case of a resource
+	 * registered in the service registry and picked up by a Http Whiteboard
+	 * Implementation, this value is not negative and corresponds to the service
+	 * id in the registry. If the resource has not been registered in the
+	 * service registry, the value is negative and a unique negative value is
+	 * generated by the Http Service Runtime in this case.
 	 */
 	public long					serviceId;
 
 	/**
-	 * The service id of the {@code ServletContext} for the resource.
+	 * The service id of the servlet context for the resource represented by
+	 * this DTO.
 	 */
 	public long		servletContextId;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RuntimeDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RuntimeDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RuntimeDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/RuntimeDTO.java Thu Sep 11 21:23:22 2014
@@ -28,14 +28,15 @@ import org.osgi.dto.DTO;
 public class RuntimeDTO extends DTO {
 
 	/**
-	 * The runtime attributes.
+	 * The runtime attributes. This value is never {@code null}.
 	 */
 	public Map<String, String>	attributes;
 
 	/**
-	 * Returns the representations of the {@code javax.servlet.ServletContext} objects used by
-	 * the Http service runtime. The returned array may be empty if the Http service 
-	 * runtime is currently not using any {@code ServletContext} objects.
+	 * Returns the representations of the {@code javax.servlet.ServletContext}
+	 * objects used by the Http Service Runtime. The returned array may be empty
+	 * if the Http Service Runtime is currently not using any
+	 * {@code javax.servlet.ServletContext} objects.
 	 */
 	public ServletContextDTO[] servletContextDTOs;
 
@@ -47,37 +48,37 @@ public class RuntimeDTO extends DTO {
 	public FailedServletContextDTO[] failedServletContextDTOs;
 
 	/**
-	 * Returns the representations of the {@code javax.servlet.Servlet} servlets associated
-	 * with this runtime but currently not used due to some problem.
+	 * Returns the representations of the {@code javax.servlet.Servlet} services
+	 * associated with this runtime but currently not used due to some problem.
 	 * The returned array may be empty.
 	 */
 	public FailedServletDTO[] failedServletDTOs;
 
 	/**
-	 * Returns the representations of the resources associated with this
-	 * runtime but currently not used due to some problem.
-	 * The returned array may be empty.
+	 * Returns the representations of the resources associated with this runtime
+	 * but currently not used due to some problem. The returned array may be
+	 * empty.
 	 */
 	public FailedResourceDTO[] failedResourceDTOs;
 
 	/**
-	 * Returns the representations of the servlet {@code javax.servlet.Filter} filters
-	 * associated with this runtime but currently not used due to some problem.
-	 * The returned array may be empty.
+	 * Returns the representations of the servlet {@code javax.servlet.Filter}
+	 * services associated with this runtime but currently not used due to some
+	 * problem. The returned array may be empty.
 	 */
 	public FailedFilterDTO[] failedFilterDTOs;
 
 	/**
-	 * Returns the representations of the error page {@code javax.servlet.Servlet} servlets
-	 * associated with this runtime but currently not used due to some problem.
-	 * The returned array may be empty.
+	 * Returns the representations of the error page
+	 * {@code javax.servlet.Servlet} services associated with this runtime but
+	 * currently not used due to some problem. The returned array may be empty.
 	 */
 	public FailedErrorPageDTO[] failedErrorPageDTOs;
 
 	/**
-	 * Returns the representations of the listeners
-	 * associated with this runtime but currently not used due to some problem.
-	 * The returned array may be empty.
+	 * Returns the representations of the listeners associated with this runtime
+	 * but currently not used due to some problem. The returned array may be
+	 * empty.
 	 */
 	public FailedListenerDTO[] failedListenerDTOs;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletContextDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletContextDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletContextDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletContextDTO.java Thu Sep 11 21:23:22 2014
@@ -20,8 +20,9 @@ import java.util.Map;
 import org.osgi.dto.DTO;
 
 /**
- * Represents a {@code javax.servlet.ServletContext} created for used servlets,
- * resources, servlet filters, and listeners. The servlet context is backed by a
+ * Represents a {@code javax.servlet.ServletContext} created for servlets,
+ * resources, servlet Filters, and listeners associated with that servlet
+ * context. The Servlet Context is usually backed by a
  * {@link org.osgi.service.http.context.ServletContextHelper} service.
  * 
  * @NotThreadSafe
@@ -29,12 +30,12 @@ import org.osgi.dto.DTO;
  */
 public class ServletContextDTO extends DTO {
 	/**
-	 * The names of the HTTP context.
+	 * The name of the servlet context.
 	 * 
-	 * An array of the names the corresponding
-	 * {@link org.osgi.service.http.context.ServletContextHelper} is used for.
+	 * The name of the corresponding
+	 * {@link org.osgi.service.http.context.ServletContextHelper}.
 	 */
-	public String[]				names;
+	public String				name;
 
 	/**
 	 * The context name of the servlet context.
@@ -54,9 +55,10 @@ public class ServletContextDTO extends D
 	public String				contextPath;
 
 	/**
-	 * The servlet context initialization parameters. This is the set of parameters
-	 * provided when registering this context. Additional parameters like the Http Service Runtime
-	 * attributes are not included.
+	 * The servlet context initialization parameters. This is the set of
+	 * parameters provided when registering this context. Additional parameters
+	 * like the Http Service Runtime attributes are not included. If the context
+	 * has no initialization parameters, this map is empty.
 	 */
 	public Map<String, String>	initParams;
 
@@ -64,19 +66,22 @@ public class ServletContextDTO extends D
 	 * The servlet context attributes.
 	 * 
 	 * <p>
-	 * The value type must be a numerical type, Boolean, String, DTO or an array
-	 * of any of the former. Therefore this method will only return the
-	 * attributes of the servlet context conforming to this constraint.
+	 * The value type must be a numerical type, {@code Boolean}, {@code String},
+	 * {@code DTO} or an array of any of the former. Therefore this method will
+	 * only return the attributes of the servlet context conforming to this
+	 * constraint. Other attributes are omitted. If there are no attributes
+	 * conforming to the constraint, an empty map is returned.
 	 */
 	public Map<String, Object>	attributes;
 
 	/**
-	 * Service property identifying the servlet context. In the case of a servlet context registered
-	 * in the service registry and picked up by a whiteboard implementation, this value 
-	 * is not negative and corresponds to the service id in the registry. 
-	 * If the servlet context has not been registered in the service registry, the value
-	 * is negative and a unique negative value is generated by the Http Service Runtime
-	 * in this case.
+	 * Service property identifying the servlet context. In the case of a
+	 * servlet context backed by a {@code ServletContextHelper} registered in
+	 * the service registry and picked up by a Http Whiteboard Implementation,
+	 * this value is not negative and corresponds to the service id in the
+	 * registry. If the servlet context is not backed by a service registered in
+	 * the service registry, the value is negative and a unique negative value
+	 * is generated by the Http Service Runtime in this case.
 	 */
 	public long					serviceId;
 

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletDTO.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletDTO.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletDTO.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/runtime/dto/ServletDTO.java Thu Sep 11 21:23:22 2014
@@ -18,7 +18,7 @@ package org.osgi.service.http.runtime.dt
 
 
 /**
- * Represents a {@code javax.servlet.Servlet} currently being used for a servlet
+ * Represents a {@code javax.servlet.Servlet} currently being used by a servlet
  * context.
  * 
  * @NotThreadSafe
@@ -29,8 +29,8 @@ public class ServletDTO extends BaseServ
 	 * The request mappings for the servlet.
 	 * 
 	 * <p>
-	 * The specified patterns are used to determine whether a request is
-	 * mapped to the servlet.
+	 * The specified patterns are used to determine whether a request is mapped
+	 * to the servlet. This array is never empty.
 	 */
 	public String[]				patterns;
 }

Modified: felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/whiteboard/HttpWhiteboardConstants.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/whiteboard/HttpWhiteboardConstants.java?rev=1624397&r1=1624396&r2=1624397&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/whiteboard/HttpWhiteboardConstants.java (original)
+++ felix/sandbox/http-rfc189/api/src/main/java/org/osgi/service/http/whiteboard/HttpWhiteboardConstants.java Thu Sep 11 21:23:22 2014
@@ -17,7 +17,7 @@
 package org.osgi.service.http.whiteboard;
 
 /**
- * Defines standard names for Http Whiteboard Service constants.
+ * Defines standard constants for the whiteboard services.
  * 
  * @author $Id$
  */
@@ -27,37 +27,25 @@ public final class HttpWhiteboardConstan
 	}
 
 	/**
-	 * The name of the default
-	 * {@link org.osgi.service.http.context.ServletContextHelper}. If a service
-	 * is registered with this property, it is overriding the default context
-	 * with a custom provided context.
-	 * 
-	 * @see #HTTP_WHITEBOARD_CONTEXT_NAME
-	 */
-	public static final String	HTTP_WHITEBOARD_DEFAUT_CONTEXT_NAME		= "default";
-
-	/**
-	 * Service property specifying the name(s) of an
+	 * Service property specifying the name of an
 	 * {@link org.osgi.service.http.context.ServletContextHelper} service.
 	 * 
 	 * <p>
 	 * For {@link org.osgi.service.http.context.ServletContextHelper} services,
 	 * this service property must be specified. Context services without this
-	 * service property must be ignored.
+	 * service property are ignored.
 	 * 
 	 * <p>
-	 * Servlet, listener, servlet filter, and resource servlet services might
-	 * refer to a specific
-	 * {@link org.osgi.service.http.context.ServletContextHelper} service
-	 * referencing the name with the {@link #HTTP_WHITEBOARD_CONTEXT_SELECT}
-	 * property.
+	 * Servlet, listener, servlet filter, and resource services might refer to a
+	 * specific {@link org.osgi.service.http.context.ServletContextHelper}
+	 * service referencing the name with the
+	 * {@link #HTTP_WHITEBOARD_CONTEXT_SELECT} property.
 	 * 
 	 * <p>
 	 * For {@link org.osgi.service.http.context.ServletContextHelper} services,
-	 * the value of this service property must be of type {@code String},
-	 * {@code String[]}, or {@code Collection<String>}. Each value must follow
-	 * the "symbolic-name" specification from Section 1.3.2 of the OSGi Core
-	 * Specification.
+	 * the value of this service property must be of type {@code String}. The
+	 * value must follow the "symbolic-name" specification from Section 1.3.2 of
+	 * the OSGi Core Specification.
 	 * 
 	 * @see #HTTP_WHITEBOARD_CONTEXT_PATH
 	 * @see #HTTP_WHITEBOARD_CONTEXT_SELECT
@@ -66,24 +54,35 @@ public final class HttpWhiteboardConstan
 	public static final String	HTTP_WHITEBOARD_CONTEXT_NAME			= "osgi.http.whiteboard.context.name";
 
 	/**
+	 * The name of the default
+	 * {@link org.osgi.service.http.context.ServletContextHelper}. If a service
+	 * is registered with this property, it is overriding the default context
+	 * with a custom provided context.
+	 * 
+	 * @see #HTTP_WHITEBOARD_CONTEXT_NAME
+	 */
+	public static final String	HTTP_WHITEBOARD_DEFAUT_CONTEXT_NAME		= "default";
+
+	/**
 	 * Service property specifying the path of an
 	 * {@link org.osgi.service.http.context.ServletContextHelper} service.
 	 * 
 	 * <p>
 	 * For {@link org.osgi.service.http.context.ServletContextHelper} services
 	 * this service property is required. Context services without this service
-	 * property must be ignored.
+	 * property are ignored.
 	 * 
 	 * <p>
 	 * This property defines a context path under which all whiteboard services
-	 * are registered. Having different contexts with different paths allows to
-	 * separate the URL space.
+	 * associated with this context are registered. Having different contexts
+	 * with different paths allows to separate the URL space.
 	 * 
 	 * <p>
 	 * For {@link org.osgi.service.http.context.ServletContextHelper} services,
 	 * the value of this service property must be of type {@code String}. The
-	 * path must start with a slash but not end with a slash. Contexts with an
-	 * invalid path are ignored.
+	 * value is either a slash for the root or it must start with a slash but
+	 * not end with a slash. Valid characters are defined in
+	 * rfc3986#section-3.3. Contexts with an invalid path are ignored.
 	 * 
 	 * @see #HTTP_WHITEBOARD_CONTEXT_NAME
 	 * @see #HTTP_WHITEBOARD_CONTEXT_SELECT
@@ -91,22 +90,27 @@ public final class HttpWhiteboardConstan
 	public static final String	HTTP_WHITEBOARD_CONTEXT_PATH			= "osgi.http.whiteboard.context.path";
 
 	/**
-	 * Service property referencing the
+	 * Service property referencing a
 	 * {@link org.osgi.service.http.context.ServletContextHelper} service.
 	 * 
 	 * <p>
-	 * For servlet, listener, servlet filter, or resource servlet services, this
-	 * service property refers to the associated Servlet Context Helper service.
-	 * The value of this property either directly referencing a context name or
-	 * is a filter expression which is matched against the service registration
-	 * properties of the Servlet Context Helper. If this service property is not
-	 * specified, then the default context must be used. If there is no context
-	 * service matching, the servlet, listener, servlet filter, or resource
-	 * servlet service must be ignored.
-	 * 
+	 * For servlet, listener, servlet filter, or resource services, this service
+	 * property refers to the associated {@code ServletContextHelper} service.
+	 * The value of this property is a filter expression which is matched
+	 * against the service registration properties of the
+	 * {@code ServletContextHelper} service. If this service property is not
+	 * specified, the default context is used. If there is no context service
+	 * matching, the servlet, listener, servlet filter, or resource service is
+	 * ignored.
+	 * <p>
+	 * For example, if a whiteboard service wants to select a servlet context
+	 * helper with the name &quot;Admin&quot; the expression would be
+	 * &quot;(osgi.http.whiteboard.context.name=Admin)&quot;. Selecting all
+	 * contexts could be done with
+	 * &quot;(osgi.http.whiteboard.context.name=*)&quot;.
 	 * <p>
-	 * For servlet, listener, servlet filter, or resource servlet services, the
-	 * value of this service property must be of type {@code String}.
+	 * For servlet, listener, servlet filter, or resource services, the value of
+	 * this service property must be of type {@code String}.
 	 * 
 	 * @see #HTTP_WHITEBOARD_CONTEXT_NAME
 	 * @see #HTTP_WHITEBOARD_CONTEXT_PATH
@@ -126,11 +130,11 @@ public final class HttpWhiteboardConstan
 	 * property to apply the filter to the servlet.
 	 * 
 	 * <p>
-	 * Servlet names must be unique among all servlet services associated with
-	 * an {@link org.osgi.service.http.context.ServletContextHelper}. If
+	 * Servlet names must be unique among all servlet services associated with a
+	 * single {@link org.osgi.service.http.context.ServletContextHelper}. If
 	 * multiple servlet services associated with the same HttpContext have the
-	 * same servlet name, then all but the highest ranked servlet service must
-	 * be ignored.
+	 * same servlet name, then all but the highest ranked servlet service are
+	 * ignored.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String}.
@@ -144,7 +148,7 @@ public final class HttpWhiteboardConstan
 	 * <p>
 	 * The specified patterns are used to determine whether a request should be
 	 * mapped to the servlet. Servlet services without this service property or
-	 * {@link #HTTP_WHITEBOARD_SERVLET_ERROR_PAGE} must be ignored.
+	 * {@link #HTTP_WHITEBOARD_SERVLET_ERROR_PAGE} are ignored.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String},
@@ -160,8 +164,10 @@ public final class HttpWhiteboardConstan
 	 * 
 	 * <p>
 	 * The service property values may be the name of a fully qualified
-	 * exception class or a three digit HTTP status code. Any value that is not
-	 * a three digit number is considered to be the name of a fully qualified
+	 * exception class, a three digit HTTP status code, the value "4xx" for all
+	 * error codes in the 400 rage, or the value "5xx" for all error codes in
+	 * the 500 rage. Any value that is not a three digit number, or one of the
+	 * two special values is considered to be the name of a fully qualified
 	 * exception class.
 	 * 
 	 * <p>
@@ -175,7 +181,7 @@ public final class HttpWhiteboardConstan
 	 * asynchronous processing.
 	 * 
 	 * <p>
-	 * By default Servlet services do not support asynchronous processing.
+	 * By default servlet services do not support asynchronous processing.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code Boolean}.
@@ -196,11 +202,11 @@ public final class HttpWhiteboardConstan
 	 * 
 	 * <p>
 	 * Servlet filter names must be unique among all servlet filter services
-	 * associated with an
+	 * associated with a single
 	 * {@link org.osgi.service.http.context.ServletContextHelper}. If multiple
-	 * servlet filter services associated with the same HttpContext have the
-	 * same servlet filter name, then all but the highest ranked servlet filter
-	 * service must be ignored.
+	 * servlet filter services associated with the same context have the same
+	 * servlet filter name, then all but the highest ranked servlet filter
+	 * service are ignored.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String}.
@@ -215,7 +221,7 @@ public final class HttpWhiteboardConstan
 	 * The specified patterns are used to determine whether a request should be
 	 * mapped to the servlet filter. Filter services without this service
 	 * property or the {@link #HTTP_WHITEBOARD_FILTER_SERVLET} or the
-	 * {@link #HTTP_WHITEBOARD_FILTER_REGEX} service property must be ignored.
+	 * {@link #HTTP_WHITEBOARD_FILTER_REGEX} service property are ignored.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String},
@@ -227,13 +233,13 @@ public final class HttpWhiteboardConstan
 
 	/**
 	 * Service property specifying the {@link #HTTP_WHITEBOARD_SERVLET_NAME
-	 * servlet names} for a {@code Filter} service.
+	 * servlet names} for a servlet {@code Filter} service.
 	 * 
 	 * <p>
 	 * The specified names are used to determine the servlets whose requests
-	 * should be mapped to the servlet filter. Filter services without this
-	 * service property or the {@link #HTTP_WHITEBOARD_FILTER_PATTERN} or the
-	 * {@link #HTTP_WHITEBOARD_FILTER_REGEX} service property must be ignored.
+	 * should be mapped to the servlet filter. Servlet filter services without
+	 * this service property or the {@link #HTTP_WHITEBOARD_FILTER_PATTERN} or
+	 * the {@link #HTTP_WHITEBOARD_FILTER_REGEX} service propertyare ignored.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String},
@@ -242,31 +248,32 @@ public final class HttpWhiteboardConstan
 	public static final String	HTTP_WHITEBOARD_FILTER_SERVLET			= "osgi.http.whiteboard.filter.servlet";
 
 	/**
-	 * Service property specifying the request mappings for a {@code Filter}
-	 * service.
+	 * Service property specifying the request mappings for a servlet
+	 * {@code Filter} service.
 	 * 
 	 * <p>
 	 * The specified regular expressions are used to determine whether a request
 	 * should be mapped to the servlet filter. The regular expressions must
-	 * follow the syntax defined in {@link java.util.regex.Pattern}. Filter
-	 * services without this service property or the
+	 * follow the syntax defined in {@code java.util.regex.Pattern}. Servlet
+	 * filter services without this service property or the
 	 * {@link #HTTP_WHITEBOARD_FILTER_SERVLET} or the
-	 * {@link #HTTP_WHITEBOARD_FILTER_PATTERN} service property must be ignored.
+	 * {@link #HTTP_WHITEBOARD_FILTER_PATTERN} service property are ignored.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String},
 	 * {@code String[]}, or {@code Collection<String>}.
 	 * 
-	 * @see java.util.regex.Pattern
+	 * @see "java.util.regex.Pattern"
 	 */
 	public static final String	HTTP_WHITEBOARD_FILTER_REGEX			= "osgi.http.whiteboard.filter.regex";
 
 	/**
-	 * Service property specifying whether a {@code Filter} service supports
-	 * asynchronous processing.
+	 * Service property specifying whether a servlet {@code Filter} service
+	 * supports asynchronous processing.
 	 * 
 	 * <p>
-	 * By default Filters services do not support asynchronous processing.
+	 * By default servlet filters services do not support asynchronous
+	 * processing.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code Boolean}.
@@ -276,11 +283,12 @@ public final class HttpWhiteboardConstan
 	public static final String	HTTP_WHITEBOARD_FILTER_ASYNC_SUPPORTED	= "osgi.http.whiteboard.filter.asyncSupported";
 
 	/**
-	 * Service property specifying the dispatcher handling of a {@code Filter}.
+	 * Service property specifying the dispatcher handling of a servlet
+	 * {@code Filter}.
 	 * 
 	 * <p>
-	 * By default Filters services are associated with client requests only (see
-	 * value {@link #DISPATCHER_REQUEST}).
+	 * By default servlet filter services are associated with client requests
+	 * only (see value {@link #DISPATCHER_REQUEST}).
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String},
@@ -295,7 +303,7 @@ public final class HttpWhiteboardConstan
 
 	/**
 	 * Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
-	 * property indicating the filter is applied to client requests.
+	 * property indicating the servlet filter is applied to client requests.
 	 * 
 	 * @see "Java Servlet Specification Version 3.0, Section 6.2.5 Filters and the RequestDispatcher"
 	 */
@@ -303,7 +311,7 @@ public final class HttpWhiteboardConstan
 
 	/**
 	 * Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
-	 * property indicating the filter is applied to include calls to the
+	 * property indicating the servlet filter is applied to include calls to the
 	 * dispatcher.
 	 * 
 	 * @see "Java Servlet Specification Version 3.0, Section 6.2.5 Filters and the RequestDispatcher"
@@ -312,7 +320,7 @@ public final class HttpWhiteboardConstan
 
 	/**
 	 * Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
-	 * property indicating the filter is applied to forward calls to the
+	 * property indicating the servlet filter is applied to forward calls to the
 	 * dispatcher.
 	 * 
 	 * @see "Java Servlet Specification Version 3.0, Section 6.2.5 Filters and the RequestDispatcher"
@@ -321,7 +329,8 @@ public final class HttpWhiteboardConstan
 
 	/**
 	 * Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
-	 * property indicating the filter is applied in the async context.
+	 * property indicating the servlet filter is applied in the asynchronous
+	 * context.
 	 * 
 	 * @see "Java Servlet Specification Version 3.0, Section 6.2.5 Filters and the RequestDispatcher"
 	 */
@@ -329,42 +338,67 @@ public final class HttpWhiteboardConstan
 
 	/**
 	 * Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
-	 * property indicating the filter is applied when an error page is called.
+	 * property indicating the servlet filter is applied when an error page is
+	 * called.
 	 * 
 	 * @see "Java Servlet Specification Version 3.0, Section 6.2.5 Filters and the RequestDispatcher"
 	 */
 	public static final String	DISPATCHER_ERROR						= "ERROR";
 
 	/**
-	 * Service property specifying the resource entry prefix for a
-	 * {@link javax.servlet.Servlet} servlet service.
+	 * Service property specifying the request mappings for resources.
 	 * 
 	 * <p>
-	 * If a servlet service is registerd with this property, it is marked as a
-	 * resource serving servlet serving bundle resources.
+	 * The specified patterns are used to determine whether a request should be
+	 * mapped to resources. Resource services without this service property are
+	 * ignored.
+	 * 
+	 * <p>
+	 * The value of this service property must be of type {@code String},
+	 * {@code String[]}, or {@code Collection<String>}.
+	 * 
+	 * @see "Java Servlet Specification Version 3.0, Section 12.2 Specification of Mappings"
+	 * @see #HTTP_WHITEBOARD_RESOURCE_PREFIX
+	 */
+	public static final String	HTTP_WHITEBOARD_RESOURCE_PATTERN		= "osgi.http.whiteboard.resource.pattern";
+
+	/**
+	 * Service property specifying the resource entry prefix for a resource
+	 * service.
+	 * 
+	 * <p>
+	 * If a resource service is registered with this property, requests are
+	 * served with bundle resources.
 	 * 
 	 * <p>
 	 * This prefix is used to map a requested resource to the bundle's entries.
-	 * TODO do we distinguish between "/xyz" and "xyz"?
+	 * The value must not end with slash (&quot;/&quot;) with the exception that
+	 * a name of the form &quot;/&quot; is used to denote the root of the
+	 * bundle. See the specification text for details on how HTTP requests are
+	 * mapped.
+	 *
 	 * <p>
-	 * The value of this service property must be of type {@code String}.
+	 * The value of this service property must be of type {@code String},
+	 * {@code String[]}, or {@code Collection<String>}.
+	 * 
+	 * @see #HTTP_WHITEBOARD_RESOURCE_PATTERN
 	 */
 	public static final String	HTTP_WHITEBOARD_RESOURCE_PREFIX			= "osgi.http.whiteboard.resource.prefix";
 
 	/**
 	 * Service property specifying the target filter to select the Http
-	 * Whiteboard Service runtime to process the service.
+	 * Whiteboard Implementation to process the service.
 	 * 
 	 * <p>
-	 * An Http Whiteboard Service implementation can define any number of
-	 * attributes which can be referenced by the target filter. The attributes
-	 * should always include the
+	 * An Http Whiteboard Implementation can define any number of attributes
+	 * which can be referenced by the target filter. The attributes should
+	 * always include the
 	 * {@link org.osgi.service.http.runtime.HttpServiceRuntimeConstants#HTTP_SERVICE_ENDPOINT_ATTRIBUTE
 	 * osgi.http.endpoint} attribute if the endpoint information is known.
 	 * 
 	 * <p>
 	 * If this service property is not specified, then all Http Whiteboard
-	 * Services can process the service.
+	 * Implementations can process the service.
 	 * 
 	 * <p>
 	 * The value of this service property must be of type {@code String} and be