zeppelin-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zjf...@apache.org
Subject zeppelin git commit: ZEPPELIN-3689. Shade all dependencies of zeppelin-interpreter
Date Mon, 10 Sep 2018 07:35:34 GMT
Repository: zeppelin
Updated Branches:
  refs/heads/master 957afddc8 -> 39041bf3d


ZEPPELIN-3689. Shade all dependencies of zeppelin-interpreter

### What is this PR for?
This PR introduce new module zeppelin-interpreter-api which will shade all dependencies of zeppelin-interpreter, this is just to avoid the conflict with the custom interpreter implementation which may use jars that conflicts with dependency of zeppelin-interpreter.

### What type of PR is it?
[ Improvement]

### Todos
* [ ] - Task

### What is the Jira issue?
* https://issues.apache.org/jira/browse/ZEPPELIN-3689

### How should this be tested?
* CI pass

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: Jeff Zhang <zjffdu@apache.org>

Closes #3170 from zjffdu/ZEPPELIN-3689 and squashes the following commits:

f3f210aee [Jeff Zhang] ZEPPELIN-3689. Shade all dependencies of zeppelin-interpreter


Project: http://git-wip-us.apache.org/repos/asf/zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/zeppelin/commit/39041bf3
Tree: http://git-wip-us.apache.org/repos/asf/zeppelin/tree/39041bf3
Diff: http://git-wip-us.apache.org/repos/asf/zeppelin/diff/39041bf3

Branch: refs/heads/master
Commit: 39041bf3d7512109e54541f583974050a1f7b901
Parents: 957afdd
Author: Jeff Zhang <zjffdu@apache.org>
Authored: Mon Sep 3 16:12:52 2018 +0800
Committer: Jeff Zhang <zjffdu@apache.org>
Committed: Mon Sep 10 15:35:18 2018 +0800

----------------------------------------------------------------------
 .travis.yml                      |   4 +-
 alluxio/pom.xml                  |   5 +-
 angular/pom.xml                  |   6 +-
 beam/pom.xml                     |   6 +-
 bigquery/pom.xml                 |   7 +-
 cassandra/pom.xml                |   8 +-
 elasticsearch/pom.xml            |  18 +++-
 file/pom.xml                     |  15 +++-
 flink/pom.xml                    |   6 +-
 geode/pom.xml                    |   6 +-
 groovy/pom.xml                   |   6 +-
 hbase/pom.xml                    |   6 +-
 ignite/pom.xml                   |   6 +-
 interpreter-parent/pom.xml       | 110 +++++++++++------------
 java/pom.xml                     |   6 +-
 jdbc/pom.xml                     |   6 +-
 kylin/pom.xml                    |  30 ++++++-
 lens/pom.xml                     |   5 +-
 livy/pom.xml                     |  31 ++++---
 markdown/pom.xml                 |  12 ++-
 neo4j/pom.xml                    |  74 ++++++---------
 pig/pom.xml                      |  12 +--
 pom.xml                          |   1 +
 python/pom.xml                   |  45 ++++++++--
 sap/pom.xml                      |  16 +++-
 scalding/pom.xml                 |   7 +-
 scio/pom.xml                     |  38 +-------
 shell/pom.xml                    |   5 +-
 spark/interpreter/pom.xml        |  20 ++++-
 spark/spark-dependencies/pom.xml |  37 +-------
 spark/spark-scala-parent/pom.xml |   2 +-
 spark/spark-shims/pom.xml        |   2 +-
 spark/spark1-shims/pom.xml       |   2 +-
 spark/spark2-shims/pom.xml       |   2 +-
 zeppelin-display/pom.xml         |   7 ++
 zeppelin-interpreter-api/pom.xml | 164 ++++++++++++++++++++++++++++++++++
 36 files changed, 477 insertions(+), 256 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 6f7f6b1..4f7c88c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -41,7 +41,7 @@ addons:
 env:
   global:
     # Interpreters does not required by zeppelin-server integration tests
-    - INTERPRETERS='!beam,!hbase,!pig,!jdbc,!file,!ignite,!kylin,!lens,!cassandra,!elasticsearch,!bigquery,!alluxio,!scio,!livy,!groovy,!sap,!java,!geode'
+    - INTERPRETERS='!beam,!hbase,!pig,!jdbc,!file,!ignite,!kylin,!lens,!cassandra,!elasticsearch,!bigquery,!alluxio,!scio,!livy,!groovy,!sap,!java,!geode,!neo4j'
 
 matrix:
   include:
@@ -82,7 +82,7 @@ matrix:
     # Test interpreter modules
     - jdk: "oraclejdk8"
       dist: trusty
