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 ff881a5313 Update Http to latest http whiteboard design
ff881a5313 is described below

commit ff881a531385384bb2eb0d21ecd3d8178c33b204
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Thu Apr 14 15:41:10 2022 +0200

    Update Http to latest http whiteboard design
---
 http/base/README                                   |   2 +-
 .../base/internal/console/HttpServicePlugin.java   |  32 +++----
 .../http/base/internal/handler/FilterHandler.java  |   2 +-
 .../base/internal/handler/ListenerHandler.java     |   2 +-
 .../base/internal/handler/PreprocessorHandler.java |   2 +-
 .../http/base/internal/handler/ServletHandler.java |   2 +-
 .../internal/handler/WhiteboardServletHandler.java |   2 +-
 .../ServletContextHelperWrapper.java               |   2 +-
 .../javaxwrappers/RuntimeServiceWrapper.java       |  34 +++----
 .../base/internal/registry/ErrorPageRegistry.java  |   8 +-
 .../internal/registry/EventListenerRegistry.java   |   6 +-
 .../base/internal/registry/FilterRegistry.java     |   6 +-
 .../base/internal/registry/HandlerRegistry.java    |   2 +-
 .../http/base/internal/registry/ListenerMap.java   |   4 +-
 .../registry/PerContextHandlerRegistry.java        |   2 +-
 .../base/internal/registry/ServletRegistry.java    |  12 +--
 .../http/base/internal/runtime/FilterInfo.java     |   2 +-
 .../internal/runtime/ServletContextHelperInfo.java |   2 +-
 .../http/base/internal/runtime/ServletInfo.java    |   2 +-
 .../runtime/dto/BaseServletDTOBuilder.java         |   2 +-
 .../internal/runtime/dto/BuilderConstants.java     |  24 ++---
 .../internal/runtime/dto/ErrorPageDTOBuilder.java  |   4 +-
 .../base/internal/runtime/dto/FailedDTOHolder.java |  14 +--
 .../internal/runtime/dto/FilterDTOBuilder.java     |   4 +-
 .../internal/runtime/dto/ListenerDTOBuilder.java   |   4 +-
 .../runtime/dto/PreprocessorDTOBuilder.java        |   4 +-
 .../base/internal/runtime/dto/RegistryRuntime.java |   4 +-
 .../runtime/dto/RequestInfoDTOBuilder.java         |   4 +-
 .../internal/runtime/dto/ResourceDTOBuilder.java   |   4 +-
 .../internal/runtime/dto/RuntimeDTOBuilder.java    |  20 ++--
 .../runtime/dto/ServletContextDTOBuilder.java      |   4 +-
 .../internal/runtime/dto/ServletDTOBuilder.java    |   4 +-
 .../base/internal/service/HttpServiceFactory.java  |   2 +-
 .../internal/service/HttpServiceRuntimeImpl.java   |   6 +-
 .../internal/whiteboard/FailureStateHandler.java   |  12 +--
 .../whiteboard/PerBundleServletContextImpl.java    |   2 +-
 .../whiteboard/WhiteboardContextHandler.java       |   2 +-
 .../internal/whiteboard/WhiteboardManager.java     |  24 ++---
 .../tracker/JavaxServletContextHelperTracker.java  |   2 +-
 .../tracker/ServletContextHelperTracker.java       |   2 +-
 .../ServletContextHelper.java                      |   5 +-
 .../runtime => context}/package-info.java          |  10 +-
 .../runtime/HttpServiceRuntime.java                |   6 +-
 .../runtime/HttpServiceRuntimeConstants.java       |   2 +-
 .../runtime/dto/BaseServletDTO.java                |   2 +-
 .../{whiteboard => }/runtime/dto/DTOConstants.java |   9 +-
 .../{whiteboard => }/runtime/dto/ErrorPageDTO.java |   2 +-
 .../runtime/dto/FailedErrorPageDTO.java            |   7 +-
 .../runtime/dto/FailedFilterDTO.java               |   2 +-
 .../runtime/dto/FailedListenerDTO.java             |   2 +-
 .../runtime/dto/FailedPreprocessorDTO.java         |   2 +-
 .../runtime/dto/FailedResourceDTO.java             |   2 +-
 .../runtime/dto/FailedServletContextDTO.java       |   2 +-
 .../runtime/dto/FailedServletDTO.java              |   2 +-
 .../{whiteboard => }/runtime/dto/FilterDTO.java    |   2 +-
 .../{whiteboard => }/runtime/dto/ListenerDTO.java  |   2 +-
 .../runtime/dto/PreprocessorDTO.java               |   2 +-
 .../runtime/dto/RequestInfoDTO.java                |   2 +-
 .../{whiteboard => }/runtime/dto/ResourceDTO.java  |   2 +-
 .../{whiteboard => }/runtime/dto/RuntimeDTO.java   |   4 +-
 .../runtime/dto/ServletContextDTO.java             |  21 ++--
 .../{whiteboard => }/runtime/dto/ServletDTO.java   |   3 +-
 .../{whiteboard => }/runtime/dto/package-info.java |   6 +-
 .../{whiteboard => }/runtime/package-info.java     |   6 +-
 .../whiteboard/HttpWhiteboardConstants.java        | 106 ++++++++++-----------
 .../internal/registry/ErrorPageRegistryTest.java   |   4 +-
 .../registry/EventListenerRegistryTest.java        |   2 +-
 .../base/internal/registry/FilterRegistryTest.java |   2 +-
 .../internal/registry/HandlerRegistryTest.java     |   4 +-
 .../internal/registry/ServletRegistryTest.java     |   4 +-
 .../whiteboard/FailureStateHandlerTest.java        |   4 +-
 http/bridge/README                                 |   5 +
 http/bridge/pom.xml                                |  10 +-
 http/jetty/README                                  |   5 +
 http/jetty/pom.xml                                 |  46 +++++----
 http/servlet-api/pom.xml                           |  20 +++-
 76 files changed, 310 insertions(+), 281 deletions(-)

diff --git a/http/base/README b/http/base/README
index 89763761f4..3acb0c8806 100644
--- a/http/base/README
+++ b/http/base/README
@@ -2,4 +2,4 @@ This directory contains a proof of concept for a new version of 
the Apache Felix
 
 It is based on Servlet API 5.
 
