Unbundle Jetty from gwt-dev when deploying to Maven
Change-Id: Ia9497e176e080dc5c26bb822d3144d12ec362eb6
diff --git a/maven/lib-gwt.sh b/maven/lib-gwt.sh
index 092a375..f5e6f09 100644
--- a/maven/lib-gwt.sh
+++ b/maven/lib-gwt.sh
@@ -95,6 +95,10 @@
# Remove bundled org/objectweb/asm classes from gwt-dev
echo "Removing ASM classes from gwt-dev"
zip -d $GWT_EXTRACT_DIR/gwt-dev.jar "org/objectweb/asm/*"
+ echo "Removing Jetty (et al.) classes from gwt-dev"
+ zip -d $GWT_EXTRACT_DIR/gwt-dev.jar \
+ "META-INF/services/javax.servlet.*" "META-INF/services/javax.websocket.*" "META-INF/services/org.eclipse.jetty.*" "META-INF/services/org.apache.juli.*" \
+ "org/eclipse/jetty/*" "javax/servlet/*" "javax/el/*" "org/apache/jasper/*" "org/apache/el/*" "org/apache/juli/*" "org/apache/tomcat/*"
# Silently skip Elemental if it doesn't exist
gwtLibs='dev user servlet codeserver'
diff --git a/maven/poms/gwt/gwt-dev/pom-template.xml b/maven/poms/gwt/gwt-dev/pom-template.xml
index 153a09d..4ff181c 100644
--- a/maven/poms/gwt/gwt-dev/pom-template.xml
+++ b/maven/poms/gwt/gwt-dev/pom-template.xml
@@ -26,5 +26,25 @@
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty.websocket</groupId>
+ <artifactId>websocket-client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-webapp</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlets</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>apache-jsp</artifactId>
+ </dependency>
</dependencies>
</project>
diff --git a/maven/poms/gwt/pom-template.xml b/maven/poms/gwt/pom-template.xml
index 901ee93..667b34d 100644
--- a/maven/poms/gwt/pom-template.xml
+++ b/maven/poms/gwt/pom-template.xml
@@ -20,46 +20,49 @@
<url>http://www.gwtproject.org/terms.html</url>
</license>
</licenses>
+ <properties>
+ <jetty.version>9.2.14.v20151106</jetty.version>
+ </properties>
<dependencyManagement>
<dependencies>
<dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-user</artifactId>
- <version>${project.version}</version>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-dev</artifactId>
- <version>${project.version}</version>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-codeserver</artifactId>
- <version>${project.version}</version>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-codeserver</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-servlet</artifactId>
- <version>${project.version}</version>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-elemental</artifactId>
- <version>${project.version}</version>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-elemental</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.google.web.bindery</groupId>
- <artifactId>requestfactory</artifactId>
- <version>${project.version}</version>
- <type>pom</type>
- <scope>import</scope>
+ <groupId>com.google.web.bindery</groupId>
+ <artifactId>requestfactory</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
</dependency>
<dependency>
- <groupId>com.google.jsinterop</groupId>
- <artifactId>jsinterop</artifactId>
- <version>${jsinteropVersion}</version>
- <type>pom</type>
- <scope>import</scope>
+ <groupId>com.google.jsinterop</groupId>
+ <artifactId>jsinterop</artifactId>
+ <version>${jsinteropVersion}</version>
+ <type>pom</type>
+ <scope>import</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
@@ -80,6 +83,103 @@
<type>pom</type>
<scope>import</scope>
</dependency>
+ <!-- Dependency of HtmlUnit -->
+ <dependency>
+ <groupId>org.eclipse.jetty.websocket</groupId>
+ <artifactId>websocket-client</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <!-- For DevMode / JUnitShell (transitive dependency on jetty-server for CodeServer) -->
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-webapp</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <!-- For CodeServer (GZip support) -->
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlets</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <!-- For JSPs (and annotations scanning) in DevMode -->
+ <!-- Those two dependencies are actually optional, included here mostly for backwards compatibility -->
+ <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>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.jetty.orbit</groupId>
+ <artifactId>org.eclipse.jdt.core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Some transitive dependencies of the above, to (tentatively) prevent conflicts -->
+ <dependency>
+ <groupId>org.eclipse.jetty.websocket</groupId>
+ <artifactId>websocket-api</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty.websocket</groupId>
+ <artifactId>websocket-common</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-continuation</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-jndi</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-plus</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-xml</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
</project>