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

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
     new d12fb20262 FELIX-6574 : Use RC1 of OSGi servlet whiteboard api
d12fb20262 is described below

commit d12fb20262c5b369474d73d0d384cd757399bfe2
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Wed Nov 9 08:02:35 2022 +0100

    FELIX-6574 : Use RC1 of OSGi servlet whiteboard api
---
 http/base/pom.xml                                  |   6 +
 .../servlet/context/ServletContextHelper.java      | 332 ------------
 .../osgi/service/servlet/context/package-info.java |  44 --
 .../servlet/runtime/HttpServiceRuntime.java        |  56 ---
 .../runtime/HttpServiceRuntimeConstants.java       |  51 --
 .../servlet/runtime/dto/BaseServletDTO.java        |  76 ---
 .../service/servlet/runtime/dto/DTOConstants.java  | 108 ----
 .../service/servlet/runtime/dto/ErrorPageDTO.java  |  40 --
 .../servlet/runtime/dto/FailedErrorPageDTO.java    |  47 --
 .../servlet/runtime/dto/FailedFilterDTO.java       |  46 --
 .../servlet/runtime/dto/FailedListenerDTO.java     |  46 --
 .../servlet/runtime/dto/FailedPreprocessorDTO.java |  39 --
 .../servlet/runtime/dto/FailedResourceDTO.java     |  46 --
 .../runtime/dto/FailedServletContextDTO.java       |  53 --
 .../servlet/runtime/dto/FailedServletDTO.java      |  48 --
 .../service/servlet/runtime/dto/FilterDTO.java     | 102 ----
 .../service/servlet/runtime/dto/ListenerDTO.java   |  51 --
 .../servlet/runtime/dto/PreprocessorDTO.java       |  53 --
 .../servlet/runtime/dto/RequestInfoDTO.java        |  62 ---
 .../service/servlet/runtime/dto/ResourceDTO.java   |  59 ---
 .../service/servlet/runtime/dto/RuntimeDTO.java    | 105 ----
 .../servlet/runtime/dto/ServletContextDTO.java     | 134 -----
 .../service/servlet/runtime/dto/ServletDTO.java    |  75 ---
 .../service/servlet/runtime/dto/package-info.java  |  44 --
 .../osgi/service/servlet/runtime/package-info.java |  44 --
 .../whiteboard/HttpWhiteboardConstants.java        | 554 ---------------------
 .../service/servlet/whiteboard/Preprocessor.java   |  57 ---
 .../service/servlet/whiteboard/package-info.java   |  42 --
 http/jetty/pom.xml                                 |   6 +
 29 files changed, 12 insertions(+), 2414 deletions(-)

diff --git a/http/base/pom.xml b/http/base/pom.xml
index d99ca5de71..12ccefb8d7 100644
--- a/http/base/pom.xml
+++ b/http/base/pom.xml
@@ -61,6 +61,12 @@
             <version>8.0.0</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.servlet</artifactId>
+            <version>2.0.0-RC1</version>
+            <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.service.http</artifactId>
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/context/ServletContextHelper.java
 
