You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by km...@apache.org on 2016/03/13 19:00:52 UTC

knox git commit: [KNOX-692] - Enable Jetty's JSP support in Knox hosted applications.

Repository: knox
Updated Branches:
  refs/heads/master 2074cddf0 -> 687dd1da9


[KNOX-692] - Enable Jetty's JSP support in Knox hosted applications.


Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/687dd1da
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/687dd1da
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/687dd1da

Branch: refs/heads/master
Commit: 687dd1da951be2f4efa50d2d4704f0ad38ce7bd9
Parents: 2074cdd
Author: Kevin Minder <km...@apache.org>
Authored: Sun Mar 13 13:48:07 2016 -0400
Committer: Kevin Minder <km...@apache.org>
Committed: Sun Mar 13 13:48:07 2016 -0400

----------------------------------------------------------------------
 CHANGES                                             |  3 ++-
 gateway-server/pom.xml                              | 16 ++++++++++++++++
 .../org/apache/hadoop/gateway/GatewayServer.java    | 11 +++++++++++
 pom.xml                                             | 16 ++++++++++++++++
 4 files changed, 45 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/687dd1da/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index a757eaa..4e39f65 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,8 +2,9 @@
 Release Notes - Apache Knox - Version 0.9.0
 ------------------------------------------------------------------------------
 ** New Feature
-    * [KNOX-670] - Knox should be able to sost simple web apps
+    * [KNOX-670] - Knox should be able to host simple web apps
     * [KNOX-674] - Expose Jetty's SSL cipher suite configuration via gateway-site.xml
+    * [KNOX-692] - Enable Jetty's JSP support in Knox hosted applications.
 ** Improvement
     * [KNOX-677] - Upgrade to latest Groovy
     * [KNOX-675] - Upgrade Knox's Jetty dependency to latest 9.x

http://git-wip-us.apache.org/repos/asf/knox/blob/687dd1da/gateway-server/pom.xml
----------------------------------------------------------------------
diff --git a/gateway-server/pom.xml b/gateway-server/pom.xml
index 20f22ae..d33fc62 100644
--- a/gateway-server/pom.xml
+++ b/gateway-server/pom.xml
@@ -192,6 +192,22 @@
             <artifactId>joda-time</artifactId>
         </dependency>
 
+        <!--
+        These dependencies (jetty-annotations, apache-jsp, apache-jstl) are required for JSP support.
+        The need to be late in the classpath for some reason otherwise class loading issues occur.
+        -->
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>apache-jsp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>apache-jstl</artifactId>
+        </dependency>
 
         <!-- ********** ********** ********** ********** ********** ********** -->
         <!-- ********** Test Dependencies                           ********** -->

http://git-wip-us.apache.org/repos/asf/knox/blob/687dd1da/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
index 12ab201..947c53f 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayServer.java
@@ -89,6 +89,7 @@ import org.eclipse.jetty.server.handler.HandlerCollection;
 import org.eclipse.jetty.server.handler.RequestLogHandler;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.eclipse.jetty.util.thread.QueuedThreadPool;
+import org.eclipse.jetty.webapp.Configuration;
 import org.eclipse.jetty.webapp.WebAppContext;
 import org.jboss.shrinkwrap.api.exporter.ExplodedExporter;
 import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
@@ -365,6 +366,12 @@ public class GatewayServer {
     jetty.addConnector( createConnector( jetty, config ) );
     jetty.setHandler( createHandlers( config, services, contexts ) );
 
+    // Add Annotations processing into the Jetty server to support JSPs
+    Configuration.ClassList classlist = Configuration.ClassList.setServerDefault( jetty );
+    classlist.addBefore(
+        "org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
+        "org.eclipse.jetty.annotations.AnnotationConfiguration" );
+
     // Load the current topologies.
     File topologiesDir = calculateAbsoluteTopologiesDir();
     log.loadingTopologiesFromDirectory(topologiesDir.getAbsolutePath());
@@ -431,6 +438,10 @@ public class GatewayServer {
     context.setAttribute( GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE, topoName );
     context.setAttribute( "org.apache.knox.gateway.frontend.uri", getFrontendUri( context, config ) );
     context.setAttribute( GatewayConfig.GATEWAY_CONFIG_ATTRIBUTE, config );
+    // Add support for JSPs.
+    context.setAttribute(
+        "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",
+        ".*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/[^/]*taglibs.*\\.jar$" );
     context.setTempDirectory( FileUtils.getFile( warFile, "META-INF", "temp" ) );
     context.setErrorHandler( createErrorHandler() );
     return context;

http://git-wip-us.apache.org/repos/asf/knox/blob/687dd1da/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index aafd23b..1bd3f40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1080,6 +1080,22 @@
                 <version>1.3.2</version>
             </dependency>
 
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-annotations</artifactId>
+                <version>${jetty-version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>apache-jsp</artifactId>
+                <version>${jetty-version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>apache-jstl</artifactId>
+                <version>${jetty-version}</version>
+            </dependency>
+
             <!-- ********** ********** ********** ********** ********** ********** -->
             <!-- ********** Test Dependencies                           ********** -->
             <!-- ********** ********** ********** ********** ********** ********** -->