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

jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/master by this push:
     new c78addf  [KARAF-6856] Use requirement for HTTP service and rename http 
features (cleaner)
     new c4f49d2  Merge pull request #1195 from jbonofre/KARAF-6856
c78addf is described below

commit c78addfaebc14f3f0bf7a585233d091c9b1485a8
Author: jbonofre <jbono...@apache.org>
AuthorDate: Sat Oct 10 07:31:45 2020 +0200

    [KARAF-6856] Use requirement for HTTP service and rename http features 
(cleaner)
---
 assemblies/features/spring-legacy/pom.xml          |  2 +-
 .../spring-legacy/src/main/feature/feature.xml     | 14 ++++----
 assemblies/features/spring/pom.xml                 |  3 ++
 .../features/spring/src/main/feature/feature.xml   |  6 ++--
 assemblies/features/standard/pom.xml               |  4 +++
 .../features/standard/src/main/feature/feature.xml | 32 +++++++++--------
 .../karaf-docker-example-dynamic-dist/pom.xml      |  2 +-
 .../src/main/feature/feature.xml                   |  2 +-
 .../src/main/feature/feature.xml                   |  1 +
 .../apache/karaf/features/internal/service/f02.xml |  4 +--
 .../src/test/filtered-resources/etc/feature.xml    | 18 +++++-----
 .../karaf/itests/ConditionalFeaturesTest.java      |  1 +
 .../karaf/itests/features/Spring3FeaturesTest.java |  6 ++--
 .../itests/features/Spring43FeaturesTest.java      |  6 ++--
 .../itests/features/Spring52FeaturesTest.java      |  5 +--
 .../itests/features/StandardFeaturesTest.java      | 12 +++----
 manual/src/main/asciidoc/user-guide/http.adoc      | 41 ++++++++++------------
 .../src/main/asciidoc/user-guide/monitoring.adoc   |  3 +-
 .../src/main/asciidoc/user-guide/webconsole.adoc   |  3 ++
 19 files changed, 92 insertions(+), 73 deletions(-)

diff --git a/assemblies/features/spring-legacy/pom.xml 
b/assemblies/features/spring-legacy/pom.xml
index e9e4b60..2753613 100644
--- a/assemblies/features/spring-legacy/pom.xml
+++ b/assemblies/features/spring-legacy/pom.xml
@@ -151,7 +151,7 @@
                                 <feature>framework</feature>
                             </framework>
                             <features>
-                                <feature>spring|spring-(?!(struts))*</feature>
+                                
<feature>(?!(spring-struts|spring-web|spring-dm-web))*</feature>
                             </features>
                         </configuration>
                     </execution>
diff --git a/assemblies/features/spring-legacy/src/main/feature/feature.xml 
b/assemblies/features/spring-legacy/src/main/feature/feature.xml
index 0ca3286..433f735 100644
--- a/assemblies/features/spring-legacy/src/main/feature/feature.xml
+++ b/assemblies/features/spring-legacy/src/main/feature/feature.xml
@@ -43,8 +43,8 @@
     <feature name="spring-dm-web" description="Spring DM Web support" 
version="${spring.osgi.version}">
         <feature>spring-dm</feature>
         <feature version="[2.5.6,4)">spring-web</feature>
-        <feature>http</feature>
         <bundle 
