Browse Source

[livy] Relocate jetty so it does not conflict with spark's jetty

Erick Tryzelaar 10 years ago
parent
commit
6927e00434

+ 29 - 2
apps/spark/java/livy-core/pom.xml

@@ -25,14 +25,41 @@
             <artifactId>logback-access</artifactId>
         </dependency>
 
+        <!-- promoted to compile so they are included in the assembly. -->
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-http</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-continuation</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+            <scope>compile</scope>
+        </dependency>
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-server</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-util</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-plus</artifactId>
+            <scope>compile</scope>
         </dependency>
-
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-webapp</artifactId>
+            <artifactId>jetty-security</artifactId>
+            <scope>compile</scope>
         </dependency>
 
         <dependency>

+ 2 - 3
apps/spark/java/livy-core/src/main/scala/com/cloudera/hue/livy/WebServer.scala

@@ -6,8 +6,7 @@ import javax.servlet.ServletContextListener
 import ch.qos.logback.access.jetty.RequestLogImpl
 import org.eclipse.jetty.server.Server
 import org.eclipse.jetty.server.handler.{HandlerCollection, RequestLogHandler}
-import org.eclipse.jetty.servlet.DefaultServlet
-import org.eclipse.jetty.webapp.WebAppContext
+import org.eclipse.jetty.servlet.{ServletContextHandler, DefaultServlet}
 import org.scalatra.servlet.AsyncSupport
 
 import scala.concurrent.ExecutionContext
@@ -19,7 +18,7 @@ class WebServer(var host: String, var port: Int) extends Logging {
   server.setGracefulShutdown(1000)
   server.setStopAtShutdown(true)
 
-  val context = new WebAppContext()
+  val context = new ServletContextHandler()
 
   context.setContextPath("/")
 

+ 21 - 0
apps/spark/java/livy-server/pom.xml

@@ -50,6 +50,27 @@
             <version>${project.version}</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-plus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-util</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-http</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.json4s</groupId>
             <artifactId>json4s-jackson_${scala.binary.version}</artifactId>

+ 78 - 2
apps/spark/java/pom.xml

@@ -81,16 +81,48 @@
                 <version>${logback.version}</version>
             </dependency>
 
+            <!-- These will be stored in the assembly -->
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-http</artifactId>
+                <version>${jetty.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-continuation</artifactId>
+                <version>${jetty.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-servlet</artifactId>
+                <version>${jetty.version}</version>
+                <scope>provided</scope>
+            </dependency>
             <dependency>
                 <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-server</artifactId>
                 <version>${jetty.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-util</artifactId>
+                <version>${jetty.version}</version>
+                <scope>provided</scope>
             </dependency>
-
             <dependency>
                 <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-webapp</artifactId>
+                <artifactId>jetty-plus</artifactId>
                 <version>${jetty.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-security</artifactId>
+                <version>${jetty.version}</version>
+                <scope>provided</scope>
             </dependency>
 
             <dependency>
@@ -366,6 +398,50 @@
                 <artifactId>scala-maven-plugin</artifactId>
             </plugin>
 
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>2.2</version>
+                <configuration>
+                    <shadedArtifactAttached>false</shadedArtifactAttached>
+                    <artifactSet>
+                        <includes>
+                            <include>com.cloudera.hue:unused</include>
+                            <include>org.eclipse.jetty:jetty-http</include>
+                            <include>org.eclipse.jetty:jetty-io</include>
+                            <include>org.eclipse.jetty:jetty-continuation</include>
+                            <include>org.eclipse.jetty:jetty-servlet</include>
+                            <include>org.eclipse.jetty:jetty-plus</include>
+                            <include>org.eclipse.jetty:jetty-security</include>
+                            <include>org.eclipse.jetty:jetty-util</include>
+                            <include>org.eclipse.jetty:jetty-server</include>
+                            <include>com.google.guava:guava</include>
+                        </includes>
+                    </artifactSet>
+                    <relocations>
+                        <relocation>
+                            <pattern>org.eclipse.jetty</pattern>
+                            <shadedPattern>com.cloudera.hue.jetty</shadedPattern>
+                            <excludes>
+                                <exclude>com/google/common/base/Absent*</exclude>
+                                <exclude>com/google/common/base/Function*</exclude>
+                                <exclude>com/google/common/base/Optional*</exclude>
+                                <exclude>com/google/common/base/Present*</exclude>
+                                <exclude>com/google/common/base/Supplier</exclude>
+                            </excludes>
+                        </relocation>
+                    </relocations>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
         </plugins>
 
     </build>