b/http/base/src/main/java/org/osgi/service/servlet/context/ServletContextHelper.java
deleted file mode 100644
index 179302dac3..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/context/ServletContextHelper.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * 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.servlet.context;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.osgi.annotation.versioning.ConsumerType;
-import org.osgi.framework.Bundle;
-import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
-
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
-/**
- * Helper service for a servlet context used by a Servlet Whiteboard 
implementation
- * to serve HTTP requests.
- * <p>
- * This service defines methods that the Servlet Whiteboard implementation may 
call
- * to get information for a request when dealing with whiteboard services.
- * <p>
- * Each {@code ServletContextHelper} is registered with a
- * {@link HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
- * "osgi.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 that is first in the
- * {@link org.osgi.framework.ServiceReference#compareTo(Object) ranking order}
- * is active, the others are inactive.
- * <p>
- * A context is registered with the
- * {@link HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_PATH
- * "osgi.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,
- * each duplicate context path is searched in
- * {@link org.osgi.framework.ServiceReference#compareTo(Object) ranking order}
- * until a matching servlet or resource is found.
- * <p>
- * Servlets, servlet filters, resources, and listeners services may be
- * associated with a {@code ServletContextHelper} service with the
- * {@link HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_SELECT
- * "osgi.http.whiteboard.context.select"} service property. 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 HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_SELECT
- * "osgi.http.whiteboard.context.select"} service property is configured for a
- * whiteboard service, a default {@code ServletContextHelper} is used.
- * <p>
- * Those whiteboard services that are associated with 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>{@link #getMimeType(String) getMimeType} - Always returns
- * {@code null}.</li>
- * <li>{@link #handleSecurity(HttpServletRequest, HttpServletResponse)
- * handleSecurity} - Always returns {@code true}.</li>
- * <li>{@link #getResource(String) getResource} - Assumes the named resource is
- * in the bundle of the whiteboard service, addressed from the root. 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 Servlet Whiteboard implementation
- * needs to be granted
- * {@code org.osgi.framework.AdminPermission[*,RESOURCE]}.</li>
- * <li>{@link #getResourcePaths(String) 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 Servlet Whiteboard
- * implementation needs to be granted
- * {@code org.osgi.framework.AdminPermission[*,RESOURCE]}.</li>
- * <li>{@link #getRealPath(String) getRealPath} - Always returns
- * {@code null}.</li>
- * </ul>
- * 
- * @ThreadSafe
- * @author $Id: b2bedf61b2e95acd80591872f0b0cc0777b2cb77 $
- * @see HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
- * @see HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_PATH
- */
-@ConsumerType
-public abstract class ServletContextHelper {
-       /**
-        * {@code HttpServletRequest} attribute specifying the name of the
-        * authenticated user. The value of the attribute can be retrieved by
-        * {@code HttpServletRequest.getRemoteUser}.
-        */
-       public static final String      REMOTE_USER                     = 
"org.osgi.service.http.authentication.remote.user";
-       /**
-        * {@code HttpServletRequest} attribute specifying the scheme used in
-        * authentication. The value of the attribute can be retrieved by
-        * {@code HttpServletRequest.getAuthType}.
-        */
-       public static final String      AUTHENTICATION_TYPE     = 
"org.osgi.service.http.authentication.type";
-       /**
-        * {@code HttpServletRequest} attribute specifying the {@code 
Authorization}
-        * object obtained from the {@code org.osgi.service.useradmin.UserAdmin}
-        * service. The value of the attribute can be retrieved by
-        * {@code 
HttpServletRequest.getAttribute(ServletContextHelper.AUTHORIZATION)}
-        * .
-        */
-       public static final String      AUTHORIZATION           = 
"org.osgi.service.useradmin.authorization";
-
-       /** Bundle associated with this context. */
-       private final Bundle            bundle;
-
-       /**
-        * Construct a new context helper.
-        * 
-        * <p>
-        * If needed, the subclass will have to handle the association with a
-        * specific bundle.
-        */
-       public ServletContextHelper() {
-               this(null);
-       }
-
-       /**
-        * Construct a new context helper associated with the specified bundle.
-        * 
-        * @param bundle The bundle to be associated with this context helper.
-        */
-       public ServletContextHelper(final Bundle bundle) {
-               this.bundle = bundle;
-       }
-
-       /**
-        * Handles security for the specified request.
-        * <p>
-        * The Servlet 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 {@code Authorization}
-        * header in the request is missing or not acceptable, then this method
-        * should set the {@code WWW-Authenticate} header in the response 
object,
-        * set the status in the response object to Unauthorized(401) and return
-        * {@code false}. See also <a 
href="http://www.ietf.org/rfc/rfc2617.txt";>RFC
-        * 2617: HTTP Authentication: Basic and Digest Access 
Authentication</a>.
-        * <p>
-        * If the request requires a secure connection and the {@code getScheme}
-        * method in the request does not return 'https' or some other 
acceptable
-        * secure protocol, then this method should set the status in the 
response
-        * object to Forbidden(403) and return {@code false}.
-        * <p>
-        * When this method returns {@code false}, the Servlet Whiteboard
-        * implementation will send the response back to the client, thereby
-        * completing the request. When this method returns {@code true}, the
-        * Servlet Whiteboard implementation will proceed with servicing the
-        * request.
-        * <p>
-        * If the specified request has been authenticated, this method must 
set the
-        * {@link #AUTHENTICATION_TYPE} request attribute to the type of
-        * authentication used, and the {@link #REMOTE_USER} request attribute 
to
-        * the remote user (request attributes are set using the
-        * {@code setAttribute} method on the request). If this method does not
-        * perform any authentication, it must not set these attributes.
-        * <p>
-        * If the authenticated user is also authorized to access certain 
resources,
-        * this method must set the {@link #AUTHORIZATION} request attribute to 
the
-        * {@code Authorization} object obtained from the
-        * {@code org.osgi.service.useradmin.UserAdmin} service.
-        * <p>
-        * The servlet responsible for servicing the specified request 
determines
-        * the authentication type and remote user by calling the
-        * {@code getAuthType} and {@code getRemoteUser} methods, respectively, 
on
-        * the request.
-        * <p>
-        * If there is the need to clean up resources at the end of the 
request, the
-        * method {@link #finishSecurity(HttpServletRequest, 
HttpServletResponse)}
-        * can be implemented. That method is only called if this method returns
-        * {@code true}.
-        *
-        * @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 Servlet Whiteboard
-        *         implementation will send the response back to the client.
-        * @throws java.io.IOException May be thrown by this method. If this 
occurs,
-        *             the Servlet Whiteboard implementation will terminate the
-        *             request and close the socket.
-        * @see #finishSecurity(HttpServletRequest, HttpServletResponse)
-        */
-       public boolean handleSecurity(final HttpServletRequest request,
-                       final HttpServletResponse response)
-                       throws IOException {
-               return true;
-       }
-
-       /**
-        * Finishes the security context for the specified request.
-        * <p>
-        * Implementations of this service can implement this method to clean up
-        * resources which have been setup in
-        * {@link #handleSecurity(HttpServletRequest, HttpServletResponse)}.
-        * <p>
-        * This method is only called if
-        * {@link #handleSecurity(HttpServletRequest, HttpServletResponse)} 
returned
-        * {@code true} for the specified request. This method is called once 
the
-        * pipeline finishes processing or if an exception is thrown from 
within the
-        * pipeline execution.
-        * <p>
-        * The default implementation of this method does nothing.
-        * 
-        * @param request The HTTP request.
-        * @param response The HTTP response.
-        * @see #handleSecurity(HttpServletRequest, HttpServletResponse)
-        */
-       public void finishSecurity(final HttpServletRequest request,
-                       final HttpServletResponse response) {
-               // do nothing
-       }
-
-       /**
-        * Maps a resource name to a URL.
-        * <p>
-        * Called by the Servlet Whiteboard implementation to map the specified
-        * resource name to a URL. For servlets, the Servlet Whiteboard 
implementation
-        * will call this method to support the {@code ServletContext} methods
-        * {@code getResource} and {@code getResourceAsStream}. For resources, 
the
-        * Servlet Whiteboard implementation will call this method to locate 
the named
-        * resource.
-        * <p>
-        * The context can control from where resources come. For example, the
-        * resource can be mapped to a file in the bundle's persistent storage 
area
-        * via {@code BundleContext.getDataFile(name).toURI().toURL()} or to a
-        * resource in the context's bundle via {@code 
getClass().getResource(name)}
-        * 
-        * @param name The name of the requested resource.
-        * @return A URL that a Servlet Whiteboard implementation can use to 
read the
-        *         resource or {@code null} if the resource does not exist.
-        */
-       public URL getResource(String name) {
-               if ((name != null) && (bundle != null)) {
-                       if (name.startsWith("/")) {
-                               name = name.substring(1);
-                       }
-
-                       return bundle.getEntry(name);
-               }
-               return null;
-       }
-
-       /**
-        * Maps a name to a MIME type.
-        * 
-        * <p>
-        * Called by the Servlet Whiteboard implementation to determine the 
MIME type
-        * for the specified name. For whiteboard services, the Servlet 
Whiteboard
-        * implementation will call this method to support the
-        * {@code ServletContext} method {@code getMimeType}. For resource 
servlets,
-        * the Servlet 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
-        *         {@code null} to indicate that the Servlet Whiteboard 
implementation
-        *         should determine the MIME type itself.
-        */
-       public String getMimeType(final String name) {
-               return null;
-       }
-
-       /**
-        * Returns a directory-like listing of all the paths to resources 
within the
-        * web application whose longest sub-path matches the supplied path
-        * argument.
-        * 
-        * <p>
-        * Called by the Servlet Whiteboard implementation to support the
-        * {@code ServletContext} method {@code getResourcePaths} for whiteboard
-        * services.
-        * 
-        * @param path The partial path used to match the resources, which must
-        *        start with a /.
-        * @return A Set containing the directory listing, or {@code null} if 
there
-        *         are no resources in the web application whose path begins 
with
-        *         the supplied path.
-        */
-       public Set<String> getResourcePaths(final String path) {
-               if ((path != null) && (bundle != null)) {
-                       final Enumeration<URL> e = bundle.findEntries(path, 
null, false);
-                       if (e != null) {
-                               final Set<String> result = new 
LinkedHashSet<String>();
-                               while (e.hasMoreElements()) {
-                                       result.add(e.nextElement().getPath());
-                               }
-                               return result;
-                       }
-               }
-               return null;
-       }
-
-       /**
-        * Gets the real path corresponding to the given virtual path.
-        * <p>
-        * Called by the Servlet Whiteboard implementation to support the
-        * {@code ServletContext} method {@code getRealPath} for whiteboard
-        * services.
-        * 
-        * @param path The virtual path to be translated to a real path.
-        * @return The real path, or {@code null} if the translation cannot be
-        *         performed.
-        */
-       public String getRealPath(final String path) {
-               return null;
-       }
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/context/package-info.java 
b/http/base/src/main/java/org/osgi/service/servlet/context/package-info.java
deleted file mode 100644
index cb5f7d52c3..0000000000
--- a/http/base/src/main/java/org/osgi/service/servlet/context/package-info.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * 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 
- 
*******************************************************************************/
-
-/**
- * Http Context Package Version 2.0.
- * <p>
- * Bundles wishing to use this package must list the package in the
- * Import-Package header of the bundle's manifest. This package has two types 
of
- * users: the consumers that use the API in this package and the providers that
- * implement the API in this package.
- * <p>
- * Example import for consumers using the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.context; 
version="[2.0,3.0)"}
- * <p>
- * Example import for providers implementing the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.context; 
version="[2.0,2.1)"}
- * 
- * @author $Id: c0f95eca0af798efe3c7bf76e2576d2fc17cdb55 $
- */
-
-@Version(HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.context;
-
-import static 
org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_VERSION;
-
-import org.osgi.annotation.versioning.Version;
-
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntime.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntime.java
deleted file mode 100644
index 56660fc587..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntime.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime;
-
-import org.osgi.annotation.versioning.ProviderType;
-import org.osgi.service.servlet.runtime.dto.RequestInfoDTO;
-import org.osgi.service.servlet.runtime.dto.RuntimeDTO;
-
-/**
- * The HttpServiceRuntime service represents the runtime information of a
- * Servlet Whiteboard implementation.
- * <p>
- * It provides access to DTOs representing the current state of the service.
- * <p>
- * The HttpServiceRuntime service must be registered with the
- * {@link HttpServiceRuntimeConstants#HTTP_SERVICE_ENDPOINT} service property.
- *
- * @ThreadSafe
- * @author $Id: c36db83dfe9f7841a18cd9e98c1bdb30a04aaeb1 $
- */
-@ProviderType
-public interface HttpServiceRuntime {
-
-       /**
-        * Return the runtime DTO representing the current state.
-        * 
-        * @return The runtime DTO.
-        */
-       public RuntimeDTO getRuntimeDTO();
-
-       /**
-        * Return a request info DTO containing the services involved with
-        * processing a request for the specified path.
-        * 
-        * @param path The request path, relative to the root of the Servlet 
Whiteboard
-        *        implementation.
-        * @return The request info DTO for the specified path.
-        */
-       public RequestInfoDTO calculateRequestInfoDTO(String path);
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntimeConstants.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntimeConstants.java
deleted file mode 100644
index 4d4c497ee0..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntimeConstants.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime;
-
-/**
- * Defines standard names for Http Runtime Service constants.
- * 
- * @author $Id: 88307ef555f5ca25bee6dc678ca40a7d6c5ee254 $
- */
-public final class HttpServiceRuntimeConstants {
-       private HttpServiceRuntimeConstants() {
-               // non-instantiable
-       }
-
-       /**
-        * Http Runtime Service service property specifying the endpoints upon 
which
-        * the Servlet Whiteboard implementation is listening.
-        * <p>
-        * An endpoint value is a URL or a relative path, to which the Servlet
-        * Whiteboard implementation 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 Servlet Whiteboard implementation. If the Servlet 
Whiteboard
-        * 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 Servlet Whiteboard implementation can be listening on multiple
-        * endpoints.
-        * <p>
-        * The value of this service property must be of type {@code String},
-        * {@code String[]}, or {@code Collection<String>}.
-        */
-       public static final String      HTTP_SERVICE_ENDPOINT   = 
"osgi.http.endpoint";
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/BaseServletDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/BaseServletDTO.java
deleted file mode 100644
index 47eb10fda7..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/BaseServletDTO.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import java.util.Map;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents common information about a {@code jakarta.servlet.Servlet} 
service.
- *
- * @NotThreadSafe
- * @author $Id: 72b16d073d8bba0a152c934949f613716a42f331 $
- */
-public abstract class BaseServletDTO extends DTO {
-       /**
-        * The name of the servlet. This value is never {@code null}, unless 
this
-        * object represents a {@code FailedServletDTO} or a
-        * {@code FailedErrorPageDTO} where the value might be {@code null}.
-        */
-       public String                           name;
-
-       /**
-        * The information string from the servlet.
-        * <p>
-        * This is the value returned by the {@code Servlet.getServletInfo()}
-        * method. For a {@code FailedServletDTO} or a {@code 
FailedErrorPageDTO}
-        * this is always {@code null}.
-        */
-       public String                           servletInfo;
-
-       /**
-        * Specifies whether the servlet supports asynchronous processing.
-        */
-       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. If the service has no initialization
-        * parameters, the map is empty.
-        */
-       public Map<String, String>      initParams;
-
-       /**
-        * 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 Servlet 
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;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/DTOConstants.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/DTOConstants.java
deleted file mode 100644
index 471f6b9562..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/DTOConstants.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Defines standard constants for the DTOs.
- */
-public final class DTOConstants {
-       private DTOConstants() {
-               // non-instantiable
-       }
-
-       /**
-        * Failure reason is unknown.
-        */
-       public static final int FAILURE_REASON_UNKNOWN                          
                = 0;
-
-       /**
-        * No matching
-        * {@code org.osgi.service.servlet.context.ServletContextHelper}.
-        **/
-       public static final int FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING      
= 1;
-
-       /**
-        * Matching {@code 
org.osgi.service.servlet.context.ServletContextHelper},
-        * but the context is not used due to a problem with the context.
-        */
-       public static final int FAILURE_REASON_SERVLET_CONTEXT_FAILURE          
= 2;
-
-       /**
-        * Service is shadowed by another service.
-        * <p>
-        * For example, another service with the same service properties but 
having
-        * a higher service ranking. See
-        * {@link org.osgi.framework.ServiceReference#compareTo(Object)}.
-        */
-       public static final int FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE        
= 3;
-
-       /**
-        * An exception occurred during initializing of the service.
-        * <p>
-        * This reason can only happen for servlets and servlet filters.
-        */
-       public static final int FAILURE_REASON_EXCEPTION_ON_INIT                
        = 4;
-
-       /**
-        * The service is registered in the service registry but getting the 
service
-        * fails as it returns {@code null}.
-        */
-       public static final int FAILURE_REASON_SERVICE_NOT_GETTABLE             
        = 5;
-
-       /**
-        * The service is registered in the service registry but the service
-        * properties are invalid.
-        */
-       public static final int FAILURE_REASON_VALIDATION_FAILED                
        = 6;
-
-       /**
-        * The service is not registered as a prototype scoped service and is
-        * already in use with a servlet context and therefore can't be used 
with
-        * another servlet context.
-        */
-       public static final int FAILURE_REASON_SERVICE_IN_USE                   
        = 7;
-
-       /**
-        * The servlet is not registered as it is configured to have multipart
-        * enabled, but the bundle containing the servlet has no write 
permission to
-        * the provided location for the uploaded files.
-        */
-       public static final int FAILURE_REASON_SERVLET_WRITE_TO_LOCATION_DENIED 
        = 8;
-
-       /**
-        * The servlet is not registered as it is configured to have multipart
-        * enabled, but the whiteboard implementation has no write permission 
to the
-        * default location for the uploaded files.
-        */
-       public static final int 
FAILURE_REASON_WHITEBOARD_WRITE_TO_DEFAULT_DENIED       = 9;
-
-       /**
-        * The servlet is not registered as it is configured to have multipart
-        * enabled, but the bundle containing the servlet has no read 
permission to
-        * the default location for the uploaded files.
-        */
-       public static final int FAILURE_REASON_SERVLET_READ_FROM_DEFAULT_DENIED 
        = 10;
-
-       /**
-        * The servlet is not registered as it is configured to have multipart
-        * enabled, but the whiteboard implementation has no write permission 
to the
-        * provided location for the uploaded files.
-        */
-       public static final int 
FAILURE_REASON_WHITEBOARD_WRITE_TO_LOCATION_DENIED      = 11;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ErrorPageDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ErrorPageDTO.java
deleted file mode 100644
index 122aa48e45..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ErrorPageDTO.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a {@code jakarta.servlet.Servlet} for handling errors and 
currently
- * being used by a servlet context.
- *
- * @NotThreadSafe
- * @author $Id: 4808832fce1d344fd58f1af913cb1a85aa374487 $
- */
-public class ErrorPageDTO extends BaseServletDTO {
-       /**
-        * The exceptions the error page is used for. This array might be
-        * empty.
-        */
-       public String[] exceptions;
-
-       /**
-        * The error codes the error page is used for. This array might be
-        * empty.
-        */
-       public long[]   errorCodes;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedErrorPageDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedErrorPageDTO.java
deleted file mode 100644
index 65020ae801..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedErrorPageDTO.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a {@code jakarta.servlet.Servlet} service registered as an error
- * 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
- * {@code org.osgi.service.servlet.context.ServletContextHelper}.
- * 
- * @NotThreadSafe
- * @author $Id: a5e20a56ba5bc30ba593c3eaf973c6ce4f1c0c52 $
- */
-public class FailedErrorPageDTO extends ErrorPageDTO {
-
-       /**
-        * The reason why the servlet represented by this DTO is not used.
-        * 
-        * @see DTOConstants#FAILURE_REASON_UNKNOWN
-        * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT
-        * @see DTOConstants#FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_CONTEXT_FAILURE
-        * @see DTOConstants#FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE
-        */
-       public int      failureReason;
-
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedFilterDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedFilterDTO.java
deleted file mode 100644
index f4ae82172f..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedFilterDTO.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * 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
- * does not point to an existing servlet context.
- * 
- * @NotThreadSafe
- * @author $Id: 556acb51c1f053e6a61cb28e8317a7b9309c055a $
- */
-public class FailedFilterDTO extends FilterDTO {
-
-       /**
-        * 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
-        * @see DTOConstants#FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_CONTEXT_FAILURE
-        * @see DTOConstants#FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE
-        */
-       public int      failureReason;
-
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedListenerDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedListenerDTO.java
deleted file mode 100644
index 6e840a8b5a..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedListenerDTO.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * 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}
- * and does not point to an existing servlet context.
- * 
- * @NotThreadSafe
- * @author $Id: 5a73d733ebf74d656f037d039ecc9ad4716b7d46 $
- */
-public class FailedListenerDTO extends ListenerDTO {
-
-       /**
-        * The reason why the listener represented by this DTO is not used.
-        * 
-        * @see DTOConstants#FAILURE_REASON_UNKNOWN
-        * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT
-        * @see DTOConstants#FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_CONTEXT_FAILURE
-        * @see DTOConstants#FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE
-        */
-       public int      failureReason;
-
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedPreprocessorDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedPreprocessorDTO.java
deleted file mode 100644
index 221825179d..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedPreprocessorDTO.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a preprocessor service which is currently not being used due to a
- * problem.
- * 
- * @NotThreadSafe
- * @author $Id: 5c725e17192d4f85fa9c5f4a5c088d1a5be3db5a $
- */
-public class FailedPreprocessorDTO extends PreprocessorDTO {
-
-       /**
-        * The reason why the preprocessor represented by this DTO is not used.
-        * 
-        * @see DTOConstants#FAILURE_REASON_UNKNOWN
-        * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        */
-       public int      failureReason;
-
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedResourceDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedResourceDTO.java
deleted file mode 100644
index fb58ed2054..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedResourceDTO.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a resource definition which is currently not being used by a
- * servlet context due to a problem.
- * <p>
- * 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.
- * 
- * @NotThreadSafe
- * @author $Id: 64707b03d8522f5d31f222c6829252f6a2821417 $
- */
-public class FailedResourceDTO extends ResourceDTO {
-
-       /**
-        * The reason why the resource represented by this DTO is not used.
-        * 
-        * @see DTOConstants#FAILURE_REASON_UNKNOWN
-        * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT
-        * @see DTOConstants#FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_CONTEXT_FAILURE
-        * @see DTOConstants#FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE
-        */
-       public int      failureReason;
-
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletContextDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletContextDTO.java
deleted file mode 100644
index d1624a99a5..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletContextDTO.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a servlet context that is currently not used due to some problem.
- * 
- * The following fields return an empty array for a
- * {@code FailedServletContextDTO}:
- * <ul>
- * <li>{@link ServletContextDTO#servletDTOs}</li>
- * <li>{@link ServletContextDTO#resourceDTOs}</li>
- * <li>{@link ServletContextDTO#filterDTOs}</li>
- * <li>{@link ServletContextDTO#errorPageDTOs}</li>
- * <li>{@link ServletContextDTO#listenerDTOs}</li>
- * </ul>
- * <p>
- * The method {@link ServletContextDTO#attributes} returns an empty map for a
- * {@code FailedServletContextDTO}.
- *
- * @NotThreadSafe
- * @author $Id: 501844f35a0a350c765882eec19e283c93290002 $
- */
-public class FailedServletContextDTO extends ServletContextDTO {
-
-       /**
-        * The reason why the servlet context represented by this DTO is not 
used.
-        * 
-        * @see DTOConstants#FAILURE_REASON_UNKNOWN
-        * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT
-        * @see DTOConstants#FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_CONTEXT_FAILURE
-        * @see DTOConstants#FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE
-        */
-       public int      failureReason;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletDTO.java
deleted file mode 100644
index 7866346f6b..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletDTO.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a {@code jakarta.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 FailedServletDTO#servletContextId} always returns {@code 0} and
- * does not point to an existing servlet context.
- * 
- * @NotThreadSafe
- * @author $Id: 3a9b086cab258aefb940d5acb48ed9ea61f551d3 $
- */
-public class FailedServletDTO extends ServletDTO {
-
-       /**
-        * The reason why the servlet represented by this DTO is not used.
-        * 
-        * @see DTOConstants#FAILURE_REASON_UNKNOWN
-        * @see DTOConstants#FAILURE_REASON_EXCEPTION_ON_INIT
-        * @see DTOConstants#FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING
-        * @see DTOConstants#FAILURE_REASON_SERVICE_NOT_GETTABLE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_CONTEXT_FAILURE
-        * @see DTOConstants#FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE
-        * @see DTOConstants#FAILURE_REASON_SERVLET_WRITE_TO_LOCATION_DENIED
-        * @see DTOConstants#FAILURE_REASON_WHITEBOARD_WRITE_TO_DEFAULT_DENIED
-        * @see DTOConstants#FAILURE_REASON_SERVLET_READ_FROM_DEFAULT_DENIED
-        */
-       public int      failureReason;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FilterDTO.java 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FilterDTO.java
deleted file mode 100644
index 284ae9459c..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FilterDTO.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import java.util.Map;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents a servlet {@code jakarta.servlet.Filter} service currently being
- * used for by a servlet context.
- * 
- * @NotThreadSafe
- * @author $Id: a77d5c579edd2de46fadb7722fa2edd528984e3f $
- */
-public class FilterDTO extends DTO {
-       /**
-        * The name of the servlet filter. This field is never {@code null}.
-        */
-       public String                           name;
-
-       /**
-        * The request mappings for the servlet filter.
-        * 
-        * <p>
-        * The specified patterns are used to determine whether a request is 
mapped
-        * to the servlet filter. This array might be empty.
-        */
-       public String[]                         patterns;
-
-       /**
-        * 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. This array might be empty.
-        */
-       public String[]                         servletNames;
-
-       /**
-        * The request mappings for the servlet filter.
-        * 
-        * <p>
-        * The specified regular expressions are used to determine whether a 
request
-        * is mapped to the servlet filter. This array might be empty.
-        */
-       public String[]                         regexs;
-
-       /**
-        * Specifies whether the servlet filter supports asynchronous 
processing.
-        */
-       public boolean                          asyncSupported;
-
-       /**
-        * The dispatcher associations for the servlet filter.
-        * 
-        * <p>
-        * The specified names are used to determine in what occasions the 
servlet
-        * filter is called. This array is never {@code null}.
-        */
-       public String[]                         dispatcher;
-
-       /**
-        * 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 servlet filter. In the case of a 
servlet
-        * filter registered in the service registry and picked up by a Servlet
-        * 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 servlet context for the servlet filter 
represented
-        * by this DTO.
-        */
-       public long             servletContextId;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ListenerDTO.java 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ListenerDTO.java
deleted file mode 100644
index 77a11a3df0..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ListenerDTO.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents a listener currently being used by a servlet context.
- * 
- * @NotThreadSafe
- * @author $Id: d806ecaf21b6be83a7cd50ae19b897072565e5a5 $
- */
-public class ListenerDTO extends DTO {
-
-       /**
-        * 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 Servlet 
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.
-        */
-       public long                                     serviceId;
-
-       /**
-        * The service id of the servlet context for the listener represented by
-        * this DTO.
-        */
-       public long             servletContextId;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/PreprocessorDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/PreprocessorDTO.java
deleted file mode 100644
index 1bd8a68fdf..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/PreprocessorDTO.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import java.util.Map;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents a preprocessor
- * {@code org.osgi.service.servlet.whiteboard.Preprocessor} service currently
- * being used during request processing.
- * 
- * @NotThreadSafe
- * @author $Id: 6e3a69f6a7618ebf1fcb25dfe2c0dd064a70be3c $
- */
-public class PreprocessorDTO extends DTO {
-
-       /**
-        * The preprocessor initialization parameters as provided during
-        * registration of the preprocessor. Additional parameters like the Http
-        * Service Runtime attributes are not included. If the preprocessor has 
not
-        * initialization parameters, this map is empty.
-        */
-       public Map<String, String>      initParams;
-
-       /**
-        * Service property identifying the preprocessor. In the case of a
-        * preprocessor registered in the service registry and picked up by a
-        * Servlet Whiteboard Implementation, this value is not negative and
-        * corresponds to the service id in the registry. If the preprocessor 
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;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RequestInfoDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RequestInfoDTO.java
deleted file mode 100644
index 9bccb3d240..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RequestInfoDTO.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents the services used to process a specific request.
- * 
- * @NotThreadSafe
- * @author $Id: 75e500211a981521d21f53c0e4d45ba66654c62c $
- */
-public class RequestInfoDTO extends DTO {
-       /**
-        * The path of the request relative to the root.
-        */
-       public String                           path;
-
-       /**
-        * The service id of the servlet context processing the request 
represented
-        * by this DTO.
-        */
-       public long             servletContextId;
-       
-       /**
-        * 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
-        * {@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
-        * {@code null}.
-        */
-       public ResourceDTO resourceDTO;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ResourceDTO.java 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ResourceDTO.java
deleted file mode 100644
index db09beedb3..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ResourceDTO.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents a resource definition currently being used by a servlet context.
- * 
- * @NotThreadSafe
- * @author $Id: 6c99e33f1664cb933f0a3333deb05f4e1ee37d9c $
- */
-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. This value is never {@code null}.
-        */
-       public String[]                         patterns;
-
-       /**
-        * The prefix of the resource.
-        */
-       public String                           prefix;
-
-       /**
-        * Service property identifying the resource. In the case of a resource
-        * registered in the service registry and picked up by a Servlet 
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 servlet context for the resource represented by
-        * this DTO.
-        */
-       public long             servletContextId;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RuntimeDTO.java 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RuntimeDTO.java
deleted file mode 100644
index 3d24b5ffdb..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RuntimeDTO.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import org.osgi.dto.DTO;
-import org.osgi.framework.dto.ServiceReferenceDTO;
-
-/**
- * Represents the state of a Http Service Runtime.
- * 
- * @NotThreadSafe
- * @author $Id: 47eaebcf0cc13755e836eec4e3cfa2987c4f155e $
- */
-public class RuntimeDTO extends DTO {
-
-       /**
-        * The DTO for the corresponding
-        * {@code org.osgi.service.servlet.runtime.HttpServiceRuntime}.
-        * This value is never {@code null}.
-        */
-       public ServiceReferenceDTO                      serviceDTO;
-
-       /**
-        * Returns the representations of the
-        * {@code org.osgi.service.servlet.whiteboard.Preprocessor} objects 
used by
-        * the Http Service Runtime. The returned array may be empty if the Http
-        * Service Runtime is currently not using any
-        * {@code  org.osgi.service.servlet.whiteboard.Preprocessor} objects.
-        */
-       public PreprocessorDTO[]                        preprocessorDTOs;
-
-       /**
-        * Returns the representations of the {@code 
jakarta.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 jakarta.servlet.ServletContext} objects.
-        */
-       public ServletContextDTO[]                      servletContextDTOs;
-
-       /**
-        * Returns the representations of the {@code 
jakarta.servlet.ServletContext}
-        * objects currently not used by the Http service runtime due to some
-        * problem. The returned array may be empty.
-        */
-       public FailedServletContextDTO[] failedServletContextDTOs;
-
-       /**
-        * Returns the representations of the {@code jakarta.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.
-        */
-       public FailedResourceDTO[] failedResourceDTOs;
-
-       /**
-        * Returns the representations of the servlet
-        * {@code org.osgi.service.servlet.whiteboard.Preprocessor} services
-        * associated with this runtime but currently not used due to some 
problem.
-        * The returned array may be empty.
-        */
-       public FailedPreprocessorDTO[]          failedPreprocessorDTOs;
-
-       /**
-        * Returns the representations of the {@code jakarta.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 jakarta.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.
-        */
-       public FailedListenerDTO[] failedListenerDTOs;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletContextDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletContextDTO.java
deleted file mode 100644
index 3501d0ed11..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletContextDTO.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-import java.util.Map;
-
-import org.osgi.dto.DTO;
-
-/**
- * Represents a {@code jakarta.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.servlet.context.ServletContextHelper} service.
- * 
- * @NotThreadSafe
- * @author $Id: edeab606739715e38fdab31edab148665874d68a $
- */
-public class ServletContextDTO extends DTO {
-       /**
-        * The name of the servlet context.
-        * The name of the corresponding
-        * {@link org.osgi.service.servlet.context.ServletContextHelper}.
-        * <p>
-        * This is the value returned by the
-        * {@code ServletContext.getServletContextName()} method.
-        */
-       public String name;
-
-       /**
-        * The servlet context path.
-        * 
-        * This is the value returned by the {@code 
ServletContext.getContextPath()}
-        * method.
-        */
-       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. If the 
context
-        * has no initialization parameters, this map is empty.
-        */
-       public Map<String, String>      initParams;
-
-       /**
-        * The servlet context attributes.
-        * 
-        * <p>
-        * 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 backed by a
-        * {@code org.osgi.service.servlet.context.ServletContextHelper} 
registered
-        * in the service registry and picked up by a Servlet 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;
-
-       /**
-        * Returns the representations of the {@code Servlet} services 
associated
-        * with this context.
-        * 
-        * The representations of the {@code Servlet} services associated with 
this
-        * context. The returned array may be empty if this context is 
currently not
-        * associated with any {@code Servlet} services.
-        */
-       public ServletDTO[]                     servletDTOs;
-
-       /**
-        * Returns the representations of the resource services associated with 
this
-        * context.
-        * 
-        * The representations of the resource services associated with this
-        * context. The returned array may be empty if this context is 
currently not
-        * associated with any resource services.
-        */
-       public ResourceDTO[]            resourceDTOs;
-
-       /**
-        * Returns the representations of the servlet {@code Filter} services
-        * associated with this context.
-        * 
-        * The representations of the servlet {@code Filter} services associated
-        * with this context. The returned array may be empty if this context is
-        * currently not associated with any servlet {@code Filter} services.
-        */
-       public FilterDTO[]                      filterDTOs;
-
-       /**
-        * Returns the representations of the error page {@code Servlet} 
services
-        * associated with this context.
-        * 
-        * The representations of the error page {@code Servlet} services 
associated
-        * with this context. The returned array may be empty if this context is
-        * currently not associated with any error pages.
-        */
-       public ErrorPageDTO[]           errorPageDTOs;
-
-       /**
-        * Returns the representations of the listener services associated with 
this
-        * context.
-        * 
-        * The representations of the listener services associated with this
-        * context. The returned array may be empty if this context is 
currently not
-        * associated with any listener services.
-        */
-       public ListenerDTO[]            listenerDTOs;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletDTO.java 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletDTO.java
deleted file mode 100644
index b52cb093a0..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletDTO.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * 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.servlet.runtime.dto;
-
-/**
- * Represents a {@code jakarta.servlet.Servlet} currently being used by a 
servlet
- * context.
- * 
- * @NotThreadSafe
- * @author $Id: 61a5c684d79094916514bd3ef1053763b5857121 $
- */
-public class ServletDTO extends BaseServletDTO {
-       /**
-        * The request mappings for the servlet.
-        * <p>
-        * The specified patterns are used to determine whether a request is 
mapped
-        * to the servlet. This array is never {@code null}. It might be empty 
for
-        * named servlets.
-        */
-       public String[]                         patterns;
-
-       /**
-        * Specifies whether multipart support is enabled.
-        */
-       public boolean                          multipartEnabled;
-
-       /**
-        * Specifies the size threshold after which the file will be written to
-        * disk. If multipart is not enabled for this servlet, {@code 0} is
-        * returned.
-        * 
-        * @see #multipartEnabled
-        */
-       public int                                      
multipartFileSizeThreshold;
-
-       /**
-        * Specifies the location where the files can be stored on disk. If
-        * multipart is not enabled for this servlet, {@code null} is returned.
-        * 
-        * @see #multipartEnabled
-        */
-       public String                           multipartLocation;
-
-       /**
-        * Specifies the maximum size of a file being uploaded. If multipart is 
not
-        * enabled for this servlet, {@code 0} is returned.
-        * 
-        * @see #multipartEnabled
-        */
-       public long                                     multipartMaxFileSize;
-
-       /**
-        * Specifies the maximum request size. If multipart is not enabled for 
this
-        * servlet, {@code 0} is returned.
-        * 
-        * @see #multipartEnabled
-        */
-       public long                                     multipartMaxRequestSize;
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/package-info.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/package-info.java
deleted file mode 100644
index 02d5412d78..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/package-info.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * 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 
- 
*******************************************************************************/
-
-/**
- * Http Runtime DTO Package Version 2.0.
- * <p>
- * Bundles wishing to use this package must list the package in the
- * Import-Package header of the bundle's manifest. This package has two types 
of
- * users: the consumers that use the API in this package and the providers that
- * implement the API in this package.
- * <p>
- * Example import for consumers using the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.runtime.dto; 
version="[2.0,3.0)"}
- * <p>
- * Example import for providers implementing the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.runtime.dto; 
version="[2.0,3.1)"}
- * 
- * @author $Id: f2bf99409b188c36f7363fd2cfc6471cca178ccc $
- */
-
-@Version(HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.runtime.dto;
-
-import static 
org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_VERSION;
-
-import org.osgi.annotation.versioning.Version;
-
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/runtime/package-info.java 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/package-info.java
deleted file mode 100644
index 3b45f2206d..0000000000
--- a/http/base/src/main/java/org/osgi/service/servlet/runtime/package-info.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * 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 
- 
*******************************************************************************/
-
-/**
- * Http Runtime Package Version 2.0.
- * <p>
- * Bundles wishing to use this package must list the package in the
- * Import-Package header of the bundle's manifest. This package has two types 
of
- * users: the consumers that use the API in this package and the providers that
- * implement the API in this package.
- * <p>
- * Example import for consumers using the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.runtime; 
version="[2.0,3.0)"}
- * <p>
- * Example import for providers implementing the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.runtime; 
version="[2.0,2.1)"}
- * 
- * @author $Id: 927a03b85ba8c3b116e89a796ab6f20897edcd9d $
- */
-
-@Version(HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.runtime;
-
-import static 
org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_VERSION;
-
-import org.osgi.annotation.versioning.Version;
-
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/HttpWhiteboardConstants.java
 
b/http/base/src/main/java/org/osgi/service/servlet/whiteboard/HttpWhiteboardConstants.java
deleted file mode 100644
index fdf07f7055..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/HttpWhiteboardConstants.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * 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.servlet.whiteboard;
-
-import org.osgi.framework.Filter;
-
-import jakarta.servlet.Servlet;
-
-/**
- * Defines standard constants for the Servlet Whiteboard services.
- * 
- * @author $Id: a4e33f07e0968d7a92c5ea3b70c3cf57ae2a5b13 $
- */
-public final class HttpWhiteboardConstants {
-       private HttpWhiteboardConstants() {
-               // non-instantiable
-       }
-
-       /**
-        * Service property specifying the name of an
-        * {@link org.osgi.service.servlet.context.ServletContextHelper} 
service.
-        * <p>
-        * For {@link org.osgi.service.servlet.context.ServletContextHelper}
-        * services, this service property must be specified. Context services
-        * without this service property are ignored.
-        * <p>
-        * Servlet, listener, servlet filter, and resource services might refer 
to a
-        * specific {@link 
org.osgi.service.servlet.context.ServletContextHelper}
-        * service referencing the name with the
-        * {@link #HTTP_WHITEBOARD_CONTEXT_SELECT} property.
-        * <p>
-        * For {@link org.osgi.service.servlet.context.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 org.osgi.service.servlet.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_DEFAULT_CONTEXT_NAME    
        = "default";
-
-       /**
-        * Service property specifying the path of an
-        * {@link org.osgi.service.servlet.context.ServletContextHelper} 
service.
-        * <p>
-        * For {@link org.osgi.service.servlet.context.ServletContextHelper}
-        * services this service property is required. Context services without 
this
-        * service property are ignored.
-        * <p>
-        * 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.
-        * <p>
-        * For {@link org.osgi.service.servlet.context.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 org.osgi.service.servlet.context.ServletContextHelper} 
service.
-        * <p>
-        * For {@link org.osgi.service.servlet.context.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.
-        * <p>
-        * For {@link org.osgi.service.servlet.context.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 org.osgi.service.servlet.context.ServletContextHelper} 
service.
-        * <p>
-        * For servlet, listener, servlet filter, or resource services, this 
service
-        * property refers to the associated
-        * {@code org.osgi.service.servlet.context.ServletContextHelper} 
service.
-        * The value of this property is a filter expression which is matched
-        * against the service registration properties of the
-        * {@code org.osgi.service.servlet.context.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 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.
-        * <p>
-        * The servlet is registered with this name and the name can be used as 
a
-        * reference to the servlet for filtering or request dispatching.
-        * <p>
-        * 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.
-        * <p>
-        * Servlet names should be unique among all servlet services associated 
with
-        * a single {@link 
org.osgi.service.servlet.context.ServletContextHelper}.
-        * <p>
-        * 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.
-        * <p>
-        * 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.
-        * <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"
-        */
-       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.
-        * 
-        * <p>
-        * 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.
-        * 
-        * <p>
-        * The value of this service property must be of type {@code String},
-        * {@code String[]}, or {@code Collection<String>}.
-        */
-       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.
-        * 
-        * <p>
-        * By default servlet services do not support asynchronous processing.
-        * 
-        * <p>
-        * 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.
-        * 
-        * <p>
-        * 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.
-        *
-        * <p>
-        * 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.
-        * <p>
-        * By default servlet services do not have multipart request processing
-        * enabled.
-        * <p>
-        * The value of this service property must be of type {@code Boolean}.
-        *
-        * @see "Java Servlet Specification Version 3.0, Section 8.1.5 
@MultipartConfig"
-        */
-       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.
-        * <p>
-        * 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}
-        * .
-        * <p>
-        * 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"
-        */
-       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.
-        * <p>
-        * 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}
-        * .
-        * <p>
-        * 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"
-        */
-       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.
-        * <p>
-        * 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}
-        * .
-        * <p>
-        * 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"
-        */
-       public static final String      
HTTP_WHITEBOARD_SERVLET_MULTIPART_MAXFILESIZE   = 
"osgi.http.whiteboard.servlet.multipart.maxFileSize";
-
-       /**
-        * Service property specifying the maximum request size.
-        * <p>
-        * 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}
-        * .
-        * <p>
-        * 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"
-        */
-       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.
-        * <p>
-        * 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.
-        * <p>
-        * Servlet filter names should be unique among all servlet filter 
services
-        * associated with a single
-        * {@link org.osgi.service.servlet.context.ServletContextHelper}.
-        * <p>
-        * 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.
-        * 
-        * <p>
-        * 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.
-        * 
-        * <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"
-        */
-       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.
-        * 
-        * <p>
-        * 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.
-        * 
-        * <p>
-        * The value of this service property must be of type {@code String},
-        * {@code String[]}, or {@code Collection<String>}.
-        */
-       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.
-        * 
-        * <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 {@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.
-        * 
-        * <p>
-        * The value of this service property must be of type {@code String},
-        * {@code String[]}, or {@code Collection<String>}.
-        * 
-        * @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.
-        * 
-        * <p>
-        * By default servlet filters services do not support asynchronous
-        * processing.
-        * 
-        * <p>
-        * 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}.
-        * 
-        * <p>
-        * 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},
-        * {@code String[]}, or {@code Collection<String>}. 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.
-        * 
-        * <p>
-        * 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.
-        *
-        * <p>
-        * 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.
-        * <p>
-        * 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.
-        * <p>
-        * For {@link Preprocessor} services, the value of each initialization
-        * parameter service property must be of type {@code String}.
-        */
-       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
-        * Servlet 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.
-        * <p>
-        * 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.
-        * 
-        * <p>
-        * 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.
-        * 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}.
-        * 
-        * @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 Servlet
-        * Whiteboard implementation to process the service.
-        * <p>
-        * An Servlet 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 
org.osgi.service.servlet.runtime.HttpServiceRuntimeConstants#HTTP_SERVICE_ENDPOINT
-        * osgi.http.endpoint} service property if the endpoint information is
-        * known.
-        * <p>
-        * If this service property is not specified, then all Servlet 
Whiteboard
-        * implementations can process the service.
-        * <p>
-        * 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";
-
-       /**
-        * The name of the implementation capability for the Servlet Whiteboard
-        * specification
-        */
-       public static final String      HTTP_WHITEBOARD_IMPLEMENTATION          
                                = "osgi.http";
-
-       /**
-        * The version of the implementation capability for the Servlet 
Whiteboard
-        * specification
-        */
-       public static final String      HTTP_WHITEBOARD_SPECIFICATION_VERSION   
                        = "2.0";
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/Preprocessor.java 
b/http/base/src/main/java/org/osgi/service/servlet/whiteboard/Preprocessor.java
deleted file mode 100644
index 45e774843e..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/Preprocessor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * 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.servlet.whiteboard;
-
-import jakarta.servlet.Filter;
-
-import org.osgi.annotation.versioning.ConsumerType;
-
-/**
- * Services registered as a {@code Preprocessor} using a whiteboard pattern are
- * executed for every request before the dispatching is performed.
- * <p>
- * If there are several services of this type, they are run in
- * {@link org.osgi.framework.ServiceReference#compareTo(Object) ranking order},
- * the one with the highest ranking is used first.
- * <p>
- * The preprocessor is handled in the same way as filters. When a preprocessor
- * is put into service {@link Filter#init(jakarta.servlet.FilterConfig)} is
- * called, when it is not used anymore {@link Filter#destroy()} is called. As
- * these preprocessors are run before dispatching and therefore the targeted
- * servlet context is not known yet,
- * {@link jakarta.servlet.FilterConfig#getServletContext()} returns the servlet
- * context of the backing implementation. The same context is returned by the
- * request object. The context path is the context path of this underlying
- * servlet context. The passed in chain can be used to invoke the next
- * preprocessor in the chain, or if the end of that chain is reached to start
- * dispatching of the request. A preprocessor might decide to terminate the
- * processing and directly generate a response.
- * <p>
- * Service properties with the prefix
- * {@code 
HttpWhiteboardConstants#HTTP_WHITEBOARD_PREPROCESSOR_INIT_PARAM_PREFIX}
- * are passed as init parameters to this service.
- * 
- * @ThreadSafe
- * @author $Id: 05d8e702924b076e77ec08fe42817a983ca37a2c $
- */
-@ConsumerType
-public interface Preprocessor extends Filter {
-
-       // this interface is a marker interface
-}
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/package-info.java 
b/http/base/src/main/java/org/osgi/service/servlet/whiteboard/package-info.java
deleted file mode 100644
index a59d28ae8f..0000000000
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/package-info.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * 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 
- 
*******************************************************************************/
-
-/**
- * Servlet Whiteboard Package Version 2.0.
- * <p>
- * Bundles wishing to use this package must list the package in the
- * Import-Package header of the bundle's manifest. This package has two types 
of
- * users: the consumers that use the API in this package and the providers that
- * implement the API in this package.
- * <p>
- * Example import for consumers using the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.whiteboard; 
version="[2.0,3.0)"}
- * <p>
- * Example import for providers implementing the API in this package:
- * <p>
- * {@code  Import-Package: org.osgi.service.servlet.whiteboard; 
version="[2.0,2.1)"}
- * 
- * @author $Id: 082bf9fd1373d9fcf1a58e5de76bc76bb448cfad $
- */
-
-@Version(HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.whiteboard;
-
-import org.osgi.annotation.versioning.Version;
-
diff --git a/http/jetty/pom.xml b/http/jetty/pom.xml
index ac7914fad3..288ae0aa22 100644
--- a/http/jetty/pom.xml
+++ b/http/jetty/pom.xml
@@ -388,6 +388,12 @@
             <artifactId>jetty-alpn-server</artifactId>
             <version>${jetty.version}</version>
         </dependency>
+       <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.servlet</artifactId>
+            <version>2.0.0-RC1</version>
+            <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.service.http</artifactId>

Reply via email to