-This module contains code below the package 
org.osgi.service.servlet.whiteboard. The API in these packages is NOT official 
OSGi API, it is work in progress for a new OSGi specifications being worked in 
the [Eclipse OSGi working group](https://www.osgi.org/). The source is copied 
from the [design 381 branch](https://github.com/osgi/osgi/tree/design/381). 
This API might change in any way at any time.
+This module contains code below the package org.osgi.service.servlet. The API 
in these packages is NOT official OSGi API, it is work in progress for a new 
OSGi specifications being worked in the [Eclipse OSGi working 
group](https://www.osgi.org/). The source is copied from the [design 381 
branch](https://github.com/osgi/osgi/tree/design/381). This API might change in 
any way at any time.
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/console/HttpServicePlugin.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/console/HttpServicePlugin.java
index f51b3bc322..a886141403 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/console/HttpServicePlugin.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/console/HttpServicePlugin.java
@@ -43,22 +43,22 @@ import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.dto.ServiceReferenceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntime;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RequestInfoDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RuntimeDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.HttpServiceRuntime;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.ErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.ListenerDTO;
+import org.osgi.service.servlet.runtime.dto.RequestInfoDTO;
+import org.osgi.service.servlet.runtime.dto.ResourceDTO;
+import org.osgi.service.servlet.runtime.dto.RuntimeDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 
 /**
  * This is a web console plugin.
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/FilterHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/FilterHandler.java
index 31dcfefc9c..ddc917b4af 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/FilterHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/FilterHandler.java
@@ -23,7 +23,7 @@ import 
org.apache.felix.http.base.internal.logger.SystemLogger;
 import org.apache.felix.http.base.internal.runtime.FilterInfo;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.framework.BundleContext;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
 
 import jakarta.servlet.Filter;
 import jakarta.servlet.FilterChain;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ListenerHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ListenerHandler.java
index c141f3b6bf..55d444d4f8 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ListenerHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ListenerHandler.java
@@ -21,7 +21,7 @@ import java.util.EventListener;
 import org.apache.felix.http.base.internal.context.ExtServletContext;
 import org.apache.felix.http.base.internal.runtime.ListenerInfo;
 import org.osgi.framework.BundleContext;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
 
 /**
  * The listener handler handles the initialization and destruction of listener
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PreprocessorHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PreprocessorHandler.java
index fb076cfdf4..912692111b 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PreprocessorHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PreprocessorHandler.java
@@ -23,7 +23,7 @@ import 
org.apache.felix.http.base.internal.runtime.PreprocessorInfo;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
 import org.osgi.service.servlet.whiteboard.Preprocessor;
 
 import jakarta.servlet.FilterChain;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java
index e75f9fcf07..e378783ae8 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java
@@ -25,7 +25,7 @@ import 
org.apache.felix.http.base.internal.jakartawrappers.ServletWrapper;
 import org.apache.felix.http.base.internal.logger.SystemLogger;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
 import org.osgi.framework.Bundle;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
 
 import jakarta.servlet.Servlet;
 import jakarta.servlet.ServletException;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java
index 3cbf2a3e0f..5fae620ab5 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java
@@ -22,7 +22,7 @@ import 
org.apache.felix.http.base.internal.context.ExtServletContext;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
 
 import jakarta.servlet.Servlet;
 
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/ServletContextHelperWrapper.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/ServletContextHelperWrapper.java
index 9a87ba0b27..056ce774ab 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/ServletContextHelperWrapper.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/jakartawrappers/ServletContextHelperWrapper.java
@@ -23,7 +23,7 @@ import java.util.Set;
 import org.apache.felix.http.base.internal.javaxwrappers.ServletRequestWrapper;
 import 
org.apache.felix.http.base.internal.javaxwrappers.ServletResponseWrapper;
 import org.jetbrains.annotations.NotNull;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
+import org.osgi.service.servlet.context.ServletContextHelper;
 
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/RuntimeServiceWrapper.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/RuntimeServiceWrapper.java
index 53c23440c5..0de935bd0f 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/RuntimeServiceWrapper.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/javaxwrappers/RuntimeServiceWrapper.java
@@ -18,23 +18,23 @@ package org.apache.felix.http.base.internal.javaxwrappers;
 
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.dto.ServiceReferenceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntime;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedPreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.PreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RequestInfoDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RuntimeDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.HttpServiceRuntime;
+import org.osgi.service.servlet.runtime.dto.ErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedPreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.ListenerDTO;
+import org.osgi.service.servlet.runtime.dto.PreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.RequestInfoDTO;
+import org.osgi.service.servlet.runtime.dto.ResourceDTO;
+import org.osgi.service.servlet.runtime.dto.RuntimeDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 
 /**
  * Wrapper for the service runtime
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistry.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistry.java
index 5d1191a1d7..9deee6bda2 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistry.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistry.java
@@ -36,10 +36,10 @@ import 
org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
 import org.apache.felix.http.base.internal.runtime.dto.BuilderConstants;
 import org.apache.felix.http.base.internal.runtime.dto.ErrorPageDTOBuilder;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.ErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 /**
  * The error page registry keeps tracks of the active/inactive servlets 
handling
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/EventListenerRegistry.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/EventListenerRegistry.java
index 38cae1a4b6..5704968197 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/EventListenerRegistry.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/EventListenerRegistry.java
@@ -38,9 +38,9 @@ import jakarta.servlet.http.HttpSessionListener;
 import org.apache.felix.http.base.internal.handler.ListenerHandler;
 import org.apache.felix.http.base.internal.logger.SystemLogger;
 import org.apache.felix.http.base.internal.runtime.ListenerInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.ListenerDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 /**
  * Per context event listener registry.
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/FilterRegistry.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/FilterRegistry.java
index 34c4e1b40e..014f3e9ec7 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/FilterRegistry.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/FilterRegistry.java
@@ -30,9 +30,9 @@ import 
org.apache.felix.http.base.internal.handler.FilterHandler;
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.runtime.FilterInfo;
 import org.apache.felix.http.base.internal.runtime.dto.FilterDTOBuilder;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 /**
  * The filter registry keeps track of all filter mappings for a single servlet 
context.
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/HandlerRegistry.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/HandlerRegistry.java
index 77fdf916b6..82b0c0a68b 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/HandlerRegistry.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/HandlerRegistry.java
@@ -30,7 +30,7 @@ import 
org.apache.felix.http.base.internal.runtime.ServletContextHelperInfo;
 import org.apache.felix.http.base.internal.runtime.dto.FailedDTOHolder;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 /**
  * Registry for all services.
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ListenerMap.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ListenerMap.java
index 028c4f050f..c62325a87d 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ListenerMap.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ListenerMap.java
@@ -28,8 +28,8 @@ import org.jetbrains.annotations.NotNull;
 import org.apache.felix.http.base.internal.handler.ListenerHandler;
 import org.apache.felix.http.base.internal.runtime.ListenerInfo;
 import org.apache.felix.http.base.internal.runtime.dto.ListenerDTOBuilder;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.ListenerDTO;
 
 public class ListenerMap<T extends EventListener> {
 
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PerContextHandlerRegistry.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PerContextHandlerRegistry.java
index 038dbe4018..0d370e4705 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PerContextHandlerRegistry.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/PerContextHandlerRegistry.java
@@ -30,7 +30,7 @@ import 
org.apache.felix.http.base.internal.runtime.dto.FailedDTOHolder;
 import org.apache.felix.http.base.internal.service.HttpServiceFactory;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 /**
  * This registry keeps track of all processing components per context:
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ServletRegistry.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ServletRegistry.java
index f03c135878..ff9bd2a327 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ServletRegistry.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/registry/ServletRegistry.java
@@ -35,12 +35,12 @@ import 
org.apache.felix.http.base.internal.runtime.dto.BuilderConstants;
 import org.apache.felix.http.base.internal.runtime.dto.ResourceDTOBuilder;
 import org.apache.felix.http.base.internal.runtime.dto.ServletDTOBuilder;
 import org.jetbrains.annotations.NotNull;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.ResourceDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 
 /**
  * The servlet registry keeps the mappings for all servlets (by using their 
pattern)
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java
index 64930d0a2a..f6fd606014 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java
@@ -27,7 +27,7 @@ import org.apache.felix.http.base.internal.util.PatternUtil;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.dto.DTO;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 
 import jakarta.servlet.DispatcherType;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java
index 46917fbacb..12d6ac8552 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java
@@ -26,7 +26,7 @@ import org.apache.felix.http.base.internal.util.PatternUtil;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
+import org.osgi.service.servlet.context.ServletContextHelper;
 
 /**
  * Provides registration information for a {@link ServletContextHelper}
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletInfo.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletInfo.java
index 1495016817..8a86fc4565 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletInfo.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletInfo.java
@@ -27,7 +27,7 @@ import org.apache.felix.http.base.internal.util.PatternUtil;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.dto.DTO;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 
 import jakarta.servlet.Servlet;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
index 717cadd817..3b3e791832 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
@@ -20,7 +20,7 @@ package org.apache.felix.http.base.internal.runtime.dto;
 
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.BaseServletDTO;
+import org.osgi.service.servlet.runtime.dto.BaseServletDTO;
 
 abstract class BaseServletDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java
index 336061d8bb..f6ff2267dd 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java
@@ -20,18 +20,18 @@ package org.apache.felix.http.base.internal.runtime.dto;
 
 import static java.util.Arrays.copyOf;
 
-import org.osgi.service.servlet.whiteboard.runtime.dto.ErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.dto.ErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.ListenerDTO;
+import org.osgi.service.servlet.runtime.dto.ResourceDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 
 public abstract class BuilderConstants
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
index d09bf92c70..af4169a6bc 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
@@ -20,8 +20,8 @@ package org.apache.felix.http.base.internal.runtime.dto;
 
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.ErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
 
 public final class ErrorPageDTOBuilder extends BaseServletDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FailedDTOHolder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FailedDTOHolder.java
index a61fe93a93..1eb0352215 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FailedDTOHolder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FailedDTOHolder.java
@@ -30,13 +30,13 @@ import 
org.apache.felix.http.base.internal.runtime.PreprocessorInfo;
 import org.apache.felix.http.base.internal.runtime.ResourceInfo;
 import org.apache.felix.http.base.internal.runtime.ServletContextHelperInfo;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedPreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedPreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
 
 public final class FailedDTOHolder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
index 995d73c823..528dcefcd4 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
@@ -23,8 +23,8 @@ import jakarta.servlet.DispatcherType;
 
 import org.apache.felix.http.base.internal.handler.FilterHandler;
 import org.apache.felix.http.base.internal.runtime.FilterInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
 
 public final class FilterDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ListenerDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ListenerDTOBuilder.java
index 2e38ca6604..2ecfd91e4d 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ListenerDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ListenerDTOBuilder.java
@@ -22,8 +22,8 @@ import java.util.Arrays;
 
 import org.apache.felix.http.base.internal.handler.ListenerHandler;
 import org.apache.felix.http.base.internal.runtime.ListenerInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.ListenerDTO;
 
 public final class ListenerDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/PreprocessorDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/PreprocessorDTOBuilder.java
index 20eaa250ad..2964719a9c 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/PreprocessorDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/PreprocessorDTOBuilder.java
@@ -21,8 +21,8 @@ package org.apache.felix.http.base.internal.runtime.dto;
 import org.jetbrains.annotations.NotNull;
 
 import org.apache.felix.http.base.internal.runtime.PreprocessorInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedPreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.PreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.FailedPreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.PreprocessorDTO;
 
 public final class PreprocessorDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RegistryRuntime.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RegistryRuntime.java
index 6ced2f7da5..9b1b96a342 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RegistryRuntime.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RegistryRuntime.java
@@ -20,8 +20,8 @@ package org.apache.felix.http.base.internal.runtime.dto;
 
 import java.util.Collection;
 
-import org.osgi.service.servlet.whiteboard.runtime.dto.PreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.PreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 public final class RegistryRuntime
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RequestInfoDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RequestInfoDTOBuilder.java
index 88ef7663fc..b3d85eb4a5 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RequestInfoDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RequestInfoDTOBuilder.java
@@ -21,8 +21,8 @@ import jakarta.servlet.DispatcherType;
 import org.apache.felix.http.base.internal.handler.FilterHandler;
 import org.apache.felix.http.base.internal.registry.HandlerRegistry;
 import org.apache.felix.http.base.internal.registry.PathResolution;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RequestInfoDTO;
+import org.osgi.service.servlet.runtime.dto.FilterDTO;
+import org.osgi.service.servlet.runtime.dto.RequestInfoDTO;
 
 public final class RequestInfoDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
index a2ff3132e1..579f3baf05 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
@@ -21,8 +21,8 @@ package org.apache.felix.http.base.internal.runtime.dto;
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.runtime.ResourceInfo;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.ResourceDTO;
 
 public final class ResourceDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
index c173715759..c60c089d8e 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
@@ -21,16 +21,16 @@ package org.apache.felix.http.base.internal.runtime.dto;
 import java.util.Collection;
 
 import org.osgi.framework.dto.ServiceReferenceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedErrorPageDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedFilterDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedListenerDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedPreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedResourceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.PreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RuntimeDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedErrorPageDTO;
+import org.osgi.service.servlet.runtime.dto.FailedFilterDTO;
+import org.osgi.service.servlet.runtime.dto.FailedListenerDTO;
+import org.osgi.service.servlet.runtime.dto.FailedPreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.FailedResourceDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.PreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.RuntimeDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 public final class RuntimeDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
index 8a14d32a23..16213f18cf 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
@@ -28,8 +28,8 @@ import jakarta.servlet.ServletContext;
 
 import org.apache.felix.http.base.internal.runtime.ServletContextHelperInfo;
 import org.osgi.dto.DTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 public final class ServletContextDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
index 6811739059..9346aad874 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
@@ -21,8 +21,8 @@ package org.apache.felix.http.base.internal.runtime.dto;
 import org.apache.felix.http.base.internal.dispatch.MultipartConfig;
 import org.apache.felix.http.base.internal.handler.ServletHandler;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 
 public final class ServletDTOBuilder extends BaseServletDTOBuilder
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
index 1178d12f3a..7ff37e0309 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceFactory.java
@@ -26,7 +26,7 @@ import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceFactory;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.http.HttpService;
-import org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntimeConstants;
+import org.osgi.service.servlet.runtime.HttpServiceRuntimeConstants;
 
 import jakarta.servlet.ServletContext;
 
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceRuntimeImpl.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceRuntimeImpl.java
index c1c0c5eb3d..8a66b6403f 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceRuntimeImpl.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceRuntimeImpl.java
@@ -33,9 +33,9 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.dto.ServiceReferenceDTO;
-import org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntime;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RequestInfoDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RuntimeDTO;
+import org.osgi.service.servlet.runtime.HttpServiceRuntime;
+import org.osgi.service.servlet.runtime.dto.RequestInfoDTO;
+import org.osgi.service.servlet.runtime.dto.RuntimeDTO;
 
 public final class HttpServiceRuntimeImpl implements HttpServiceRuntime
 {
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandler.java
index 3456767acb..e85689d310 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandler.java
@@ -16,12 +16,12 @@
  */
 package org.apache.felix.http.base.internal.whiteboard;
 
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_SERVICE_NOT_GETTABLE;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_SERVLET_CONTEXT_FAILURE;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_UNKNOWN;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_SERVICE_NOT_GETTABLE;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_SERVLET_CONTEXT_FAILURE;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_UNKNOWN;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
 
 import java.util.HashSet;
 import java.util.Iterator;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/PerBundleServletContextImpl.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/PerBundleServletContextImpl.java
index c9545d50df..ae5fd5d053 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/PerBundleServletContextImpl.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/PerBundleServletContextImpl.java
@@ -30,7 +30,7 @@ import 
org.apache.felix.http.base.internal.registry.PerContextHandlerRegistry;
 import org.apache.felix.http.base.internal.util.MimeTypes;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.wiring.BundleWiring;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
+import org.osgi.service.servlet.context.ServletContextHelper;
 
 import jakarta.servlet.Filter;
 import jakarta.servlet.FilterRegistration;
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardContextHandler.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardContextHandler.java
index 4938678c68..7764faa28d 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardContextHandler.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardContextHandler.java
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
+import org.osgi.service.servlet.context.ServletContextHelper;
 
 import jakarta.servlet.ServletContext;
 
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
index f5a62bebed..53cc72c153 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
@@ -16,10 +16,10 @@
  */
 package org.apache.felix.http.base.internal.whiteboard;
 
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_UNKNOWN;
-import static 
org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_SHADOWED_BY_OTHER_SERVICE;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_UNKNOWN;
+import static 
org.osgi.service.servlet.runtime.dto.DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -79,13 +79,13 @@ import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceFactory;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.servlet.context.ServletContextHelper;
+import org.osgi.service.servlet.runtime.HttpServiceRuntimeConstants;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.PreprocessorDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 import org.osgi.service.servlet.whiteboard.Preprocessor;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
-import org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntimeConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.PreprocessorDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
 import org.osgi.util.tracker.ServiceTracker;
 
 import jakarta.servlet.FilterChain;
@@ -231,10 +231,10 @@ public final class WhiteboardManager
                         // nothing to do
                     }
                 }, props);
