This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-launchpad-base.git
The following commit(s) were added to refs/heads/master by this push:
new 9785119 SLING-8301 : Support servlet contains with servlet api 4.0
9785119 is described below
commit 978511903cf3be86716fd7fd42682a77c77bc9db
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Mon Mar 4 11:15:11 2019 +0100
SLING-8301 : Support servlet contains with servlet api 4.0
---
.../base/webapp/SlingServletDelegate.java | 23 +++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git
a/src/main/java/org/apache/sling/launchpad/base/webapp/SlingServletDelegate.java
b/src/main/java/org/apache/sling/launchpad/base/webapp/SlingServletDelegate.java
index 818c514..4fe6f4b 100644
---
a/src/main/java/org/apache/sling/launchpad/base/webapp/SlingServletDelegate.java
+++
b/src/main/java/org/apache/sling/launchpad/base/webapp/SlingServletDelegate.java
@@ -320,6 +320,20 @@ public class SlingServletDelegate extends GenericServlet
implements Launcher {
// ---------- Configuration Loading
----------------------------------------
+ private String calculateServletPackages(final String servletVersion, final
int majorVersion) {
+ final String servlet2Packages =
"javax.servlet;javax.servlet.http;javax.servlet.resources";
+ final String servlet3Packages = servlet2Packages +
";javax.servlet.annotation;javax.servlet.descriptor";
+ if (majorVersion < 3) {
+ return servlet2Packages.concat(";version=").concat(servletVersion);
+ } else if (majorVersion < 4) {
+ return
servlet2Packages.concat(";version=2.6,").concat(servlet3Packages).concat(";version=")
+ .concat(servletVersion);
+ }
+ return
servlet2Packages.concat(";version=2.6,").concat(servlet3Packages).concat(";version=3.1,")
+
.concat(servlet3Packages).concat(";version=").concat(servletVersion);
+
+ }
+
/**
* Loads the configuration properties in the configuration property file
* associated with the framework installation; these properties are
@@ -343,17 +357,12 @@ public class SlingServletDelegate extends GenericServlet
implements Launcher {
// Try to load it from one of these places.
Map<String, String> props = new HashMap<String, String>();
- // The following property must start with a comma!
final String servletVersion = getServletContext().getMajorVersion() +
"." +
getServletContext().getMinorVersion();
- String packages =
",javax.servlet;javax.servlet.http;javax.servlet.resources";
- if ( getServletContext().getMajorVersion() >= 3 ) {
- // servlet 3.x adds new packages and we should export as 2.6 and
3.x
- packages = packages + "; version=2.6" + packages +
";javax.servlet.annotation;javax.servlet.descriptor";
- }
+ // This property must start with a comma!
props.put(
Sling.PROP_SYSTEM_PACKAGES,
- packages + "; version=" + servletVersion);
+ ",".concat(calculateServletPackages(servletVersion,
getServletContext().getMajorVersion())));
// extra capabilities
final String servletCaps =
"osgi.contract;osgi.contract=JavaServlet;version:Version=\" " + servletVersion
+ "\";" +
"uses:=\"javax.servlet,javax.servlet.http,javax.servlet.descriptor,javax.servlet.annotation\"";