org.osgi.service.http.whiteboard.HttpWhiteboardConstants Maven / Gradle / Ivy
Show all versions of aem-sdk-api Show documentation
/*******************************************************************************
* Copyright (c) Contributors to the Eclipse Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* SPDX-License-Identifier: Apache-2.0
*******************************************************************************/
package org.osgi.service.http.whiteboard;
import javax.servlet.Servlet;
import org.osgi.framework.Filter;
import org.osgi.service.http.context.ServletContextHelper;
import org.osgi.service.http.runtime.HttpServiceRuntimeConstants;
/**
* Defines standard constants for the Http Whiteboard services.
*
* @author $Id: 42ca5b7dedd1df3b0c97199d1ee35b89a546e5a8 $
*/
public final class HttpWhiteboardConstants {
private HttpWhiteboardConstants() {
// non-instantiable
}
/**
* Service property specifying the name of an {@link ServletContextHelper}
* service.
*
*
* For {@link ServletContextHelper} services, this service property must be
* specified. Context services without this service property are ignored.
*
*
* Servlet, listener, servlet filter, and resource services might refer to a
* specific {@link ServletContextHelper} service referencing the name with
* the {@link #HTTP_WHITEBOARD_CONTEXT_SELECT} property.
*
*
* For {@link ServletContextHelper} services, 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
* @see #HTTP_WHITEBOARD_DEFAULT_CONTEXT_NAME
*/
public static final String HTTP_WHITEBOARD_CONTEXT_NAME = "osgi.http.whiteboard.context.name";
/**
* The name of the default {@link 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_DEFAULT_CONTEXT_NAME = "default";
/**
* Service property specifying the path of an {@link ServletContextHelper}
* service.
*
*
* For {@link ServletContextHelper} services this service property is
* required. Context services without this service property are ignored.
*
*
* This property defines a context path under which all whiteboard services
* associated with this context are registered. Having different contexts
* with different paths allows to separate the URL space.
*
*
* For {@link ServletContextHelper} services, the value of this service
* property must be of type {@code String}. The 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
*/
public static final String HTTP_WHITEBOARD_CONTEXT_PATH = "osgi.http.whiteboard.context.path";
/**
* Service property prefix referencing a {@link ServletContextHelper}
* service.
*
*
* For {@link ServletContextHelper} services this prefix can be used for
* service properties to mark them as initialization parameters which can be
* retrieved from the associated servlet context. The prefix is removed from
* the service property name to build the initialization parameter name.
*
*
* For {@link ServletContextHelper} services, the value of each
* initialization parameter service property must be of type {@code String}.
*
*/
public static final String HTTP_WHITEBOARD_CONTEXT_INIT_PARAM_PREFIX = "context.init.";
/**
* Service property referencing a {@link ServletContextHelper} service.
*
*
* 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.
*
* For example, if a whiteboard service wants to select a servlet context
* helper with the name "Admin" the expression would be
* "(osgi.http.whiteboard.context.name=Admin)". Selecting all
* contexts could be done with
* "(osgi.http.whiteboard.context.name=*)".
*
* 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
*/
public static final String HTTP_WHITEBOARD_CONTEXT_SELECT = "osgi.http.whiteboard.context.select";
/**
* Service property specifying the servlet name of a {@code Servlet}
* service.
*
* The servlet is registered with this name and the name can be used as a
* reference to the servlet for filtering or request dispatching.
*
* This name is in addition used as the value for the
* {@code ServletConfig.getServletName()} method. If this service property
* is not specified, the fully qualified name of the service object's class
* is used as the servlet name. Filter services may refer to servlets by
* this name in their {@link #HTTP_WHITEBOARD_FILTER_SERVLET} service
* property to apply the filter to the servlet.
*
* Servlet names should be unique among all servlet services associated with
* a single {@link ServletContextHelper}.
*
* The value of this service property must be of type {@code String}.
*/
public static final String HTTP_WHITEBOARD_SERVLET_NAME = "osgi.http.whiteboard.servlet.name";
/**
* Service property specifying the request mappings for a {@code Servlet}
* service.
*
* The specified patterns are used to determine whether a request should be
* mapped to the servlet. Servlet services without this service property,
* {@link #HTTP_WHITEBOARD_SERVLET_ERROR_PAGE} or
* {@link #HTTP_WHITEBOARD_SERVLET_NAME} are ignored.
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}.
*
* @see "Java Servlet Specification Version 3.0, Section 12.2 Specification of Mappings"
*/
public static final String HTTP_WHITEBOARD_SERVLET_PATTERN = "osgi.http.whiteboard.servlet.pattern";
/**
* Service property specifying whether a {@code Servlet} service acts as an
* error page.
*
*
* The service property values may 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 range, or the value "5xx" for all error codes in
* the 500 range. 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.
*
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}.
*/
public static final String HTTP_WHITEBOARD_SERVLET_ERROR_PAGE = "osgi.http.whiteboard.servlet.errorPage";
/**
* Service property specifying whether a {@code Servlet} service supports
* asynchronous processing.
*
*
* By default servlet services do not support asynchronous processing.
*
*
* The value of this service property must be of type {@code Boolean}.
*
* @see "Java Servlet Specification Version 3.0, Section 2.3.3.3 Asynchronous Processing"
*/
public static final String HTTP_WHITEBOARD_SERVLET_ASYNC_SUPPORTED = "osgi.http.whiteboard.servlet.asyncSupported";
/**
* Service property prefix referencing a {@link Servlet} service.
*
*
* For {@link Servlet} services this prefix can be used for service
* properties to mark them as initialization parameters which can be
* retrieved from the associated servlet config. The prefix is removed from
* the service property name to build the initialization parameter name.
*
*
* For {@link Servlet} services, the value of each initialization parameter
* service property must be of type {@code String}.
*
*/
public static final String HTTP_WHITEBOARD_SERVLET_INIT_PARAM_PREFIX = "servlet.init.";
/**
* Service property specifying whether a {@code Servlet} service has enabled
* multipart request processing.
*
* By default servlet services do not have multipart request processing
* enabled.
*
* The value of this service property must be of type {@code Boolean}.
*
* @see "Java Servlet Specification Version 3.0, Section 8.1.5 @MultipartConfig"
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_SERVLET_MULTIPART_ENABLED = "osgi.http.whiteboard.servlet.multipart.enabled";
/**
* Service property specifying the size threshold after which the file will
* be written to disk.
*
* When not set or when the value is not valid, the default threshold is
* determined by the implementation. This property is only evaluated if
* {@link #HTTP_WHITEBOARD_SERVLET_MULTIPART_ENABLED} is set to {@code true}
* .
*
* The value of this service property must be of type {@code Integer}.
*
* @see "Java Servlet Specification Version 3.0, Section 14.4 Deployment Descriptor Diagram"
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_SERVLET_MULTIPART_FILESIZETHRESHOLD = "osgi.http.whiteboard.servlet.multipart.fileSizeThreshold";
/**
* Service property specifying the location where the files can be stored on
* disk.
*
* When not set the default location is defined by the value of the system
* property "java.io.tmpdir". This property is only evaluated if
* {@link #HTTP_WHITEBOARD_SERVLET_MULTIPART_ENABLED} is set to {@code true}
* .
*
* The value of this service property must be of type {@code String}.
*
* @see "Java Servlet Specification Version 3.0, Section 14.4 Deployment Descriptor Diagram"
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_SERVLET_MULTIPART_LOCATION = "osgi.http.whiteboard.servlet.multipart.location";
/**
* Service property specifying the maximum size of a file being uploaded.
*
* When not set or when the value is not valid, the default maximum size is
* [@code -1} (no maximum size). This property is only evaluated if
* {@link #HTTP_WHITEBOARD_SERVLET_MULTIPART_ENABLED} is set to {@code true}
* .
*
* The value of this service property must be of type {@code Long}.
*
* @see "Java Servlet Specification Version 3.0, Section 14.4 Deployment Descriptor Diagram"
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_SERVLET_MULTIPART_MAXFILESIZE = "osgi.http.whiteboard.servlet.multipart.maxFileSize";
/**
* Service property specifying the maximum request size.
*
* When not set or when the value is not valid, the default maximum request
* size is {@code -1} (no maximum size). This property is only evaluated if
* {@link #HTTP_WHITEBOARD_SERVLET_MULTIPART_ENABLED} is set to {@code true}
* .
*
* The value of this service property must be of type {@code Long}.
*
* @see "Java Servlet Specification Version 3.0, Section 14.4 Deployment Descriptor Diagram"
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_SERVLET_MULTIPART_MAXREQUESTSIZE = "osgi.http.whiteboard.servlet.multipart.maxRequestSize";
/**
* Service property specifying the servlet filter name of a {@code Filter}
* service.
*
*
* This name is used as the value for the
* {@code FilterConfig.getFilterName()} method. If this service property is
* not specified, the fully qualified name of the service object's class is
* used as the servlet filter name.
*
*
* Servlet filter names should be unique among all servlet filter services
* associated with a single {@link ServletContextHelper}.
*
*
* The value of this service property must be of type {@code String}.
*/
public static final String HTTP_WHITEBOARD_FILTER_NAME = "osgi.http.whiteboard.filter.name";
/**
* Service property specifying the request mappings for a {@code Filter}
* service.
*
*
* 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 are ignored.
*
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}.
*
* @see "Java Servlet Specification Version 3.0, Section 12.2 Specification of Mappings"
*/
public static final String HTTP_WHITEBOARD_FILTER_PATTERN = "osgi.http.whiteboard.filter.pattern";
/**
* Service property specifying the {@link #HTTP_WHITEBOARD_SERVLET_NAME
* servlet names} for a servlet {@code Filter} service.
*
*
* The specified names are used to determine the servlets whose requests
* 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 property are ignored.
*
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}.
*/
public static final String HTTP_WHITEBOARD_FILTER_SERVLET = "osgi.http.whiteboard.filter.servlet";
/**
* Service property specifying the request mappings for a servlet
* {@code Filter} service.
*
*
* 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 {@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 are ignored.
*
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}.
*
* @see "java.util.regex.Pattern"
*/
public static final String HTTP_WHITEBOARD_FILTER_REGEX = "osgi.http.whiteboard.filter.regex";
/**
* Service property specifying whether a servlet {@code Filter} service
* supports asynchronous processing.
*
*
* By default servlet filters services do not support asynchronous
* processing.
*
*
* The value of this service property must be of type {@code Boolean}.
*
* @see "Java Servlet Specification Version 3.0, Section 2.3.3.3 Asynchronous Processing"
*/
public static final String HTTP_WHITEBOARD_FILTER_ASYNC_SUPPORTED = "osgi.http.whiteboard.filter.asyncSupported";
/**
* Service property specifying the dispatcher handling of a servlet
* {@code Filter}.
*
*
* By default servlet filter services are associated with client requests
* only (see value {@link #DISPATCHER_REQUEST}).
*
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}. Allowed values are
* {@link #DISPATCHER_ASYNC}, {@link #DISPATCHER_ERROR},
* {@link #DISPATCHER_FORWARD}, {@link #DISPATCHER_INCLUDE},
* {@link #DISPATCHER_REQUEST}.
*
* @see "Java Servlet Specification Version 3.0, Section 6.2.5 Filters and the RequestDispatcher"
*/
public static final String HTTP_WHITEBOARD_FILTER_DISPATCHER = "osgi.http.whiteboard.filter.dispatcher";
/**
* Service property prefix referencing a {@link Filter} service.
*
*
* For {@link Filter} services this prefix can be used for service
* properties to mark them as initialization parameters which can be
* retrieved from the associated filter config. The prefix is removed from
* the service property name to build the initialization parameter name.
*
*
* For {@link Filter} services, the value of each initialization parameter
* service property must be of type {@code String}.
*
*/
public static final String HTTP_WHITEBOARD_FILTER_INIT_PARAM_PREFIX = "filter.init.";
/**
* Service property prefix referencing a {@link Preprocessor} service.
*
* For {@link Preprocessor} services this prefix can be used for service
* properties to mark them as initialization parameters which can be
* retrieved from the associated filter configuration. The prefix is removed
* from the service property name to build the initialization parameter
* name.
*
* For {@link Preprocessor} services, the value of each initialization
* parameter service property must be of type {@code String}.
*
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_PREPROCESSOR_INIT_PARAM_PREFIX = "preprocessor.init.";
/**
* Service property to mark a Listener service as a Whiteboard service.
* Listener services with this property set to the string value "true" will
* be treated as Whiteboard services opting in to being handled by the Http
* Whiteboard implementation. If the value "false" is specified, the service
* is opting out and this case is treated exactly the same as if this
* property is missing. If an invalid value is specified this is treated as
* a failure.
*
* The value of this service property must be of type {@code String}. Valid
* values are "true" and "false" ignoring case.
*/
public static final String HTTP_WHITEBOARD_LISTENER = "osgi.http.whiteboard.listener";
/**
* Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
* 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"
*/
public static final String DISPATCHER_REQUEST = "REQUEST";
/**
* Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
* 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"
*/
public static final String DISPATCHER_INCLUDE = "INCLUDE";
/**
* Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
* 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"
*/
public static final String DISPATCHER_FORWARD = "FORWARD";
/**
* Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
* 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"
*/
public static final String DISPATCHER_ASYNC = "ASYNC";
/**
* Possible value for the {@link #HTTP_WHITEBOARD_FILTER_DISPATCHER}
* 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 request mappings for resources.
*
*
* The specified patterns are used to determine whether a request should be
* mapped to resources. Resource services without this service property are
* ignored.
*
*
* The value of this service property must be of type {@code String},
* {@code String[]}, or {@code Collection}.
*
* @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.
*
*
* If a resource service is registered with this property, requests are
* served with bundle resources.
*
*
* This prefix is used to map a requested resource to the bundle's entries.
* The value must not end with slash ("/") with the exception that
* a name of the form "/" is used to denote the root of the
* bundle. See the specification text for details on how HTTP requests are
* mapped.
*
*
* The value of this service property must be of type {@code 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 implementation to process the service.
*
*
* An Http Whiteboard implementation can define any number of service
* properties which can be referenced by the target filter. The service
* properties should always include the
* {@link HttpServiceRuntimeConstants#HTTP_SERVICE_ENDPOINT
* osgi.http.endpoint} service property if the endpoint information is
* known.
*
*
* If this service property is not specified, then all Http Whiteboard
* implementations can process the service.
*
*
* The value of this service property must be of type {@code String} and be
* a valid {@link Filter filter string}.
*/
public static final String HTTP_WHITEBOARD_TARGET = "osgi.http.whiteboard.target";
/**
* If a servlet filter, error page or listener wants to be registered with
* the Http Context(s) managed by the Http Service, they can select the
* contexts having this property.
*
* Servlets or resources registered using this property are treated as an
* invalid registration.
*
* @see #HTTP_SERVICE_CONTEXT_FILTER
* @since 1.1
*/
public static final String HTTP_SERVICE_CONTEXT_PROPERTY = "osgi.http.whiteboard.context.httpservice";
/**
* If a servlet filter, error page or listener wants to be registered with
* the Http Context(s) managed by the Http Service, they can select the
* contexts having the {@link #HTTP_SERVICE_CONTEXT_PROPERTY} property using
* this filter.
*
* @see #HTTP_SERVICE_CONTEXT_PROPERTY
* @since 1.1
*/
public static final String HTTP_SERVICE_CONTEXT_FILTER = "("
+ HTTP_SERVICE_CONTEXT_PROPERTY + "=*)";
/**
* The name of the implementation capability for the Http Whiteboard
* specification
*
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_IMPLEMENTATION = "osgi.http";
/**
* The version of the implementation capability for the Http Whiteboard
* specification
*
* @since 1.1
*/
public static final String HTTP_WHITEBOARD_SPECIFICATION_VERSION = "1.1";
}