-//        addTracker(new FilterTracker(this.httpBundleContext, this));
-//        addTracker(new ListenersTracker(this.httpBundleContext, this));
+        addTracker(new FilterTracker(this.httpBundleContext, this));
+        addTracker(new ListenersTracker(this.httpBundleContext, this));
         addTracker(new PreprocessorTracker(this.httpBundleContext, this));
-//        addTracker(new ServletTracker(this.httpBundleContext, this));
+        addTracker(new ServletTracker(this.httpBundleContext, this));
         addTracker(new ResourceTracker(this.httpBundleContext, this));
         addTracker(new ServletContextHelperTracker(this.httpBundleContext, 
this));
         addTracker(new JavaxServletContextHelperTracker(httpBundleContext, 
this));
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/JavaxServletContextHelperTracker.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/JavaxServletContextHelperTracker.java
index c5f7c7d2a8..c209eae404 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/JavaxServletContextHelperTracker.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/JavaxServletContextHelperTracker.java
@@ -28,7 +28,7 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
+import org.osgi.service.servlet.context.ServletContextHelper;
 import org.osgi.util.tracker.ServiceTracker;
 
 /**
diff --git 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/ServletContextHelperTracker.java
 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/ServletContextHelperTracker.java
index 339ac46a4c..5604116409 100644
--- 
a/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/ServletContextHelperTracker.java
+++ 
b/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/tracker/ServletContextHelperTracker.java
@@ -26,7 +26,7 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.ServletContextHelper;
+import org.osgi.service.servlet.context.ServletContextHelper;
 import org.osgi.util.tracker.ServiceTracker;
 
 /**
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/ServletContextHelper.java
 
b/http/base/src/main/java/org/osgi/service/servlet/context/ServletContextHelper.java
similarity index 98%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/ServletContextHelper.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/context/ServletContextHelper.java
index 2dc95b0341..bc26c49d76 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/ServletContextHelper.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/context/ServletContextHelper.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard;
+package org.osgi.service.servlet.context;
 
 import java.io.IOException;
 import java.net.URL;
@@ -29,6 +29,7 @@ import jakarta.servlet.http.HttpServletResponse;
 
 import org.osgi.annotation.versioning.ConsumerType;
 import org.osgi.framework.Bundle;
+import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 
 /**
  * Helper service for a servlet context used by a Http Whiteboard 
implementation
@@ -97,7 +98,7 @@ import org.osgi.framework.Bundle;
  * </ul>
  * 
  * @ThreadSafe
- * @author $Id: b1080e8c428484d4f1e95c0a510099fa7ced3dc4 $
+ * @author $Id: 8c4c28cc8fd00c59d2a5b56dc5612d27b4ea7609 $
  * @see HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_NAME
  * @see HttpWhiteboardConstants#HTTP_WHITEBOARD_CONTEXT_PATH
  */
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/package-info.java
 b/http/base/src/main/java/org/osgi/service/servlet/context/package-info.java