-      env: BUILD_PLUGINS="false" PYTHON="3" SPARKR="true" SCALA_VER="2.10" PROFILE="-Pscala-2.10" BUILD_FLAG="package -DskipTests -DskipRat" TEST_FLAG="test -DskipRat" MODULES="-pl $(echo .,zeppelin-interpreter,${INTERPRETERS} | sed 's/!//g')" TEST_PROJECTS=""
+      env: BUILD_PLUGINS="false" PYTHON="3" SPARKR="true" SCALA_VER="2.10" PROFILE="-Pscala-2.10" BUILD_FLAG="package -DskipTests -DskipRat" TEST_FLAG="test -DskipRat" MODULES="-pl $(echo .,zeppelin-interpreter,zeppelin-interpreter-api,${INTERPRETERS} | sed 's/!//g')" TEST_PROJECTS=""
 
     # Run ZeppelinSparkClusterTest & SparkIntegrationTest in one build would exceed the time limitation of travis, so running them separately
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/alluxio/pom.xml
----------------------------------------------------------------------
diff --git a/alluxio/pom.xml b/alluxio/pom.xml
index af23c87..f0343a7 100644
--- a/alluxio/pom.xml
+++ b/alluxio/pom.xml
@@ -40,7 +40,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.zeppelin</groupId>
-            <artifactId>zeppelin-interpreter</artifactId>
+            <artifactId>zeppelin-interpreter-api</artifactId>
             <version>${project.version}</version>
             <scope>provided</scope>
         </dependency>
@@ -138,6 +138,9 @@
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
             <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
                 <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/angular/pom.xml
----------------------------------------------------------------------
diff --git a/angular/pom.xml b/angular/pom.xml
index 47ffbf3..8625a6f 100644
--- a/angular/pom.xml
+++ b/angular/pom.xml
@@ -39,9 +39,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency> 
 
     <dependency>
@@ -73,6 +72,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/beam/pom.xml
----------------------------------------------------------------------
diff --git a/beam/pom.xml b/beam/pom.xml
index 1ad5b87..2cf6971 100644
--- a/beam/pom.xml
+++ b/beam/pom.xml
@@ -229,9 +229,8 @@
   
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -260,6 +259,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/bigquery/pom.xml
----------------------------------------------------------------------
diff --git a/bigquery/pom.xml b/bigquery/pom.xml
index 66fe3f2..5be2712 100644
--- a/bigquery/pom.xml
+++ b/bigquery/pom.xml
@@ -75,9 +75,8 @@
 
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -108,7 +107,9 @@
       <plugin>
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
-
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/cassandra/pom.xml b/cassandra/pom.xml
index c5b08f7..2f2fe78 100644
--- a/cassandra/pom.xml
+++ b/cassandra/pom.xml
@@ -53,11 +53,12 @@
     </properties>
 
     <dependencies>
+
         <dependency>
-            <groupId>${project.groupId}</groupId>
+            <groupId>org.apache.zeppelin</groupId>
             <artifactId>zeppelin-interpreter</artifactId>
             <version>${project.version}</version>
-            <scope>provided</scope>
+            <scope>test</scope>
         </dependency>
 
         <dependency>
@@ -250,6 +251,9 @@
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
             <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
                 <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/elasticsearch/pom.xml b/elasticsearch/pom.xml
index 4e4021f..172dab5 100644
--- a/elasticsearch/pom.xml
+++ b/elasticsearch/pom.xml
@@ -43,9 +43,8 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -53,7 +52,17 @@
       <artifactId>elasticsearch</artifactId>
       <version>${elasticsearch.version}</version>
     </dependency>
-    
+
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpasyncclient</artifactId>
@@ -102,6 +111,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/file/pom.xml
----------------------------------------------------------------------
diff --git a/file/pom.xml b/file/pom.xml
index ed0ef3f..c53afde 100644
--- a/file/pom.xml
+++ b/file/pom.xml
@@ -46,12 +46,22 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
       <scope>provided</scope>
     </dependency>
 
     <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>javax.ws.rs</groupId>
       <artifactId>javax.ws.rs-api</artifactId>
       <version>${ws.rsapi.version}</version>