start-level="30">mvn:org.springframework.osgi/spring-osgi-web/${spring.osgi.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <!-- Spring 3.1.x support (required for spring-dm) -->
@@ -84,7 +84,7 @@
 
     <feature name="spring-struts" description="Spring 3.1.x Struts support" 
version="${spring31.version}">
         <feature version="[${spring31.version},3.2)">spring-web</feature>
-        <feature>war</feature>
+        <feature>pax-web-war</feature>
         <bundle dependency="true" 
start-level="30">mvn:commons-collections/commons-collections/${commons-collections.version}</bundle>
         <bundle dependency="true" 
start-level="30">mvn:commons-beanutils/commons-beanutils/${commons-beanutils.version}</bundle>
         <bundle dependency="true" 
start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.struts/${struts.bundle.version}</bundle>
@@ -113,9 +113,10 @@
 
     <feature name="spring-web" description="Spring 3.1.x Web support" 
version="${spring31.version}">
        <feature version="[${spring31.version},3.2)">spring</feature>
-       <feature>http</feature>
+        <bundle 
dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
        <bundle 
start-level="30">mvn:org.springframework/spring-web/${spring31.version}</bundle>
                <bundle 
start-level="30">mvn:org.springframework/spring-webmvc/${spring31.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="spring-web-portlet" description="Spring 3.1.x Web Portlet 
support" version="${spring31.version}">
@@ -189,9 +190,10 @@
 
     <feature name="spring-web" description="Spring 4.3.x Web support" 
version="${spring43.version}">
         <feature version="[${spring43.version},4.4)">spring</feature>
-        <feature>http</feature>
+        <bundle 
dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
         <bundle 
start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/${spring43.version}</bundle>
         <bundle 
start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/${spring43.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="spring-web-portlet" description="Spring 4.3.x Web Portlet 
support" version="${spring43.version}">
@@ -210,7 +212,7 @@
     <!-- Spring Security support -->
 
     <feature name="spring-security" description="Spring Security 3.1.x 
support" version="${spring.security31.version}">
-        <feature>war</feature>
+        <feature>pax-web-war</feature>
            <feature version="[3,4)">spring-web</feature>
         <bundle 
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/${aspectj.bundle.version}</bundle>
         <bundle 
start-level="30">mvn:org.springframework.security/spring-security-core/${spring.security31.version}</bundle>
@@ -221,7 +223,7 @@
     </feature>
 
     <feature name="spring-security" description="Spring Security 4.2.x 
support" version="${spring.security42.version}">
-        <feature>war</feature>
+        <feature>pax-web-war</feature>
         <feature version="[4,5)">spring-web</feature>
         <bundle 
dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/${aspectj.bundle.version}</bundle>
         <bundle 
start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-security-core/${spring.security42.version}</bundle>
diff --git a/assemblies/features/spring/pom.xml 
b/assemblies/features/spring/pom.xml
index 236706b..009c2ae 100644
--- a/assemblies/features/spring/pom.xml
+++ b/assemblies/features/spring/pom.xml
@@ -150,6 +150,9 @@
                             <framework>
                                 <feature>framework</feature>
                             </framework>
+                            <features>
+                                
<feature>spring|spring-(?!(dm-web|web))*</feature>
+                            </features>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/assemblies/features/spring/src/main/feature/feature.xml 
b/assemblies/features/spring/src/main/feature/feature.xml
index 3ae1626..084710a 100644
--- a/assemblies/features/spring/src/main/feature/feature.xml
+++ b/assemblies/features/spring/src/main/feature/feature.xml
@@ -86,9 +86,10 @@
 
     <feature name="spring-web" description="Spring 5.2.x Web support" 
version="${spring52.version}">
         <feature version="[${spring52.version},5.3)">spring</feature>
-        <feature>http</feature>
+        <bundle 
dependency="true">mvn:javax.servlet/javax.servlet-api/3.1.0</bundle>
         <bundle 
start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/${spring52.version}</bundle>
         <bundle 
start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/${spring52.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="spring-websocket" description="Spring 5.2.x WebSocket 
support" version="${spring52.version}">
@@ -100,10 +101,11 @@
     <!-- Spring Security -->
 
     <feature name="spring-security" description="Spring Security 5.3.x 
support" version="${spring.security53.version}">
-        <feature>war</feature>
+        <feature>pax-web-war</feature>
         <feature version="[5.1,6)">spring-jdbc</feature>
         <feature version="[5.1,6)">spring-tx</feature>
         <feature version="[5.1,6)">spring-web</feature>
+        <bundle 
dependency="true">mvn:javax.annotation/javax.annotation-api/1.3</bundle>
         <bundle 
dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${jackson.version}</bundle>
         <bundle 
dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson.version}</bundle>
         <bundle 
dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${jackson.version}</bundle>
diff --git a/assemblies/features/standard/pom.xml 
b/assemblies/features/standard/pom.xml
index df47c89..3e07f67 100644
--- a/assemblies/features/standard/pom.xml
+++ b/assemblies/features/standard/pom.xml
@@ -429,6 +429,10 @@
                             <framework>
                                 <feature>framework</feature>
                             </framework>
+                            <features>
+                                <!-- webconsole, blueprint-web and jolokia 
features use requirement -->
+                                
<feature>(?!(webconsole|blueprint-web|jolokia))*</feature>
+                            </features>
                             
<ignoreMissingConditions>true</ignoreMissingConditions>
                         </configuration>
                     </execution>
diff --git a/assemblies/features/standard/src/main/feature/feature.xml 
b/assemblies/features/standard/src/main/feature/feature.xml
index 054bb33..df773b7 100644
--- a/assemblies/features/standard/src/main/feature/feature.xml
+++ b/assemblies/features/standard/src/main/feature/feature.xml
@@ -829,11 +829,6 @@ start-level = admin                           # admin can 
set any start level, i
         </conditional>
     </feature>
 
-    <feature name="http" version="${project.version}" 
description="Implementation of the OSGI HTTP Service">
-        <feature dependency="true">pax-http-service</feature>
-        <requirement>http-service</requirement>
-    </feature>
-
     <feature name="felix-httplite" version="${felix.httplite.version}" 
description="Felix Httplite HTTP Service">
         <bundle 
start-level="30">mvn:org.apache.felix/org.apache.felix.httplite.complete/${felix.httplite.version}</bundle>
         <capability>http-service;provider:=felix-httplite</capability>
@@ -872,7 +867,7 @@ org.osgi.service.http.port=8181
         </conditional>
     </feature>
 
-    <feature name="pax-http-service" description="Pax-Web OSGi HTTP Service" 
version="${pax.web.version}">
+    <feature name="pax-web-http" description="Pax Web OSGi HTTP Service" 
version="${pax.web.version}">
         <feature>pax-http</feature>
         <bundle 
start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.core/${project.version}</bundle>
         <capability>http-service;provider:=pax-http</capability>
@@ -881,17 +876,26 @@ org.osgi.service.http.port=8181
             <bundle 
start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.http/${project.version}</bundle>
         </conditional>
     </feature>
+    <feature name="http" description="Transition feature for backward 
compatibility" version="${pax.web.version}">
+        <feature>pax-web-http</feature>
+    </feature>
 
-    <feature name="http-whiteboard" description="Provide HTTP Whiteboard 
pattern support" version="${project.version}">
-       <feature>http</feature>
+    <feature name="pax-web-http-whiteboard" description="Pax Web OSGi HTTP 
Whiteboard support" version="${pax.web.version}">
+        <feature>pax-web-http</feature>
         <feature>pax-http-whiteboard</feature>
     </feature>
+    <feature name="http-whiteboard" description="Transition feature for 
backward compatibility" version="${pax.web.version}">
+        <feature>pax-web-http-whiteboard</feature>
+    </feature>
 
-    <feature name="war" description="Turn Karaf as a full WebContainer" 
version="${project.version}">
-        <feature>http</feature>
+    <feature name="pax-web-war" description="Turn Karaf as a full 
WebContainer" version="${project.version}">
+        <feature>pax-web-http</feature>
         <feature>pax-war</feature>
         <bundle 
start-level="30">mvn:org.apache.karaf.web/org.apache.karaf.web.core/${project.version}</bundle>
     </feature>
+    <feature name="war" description="Transition feature for backward 
compatibility" version="${project.version}">
+        <feature>pax-web-war</feature>
+    </feature>
 
     <feature name="kar" description="Provide KAR (KARaf archive) support" 
version="${project.version}">
         <bundle 
start-level="30">mvn:org.apache.karaf.kar/org.apache.karaf.kar.core/${project.version}</bundle>
@@ -957,7 +961,6 @@ realm=karaf
 # The role required to access the WebConsole
 role=admin
         </config>
-        <feature>http</feature>
         <bundle 
start-level="30">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
         <bundle 
start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.console/${project.version}</bundle>
         <bundle 
start-level="30">mvn:org.apache.felix/org.apache.felix.webconsole.plugins.memoryusage/${felix.memoryusage.webconsole.plugin.version}</bundle>
@@ -973,6 +976,7 @@ role=admin
             <condition>feature</condition>
             <bundle 
start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.features/${project.version}</bundle>
         </conditional>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="ssh" description="Provide a SSHd server on Karaf" 
version="${project.version}">
@@ -1455,9 +1459,9 @@ org.apache.felix.eventadmin.AddSubject=true
 
     <feature name="blueprint-web" description="Provides an OSGI-aware Servlet 
ContextListener for bootstrapping
         blueprint inside web-bundle containers" version="${project.version}">
-        <feature>war</feature>
         <feature>aries-blueprint</feature>
         
<bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.webosgi/${aries.blueprint.webosgi.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="wrap" description="Wrap URL handler" 
version="${pax.url.version}">
@@ -1493,7 +1497,6 @@ profilesDirectory = ${karaf.home}/profiles
     </feature>
 
     <feature name="jolokia" description="Jolokia monitoring support" 
version="${jolokia.version}">
-        <feature>http</feature>
         <config name="org.jolokia.osgi">
 
################################################################################
 #
@@ -1519,6 +1522,7 @@ org.jolokia.realm=karaf
 org.jolokia.authMode=jaas
         </config>
         <bundle>mvn:org.jolokia/jolokia-osgi/${jolokia.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="maven" description="Commands for Maven configuration of 
services from pax-url-aether" version="${project.version}">
@@ -1633,7 +1637,7 @@ jul.layout.type = simple
     </feature>
 
     <feature name="documentation" description="Documentation of Karaf project 
in HTML" version="${project.version}">
-        <feature>war</feature>
+        <feature>pax-web-war</feature>
         <bundle>mvn:org.apache.karaf/manual/${project.version}</bundle>
     </feature>
 
diff --git 
a/examples/karaf-docker-example/karaf-docker-example-dynamic-dist/pom.xml 
b/examples/karaf-docker-example/karaf-docker-example-dynamic-dist/pom.xml
index 20c1c44..0ec4acc 100644
--- a/examples/karaf-docker-example/karaf-docker-example-dynamic-dist/pom.xml
+++ b/examples/karaf-docker-example/karaf-docker-example-dynamic-dist/pom.xml
@@ -121,7 +121,7 @@
                         <feature>service</feature>
                         <feature>system</feature>
                         <feature>scr</feature>
-                        <feature>http-whiteboard</feature>
+                        <feature>pax-web-http-whiteboard</feature>
                         <feature>karaf-docker-example-app</feature>
                     </bootFeatures>
                     <libraries>
diff --git 
a/examples/karaf-http-resource-example/karaf-http-resource-example-features/src/main/feature/feature.xml
 
b/examples/karaf-http-resource-example/karaf-http-resource-example-features/src/main/feature/feature.xml
index 147f730..a865247 100644
--- 
a/examples/karaf-http-resource-example/karaf-http-resource-example-features/src/main/feature/feature.xml
+++ 
b/examples/karaf-http-resource-example/karaf-http-resource-example-features/src/main/feature/feature.xml
@@ -20,7 +20,7 @@
     
     <feature name="karaf-http-resource-example-whiteboard" 
version="${project.version}">
         <feature>scr</feature>
-        <feature>http-whiteboard</feature>
+        <feature>pax-web-http-whiteboard</feature>
         
<bundle>mvn:org.apache.karaf.examples/karaf-http-resource-example-whiteboard/${project.version}</bundle>
     </feature>
 
diff --git 
a/examples/karaf-rest-example/karaf-rest-example-features/src/main/feature/feature.xml
 
b/examples/karaf-rest-example/karaf-rest-example-features/src/main/feature/feature.xml
index 3dd1ac4..6a9e192 100644
--- 
a/examples/karaf-rest-example/karaf-rest-example-features/src/main/feature/feature.xml
+++ 
b/examples/karaf-rest-example/karaf-rest-example-features/src/main/feature/feature.xml
@@ -53,6 +53,7 @@
 
     <feature name="karaf-rest-example-whiteboard" version="${project.version}">
         <feature 
version="${project.version}">karaf-rest-example-common</feature>
+        <feature>pax-web-http-whiteboard</feature>
         <feature>aries-jax-rs-whiteboard</feature>
         <feature>aries-jax-rs-whiteboard-jackson</feature>
         <bundle 
dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${servicemix-spec.version}</bundle>
diff --git 
a/features/core/src/test/resources/org/apache/karaf/features/internal/service/f02.xml
 
b/features/core/src/test/resources/org/apache/karaf/features/internal/service/f02.xml
index 825d4a0..dcc575e 100644
--- 
a/features/core/src/test/resources/org/apache/karaf/features/internal/service/f02.xml
+++ 
b/features/core/src/test/resources/org/apache/karaf/features/internal/service/f02.xml
@@ -109,7 +109,7 @@
         <config name="org.ops4j.pax.url.war">
             org.ops4j.pax.url.war.importPaxLoggingPackages=true
         </config>
-        <feature>http</feature>
+        <feature>pax-web-http</feature>
         <bundle 
start-level='30'>mvn:org.apache.karaf.shell/org.apache.karaf.shell.web/2.2.0</bundle>
         <bundle>mvn:org.ops4j.pax.web/pax-web-jsp/1.0.1</bundle>
         <bundle>mvn:org.ops4j.pax.web/pax-web-extender-war/1.0.1</bundle>
@@ -124,7 +124,7 @@
         <config name="org.apache.karaf.webconsole">
             realm=karaf
         </config>
-        <feature>http</feature>
+        <feature>pax-web-http</feature>
         <bundle>mvn:org.apache.felix/org.apache.felix.metatype/1.0.4</bundle>
         
<bundle>mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.branding/2.2.0</bundle>
         
<bundle>mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.console/2.2.0</bundle>
diff --git a/itests/test/src/test/filtered-resources/etc/feature.xml 
b/itests/test/src/test/filtered-resources/etc/feature.xml
index 4ef437d..922ddf7 100644
--- a/itests/test/src/test/filtered-resources/etc/feature.xml
+++ b/itests/test/src/test/filtered-resources/etc/feature.xml
@@ -553,17 +553,17 @@
         </conditional>
     </feature>
 
-    <feature name="http" version="${project.version}" 
description="Implementation of the OSGI HTTP Service">
+    <feature name="pax-web-http" version="${project.version}" 
description="Implementation of the OSGI HTTP Service">
         <feature dependency="true">pax-http-service</feature>
         <requirement>http-service</requirement>
     </feature>
 
-    <feature name="httplite" version="${project.version}" description="Felix 
Httplite OSGi HTTP Service">
+    <feature name="felix-httplite" version="${project.version}" 
description="Felix Httplite OSGi HTTP Service">
         <bundle 
start-level="30">mvn:org.apache.felix/org.apache.felix.httplite.complete/${felix.httplite.version}</bundle>
         <capability>http-service;provider:=felix-httplite</capability>
     </feature>
 
-    <feature name="pax-http-service" description="Pax-Web OSGi HTTP Service">
+    <feature name="pax-web-http" description="Pax-Web OSGi HTTP Service">
         <feature>pax-http</feature>
         <bundle 
start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.core/${project.version}</bundle>
         <capability>http-service;provider:=pax-http</capability>
@@ -573,13 +573,13 @@
         </conditional>
     </feature>
 
-    <feature name="http-whiteboard" description="Provide HTTP Whiteboard 
pattern support" version="${project.version}">
-       <feature>http</feature>
+    <feature name="pax-web-http-whiteboard" description="Provide HTTP 
Whiteboard pattern support" version="${project.version}">
+       <feature>pax-web-http</feature>
         <feature>pax-http-whiteboard</feature>
     </feature>
 
-    <feature name="war" description="Turn Karaf as a full WebContainer" 
version="${project.version}">
-        <feature>http</feature>
+    <feature name="pax-web-war" description="Turn Karaf as a full 
WebContainer" version="${project.version}">
+        <feature>pax-web-http</feature>
         <feature>pax-war</feature>
         <bundle 
start-level="30">mvn:org.apache.karaf.web/org.apache.karaf.web.core/${project.version}</bundle>
     </feature>
@@ -606,7 +606,6 @@
         <config name="org.apache.karaf.webconsole">
             realm=karaf
         </config>
-        <feature>http</feature>
         <bundle 
start-level="30">mvn:org.apache.felix/org.apache.felix.metatype/${felix.metatype.version}</bundle>
         <bundle 
start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.console/${project.version}</bundle>
         <conditional>
@@ -621,6 +620,7 @@
             <condition>feature</condition>
             <bundle 
start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.features/${project.version}</bundle>
         </conditional>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="ssh" description="Provide a SSHd server on Karaf" 
version="${project.version}">
@@ -943,13 +943,13 @@
     </feature>
 
     <feature name="jolokia" description="Jolokia monitoring support" 
version="${jolokia.version}">
-        <feature>http</feature>
         <config name="org.jolokia.osgi">
             org.jolokia.user=karaf
             org.jolokia.realm=karaf
             org.jolokia.authMode=jaas
         </config>
         <bundle>mvn:org.jolokia/jolokia-osgi/${jolokia.version}</bundle>
+        
<requirement>osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"</requirement>
     </feature>
 
     <feature name="maven" description="Commands for Maven configuration of 
services from pax-url-aether" version="${project.version}">
diff --git 
a/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
 
b/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
index 3acf49e..a2b38e7 100644
--- 
a/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
+++ 
b/itests/test/src/test/java/org/apache/karaf/itests/ConditionalFeaturesTest.java
@@ -52,6 +52,7 @@ public class ConditionalFeaturesTest extends BaseTest {
         } catch (Exception e) {
         }
         featureService.installFeature("eventadmin", 
EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
+        featureService.installFeature("http", 
EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
         featureService.installFeature("webconsole", 
EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
 
         assertBundleInstalled("org.apache.karaf.webconsole.features");
diff --git 
a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
 
b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
index 796351a..a2320be 100644
--- 
a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
+++ 
b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring3FeaturesTest.java
@@ -58,7 +58,7 @@ public class Spring3FeaturesTest extends BaseTest {
 
     @Test
     public void installSpringDmWebFeature() throws Exception {
-        installAssertAndUninstallFeatures("spring-dm-web");
+        installAssertAndUninstallFeatures("pax-web-http", "spring-dm-web");
     }
 
     // Spring 3.1.x
@@ -116,12 +116,12 @@ public class Spring3FeaturesTest extends BaseTest {
 
     @Test
     public void installSpringWeb31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", 
System.getProperty("spring31.version"));
+        installAssertAndUninstallFeatures("pax-web-http", "spring-web/" + 
System.getProperty("spring31.version"));
     }
 
     @Test
     public void installSpringWebPortlet31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web-portlet", 
System.getProperty("spring31.version"));
+        installAssertAndUninstallFeatures("pax-web-http", 
"spring-web-portlet/" + System.getProperty("spring31.version"));
     }
 
     // Spring Security
diff --git 
a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
 
b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
index c86e609..5e87cc9 100644
--- 
a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
+++ 
b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring43FeaturesTest.java
@@ -98,17 +98,17 @@ public class Spring43FeaturesTest extends BaseTest {
 
     @Test
     public void installSpringWebFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", 
System.getProperty("spring43.version"));
+        installAssertAndUninstallFeatures("pax-web-http", "spring-web/" + 
System.getProperty("spring43.version"));
     }
 
     @Test
     public void installSpringWebPortletFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-web-portlet", 
System.getProperty("spring43.version"));
+        installAssertAndUninstallFeatures("pax-web-http", 
"spring-web-portlet/" + System.getProperty("spring43.version"));
     }
 
     @Test
     public void installSpringWebSocketFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-websocket", 
System.getProperty("spring43.version"));
+        installAssertAndUninstallFeatures("pax-web-http", "spring-websocket/" 
+ System.getProperty("spring43.version"));
     }
 
     // Spring Security
diff --git 
a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring52FeaturesTest.java
 
b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring52FeaturesTest.java
index 5f3549d..fe300ba 100644
--- 
a/itests/test/src/test/java/org/apache/karaf/itests/features/Spring52FeaturesTest.java
+++ 
b/itests/test/src/test/java/org/apache/karaf/itests/features/Spring52FeaturesTest.java
@@ -76,12 +76,13 @@ public class Spring52FeaturesTest extends BaseTest {
 
     @Test
     public void installSpringWebFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", 
System.getProperty("spring52.version"));
+        installAssertAndUninstallFeatures("pax-web-http", "spring-web/" + 
System.getProperty("spring52.version"));
     }
 
     @Test
     public void installSpringWebSocketFeature() throws Exception {
-        installAssertAndUninstallFeature("spring-websocket", 
System.getProperty("spring52.version"));
+        installAndAssertFeature("pax-web-http");
+        installAssertAndUninstallFeatures("pax-web-http", "spring-websocket/" 
+ System.getProperty("spring52.version"));
     }
 
     // Spring Security