similarity index 81%
copy from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/package-info.java
copy to 
http/base/src/main/java/org/osgi/service/servlet/context/package-info.java
index d022635796..10ced0be81 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/package-info.java
+++ b/http/base/src/main/java/org/osgi/service/servlet/context/package-info.java
@@ -17,7 +17,7 @@
  
*******************************************************************************/
 
 /**
- * Http Runtime Package Version 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
@@ -26,17 +26,17 @@
  * <p>
  * Example import for consumers using the API in this package:
  * <p>
- * {@code  Import-Package: org.osgi.service.servlet.whiteboard.runtime; 
version="[2.0,3.0)"}
+ * {@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.whiteboard.runtime; 
version="[2.0,2.1)"}
+ * {@code  Import-Package: org.osgi.service.servlet.context; 
version="[2.0,2.1)"}
  * 
- * @author $Id: 0fe988614ef6019ea42a1e47e76863d722cbb948 $
+ * @author $Id: e46233b315016463a9b79188e11cfac678f56783 $
  */
 
 @Version(HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.whiteboard.runtime;
+package org.osgi.service.servlet.context;
 
 import static 
org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_VERSION;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/HttpServiceRuntime.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntime.java
similarity index 90%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/HttpServiceRuntime.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntime.java
index e48e2993c8..5a57baf3f4 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/HttpServiceRuntime.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntime.java
@@ -16,11 +16,11 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime;
+package org.osgi.service.servlet.runtime;
 
 import org.osgi.annotation.versioning.ProviderType;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RequestInfoDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.RuntimeDTO;
+import org.osgi.service.servlet.runtime.dto.RequestInfoDTO;
+import org.osgi.service.servlet.runtime.dto.RuntimeDTO;
 
 /**
  * The HttpServiceRuntime service represents the runtime information of an Http
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/HttpServiceRuntimeConstants.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntimeConstants.java
similarity index 98%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/HttpServiceRuntimeConstants.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntimeConstants.java
index d7423b933b..bffc348081 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/HttpServiceRuntimeConstants.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/HttpServiceRuntimeConstants.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime;
+package org.osgi.service.servlet.runtime;
 
 /**
  * Defines standard names for Http Runtime Service constants.
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/BaseServletDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/BaseServletDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/BaseServletDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/BaseServletDTO.java
index eb63f3d2fa..264e0cee34 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/BaseServletDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/BaseServletDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import java.util.Map;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/DTOConstants.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/DTOConstants.java
similarity index 92%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/DTOConstants.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/DTOConstants.java
index 027a0a54e7..89b85694f3 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/DTOConstants.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/DTOConstants.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Defines standard constants for the DTOs.
@@ -32,13 +32,14 @@ public final class DTOConstants {
        public static final int FAILURE_REASON_UNKNOWN                          
                = 0;
 
        /**
-        * No matching {@code ServletContextHelper}.
+        * No matching
+        * {@code org.osgi.service.servlet.context.ServletContextHelper}.
         **/
        public static final int FAILURE_REASON_NO_SERVLET_CONTEXT_MATCHING      
= 1;
 
        /**
-        * Matching {@code ServletContextHelper}, but the context is not used 
due to
-        * a problem with the context.
+        * 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;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ErrorPageDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ErrorPageDTO.java
similarity index 95%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ErrorPageDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ErrorPageDTO.java
index db627a34ac..d9305a173f 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ErrorPageDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ErrorPageDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a {@code jakarta.servlet.Servlet} for handling errors and 
currently
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedErrorPageDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedErrorPageDTO.java
similarity index 89%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedErrorPageDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedErrorPageDTO.java
index 90a9067bec..6599d28c58 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedErrorPageDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedErrorPageDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a {@code jakarta.servlet.Servlet} service registered as an error
@@ -24,10 +24,11 @@ package org.osgi.service.servlet.whiteboard.runtime.dto;
  * <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 ServletContextHelper}.
+ * and does not point to an existing
+ * {@code org.osgi.service.servlet.context.ServletContextHelper}.
  * 
  * @NotThreadSafe
- * @author $Id: 825431b9b203fc72787b0f59e94a69c09d3669dc $
+ * @author $Id: d8aec200665b81725cb9b23822f9f05a300d47a8 $
  */
 public class FailedErrorPageDTO extends ErrorPageDTO {
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedFilterDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedFilterDTO.java
similarity index 96%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedFilterDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedFilterDTO.java
index 89c8e7fd33..1cefc82d3f 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedFilterDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedFilterDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a servlet {@code Filter} service which is currently not being 
used
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedListenerDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedListenerDTO.java
similarity index 96%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedListenerDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedListenerDTO.java
index 001a73e035..0517ab41ee 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedListenerDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedListenerDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a listener service which is currently not being used by a servlet
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedPreprocessorDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedPreprocessorDTO.java
similarity index 95%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedPreprocessorDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedPreprocessorDTO.java
index d187854e19..dc142120dd 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedPreprocessorDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedPreprocessorDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a preprocessor service which is currently not being used due to a
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedResourceDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedResourceDTO.java
similarity index 96%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedResourceDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedResourceDTO.java
index 4267c90140..bc25bf7f53 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedResourceDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedResourceDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a resource definition which is currently not being used by a
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedServletContextDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletContextDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedServletContextDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletContextDTO.java
index d98b969cff..30e3de1c50 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedServletContextDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletContextDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a servlet context that is currently not used due to some problem.
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedServletDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedServletDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletDTO.java
index f4ced290e9..61f62e5153 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FailedServletDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FailedServletDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a {@code jakarta.servlet.Servlet} service which is currently not
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FilterDTO.java
 b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FilterDTO.java
similarity index 98%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FilterDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FilterDTO.java
index ad4f1120e5..f35197cf2a 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/FilterDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/FilterDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import java.util.Map;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ListenerDTO.java
 b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ListenerDTO.java
similarity index 96%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ListenerDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ListenerDTO.java
index 6aef442635..2320e4dd91 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ListenerDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ListenerDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import org.osgi.dto.DTO;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/PreprocessorDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/PreprocessorDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/PreprocessorDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/PreprocessorDTO.java
index 24c44fee0b..4f3f18e96c 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/PreprocessorDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/PreprocessorDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import java.util.Map;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/RequestInfoDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RequestInfoDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/RequestInfoDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RequestInfoDTO.java
index 272e67e5cf..3113031e93 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/RequestInfoDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RequestInfoDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import org.osgi.dto.DTO;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ResourceDTO.java
 b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ResourceDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ResourceDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ResourceDTO.java
index 51c46d562a..ada3c6995d 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ResourceDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ResourceDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import org.osgi.dto.DTO;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/RuntimeDTO.java
 b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RuntimeDTO.java
similarity index 96%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/RuntimeDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RuntimeDTO.java
index 6b2ae1ee83..db7d38fc87 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/RuntimeDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/RuntimeDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import org.osgi.dto.DTO;
 import org.osgi.framework.dto.ServiceReferenceDTO;
@@ -31,7 +31,7 @@ public class RuntimeDTO extends DTO {
 
        /**
         * The DTO for the corresponding
-        * {@code 
org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntime}.
+        * {@code org.osgi.service.servlet.runtime.HttpServiceRuntime}.
         * This value is never {@code null}.
         */
        public ServiceReferenceDTO                      serviceDTO;
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ServletContextDTO.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletContextDTO.java
similarity index 85%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ServletContextDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletContextDTO.java
index c600d7a3cf..651130b877 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ServletContextDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletContextDTO.java
@@ -16,7 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import java.util.Map;
 
@@ -26,16 +26,16 @@ 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.whiteboard.ServletContextHelper} service.
+ * {@link org.osgi.service.servlet.context.ServletContextHelper} service.
  * 
  * @NotThreadSafe
- * @author $Id: 49ec465915485a38964ac7d5a9c216c71385de21 $
+ * @author $Id: ba70fe752e3b3c5187135e9e3e028c1902ee1e30 $
  */
 public class ServletContextDTO extends DTO {
        /**
         * The name of the servlet context.
         * The name of the corresponding
-        * {@link org.osgi.service.servlet.whiteboard.ServletContextHelper}.
+        * {@link org.osgi.service.servlet.context.ServletContextHelper}.
         * <p>
         * This is the value returned by the
         * {@code ServletContext.getServletContextName()} method.
@@ -72,12 +72,13 @@ public class ServletContextDTO extends DTO {
 
        /**
         * Service property identifying the servlet context. In the case of a
-        * servlet context backed by a {@code ServletContextHelper} registered 
in
-        * the service registry and picked up by a Http Whiteboard 
Implementation,
-        * this value is not negative and corresponds to the service id in the
-        * registry. If the servlet context is not backed by a service 
registered in
-        * the service registry, the value is negative and a unique negative 
value
-        * is generated by the Http Service Runtime in this case.
+        * servlet context backed by a
+        * {@code org.osgi.service.servlet.context.ServletContextHelper} 
registered
+        * in the service registry and picked up by a Http Whiteboard
+        * Implementation, this value is not negative and corresponds to the 
service
+        * id in the registry. If the servlet context is not backed by a service
+        * registered in the service registry, the value is negative and a 
unique
+        * negative value is generated by the Http Service Runtime in this case.
         */
        public long                                     serviceId;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ServletDTO.java
 b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletDTO.java
similarity index 97%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ServletDTO.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletDTO.java
index c53165eb9b..8e29694399 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/ServletDTO.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/ServletDTO.java
@@ -16,8 +16,7 @@
  * SPDX-License-Identifier: Apache-2.0 
  
*******************************************************************************/
 
-package org.osgi.service.servlet.whiteboard.runtime.dto;
-
+package org.osgi.service.servlet.runtime.dto;
 
 /**
  * Represents a {@code jakarta.servlet.Servlet} currently being used by a 
servlet
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/package-info.java
 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/package-info.java
similarity index 86%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/package-info.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/dto/package-info.java
index f2160dfb6d..73ead0ea7f 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/dto/package-info.java
+++ 
b/http/base/src/main/java/org/osgi/service/servlet/runtime/dto/package-info.java
@@ -26,17 +26,17 @@
  * <p>
  * Example import for consumers using the API in this package:
  * <p>
- * {@code  Import-Package: org.osgi.service.servlet.whiteboard.runtime.dto; 
version="[2.0,3.0)"}
+ * {@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.whiteboard.runtime.dto; 
version="[2.0,3.1)"}
+ * {@code  Import-Package: org.osgi.service.servlet.runtime.dto; 
version="[2.0,3.1)"}
  * 
  * @author $Id: ad5c4695782df6c27613e6e00daf7e20aff78a98 $
  */
 
 @Version(HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.whiteboard.runtime.dto;
+package org.osgi.service.servlet.runtime.dto;
 
 import static 
org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_VERSION;
 
diff --git 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/package-info.java
 b/http/base/src/main/java/org/osgi/service/servlet/runtime/package-info.java
similarity index 86%
rename from 
http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/package-info.java
rename to 
http/base/src/main/java/org/osgi/service/servlet/runtime/package-info.java
index d022635796..90bc180d6e 100644
--- 
a/http/base/src/main/java/org/osgi/service/servlet/whiteboard/runtime/package-info.java
+++ b/http/base/src/main/java/org/osgi/service/servlet/runtime/package-info.java
@@ -26,17 +26,17 @@
  * <p>
  * Example import for consumers using the API in this package:
  * <p>
- * {@code  Import-Package: org.osgi.service.servlet.whiteboard.runtime; 
version="[2.0,3.0)"}
+ * {@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.whiteboard.runtime; 
version="[2.0,2.1)"}
+ * {@code  Import-Package: org.osgi.service.servlet.runtime; 
version="[2.0,2.1)"}
  * 
  * @author $Id: 0fe988614ef6019ea42a1e47e76863d722cbb948 $
  */
 
 @Version(HTTP_WHITEBOARD_SPECIFICATION_VERSION + ".0")
-package org.osgi.service.servlet.whiteboard.runtime;
+package org.osgi.service.servlet.runtime;
 
 import static 
org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants.HTTP_WHITEBOARD_SPECIFICATION_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
index 9f99b40f03..a8d40757f2 100644
--- 
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
@@ -18,14 +18,14 @@
 
 package org.osgi.service.servlet.whiteboard;
 
-import jakarta.servlet.Servlet;
-
 import org.osgi.framework.Filter;
 
+import jakarta.servlet.Servlet;
+
 /**
  * Defines standard constants for the Http Whiteboard services.
  * 
- * @author $Id: 42ca5b7dedd1df3b0c97199d1ee35b89a546e5a8 $
+ * @author $Id: 986fdabd5b705847f42d6306b8093659b9e7f68e $
  */
 public final class HttpWhiteboardConstants {
        private HttpWhiteboardConstants() {
@@ -33,23 +33,22 @@ public final class HttpWhiteboardConstants {
        }
 
        /**
-        * Service property specifying the name of an {@link 
ServletContextHelper}
-        * service.
-        * 
+        * Service property specifying the name of an
+        * {@link org.osgi.service.servlet.context.ServletContextHelper} 
service.
         * <p>
-        * For {@link ServletContextHelper} services, this service property 
must be
-        * specified. Context services without this service property are 
ignored.
-        * 
+        * 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 ServletContextHelper} service referencing the name 
with
-        * the {@link #HTTP_WHITEBOARD_CONTEXT_SELECT} property.
-        * 
+        * specific {@link 
org.osgi.service.servlet.context.ServletContextHelper}
+        * service referencing the name with the
+        * {@link #HTTP_WHITEBOARD_CONTEXT_SELECT} property.
         * <p>
-        * For {@link ServletContextHelper} services, the value of this service
-        * property must be of type {@code String}. The value must follow the
-        * "symbolic-name" specification from Section 1.3.2 of the OSGi Core
-        * Specification.
+        * 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
@@ -58,33 +57,32 @@ public final class HttpWhiteboardConstants {
        public static final String      HTTP_WHITEBOARD_CONTEXT_NAME            
                = "osgi.http.whiteboard.context.name";
 
        /**
-        * The name of the default {@link ServletContextHelper}. If a service is
-        * registered with this property, it is overriding the default context 
with
-        * a custom provided context.
+        * 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 
ServletContextHelper}
-        * service.
-        * 
+        * Service property specifying the path of an
+        * {@link org.osgi.service.servlet.context.ServletContextHelper} 
service.
         * <p>
-        * For {@link ServletContextHelper} services this service property is
-        * required. Context services without this service property are ignored.
-        * 
+        * 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 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.
+        * 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
@@ -92,34 +90,34 @@ public final class HttpWhiteboardConstants {
        public static final String      HTTP_WHITEBOARD_CONTEXT_PATH            
                = "osgi.http.whiteboard.context.path";
 
        /**
-        * Service property prefix referencing a {@link ServletContextHelper}
-        * service.
-        * 
+        * Service property prefix referencing a
+        * {@link org.osgi.service.servlet.context.ServletContextHelper} 
service.
         * <p>
-        * For {@link ServletContextHelper} services this prefix can be used for
-        * service properties to mark them as initialization parameters which 
can be
-        * retrieved from the associated servlet context. The prefix is removed 
from
-        * the service property name to build the initialization parameter name.
-        *
+        * For {@link 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 ServletContextHelper} services, the value of each
-        * initialization parameter service property must be of type {@code 
String}.
-        * 
+        * 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 ServletContextHelper} service.
-        * 
+        * 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 ServletContextHelper} 
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 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.
+        * {@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
@@ -150,7 +148,7 @@ public final class HttpWhiteboardConstants {
         * property to apply the filter to the servlet.
         * <p>
         * Servlet names should be unique among all servlet services associated 
with
-        * a single {@link ServletContextHelper}.
+        * a single {@link 
org.osgi.service.servlet.context.ServletContextHelper}.
         * <p>
         * The value of this service property must be of type {@code String}.
         */
@@ -299,17 +297,15 @@ public final class HttpWhiteboardConstants {
        /**
         * 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 ServletContextHelper}.
-        * 
+        * associated with a single
+        * {@link org.osgi.service.servlet.context.ServletContextHelper}.
         * <p>
         * The value of this service property must be of type {@code String}.
         */
@@ -540,7 +536,7 @@ public final class HttpWhiteboardConstants {
         * An Http Whiteboard implementation can define any number of service
         * properties which can be referenced by the target filter. The service
         * properties should always include the
-        * {@link 
org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntimeConstants#HTTP_SERVICE_ENDPOINT
+        * {@link 
org.osgi.service.servlet.runtime.HttpServiceRuntimeConstants#HTTP_SERVICE_ENDPOINT
         * osgi.http.endpoint} service property if the endpoint information is
         * known.
         * 
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistryTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistryTest.java
index 290548bb69..72d9da3663 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistryTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ErrorPageRegistryTest.java
@@ -42,8 +42,8 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 
 import jakarta.servlet.Servlet;
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/EventListenerRegistryTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/EventListenerRegistryTest.java
index 7cd0da2ba0..d35e5b2889 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/EventListenerRegistryTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/EventListenerRegistryTest.java
@@ -37,7 +37,7 @@ import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 
 import jakarta.servlet.ServletContextListener;
 import jakarta.servlet.ServletException;
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/FilterRegistryTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/FilterRegistryTest.java
index 656d583be4..d49944a7e1 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/FilterRegistryTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/FilterRegistryTest.java
@@ -36,7 +36,7 @@ import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 
 import jakarta.servlet.DispatcherType;
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/HandlerRegistryTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/HandlerRegistryTest.java
index f90e615c6b..9e81493edf 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/HandlerRegistryTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/HandlerRegistryTest.java
@@ -30,8 +30,8 @@ import 
org.apache.felix.http.base.internal.runtime.dto.FailedDTOHolder;
 import org.apache.felix.http.base.internal.service.HttpServiceFactory;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.ServletDTO;
 
 import jakarta.servlet.Servlet;
 import jakarta.servlet.ServletConfig;
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ServletRegistryTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ServletRegistryTest.java
index 1abe6c8411..fb6ea5ead8 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ServletRegistryTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/registry/ServletRegistryTest.java
@@ -42,8 +42,8 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
-import org.osgi.service.servlet.whiteboard.runtime.dto.ServletContextDTO;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.ServletContextDTO;
 import org.osgi.service.servlet.whiteboard.HttpWhiteboardConstants;
 
 import jakarta.servlet.Servlet;
diff --git 
a/http/base/src/test/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandlerTest.java
 
b/http/base/src/test/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandlerTest.java
index 79c437d1da..9f30e75454 100644
--- 
a/http/base/src/test/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandlerTest.java
+++ 
b/http/base/src/test/java/org/apache/felix/http/base/internal/whiteboard/FailureStateHandlerTest.java
@@ -27,8 +27,8 @@ import java.util.Set;
 import org.apache.felix.http.base.internal.runtime.ServletInfo;
 import org.apache.felix.http.base.internal.runtime.dto.FailedDTOHolder;
 import org.junit.Test;
-import org.osgi.service.servlet.whiteboard.runtime.dto.DTOConstants;
-import org.osgi.service.servlet.whiteboard.runtime.dto.FailedServletDTO;
+import org.osgi.service.servlet.runtime.dto.DTOConstants;
+import org.osgi.service.servlet.runtime.dto.FailedServletDTO;
 
 public class FailureStateHandlerTest {
 
diff --git a/http/bridge/README b/http/bridge/README
new file mode 100644
index 0000000000..3acb0c8806
--- /dev/null
+++ b/http/bridge/README
@@ -0,0 +1,5 @@
+This directory contains a proof of concept for a new version of the Apache 
Felix Http Service.
+
+It is based on Servlet API 5.
+
+This module contains code below the package org.osgi.service.servlet. The API 
in these packages is NOT official OSGi API, it is work in progress for a new 
OSGi specifications being worked in the [Eclipse OSGi working 
group](https://www.osgi.org/). The source is copied from the [design 381 
branch](https://github.com/osgi/osgi/tree/design/381). This API might change in 
any way at any time.
diff --git a/http/bridge/pom.xml b/http/bridge/pom.xml
index b1300c4df3..72e999e152 100644
--- a/http/bridge/pom.xml
+++ b/http/bridge/pom.xml
@@ -6,9 +6,9 @@
     to you 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
@@ -78,11 +78,15 @@
                         <Provide-Capability>
                             
osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1";
                             
uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard",
+                            
osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0";
+                            
uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard",
+                            
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.servlet.runtime.HttpServiceRuntime";
+                            
uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto",
                             
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.http.runtime.HttpServiceRuntime";
                             
uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto"
                         </Provide-Capability>
                         <_removeheaders>
-                            Private-Package,Conditional-Package 
+                            Private-Package,Conditional-Package
                         </_removeheaders>
                     </instructions>
                 </configuration>
diff --git a/http/jetty/README b/http/jetty/README
new file mode 100644
index 0000000000..3acb0c8806
--- /dev/null
+++ b/http/jetty/README
@@ -0,0 +1,5 @@
+This directory contains a proof of concept for a new version of the Apache 
Felix Http Service.
+
+It is based on Servlet API 5.
+
+This module contains code below the package org.osgi.service.servlet. The API 
in these packages is NOT official OSGi API, it is work in progress for a new 
OSGi specifications being worked in the [Eclipse OSGi working 
group](https://www.osgi.org/). The source is copied from the [design 381 
branch](https://github.com/osgi/osgi/tree/design/381). This API might change in 
any way at any time.
diff --git a/http/jetty/pom.xml b/http/jetty/pom.xml
index 29b318303d..dd2dbb3164 100644
--- a/http/jetty/pom.xml
+++ b/http/jetty/pom.xml
@@ -6,9 +6,9 @@
     to you 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
@@ -32,17 +32,17 @@
     <artifactId>org.apache.felix.http.jetty</artifactId>
     <version>5.0.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
-    
+
     <scm>
         
<connection>scm:git:https://github.com/apache/felix-dev.git</connection>
         
<developerConnection>scm:git:https://github.com/apache/felix-dev.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=felix-dev.git</url>
       <tag>HEAD</tag>
   </scm>
-    
+
     <properties>
         <felix.java.version>11</felix.java.version>
-       <jetty.version>11.0.7</jetty.version>
+        <jetty.version>11.0.7</jetty.version>
     </properties>
 
     <build>
@@ -158,7 +158,10 @@
                             org.osgi.service.http.runtime,
                             org.osgi.service.http.runtime.dto,
                             org.osgi.service.http.whiteboard,
-                            !org.osgi.service.servlet.*,
+                            org.osgi.service.servlet.context,
+                            org.osgi.service.servlet.runtime,
+                            org.osgi.service.servlet.runtime.dto,
+                            org.osgi.service.servlet.whiteboard,
                             !org.eclipse.jetty,
                             !org.eclipse.jetty.version,
                             org.eclipse.jetty.*,
@@ -168,8 +171,7 @@
                             org.apache.felix.http.base.*,
                             org.apache.felix.http.jetty.*,
                             org.eclipse.jetty,
-                            org.eclipse.jetty.version,
-                            org.osgi.service.servlet.*
+                            org.eclipse.jetty.version
                         </Private-Package>
                         <Conditional-Package>
                             org.apache.commons.*
@@ -180,7 +182,7 @@
                             javax.imageio;resolution:=optional,
                             javax.sql;resolution:=optional,
                             org.ietf.jgss;resolution:=optional,
-                            
org.osgi.service.cm;resolution:=optional;version="[1.3,2)",                     
           
+                            
org.osgi.service.cm;resolution:=optional;version="[1.3,2)",
                             
org.osgi.service.event;resolution:=optional;version="[1.2,2)",
                             
org.osgi.service.log;resolution:=optional;version="[1.3,2)",
                             
org.osgi.service.metatype;resolution:=optional;version="[1.1,2)",
@@ -189,11 +191,11 @@
                             org.osgi.service.http.context;version="[1.1,1.2)",
                             org.osgi.service.http.runtime;version="[1.1,1.2)",
                             
org.osgi.service.http.runtime.dto;version="[1.1,1.2)",
-                            org.slf4j;version="[1.0,3.0)", 
+                            org.slf4j;version="[1.0,3.0)",
                             *
                         </Import-Package>
                         <DynamicImport-Package>
-                            org.osgi.service.cm;version="[1.3,2)",             
            
+                            org.osgi.service.cm;version="[1.3,2)",
                             org.osgi.service.event;version="[1.2,2)",
                             org.osgi.service.log;version="[1.3,2)",
                             org.osgi.service.metatype;version="[1.4,2)"
@@ -201,10 +203,10 @@
                         <Provide-Capability>
                             
osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1";
                             
uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard",
-<!--                            
-                            
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntime";
-                            
uses:="org.osgi.service.servlet.whiteboard.runtime,org.osgi.service.servlet.whiteboard.runtime.dto",
--->
+                            
osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0";
+                            
uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard",
+                            
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.servlet.runtime.HttpServiceRuntime";
+                            
uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto",
                             
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.http.runtime.HttpServiceRuntime";
                             
uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto",
                             
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.http.HttpService";
@@ -213,6 +215,7 @@
                         </Provide-Capability>
                         <Require-Capability>
                             
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=4.0))",
+                            
osgi.contract;filter:="(&amp;(osgi.contract=JakartaServlet)(version=5.0))",
                             
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional,
                             
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional,
                             
osgi.serviceloader;filter:="(osgi.serviceloader=org.eclipse.jetty.http.HttpFieldPreEncoder)";resolution:=optional;cardinality:=multiple,
@@ -274,10 +277,10 @@
                                 <Provide-Capability>
                                     
osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1";
                                     
uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard",
-<!--
-                                    
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.servlet.whiteboard.runtime.HttpServiceRuntime";
-                                    
uses:="org.osgi.service.servlet.whiteboard.runtime,org.osgi.service.servlet.whiteboard.runtime.dto",
--->
+                                    
osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0";
+                                    
uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard",
+                                    
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.servlet.runtime.HttpServiceRuntime";
+                                    
uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto",
                                     
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.http.runtime.HttpServiceRuntime";
                                     
uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto",
                                     
osgi.service;objectClass:List&lt;String&gt;="org.osgi.service.http.HttpService";
@@ -285,14 +288,15 @@
                                 </Provide-Capability>
                                 <!-- We need to override this from the base 
configuration to exclude the ServiceLoader capabilities -->
                                 <Require-Capability>
-                                    
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=4.0))"
+                                  
osgi.contract;filter:="(&amp;(osgi.contract=JavaServlet)(version=4.0))",
+                                  
osgi.contract;filter:="(&amp;(osgi.contract=JakartaServlet)(version=5.0))"
                                 </Require-Capability>
                                 <!-- We need to override this from the base 
configuration to exclude the ServiceLoader resources -->
                                 <Include-Resource>
                                     {maven-resources}
                                 </Include-Resource>
                                 <_removeheaders>
-                                    
X-Jetty-Version,Private-Package,Conditional-Package 
+                                    
X-Jetty-Version,Private-Package,Conditional-Package
                                 </_removeheaders>
                             </instructions>
                         </configuration>
diff --git a/http/servlet-api/pom.xml b/http/servlet-api/pom.xml
index 054fce2270..6609c9780f 100644
--- a/http/servlet-api/pom.xml
+++ b/http/servlet-api/pom.xml
@@ -21,7 +21,7 @@
     <name>Apache Felix Servlet API</name>
     <description>Provides the Servlet API for use by applications</description>
     <artifactId>org.apache.felix.http.servlet-api</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <scm>
@@ -60,14 +60,21 @@
                             javax.servlet.annotation;
                             javax.servlet.descriptor;
                             javax.servlet.http;
-                                version=4.0
+                                version=4.0,
+                            jakarta.servlet;
+                            jakarta.servlet.annotation;
+                            jakarta.servlet.descriptor;
+                            jakarta.servlet.http;
+                                version=5.0
                         </Export-Package>
                         <Import-Package>!*</Import-Package>
                         <Provide-Capability>
                             
osgi.contract;osgi.contract="JavaServlet";version:List&lt;Version&gt;="2.6,3.0,3.1,4.0";
-                            
uses:="javax.servlet,javax.servlet.http,javax.servlet.descriptor,javax.servlet.annotation"
+                            
uses:="javax.servlet,javax.servlet.http,javax.servlet.descriptor,javax.servlet.annotation",
+                            
osgi.contract;osgi.contract="JakartaServlet";version:List&lt;Version&gt;="5.0";
+                            
uses:="jakarta.servlet,jakarta.servlet.http,jakarta.servlet.descriptor,jakarta.servlet.annotation"
                         </Provide-Capability>
-                       
<Embed-Dependency>tomcat-servlet-api;inline=true</Embed-Dependency>
+                       
<Embed-Dependency>tomcat-servlet-api;inline=true,jakarta.servlet-api;inline=true</Embed-Dependency>
                     </instructions>
                     <!-- Skip baselining -->
                     <skip>true</skip>
@@ -82,6 +89,11 @@
             <artifactId>tomcat-servlet-api</artifactId>
             <version>9.0.56</version>
         </dependency>
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <version>5.0.0</version>
+        </dependency>
     </dependencies>
 
 </project>

Reply via email to