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