@@ -92,6 +102,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/flink/pom.xml
----------------------------------------------------------------------
diff --git a/flink/pom.xml b/flink/pom.xml
index 217813b..b75f63a 100644
--- a/flink/pom.xml
+++ b/flink/pom.xml
@@ -63,9 +63,8 @@
 
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -298,6 +297,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/geode/pom.xml
----------------------------------------------------------------------
diff --git a/geode/pom.xml b/geode/pom.xml
index 5e354ae..83be399 100644
--- a/geode/pom.xml
+++ b/geode/pom.xml
@@ -43,9 +43,8 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -96,6 +95,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/groovy/pom.xml
----------------------------------------------------------------------
diff --git a/groovy/pom.xml b/groovy/pom.xml
index 9b95fc3..ebcd8a2 100644
--- a/groovy/pom.xml
+++ b/groovy/pom.xml
@@ -40,9 +40,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
     
     <dependency>
@@ -81,6 +80,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/hbase/pom.xml
----------------------------------------------------------------------
diff --git a/hbase/pom.xml b/hbase/pom.xml
index f189c07..bf0cb5e 100644
--- a/hbase/pom.xml
+++ b/hbase/pom.xml
@@ -49,9 +49,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -125,6 +124,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/ignite/pom.xml
----------------------------------------------------------------------
diff --git a/ignite/pom.xml b/ignite/pom.xml
index 7d7b3db..3aeae0b 100644
--- a/ignite/pom.xml
+++ b/ignite/pom.xml
@@ -39,9 +39,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency> 
 
     <dependency>
