You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2022/10/08 15:12:08 UTC
[wicket] branch wicket-9.x updated: WICKET-6999 Update bundle plugin to support slf4j [1.7,3)
This is an automated email from the ASF dual-hosted git repository.
adelbene pushed a commit to branch wicket-9.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/wicket-9.x by this push:
new 227b94027c WICKET-6999 Update bundle plugin to support slf4j [1.7,3)
227b94027c is described below
commit 227b94027cf129239bedbfeeddf5f0f5c2f92380
Author: Matt Pavlovich <ma...@hyte.io>
AuthorDate: Thu Sep 29 11:31:34 2022 -0500
WICKET-6999 Update bundle plugin to support slf4j [1.7,3)
---
pom.xml | 25 +++--
wicket-auth-roles/pom.xml | 5 +-
wicket-bean-validation/pom.xml | 4 +
wicket-cdi/pom.xml | 5 +-
wicket-core/pom.xml | 112 ++++++++++++++++++++-
wicket-devutils/pom.xml | 5 +-
wicket-extensions/pom.xml | 5 +-
wicket-guice/pom.xml | 5 +-
wicket-ioc/pom.xml | 5 +-
wicket-jmx/pom.xml | 5 +-
.../wicket-native-websocket-core/pom.xml | 5 +-
.../wicket-native-websocket-javax/pom.xml | 4 +
wicket-objectsizeof-agent/pom.xml | 5 +-
wicket-request/pom.xml | 2 +
wicket-spring/pom.xml | 2 +
wicket-user-guide/src/main/asciidoc/karaf.adoc | 3 +
.../src/main/asciidoc/karaf/karaf_1.adoc | 75 ++++++++++++++
wicket-user-guide/src/main/asciidoc/single.adoc | 9 ++
wicket-util/pom.xml | 2 +
wicket-velocity/pom.xml | 2 +
wicket/pom.xml | 43 ++++++++
wicket/src/main/filtered-resources/features.xml | 25 +++++
22 files changed, 335 insertions(+), 18 deletions(-)
diff --git a/pom.xml b/pom.xml
index 114e17485e..ef6100bb82 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,9 +177,10 @@
<velocity-engine-core.version>2.3</velocity-engine-core.version>
<!-- Maven plugins -->
+ <build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
<japicmp-maven-plugin.version>0.15.5</japicmp-maven-plugin.version>
<maven-archetype-plugin.version>3.2.0</maven-archetype-plugin.version>
- <maven-bundle-plugin.version>5.1.3</maven-bundle-plugin.version>
+ <maven-bundle-plugin.version>5.1.8</maven-bundle-plugin.version>
<maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
@@ -200,6 +201,9 @@
<maven-war-plugin.version>3.3.1</maven-war-plugin.version>
<yuicompressor-maven-plugin.version>1.5.1</yuicompressor-maven-plugin.version>
+ <osgi.dynamicimport.package></osgi.dynamicimport.package>
+ <osgi.export.package>*</osgi.export.package>
+ <osgi.import.package>!java,!kotlin,*</osgi.import.package>
</properties>
<dependencyManagement>
@@ -891,18 +895,18 @@
<extensions>true</extensions>
<executions>
<execution>
- <id>bundle-manifest</id>
- <phase>process-classes</phase>
+ <id>default-bundle</id>
+ <phase>package</phase>
<goals>
- <goal>manifest</goal>
+ <goal>bundle</goal>
</goals>
<configuration>
<instructions>
- <Export-Package>*</Export-Package>
- <Import-Package>org.apache.wicket*,
- org.junit.jupiter*</Import-Package>
- <DynamicImport-Package>*</DynamicImport-Package>
+ <Export-Package>${osgi.export.package}</Export-Package>
+ <Import-Package>${osgi.import.package}</Import-Package>
+ <DynamicImport-Package>${osgi.dynamicimport.package}</DynamicImport-Package>
<_nouses>true</_nouses>
+ <_noee>true</_noee>
</instructions>
</configuration>
</execution>
@@ -1171,6 +1175,11 @@
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>${build-helper-maven-plugin.version}</version>
+ </plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
diff --git a/wicket-auth-roles/pom.xml b/wicket-auth-roles/pom.xml
index 85d838d2d8..0cc094182b 100644
--- a/wicket-auth-roles/pom.xml
+++ b/wicket-auth-roles/pom.xml
@@ -30,7 +30,10 @@
Wicket Authorization Integration Based on roles, metadata and
annotations.
</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.authroles*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>org.apache.wicket</groupId>
diff --git a/wicket-bean-validation/pom.xml b/wicket-bean-validation/pom.xml
index 83ee143bda..c88111dd68 100644
--- a/wicket-bean-validation/pom.xml
+++ b/wicket-bean-validation/pom.xml
@@ -26,6 +26,10 @@
<artifactId>wicket-bean-validation</artifactId>
<packaging>bundle</packaging>
<name>Wicket Bean Validation</name>
+ <properties>
+ <osgi.export.package>org.apache.wicket.bean.validation*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
diff --git a/wicket-cdi/pom.xml b/wicket-cdi/pom.xml
index 3665076401..2aced4a0ff 100644
--- a/wicket-cdi/pom.xml
+++ b/wicket-cdi/pom.xml
@@ -32,7 +32,10 @@
Also enables propagation of conversations between wicket artifacts such as pages
and resources.
</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.cdi*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>jakarta.annotation</groupId>
diff --git a/wicket-core/pom.xml b/wicket-core/pom.xml
index 710fd95305..4ae80132a6 100644
--- a/wicket-core/pom.xml
+++ b/wicket-core/pom.xml
@@ -35,7 +35,117 @@
component model backed by POJO data beans that can easily be
persisted using your favorite technology.
</description>
-
+ <properties>
+ <osgi.export.package>
+org.apache.wicket;-noimport:=true,
+org.apache.wicket.ajax;-noimport:=true,
+org.apache.wicket.ajax.attributes;-noimport:=true,
+org.apache.wicket.ajax.form;-noimport:=true,
+org.apache.wicket.ajax.json;-noimport:=true,
+org.apache.wicket.ajax.markup.html;-noimport:=true,
+org.apache.wicket.ajax.markup.html.form;-noimport:=true,
+org.apache.wicket.ajax.markup.html.navigation.paging;-noimport:=true,
+org.apache.wicket.application;-noimport:=true,
+org.apache.wicket.authentication;-noimport:=true,
+org.apache.wicket.authentication.strategy;-noimport:=true,
+org.apache.wicket.authorization;-noimport:=true,
+org.apache.wicket.authorization.strategies;-noimport:=true,
+org.apache.wicket.authorization.strategies.action;-noimport:=true,
+org.apache.wicket.authorization.strategies.page;-noimport:=true,
+org.apache.wicket.behavior;-noimport:=true,
+org.apache.wicket.coep;-noimport:=true,
+org.apache.wicket.coop;-noimport:=true,
+org.apache.wicket.core.random;-noimport:=true,
+org.apache.wicket.core.request;-noimport:=true,
+org.apache.wicket.core.request.handler;-noimport:=true,
+org.apache.wicket.core.request.handler.logger;-noimport:=true,
+org.apache.wicket.core.request.mapper;-noimport:=true,
+org.apache.wicket.core.util.crypt;-noimport:=true,
+org.apache.wicket.core.util.file;-noimport:=true,
+org.apache.wicket.core.util.lang;-noimport:=true,
+org.apache.wicket.core.util.objects.checker;-noimport:=true,
+org.apache.wicket.core.util.resource;-noimport:=true,
+org.apache.wicket.core.util.resource.locator;-noimport:=true,
+org.apache.wicket.core.util.resource.locator.caching;-noimport:=true,
+org.apache.wicket.core.util.string;-noimport:=true,
+org.apache.wicket.core.util.string.interpolator;-noimport:=true,
+org.apache.wicket.core.util.watch;-noimport:=true,
+org.apache.wicket.csp;-noimport:=true,
+org.apache.wicket.css;-noimport:=true,
+org.apache.wicket.event;-noimport:=true,
+org.apache.wicket.feedback;-noimport:=true,
+org.apache.wicket.javascript;-noimport:=true,
+org.apache.wicket.markup;-noimport:=true,
+org.apache.wicket.markup.head;-noimport:=true,
+org.apache.wicket.markup.head.filter;-noimport:=true,
+org.apache.wicket.markup.head.http2;-noimport:=true,
+org.apache.wicket.markup.head.internal;-noimport:=true,
+org.apache.wicket.markup.html;-noimport:=true,
+org.apache.wicket.markup.html.basic;-noimport:=true,
+org.apache.wicket.markup.html.border;-noimport:=true,
+org.apache.wicket.markup.html.debug;-noimport:=true,
+org.apache.wicket.markup.html.form;-noimport:=true,
+org.apache.wicket.markup.html.form.upload;-noimport:=true,
+org.apache.wicket.markup.html.form.validation;-noimport:=true,
+org.apache.wicket.markup.html.image;-noimport:=true,
+org.apache.wicket.markup.html.image.resource;-noimport:=true,
+org.apache.wicket.markup.html.include;-noimport:=true,
+org.apache.wicket.markup.html.internal;-noimport:=true,
+org.apache.wicket.markup.html.link;-noimport:=true,
+org.apache.wicket.markup.html.list;-noimport:=true,
+org.apache.wicket.markup.html.media;-noimport:=true,
+org.apache.wicket.markup.html.media.audio;-noimport:=true,
+org.apache.wicket.markup.html.media.video;-noimport:=true,
+org.apache.wicket.markup.html.navigation.paging;-noimport:=true,
+org.apache.wicket.markup.html.pages;-noimport:=true,
+org.apache.wicket.markup.html.panel;-noimport:=true,
+org.apache.wicket.markup.loader;-noimport:=true,
+org.apache.wicket.markup.parser;-noimport:=true,
+org.apache.wicket.markup.parser.filter;-noimport:=true,
+org.apache.wicket.markup.renderStrategy;-noimport:=true,
+org.apache.wicket.markup.repeater;-noimport:=true,
+org.apache.wicket.markup.repeater.data;-noimport:=true,
+org.apache.wicket.markup.repeater.util;-noimport:=true,
+org.apache.wicket.markup.resolver;-noimport:=true,
+org.apache.wicket.markup.transformer;-noimport:=true,
+org.apache.wicket.mock;-noimport:=true,
+org.apache.wicket.model;-noimport:=true,
+org.apache.wicket.model.util;-noimport:=true,
+org.apache.wicket.page;-noimport:=true,
+org.apache.wicket.pageStore;-noimport:=true,
+org.apache.wicket.pageStore.crypt;-noimport:=true,
+org.apache.wicket.pageStore.disk;-noimport:=true,
+org.apache.wicket.protocol.http;-noimport:=true,
+org.apache.wicket.protocol.http.mock;-noimport:=true,
+org.apache.wicket.protocol.http.request;-noimport:=true,
+org.apache.wicket.protocol.http.servlet;-noimport:=true,
+org.apache.wicket.protocol.https;-noimport:=true,
+org.apache.wicket.request.component;-noimport:=true,
+org.apache.wicket.request.cycle;-noimport:=true,
+org.apache.wicket.request.handler.render;-noimport:=true,
+org.apache.wicket.request.handler.resource;-noimport:=true,
+org.apache.wicket.request.resource;-noimport:=true,
+org.apache.wicket.request.resource.caching;-noimport:=true,
+org.apache.wicket.request.resource.caching.version;-noimport:=true,
+org.apache.wicket.resource;-noimport:=true,
+org.apache.wicket.resource.bundles;-noimport:=true,
+org.apache.wicket.resource.loader;-noimport:=true,
+org.apache.wicket.response;-noimport:=true,
+org.apache.wicket.response.filter;-noimport:=true,
+org.apache.wicket.serialize;-noimport:=true,
+org.apache.wicket.serialize.java;-noimport:=true,
+org.apache.wicket.session;-noimport:=true,
+org.apache.wicket.settings;-noimport:=true,
+org.apache.wicket.util.cookies;-noimport:=true,
+org.apache.wicket.util.image;-noimport:=true,
+org.apache.wicket.util.reference;-noimport:=true,
+org.apache.wicket.util.template;-noimport:=true,
+org.apache.wicket.util.tester;-noimport:=true,
+org.apache.wicket.validation;-noimport:=true,
+org.apache.wicket.validation.validator;-noimport:=true
+ </osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,!com.sun.crypto.provider,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
diff --git a/wicket-devutils/pom.xml b/wicket-devutils/pom.xml
index 0d72eac9f6..c21b8887c3 100644
--- a/wicket-devutils/pom.xml
+++ b/wicket-devutils/pom.xml
@@ -31,7 +31,10 @@
are typically used during development only, but may be
turned on for additional production debugging.
</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.devutils*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>org.apache.wicket</groupId>
diff --git a/wicket-extensions/pom.xml b/wicket-extensions/pom.xml
index 237444ad39..2c0824ea03 100644
--- a/wicket-extensions/pom.xml
+++ b/wicket-extensions/pom.xml
@@ -27,7 +27,10 @@
<packaging>bundle</packaging>
<name>Wicket Extensions</name>
<description>Wicket Extensions is a rich component library for the Wicket framework.</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.extensions*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
diff --git a/wicket-guice/pom.xml b/wicket-guice/pom.xml
index 760dede85a..19a4e359a6 100644
--- a/wicket-guice/pom.xml
+++ b/wicket-guice/pom.xml
@@ -30,7 +30,10 @@
Google Guice integration in your Wicket web applications. See the
examples project for usecases.
</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.guice*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>com.google.inject</groupId>
diff --git a/wicket-ioc/pom.xml b/wicket-ioc/pom.xml
index b703e0ccd2..ccbed04c02 100644
--- a/wicket-ioc/pom.xml
+++ b/wicket-ioc/pom.xml
@@ -30,7 +30,10 @@
Wicket IoC common dependencies for injection and proxying. Used by
Spring, Guice, etc.
</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.injection*;-noimport:=true,org.apache.wicket.proxy*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>cglib</groupId>
diff --git a/wicket-jmx/pom.xml b/wicket-jmx/pom.xml
index 91db5a04d4..6a45ddf4a2 100644
--- a/wicket-jmx/pom.xml
+++ b/wicket-jmx/pom.xml
@@ -27,7 +27,10 @@
<packaging>bundle</packaging>
<name>Wicket JMX</name>
<description>Wicket Java Management Extensions</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.jmx*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>org.apache.wicket</groupId>
diff --git a/wicket-native-websocket/wicket-native-websocket-core/pom.xml b/wicket-native-websocket/wicket-native-websocket-core/pom.xml
index 425c8c7e12..39ddef4f2d 100644
--- a/wicket-native-websocket/wicket-native-websocket-core/pom.xml
+++ b/wicket-native-websocket/wicket-native-websocket-core/pom.xml
@@ -29,7 +29,10 @@
<packaging>bundle</packaging>
<name>Wicket Native WebSocket Core</name>
<description>Provides the common code needed for the different integrations with web container's WebSocket implementations</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.protocol.ws*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>org.apache.wicket</groupId>
diff --git a/wicket-native-websocket/wicket-native-websocket-javax/pom.xml b/wicket-native-websocket/wicket-native-websocket-javax/pom.xml
index 9fe93bfbee..d546a91b9a 100644
--- a/wicket-native-websocket/wicket-native-websocket-javax/pom.xml
+++ b/wicket-native-websocket/wicket-native-websocket-javax/pom.xml
@@ -27,6 +27,10 @@
<packaging>bundle</packaging>
<name>Wicket Native WebSocket Javax</name>
<description>Provides the common code needed for the different integrations with web container's WebSocket implementations</description>
+ <properties>
+ <osgi.export.package>org.apache.wicket.protocol.ws.javax*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
diff --git a/wicket-objectsizeof-agent/pom.xml b/wicket-objectsizeof-agent/pom.xml
index 7de72255e5..3d5d539b9d 100644
--- a/wicket-objectsizeof-agent/pom.xml
+++ b/wicket-objectsizeof-agent/pom.xml
@@ -27,7 +27,10 @@
<packaging>jar</packaging>
<name>Wicket Objects Sizeof Agent</name>
<description>Agent for pluggin in object size measurements using instrumentation</description>
-
+ <properties>
+ <osgi.export.package>org.apache.wicket.util.instrument*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
+ </properties>
<dependencies>
<dependency>
<groupId>org.apache.wicket</groupId>
diff --git a/wicket-request/pom.xml b/wicket-request/pom.xml
index f4b9aa7b04..50ff3cabb5 100755
--- a/wicket-request/pom.xml
+++ b/wicket-request/pom.xml
@@ -28,6 +28,8 @@
<url>http://maven.apache.org</url>
<properties>
+ <osgi.export.package>org.apache.wicket.request*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
<automatic-module-name>org.apache.wicket.request</automatic-module-name>
</properties>
diff --git a/wicket-spring/pom.xml b/wicket-spring/pom.xml
index 0d795c4267..99c554b4cb 100644
--- a/wicket-spring/pom.xml
+++ b/wicket-spring/pom.xml
@@ -29,6 +29,8 @@
<description>Integration project to use Spring injection in your Wicket applications. See the wicket-spring-examples for integration patterns.</description>
<properties>
+ <osgi.export.package>org.apache.wicket.spring*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
<automatic-module-name>org.apache.wicket.spring</automatic-module-name>
</properties>
diff --git a/wicket-user-guide/src/main/asciidoc/karaf.adoc b/wicket-user-guide/src/main/asciidoc/karaf.adoc
new file mode 100644
index 0000000000..b28b04f643
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/karaf.adoc
@@ -0,0 +1,3 @@
+
+
+
diff --git a/wicket-user-guide/src/main/asciidoc/karaf/karaf_1.adoc b/wicket-user-guide/src/main/asciidoc/karaf/karaf_1.adoc
new file mode 100644
index 0000000000..5dde7fbaf2
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/karaf/karaf_1.adoc
@@ -0,0 +1,75 @@
+
+
+
+Wicket jar files are packaged as OSGi bundles and are ready to be installed in OSGi environments, such as Apache Karaf.
+
+Wicket provides a Karaf feature file to assist in installation and building Karaf distributions that include Wicket.
+
+==== Add Wicket feature
+
+[source,subs="quotes"]
+----
+karaf@root()> repo-add mvn:org.apache.wicket/wicket/_version_/xml/features
+Adding feature url mvn:org.apache.wicket/wicket/_version_/xml/features
+----
+
+==== Verify Wicket feature
+
+[source,subs="quotes"]
+----
+karaf@root()> feature:list | grep -i wicket
+wicket-core │ _version_ │ │ Uninstalled │ org.apache.wicket.wicket-_version_ │
+----
+
+==== Install Wicket feature
+
+[source,subs="quotes"]
+----
+karaf@root()> feature:install wicket-core
+----
+
+==== Troubleshooting
+
+Inspect the wicket-core feature
+
+[source,subs="quotes"]
+----
+karaf@root()> feature:info wicket-core
+Feature wicket-core _version_
+Feature has no configuration
+Feature has no configuration files
+Feature has no dependencies.
+Feature contains followed bundles:
+ ... _wicket dependency bundles_ ...
+ mvn:org.apache.wicket/wicket-util/_version_
+ mvn:org.apache.wicket/wicket-request/_version_
+ mvn:org.apache.wicket/wicket-core/_version_
+ mvn:org.apache.wicket/wicket-auth-roles/_version_
+ mvn:org.apache.wicket/wicket-devutils/_version_
+ mvn:org.apache.wicket/wicket-extensions/_version_
+ mvn:org.apache.wicket/wicket-jmx/_version_
+Feature has no conditionals.
+----
+
+Wicket feature Maven coordinates
+
+The Wicket feature may be referenced from Maven to include in Karaf assemblies.
+
+[source,xml]
+----
+<dependency>
+ <groupId>org.apache.wicket</groupId>
+ <artifactId>wicket</artifactId>
+ <version>...version...</version>
+ <type>xml</type>
+ <classifier>features</classifier>
+</dependency>
+----
+
+==== Reference links
+
+https://karaf.apache.org[Apache Karaf website]
+
+https://karaf.apache.org/manual/latest/provisioning[Apache Karaf features]
+
+
diff --git a/wicket-user-guide/src/main/asciidoc/single.adoc b/wicket-user-guide/src/main/asciidoc/single.adoc
index e7f96e844d..b575f27ad1 100644
--- a/wicket-user-guide/src/main/asciidoc/single.adoc
+++ b/wicket-user-guide/src/main/asciidoc/single.adoc
@@ -882,6 +882,15 @@ include::wicketstuff/wicketstuff_7.adoc[leveloffset=+1]
include::redirects.adoc[]
+[appendix]
+== Working with Karaf
+
+include::karaf.adoc[]
+
+=== Wicket feature
+
+include::karaf/karaf_1.adoc[leveloffset=+1]
+
[appendix]
== Contributing to this guide
diff --git a/wicket-util/pom.xml b/wicket-util/pom.xml
index db2551714b..4395682032 100755
--- a/wicket-util/pom.xml
+++ b/wicket-util/pom.xml
@@ -28,6 +28,8 @@
<name>Wicket Util</name>
<properties>
+ <osgi.export.package>org.apache.wicket.util*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
<automatic-module-name>org.apache.wicket.util</automatic-module-name>
</properties>
diff --git a/wicket-velocity/pom.xml b/wicket-velocity/pom.xml
index 2de840254e..e7d513ca05 100644
--- a/wicket-velocity/pom.xml
+++ b/wicket-velocity/pom.xml
@@ -33,6 +33,8 @@
</description>
<properties>
+ <osgi.export.package>org.apache.wicket.velocity*;-noimport:=true</osgi.export.package>
+ <osgi.import.package>!java*,!kotlin*,!sun.nio.ch,org.slf4j*;version="[1.7,3)",*</osgi.import.package>
<automatic-module-name>org.apache.wicket.velocity</automatic-module-name>
</properties>
diff --git a/wicket/pom.xml b/wicket/pom.xml
index 12b15cade0..13604cf31a 100644
--- a/wicket/pom.xml
+++ b/wicket/pom.xml
@@ -54,6 +54,49 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/classes</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/filtered-resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${project.build.outputDirectory}/features.xml</file>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/wicket/src/main/filtered-resources/features.xml b/wicket/src/main/filtered-resources/features.xml
new file mode 100644
index 0000000000..8ae5fcf4a3
--- /dev/null
+++ b/wicket/src/main/filtered-resources/features.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Wicket feature for Apache Karaf
+
+ karaf> repo-add mvn:org.apache.wicket/wicket/${project.verion}/xml/features
+ karaf> feature:install wicket-core
+
+ ref: wicket-user-guide single.html#_working_with_karaf
+-->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="${project.groupId}.${project.artifactId}-${project.version}">
+ <feature name="wicket-core" version="${project.version}" start-level="50">
+ <bundle>mvn:com.github.openjson/openjson/${openjson.version}</bundle>
+ <bundle>mvn:commons-io/commons-io/${commons-io.version}</bundle>
+ <bundle>mvn:commons-fileupload/commons-fileupload/${commons-fileupload.version}</bundle>
+ <bundle>mvn:org.apache.commons/commons-collections4/${commons-collections4.version}</bundle>
+ <bundle>mvn:org.danekja/jdk-serializable-functional/${jdk-serializable-functional.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-util/${project.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-request/${project.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-core/${project.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-auth-roles/${project.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-devutils/${project.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-extensions/${project.version}</bundle>
+ <bundle>mvn:org.apache.wicket/wicket-jmx/${project.version}</bundle>
+ <capability>wicket;provider:=apache-wicket</capability>
+ </feature>
+</features>