diff --git 
a/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
 
b/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
index e4b22ba..5dd01a2 100644
--- 
a/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
+++ 
b/itests/test/src/test/java/org/apache/karaf/itests/features/StandardFeaturesTest.java
@@ -53,7 +53,7 @@ public class StandardFeaturesTest extends BaseTest {
 
     @Test
     public void installAriesBlueprintWebFeature() throws Exception {
-        installAssertAndUninstallFeatures("blueprint-web");
+        installAssertAndUninstallFeatures("pax-web-http", "blueprint-web");
     }
     
     @Test
@@ -68,22 +68,22 @@ public class StandardFeaturesTest extends BaseTest {
 
     @Test
     public void installHttpFeature() throws Exception {
-        installAssertAndUninstallFeatures("http");
+        installAssertAndUninstallFeatures("pax-web-http");
     }
 
     @Test
     public void installHttpWhiteboardFeature() throws Exception {
-        installAssertAndUninstallFeatures("http-whiteboard");
+        installAssertAndUninstallFeatures("pax-web-http-whiteboard");
     }
 
     @Test
     public void installWarFeature() throws Exception {
-        installAssertAndUninstallFeatures("war");
+        installAssertAndUninstallFeatures("pax-web-war");
     }
 
     @Test
     public void installWebConsoleFeature() throws Exception {
-        installAssertAndUninstallFeatures("webconsole");
+        installAssertAndUninstallFeatures("pax-web-http", "webconsole");
     }
 
     @Test
@@ -118,7 +118,7 @@ public class StandardFeaturesTest extends BaseTest {
 
     @Test
     public void installJolokiaFeature() throws Exception {
-        installAssertAndUninstallFeatures("jolokia");
+        installAssertAndUninstallFeatures("pax-web-http", "jolokia");
     }
 
 }
diff --git a/manual/src/main/asciidoc/user-guide/http.adoc 
b/manual/src/main/asciidoc/user-guide/http.adoc
index ce0105e..d48b4f8 100644
--- a/manual/src/main/asciidoc/user-guide/http.adoc
+++ b/manual/src/main/asciidoc/user-guide/http.adoc
@@ -14,9 +14,14 @@
 
 ==== Http Service
 
-The Karaf http feature enables the Pax Web implementation of the OSGi 
HTTPService.
+Apache Karaf supports several Http Services:
 
-===== Installing the HTTP feature
+* `http` feature installs Http Service powered by Pax Web
+* `felix-http` feature installs Http Service powered by Apache Felix HTTP
+
+===== Installing the Http Service
+
+If you want to use Pax Web Http Service, you have to install the `http` 
feature:
 
 ----
 root@karaf()> feature:install http
@@ -24,6 +29,12 @@ root@karaf()> feature:install http
 
 NB: the HTTP service will be actually bound only when at least one web 
application will use it.
 
+If you want to use Apache Felix Http Service, you have to install `felix-http` 
feature:
+
+----
+root@karaf()> feature:install felix-http
+----
+
 If you want to test the HTTP service, you can install the `webconsole` feature:
 
 ----
@@ -34,7 +45,7 @@ Then, you can test the HTTP service by accessing the Apache 
Karaf WebConsole poi
 
 ===== Configuring the HTTPService
 
-By default the HTTPService listens on port 8181 you can change the port by 
creating a file `etc/org.ops4j.pax.web.cfg` with the following content:
+By default the HTTPService listens on port 8181 you can change the port by 
creating a file `etc/org.ops4j.pax.web.cfg` (if you use the Pax Web Http 
Service) with the following content:
 
 ----
 org.osgi.service.http.port=8181
@@ -47,9 +58,11 @@ root@karaf> config:property-set -p org.ops4j.pax.web 
org.osgi.service.http.port
 
 If the http feature is already installed the change will take effect 
immediately.
 
+If you use Apache Felix Http Service, it's basically the same but the 
configuration is `etc/org.apache.felix.http.cfg`.
+
 ===== Registering a servlet with the HttpService manually
 
-See http://felix.apache.org/site/apache-felix-http-service.html.
+See the Apache Karaf Servlet example: 
https://github.com/apache/karaf/tree/master/examples/karaf-servlet-example/karaf-servlet-example-registration
 
 ===== Using the Pax Web whiteboard extender
 
@@ -59,24 +72,8 @@ The Pax Web whiteboard extender is an enhancement of the 
http feature. So use th
 root@karaf> feature:install http-whiteboard
 ----
 
-The http://team.ops4j.org/wiki/display/ops4j/Pax+Web+Extender+-+Whiteboard[Pax 
Web whiteboard] extender listens to services
-of interface type HttpServlet and Filter.
-It will register each of these interfaces with the HttpService and remove them 
as soon as the service goes down.
-So it is much more convenient than registering with the HttpService directly.
-
-----
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";>
-    <service interface="javax.servlet.http.HttpServlet">
-        <service-properties>
-            <entry key="alias" value="/myservlet"/>
-        </service-properties>
-        <bean id="myServlet" class="com.example.MyServlet"/>
-    </service>
-</blueprint>
-----
-
-The above snippet publishes the Servlet MyServlet on 
http://localhost:8181/myServlet.
+NB: `felix-http` feature installs whiteboard by default in the feature.
 
-Please keep in mind that the Whiteboard pattern for Servlets is not 
standardized and only works with Pax Web.
+You can take a look on a full example using whiteboard here: 
https://github.com/apache/karaf/tree/master/examples/karaf-servlet-example
 
 For commands take a look at the command section in the 
link:webcontainer[webcontainer] chapter.
diff --git a/manual/src/main/asciidoc/user-guide/monitoring.adoc 
b/manual/src/main/asciidoc/user-guide/monitoring.adoc
index a608f9a..e7cee25 100644
--- a/manual/src/main/asciidoc/user-guide/monitoring.adoc
+++ b/manual/src/main/asciidoc/user-guide/monitoring.adoc
@@ -269,9 +269,10 @@ More over, you may want to write your own application/web 
application. In that c
 
 http://www.jolokia.org/[Jolokia] can be installed in Apache Karaf as a remote 
JMX-HTTP bridge.
 
-Karaf provides a jolokia feature, ready to install:
+Karaf provides a jolokia feature, ready to install (you just need a Http 
Service installed first):
 
 ----
+karaf@root()> feature:install http
 karaf@root()> feature:install jolokia
 ----
 
diff --git a/manual/src/main/asciidoc/user-guide/webconsole.adoc 
b/manual/src/main/asciidoc/user-guide/webconsole.adoc
index 31c4779..7eab902 100644
--- a/manual/src/main/asciidoc/user-guide/webconsole.adoc
+++ b/manual/src/main/asciidoc/user-guide/webconsole.adoc
@@ -34,9 +34,12 @@ For instance, Apache Karaf Cellar provides additional pages 
to administrate clus
 To enable the Apache Karaf WebConsole, you just have to install the 
`webconsole` feature:
 
 ----
+karaf@root()> feature:install http
 karaf@root()> feature:install webconsole
 ----
 
+NB: you have to install a Http Service first as requirement, either `http` or 
`felix-http` feature.
+
 The `webconsole` feature automatically installs the `http` feature (see the 
[WebContainer section|webcontainer] for details).
 
 ==== Access

Reply via email to