@@ -115,6 +114,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/interpreter-parent/pom.xml
----------------------------------------------------------------------
diff --git a/interpreter-parent/pom.xml b/interpreter-parent/pom.xml
index 25af441..cf48517 100644
--- a/interpreter-parent/pom.xml
+++ b/interpreter-parent/pom.xml
@@ -32,34 +32,21 @@
   <version>0.9.0-SNAPSHOT</version>
   <name>Zeppelin: Interpreter Parent</name>
 
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>${project.groupId}</groupId>
-        <artifactId>zeppelin-interpreter</artifactId>
-        <version>${project.version}</version>
-      </dependency>
 
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-        <scope>test</scope>
-      </dependency>
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
 
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>zeppelin-interpreter</artifactId>
+      <version>${project.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 
   <build>
     <pluginManagement>
@@ -74,43 +61,36 @@
           </executions>
         </plugin>
 
+        <!-- generate interpreter shade jar and put it under folder interpreter/${interpreter.name}-->
         <plugin>
-          <artifactId>maven-dependency-plugin</artifactId>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-shade-plugin</artifactId>
+          <version>${plugin.shade.version}</version>
+          <configuration>
+            <filters>
+              <filter>
+                <artifact>*:*</artifact>
+                <excludes>
+                  <exclude>META-INF/*.SF</exclude>
+                  <exclude>META-INF/*.DSA</exclude>
+                  <exclude>META-INF/*.RSA</exclude>
+                </excludes>
+              </filter>
+            </filters>
+            <transformers>
+              <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+              <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+                <resource>reference.conf</resource>
+              </transformer>
+            </transformers>
+            <outputFile>${project.basedir}/../interpreter/${interpreter.name}/${project.artifactId}-${project.version}.jar</outputFile>
+          </configuration>
           <executions>
             <execution>
-              <id>copy-dependencies</id>
               <phase>package</phase>
               <goals>
-                <goal>copy-dependencies</goal>
+                <goal>shade</goal>
               </goals>
-              <configuration>
-                <outputDirectory>${project.build.directory}/../../interpreter/${interpreter.name}</outputDirectory>
-                <overWriteReleases>false</overWriteReleases>
-                <overWriteSnapshots>false</overWriteSnapshots>
-                <overWriteIfNewer>true</overWriteIfNewer>
-                <includeScope>runtime</includeScope>
-              </configuration>
-            </execution>
-            <execution>
-              <id>copy-artifact</id>
-              <phase>package</phase>
-              <goals>
-                <goal>copy</goal>
-              </goals>
-              <configuration>
-                <outputDirectory>${project.build.directory}/../../interpreter/${interpreter.name}</outputDirectory>
-                <overWriteReleases>false</overWriteReleases>
-                <overWriteSnapshots>false</overWriteSnapshots>
-                <overWriteIfNewer>true</overWriteIfNewer>
-                <artifactItems>
-                  <artifactItem>
-                    <groupId>${project.groupId}</groupId>
-                    <artifactId>${project.artifactId}</artifactId>
-                    <version>${project.version}</version>
-                    <type>${project.packaging}</type>
-                  </artifactItem>
-                </artifactItems>
-              </configuration>
             </execution>
           </executions>
         </plugin>
@@ -132,6 +112,22 @@
         </plugin>
       </plugins>
     </pluginManagement>
+
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>${plugin.clean.version}</version>
+        <configuration>
+          <filesets>
+            <fileset>
+              <directory>${project.basedir}/../interpreter/${interpreter.name}</directory>
+              <followSymlinks>false</followSymlinks>
+            </fileset>
+          </filesets>
+        </configuration>
+      </plugin>
+    </plugins>
   </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/java/pom.xml
----------------------------------------------------------------------
diff --git a/java/pom.xml b/java/pom.xml
index 9e9bbc6..2412468 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -47,9 +47,8 @@
 
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -77,6 +76,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index ad35a46..4bf68c6 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -243,9 +243,8 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 	
 	<dependency>
@@ -363,6 +362,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/kylin/pom.xml
----------------------------------------------------------------------
diff --git a/kylin/pom.xml b/kylin/pom.xml
index b70bfb2..ef1adc0 100644
--- a/kylin/pom.xml
+++ b/kylin/pom.xml
@@ -24,7 +24,7 @@
         <artifactId>interpreter-parent</artifactId>
         <groupId>org.apache.zeppelin</groupId>
         <version>0.9.0-SNAPSHOT</version>
-        <relativePath>../interpreter-parent</relativePath>
+        <relativePath>../interpreter-parent/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -39,13 +39,17 @@
     </properties>
 
     <dependencies>
-
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>zeppelin-interpreter</artifactId>
+            <artifactId>zeppelin-interpreter-api</artifactId>
             <version>${project.version}</version>
-            <scope>provided</scope>
         </dependency>
+
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
@@ -55,6 +59,21 @@
             <artifactId>commons-codec</artifactId>
         </dependency>
         <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
@@ -74,6 +93,9 @@
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
             <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
                 <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/lens/pom.xml
----------------------------------------------------------------------
diff --git a/lens/pom.xml b/lens/pom.xml
index 5eb81c2..6f1c580 100644
--- a/lens/pom.xml
+++ b/lens/pom.xml
@@ -47,7 +47,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
       <scope>provided</scope>
     </dependency>
@@ -172,6 +172,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/livy/pom.xml
----------------------------------------------------------------------
diff --git a/livy/pom.xml b/livy/pom.xml
index 6c911e1..0c421c4 100644
--- a/livy/pom.xml
+++ b/livy/pom.xml
@@ -53,23 +53,15 @@
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>zeppelin-interpreter-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>zeppelin-interpreter</artifactId>
             <version>${project.version}</version>
-            <scope>provided</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.scala-lang</groupId>
-                    <artifactId>scala-compiler</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.scala-lang</groupId>
-                    <artifactId>scala-library</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.scala-lang</groupId>
-                    <artifactId>scala-reflect</artifactId>
-                </exclusion>
-            </exclusions>
+            <scope>test</scope>
         </dependency>
 
         <dependency>
@@ -176,6 +168,11 @@
         </dependency>
 
         <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
@@ -347,7 +344,9 @@
             <plugin>
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
-
+            <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+            </plugin>
             <plugin>
                 <artifactId>maven-failsafe-plugin</artifactId>
                 <version>${plugin.failsafe.version}</version>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/markdown/pom.xml
----------------------------------------------------------------------
diff --git a/markdown/pom.xml b/markdown/pom.xml
index 79cabc1..82bc5b2 100644
--- a/markdown/pom.xml
+++ b/markdown/pom.xml
@@ -42,9 +42,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency> 
 
     <dependency>
@@ -76,6 +75,12 @@
     </dependency>
 
     <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.4</version>
+    </dependency>
+
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
@@ -94,6 +99,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/neo4j/pom.xml
----------------------------------------------------------------------
diff --git a/neo4j/pom.xml b/neo4j/pom.xml
index 906939c..cdd673b 100644
--- a/neo4j/pom.xml
+++ b/neo4j/pom.xml
@@ -20,10 +20,10 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <artifactId>zeppelin</artifactId>
+    <artifactId>interpreter-parent</artifactId>
     <groupId>org.apache.zeppelin</groupId>
     <version>0.9.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
+    <relativePath>../interpreter-parent</relativePath>
   </parent>
 
   <groupId>org.apache.zeppelin</groupId>
@@ -37,14 +37,14 @@
   	<test.neo4j.kernel.version>3.2.3</test.neo4j.kernel.version>
   	<neo4j.version>3.2.3</neo4j.version>
   	<jackson.version>2.8.9</jackson.version>
+    <interpreter.name>neo4j</interpreter.name>
   </properties>
 
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -70,6 +70,16 @@
     </dependency>
 
     <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
@@ -87,56 +97,22 @@
     <plugins>
       <plugin>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>1.3.1</version>            
-        <executions> 
-          <execution> 
-            <id>enforce</id> 
-            <phase>none</phase> 
+        <version>1.3.1</version>
+        <executions>
+          <execution>
+            <id>enforce</id>
+            <phase>none</phase>
           </execution>
         </executions>
       </plugin>
-
       <plugin>
         <artifactId>maven-dependency-plugin</artifactId>
-        <version>2.8</version>
-        <executions>
-          <execution>
-            <id>copy-dependencies</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy-dependencies</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/../../interpreter/neo4j</outputDirectory>
-              <overWriteReleases>false</overWriteReleases>
-              <overWriteSnapshots>false</overWriteSnapshots>
-              <overWriteIfNewer>true</overWriteIfNewer>
-              <includeScope>runtime</includeScope>
-            </configuration>
-          </execution>
-          <execution>
-            <id>copy-artifact</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/../../interpreter/neo4j</outputDirectory>
-              <overWriteReleases>false</overWriteReleases>
-              <overWriteSnapshots>false</overWriteSnapshots>
-              <overWriteIfNewer>true</overWriteIfNewer>
-              <includeScope>runtime</includeScope>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>${project.artifactId}</artifactId>
-                  <version>${project.version}</version>
-                  <type>${project.packaging}</type>
-                </artifactItem>
-              </artifactItems>              
-            </configuration>
-          </execution>
-        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/pig/pom.xml
----------------------------------------------------------------------
diff --git a/pig/pom.xml b/pig/pom.xml
index 571d198..17f0521 100644
--- a/pig/pom.xml
+++ b/pig/pom.xml
@@ -48,15 +48,8 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.zeppelin</groupId>
-            <artifactId>zeppelin-interpreter</artifactId>
+            <artifactId>zeppelin-interpreter-api</artifactId>
             <version>${project.version}</version>
-            <scope>provided</scope>
-            <exclusions>
-              <exclusion>
-                <groupId>jline</groupId>
-                <artifactId>jline</artifactId>
-              </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -185,6 +178,9 @@
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
             <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+            </plugin>
+            <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <forkMode>always</forkMode>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 60af8bc..5347195 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,7 @@
   <modules>
     <module>interpreter-parent</module>
     <module>zeppelin-interpreter</module>
+    <module>zeppelin-interpreter-api</module>
     <module>zeppelin-zengine</module>
     <module>zeppelin-display</module>
     <module>groovy</module>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/python/pom.xml
----------------------------------------------------------------------
diff --git a/python/pom.xml b/python/pom.xml
index d11c165..bb74f06 100644
--- a/python/pom.xml
+++ b/python/pom.xml
@@ -23,7 +23,7 @@
     <artifactId>interpreter-parent</artifactId>
     <groupId>org.apache.zeppelin</groupId>
     <version>0.9.0-SNAPSHOT</version>
-    <relativePath>../interpreter-parent</relativePath>
+    <relativePath>../interpreter-parent/pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.zeppelin</groupId>
@@ -36,6 +36,7 @@
     <interpreter.name>python</interpreter.name>
     <python.py4j.version>0.10.7</python.py4j.version>
     <grpc.version>1.4.0</grpc.version>
+    <interpreter.jar.name>python-interpreter-with-py4j</interpreter.jar.name>
   </properties>
 
   <dependencies>
@@ -43,7 +44,6 @@
       <groupId>${project.groupId}</groupId>
       <artifactId>zeppelin-interpreter</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -159,21 +159,48 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <excludes>
-            <exclude>${python.test.exclude}</exclude>
-          </excludes>
-        </configuration>
       </plugin>
       
       <plugin>
         <artifactId>maven-enforcer-plugin</artifactId>
       </plugin>
+
       <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
+        <artifactId>maven-resources-plugin</artifactId>
       </plugin>
+
+      <!--
+      shade for python interpreter is different from other interpreter, it depends on zeppelin-interpreter instead of
+      zeppelin-interpreter-api. Because spark interpreter depends on python interpreter and spark's py4j conflict with python interpreter's py4j.
+      python interpreter would generate 2 versions of jars, one is shaded jar which is used for running python interpreter, another is normal jar
+      which is used by spark interpreter as dependency.
+      -->
       <plugin>
-        <artifactId>maven-resources-plugin</artifactId>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${plugin.shade.version}</version>
+        <configuration>
+          <filters>
+            <filter>
+              <artifact>*:*</artifact>
+            </filter>
+          </filters>
+          <transformers>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+              <resource>reference.conf</resource>
+            </transformer>
+          </transformers>
+          <outputFile>${project.build.directory}/../../interpreter/python/${interpreter.jar.name}-${project.version}.jar</outputFile>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
       </plugin>
 
       <plugin>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/sap/pom.xml
----------------------------------------------------------------------
diff --git a/sap/pom.xml b/sap/pom.xml
index f0bf317..803562c 100644
--- a/sap/pom.xml
+++ b/sap/pom.xml
@@ -42,7 +42,7 @@
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>zeppelin-interpreter</artifactId>
+            <artifactId>zeppelin-interpreter-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 
@@ -52,6 +52,17 @@
         </dependency>
 
         <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.1</version>
+        </dependency>
+
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
         </dependency>
@@ -80,6 +91,9 @@
             <plugin>
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
+            <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+            </plugin>
         </plugins>
     </build>
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/scalding/pom.xml
----------------------------------------------------------------------
diff --git a/scalding/pom.xml b/scalding/pom.xml
index 2a9e456..5ec194f 100644
--- a/scalding/pom.xml
+++ b/scalding/pom.xml
@@ -59,9 +59,8 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
-      <scope>provided</scope>
     </dependency>
 
     <dependency>
@@ -155,7 +154,9 @@
       <plugin>
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
-
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
       <!-- Plugin to compile Scala code -->
       <plugin>
         <groupId>org.scala-tools</groupId>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/scio/pom.xml
----------------------------------------------------------------------
diff --git a/scio/pom.xml b/scio/pom.xml
index 8571382..733cb28 100644
--- a/scio/pom.xml
+++ b/scio/pom.xml
@@ -55,7 +55,7 @@
 
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
     </dependency>
 
@@ -135,7 +135,9 @@
       <plugin>
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
-
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -147,38 +149,6 @@
       </plugin>
 
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>${plugin.shade.version}</version>
-        <configuration>
-          <filters>
-            <filter>
-              <artifact>*:*</artifact>
-              <excludes>
-                <exclude>META-INF/*.SF</exclude>
-                <exclude>META-INF/*.DSA</exclude>
-                <exclude>META-INF/*.RSA</exclude>
-              </excludes>
-            </filter>
-          </filters>
-          <transformers>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
-            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
-              <resource>reference.conf</resource>
-            </transformer>
-          </transformers>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
         <groupId>org.scala-tools</groupId>
         <artifactId>maven-scala-plugin</artifactId>
         <version>${plugin.scala.version}</version>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/shell/pom.xml
----------------------------------------------------------------------
diff --git a/shell/pom.xml b/shell/pom.xml
index 9f51dcc..c4f8ce2 100644
--- a/shell/pom.xml
+++ b/shell/pom.xml
@@ -44,7 +44,7 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
     </dependency>
 
@@ -89,6 +89,9 @@
         <artifactId>maven-resources-plugin</artifactId>
       </plugin>
       <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+      </plugin>
+      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <configuration>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/spark/interpreter/pom.xml
----------------------------------------------------------------------
diff --git a/spark/interpreter/pom.xml b/spark/interpreter/pom.xml
index 71f4850..885c3f3 100644
--- a/spark/interpreter/pom.xml
+++ b/spark/interpreter/pom.xml
@@ -77,8 +77,15 @@
 
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.zeppelin</groupId>
       <artifactId>zeppelin-interpreter</artifactId>
       <version>${project.version}</version>
+      <scope>test</scope>
     </dependency>
 
     <dependency>
@@ -471,7 +478,6 @@
         <artifactId>maven-shade-plugin</artifactId>
         <version>${plugin.shade.version}</version>
         <configuration>
-          <!--<createDependencyReducedPom>false</createDependencyReducedPom>-->
           <filters>
             <filter>
               <artifact>*:*</artifact>
@@ -483,6 +489,17 @@
               </excludes>
             </filter>
           </filters>
+
+          <artifactSet>
+            <excludes>
+              <exclude>org.scala-lang:scala-library</exclude>
+              <exclude>org.scala-lang:scala-compiler</exclude>
+              <exclude>org.scala-lang:scala-reflect</exclude>
+              <exclude>commons-lang:commons-lang</exclude>
+              <exclude>org.apache.commons:commons-compress</exclude>
+            </excludes>
+          </artifactSet>
+
           <transformers>
             <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
             <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
@@ -503,6 +520,7 @@
               <shadedPattern>org.apache.zeppelin.com.facebook.fb303</shadedPattern>
             </relocation>
           </relocations>
+          <outputFile>${project.basedir}/../../interpreter/${interpreter.name}/${project.artifactId}-${project.version}.jar</outputFile>
         </configuration>
         <executions>
           <execution>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/spark/spark-dependencies/pom.xml
----------------------------------------------------------------------
diff --git a/spark/spark-dependencies/pom.xml b/spark/spark-dependencies/pom.xml
index 84c55b2..6181393 100644
--- a/spark/spark-dependencies/pom.xml
+++ b/spark/spark-dependencies/pom.xml
@@ -359,6 +359,7 @@
               <resource>reference.conf</resource>
             </transformer>
           </transformers>
+          <outputFile>${project.basedir}/../../interpreter/spark/dep/${project.artifactId}-${project.version}.jar</outputFile>
         </configuration>
         <executions>
           <execution>
@@ -385,42 +386,6 @@
               <skip>true</skip>
             </configuration>
           </execution>
-
-          <execution>
-            <id>copy-spark-interpreter-dependencies</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy-dependencies</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/../../../interpreter/spark/dep</outputDirectory>
-              <overWriteReleases>false</overWriteReleases>
-              <overWriteSnapshots>false</overWriteSnapshots>
-              <overWriteIfNewer>true</overWriteIfNewer>
-              <includeGroupIds>org.datanucleus</includeGroupIds>
-            </configuration>
-          </execution>
-          <execution>
-            <id>copy-artifact</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/../../../interpreter/spark/dep</outputDirectory>
-              <overWriteReleases>false</overWriteReleases>
-              <overWriteSnapshots>false</overWriteSnapshots>
-              <overWriteIfNewer>true</overWriteIfNewer>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>${project.artifactId}</artifactId>
-                  <version>${project.version}</version>
-                  <type>${project.packaging}</type>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
         </executions>
       </plugin>
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/spark/spark-scala-parent/pom.xml
----------------------------------------------------------------------
diff --git a/spark/spark-scala-parent/pom.xml b/spark/spark-scala-parent/pom.xml
index 91359c6..8aeb403 100644
--- a/spark/spark-scala-parent/pom.xml
+++ b/spark/spark-scala-parent/pom.xml
@@ -38,7 +38,7 @@
 
         <dependency>
             <groupId>org.apache.zeppelin</groupId>
-            <artifactId>zeppelin-interpreter</artifactId>
+            <artifactId>zeppelin-interpreter-api</artifactId>
             <version>${project.version}</version>
         </dependency>
 

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/spark/spark-shims/pom.xml
----------------------------------------------------------------------
diff --git a/spark/spark-shims/pom.xml b/spark/spark-shims/pom.xml
index 070b941..1397ebe 100644
--- a/spark/spark-shims/pom.xml
+++ b/spark/spark-shims/pom.xml
@@ -37,7 +37,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
       <scope>provided</scope>
     </dependency>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/spark/spark1-shims/pom.xml
----------------------------------------------------------------------
diff --git a/spark/spark1-shims/pom.xml b/spark/spark1-shims/pom.xml
index 559b8d8..c28acef 100644
--- a/spark/spark1-shims/pom.xml
+++ b/spark/spark1-shims/pom.xml
@@ -63,7 +63,7 @@
 
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
       <scope>provided</scope>
     </dependency>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/spark/spark2-shims/pom.xml
----------------------------------------------------------------------
diff --git a/spark/spark2-shims/pom.xml b/spark/spark2-shims/pom.xml
index 31249a8..00abc75 100644
--- a/spark/spark2-shims/pom.xml
+++ b/spark/spark2-shims/pom.xml
@@ -62,7 +62,7 @@
 
     <dependency>
       <groupId>org.apache.zeppelin</groupId>
-      <artifactId>zeppelin-interpreter</artifactId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
       <version>${project.version}</version>
       <scope>provided</scope>
     </dependency>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/zeppelin-display/pom.xml
----------------------------------------------------------------------
diff --git a/zeppelin-display/pom.xml b/zeppelin-display/pom.xml
index 79a08a6..b72cec5 100644
--- a/zeppelin-display/pom.xml
+++ b/zeppelin-display/pom.xml
@@ -67,8 +67,15 @@
   <dependencies>
     <dependency>
       <groupId>${project.groupId}</groupId>
+      <artifactId>zeppelin-interpreter-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
       <artifactId>zeppelin-interpreter</artifactId>
       <version>${project.version}</version>
+      <scope>test</scope>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/39041bf3/zeppelin-interpreter-api/pom.xml
----------------------------------------------------------------------
diff --git a/zeppelin-interpreter-api/pom.xml b/zeppelin-interpreter-api/pom.xml
new file mode 100644
index 0000000..70170be
--- /dev/null
+++ b/zeppelin-interpreter-api/pom.xml
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <artifactId>zeppelin</artifactId>
+    <groupId>org.apache.zeppelin</groupId>
+    <version>0.9.0-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <groupId>org.apache.zeppelin</groupId>
+  <artifactId>zeppelin-interpreter-api</artifactId>
+  <packaging>jar</packaging>
+  <version>0.9.0-SNAPSHOT</version>
+  <name>Zeppelin: Interpreter API</name>
+  <description>Zeppelin Interpreter API</description>
+
+  <properties>
+    <!--plugin versions-->
+    <plugin.shade.version>2.3</plugin.shade.version>
+    <shaded.dependency.prefix>org.apache.zeppelin.shaded</shaded.dependency.prefix>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.zeppelin</groupId>
+      <artifactId>zeppelin-interpreter</artifactId>
+      <version>${project.version}</version>
+      <optional>true</optional>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${plugin.shade.version}</version>
+        <configuration>
+          <artifactSet>
+            <excludes>
+              <!-- Leave slf4j unshaded so downstream users can configure logging. -->
+              <exclude>org.slf4j:slf4j-api</exclude>
+              <exclude>org.slf4j:slf4j-log4j12</exclude>
+              <!-- Leave commons-logging unshaded so downstream users can configure logging. -->
+              <exclude>commons-logging:commons-logging</exclude>
+              <!-- Leave log4j unshaded so downstream users can configure logging. -->
+              <exclude>log4j:log4j</exclude>
+            </excludes>
+          </artifactSet>
+          <filters>
+            <filter>
+              <artifact>*:*</artifact>
+              <excludes>
+                <exclude>META-INF/*.SF</exclude>
+                <exclude>META-INF/*.DSA</exclude>
+                <exclude>META-INF/*.RSA</exclude>
+              </excludes>
+            </filter>
+          </filters>
+          <transformers>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+              <resource>reference.conf</resource>
+            </transformer>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
+              <resource>NOTICE.txt</resource>
+            </transformer>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+              <resource>META-INF/LICENSE.txt</resource>
+              <file>${basedir}/../../LICENSE.txt</file>
+            </transformer>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+              <resource>META-INF/NOTICE.txt</resource>
+              <file>${basedir}/../../NOTICE.txt</file>
+            </transformer>
+          </transformers>
+          <relocations>
+            <relocation>
+              <pattern>org</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.org</shadedPattern>
+              <excludes>
+                <exclude>org/apache/zeppelin/*</exclude>
+                <exclude>org/apache/zeppelin/**/*</exclude>
+                <exclude>org/apache/thrift/*</exclude>
+                <exclude>org/apache/thrift/**/*</exclude>
+                <exclude>org/slf4j/*</exclude>
+                <exclude>org/slf4j/**/*</exclude>
+                <exclude>org/apache/commons/logging/*</exclude>
+                <exclude>org/apache/commons/logging/**/*</exclude>
+                <exclude>org/apache/log4j/*</exclude>
+                <exclude>org/apache/log4j/**/*</exclude>
+                <exclude>org/sonatype/*</exclude>
+                <exclude>org/sonatype/**/*</exclude>
+                <exclude>**/pom.xml</exclude>
+
+                <!-- Not the org/ packages that are a part of the jdk -->
+                <exclude>org/ietf/jgss/*</exclude>
+                <exclude>org/omg/**/*</exclude>
+                <exclude>org/w3c/dom/*</exclude>
+                <exclude>org/w3c/dom/**/*</exclude>
+                <exclude>org/xml/sax/*</exclude>
+                <exclude>org/xml/sax/**/*</exclude>
+              </excludes>
+            </relocation>
+            <relocation>
+              <pattern>com</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.com</shadedPattern>
+              <excludes>
+                <exclude>**/pom.xml</exclude>
+                <!-- Not the com/ packages that are a part of particular jdk implementations -->
+                <exclude>com/sun/tools/*</exclude>
+                <exclude>com/sun/javadoc/*</exclude>
+                <exclude>com/sun/security/*</exclude>
+                <exclude>com/sun/jndi/*</exclude>
+                <exclude>com/sun/management/*</exclude>
+                <exclude>com/sun/tools/**/*</exclude>
+                <exclude>com/sun/javadoc/**/*</exclude>
+                <exclude>com/sun/security/**/*</exclude>
+                <exclude>com/sun/jndi/**/*</exclude>
+                <exclude>com/sun/management/**/*</exclude>
+              </excludes>
+            </relocation>
+            <relocation>
+              <pattern>io</pattern>
+              <shadedPattern>${shaded.dependency.prefix}.io</shadedPattern>
+            </relocation>
+          </relocations>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+
+</project>


Mime
View raw message