Repository: incubator-gearpump Updated Branches: refs/heads/master df4e18e4b -> 8f44c96d7
fix GEARPUMP-169, upgrade sbt-assembly and shade Author: huafengw <[email protected]> Closes #53 from manuzhang/assemb. Project: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/commit/8f44c96d Tree: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/tree/8f44c96d Diff: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/diff/8f44c96d Branch: refs/heads/master Commit: 8f44c96d72f41a79201ae81a714304457efd0f10 Parents: df4e18e Author: huafengw <[email protected]> Authored: Thu Jun 30 13:35:00 2016 +0800 Committer: manuzhang <[email protected]> Committed: Thu Jun 30 13:35:00 2016 +0800 ---------------------------------------------------------------------- .travis.yml | 2 +- project/Build.scala | 127 +++++++++--------- project/BuildExample.scala | 13 +- project/BuildIntegrationTest.scala | 7 +- project/BuildShaded.scala | 131 +++++++++++++++++++ project/Pack.scala | 7 +- project/plugins.sbt | 2 +- .../kryo/KryoSerializerWrapper.java | 43 ++++++ shaded/gs-collections/README.md | 1 + shaded/guava/README.md | 1 + shaded/metrics-graphite/README.md | 1 + 11 files changed, 262 insertions(+), 73 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/.travis.yml ---------------------------------------------------------------------- diff --git a/.travis.yml b/.travis.yml index ce66aa5..6e1ae7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ script: - echo "repo" $TRAVIS_REPO_SLUG - set -o pipefail; skipLogs="Resolving |Compiling |Done updating|Updating |scoverage|coverage-report"; if [[ $TRAVIS_PULL_REQUEST != "false" || $TRAVIS_REPO_SLUG != "apache/incubator-gearpump" ]]; - then sbt -jvm-opts project/travis/jvmopts clean scalastyle test:scalastyle it:scalastyle unidoc coverage +test | grep -v -E "$skipLogs"; + then sbt -jvm-opts project/travis/jvmopts clean +assembly scalastyle test:scalastyle it:scalastyle unidoc coverage +test | grep -v -E "$skipLogs"; elif [[ $TRAVIS_BRANCH == "master" ]]; then sbt -jvm-opts project/travis/jvmopts clean +publish | grep -v -E "$skipLogs"; sbt -jvm-opts project/travis/jvmopts scalastyle test:scalastyle it:scalastyle unidoc coverage +test | grep -v -E "$skipLogs"; elif [[ $TRAVIS_TAG != "" ]]; http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/project/Build.scala ---------------------------------------------------------------------- diff --git a/project/Build.scala b/project/Build.scala index c9f6356..524efa7 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -19,14 +19,14 @@ import com.typesafe.sbt.SbtPgp.autoImport._ import BuildExample.examples import BuildIntegrationTest.integration_test +import BuildShaded._ import de.johoop.jacoco4sbt.JacocoPlugin.jacoco import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._ import sbt.Keys._ import sbt._ import Pack.packProject import org.scalajs.sbtplugin.cross.CrossProject -import sbtassembly.Plugin.AssemblyKeys._ -import sbtassembly.Plugin._ +import sbtassembly.AssemblyPlugin.autoImport._ import sbtunidoc.Plugin.UnidocKeys._ import sbtunidoc.Plugin._ import xerial.sbt.Sonatype._ @@ -36,22 +36,18 @@ object Build extends sbt.Build { val copySharedSourceFiles = TaskKey[Unit]("copied shared services source code") val akkaVersion = "2.4.3" - val kryoVersion = "0.3.2" - val clouderaVersion = "2.6.0-cdh5.4.2" - val clouderaHBaseVersion = "1.0.0-cdh5.4.2" - val codahaleVersion = "3.0.2" + val hadoopVersion = "2.6.0" + val hbaseVersion = "1.0.0" val commonsHttpVersion = "3.1" val commonsLoggingVersion = "1.1.3" val commonsLangVersion = "2.6" val commonsIOVersion = "2.4" - val guavaVersion = "16.0.1" val dataReplicationVersion = "0.7" val upickleVersion = "0.3.4" val junitVersion = "4.12" val kafkaVersion = "0.8.2.1" val stormVersion = "0.10.0" val slf4jVersion = "1.7.7" - val gsCollectionsVersion = "6.2.0" val crossScalaVersionNumbers = Seq("2.11.8") val scalaVersionNumber = crossScalaVersionNumbers.last @@ -81,7 +77,6 @@ object Build extends sbt.Build { "bintray/non" at "http://dl.bintray.com/non/maven", "cloudera" at "https://repository.cloudera.com/artifactory/cloudera-repos", "clockfly" at "http://dl.bintray.com/clockfly/maven", - "vincent" at "http://dl.bintray.com/fvunicorn/maven", "clojars" at "http://clojars.org/repo" ) // ,addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0-M5" cross CrossVersion.full) @@ -154,22 +149,20 @@ object Build extends sbt.Build { "com.typesafe.akka" %% "akka-http-spray-json-experimental" % akkaVersion, "commons-logging" % "commons-logging" % commonsLoggingVersion, "com.typesafe.akka" %% "akka-distributed-data-experimental" % akkaVersion, - "org.apache.hadoop" % "hadoop-common" % clouderaVersion % "provided" + "org.apache.hadoop" % "hadoop-common" % hadoopVersion % "provided" ) ) val streamingDependencies = Seq( - libraryDependencies ++= Seq( - "org.apache.gearpump" % "gearpump-shaded-gs-collections" % gsCollectionsVersion + unmanagedJars in Compile ++= Seq( + getShadedJarFile("gs-collections", version.value) ) ) val coreDependencies = Seq( libraryDependencies ++= Seq( - "org.apache.gearpump" % "gearpump-shaded-metrics-graphite" % codahaleVersion, "org.slf4j" % "slf4j-api" % slf4jVersion, "org.slf4j" % "slf4j-log4j12" % slf4jVersion, - "org.apache.gearpump" % "gearpump-shaded-guava" % guavaVersion, "commons-lang" % "commons-lang" % commonsLangVersion, "com.google.code.findbugs" % "jsr305" % "1.3.9" % "compile", @@ -192,7 +185,6 @@ object Build extends sbt.Build { "com.typesafe.akka" %% "akka-agent" % akkaVersion, "com.typesafe.akka" %% "akka-slf4j" % akkaVersion, "com.typesafe.akka" %% "akka-kernel" % akkaVersion, - "org.apache.gearpump" %% "gearpump-shaded-akka-kryo" % kryoVersion, "org.scala-lang" % "scala-reflect" % scalaVersionNumber, "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.4", "com.typesafe.akka" %% "akka-testkit" % akkaVersion % "test", @@ -200,6 +192,12 @@ object Build extends sbt.Build { "org.scalacheck" %% "scalacheck" % scalaCheckVersion % "test", "org.mockito" % "mockito-core" % mockitoVersion % "test", "junit" % "junit" % junitVersion % "test" + ), + + unmanagedJars in Compile ++= Seq( + getShadedJarFile("metrics-graphite", version.value), + getShadedJarFile("guava", version.value), + getShadedJarFile("akka-kryo", version.value) ) ) @@ -209,12 +207,12 @@ object Build extends sbt.Build { scalacOptions += s"-P:genjavadoc:out=${target.value}/java" ) - val myAssemblySettings = assemblySettings ++ Seq( + val myAssemblySettings = Seq( test in assembly := {}, assemblyOption in assembly ~= { _.copy(includeScala = false) }, - jarName in assembly := { + assemblyJarName in assembly := { s"${name.value.split("-").last}-${scalaBinaryVersion.value}-${version.value}-assembly.jar" } ) @@ -252,33 +250,37 @@ object Build extends sbt.Build { id = "gearpump", base = file("."), settings = commonSettings ++ noPublish ++ gearpumpUnidocSetting) - .aggregate(core, daemon, streaming, services, external_kafka, external_monoid, + .aggregate(shaded, core, daemon, streaming, services, external_kafka, external_monoid, external_serializer, examples, storm, yarn, external_hbase, packProject, external_hadoopfs, integration_test).settings(Defaults.itSettings: _*) + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val core = Project( id = "gearpump-core", base = file("core"), - settings = commonSettings ++ javadocSettings ++ coreDependencies - ) + settings = commonSettings ++ javadocSettings ++ coreDependencies) + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val daemon = Project( id = "gearpump-daemon", base = file("daemon"), - settings = commonSettings ++ daemonDependencies - ) dependsOn(core % "test->test; compile->compile", cgroup % "test->test; compile->compile") + settings = commonSettings ++ daemonDependencies) + .dependsOn(core % "test->test; compile->compile", cgroup % "test->test; compile->compile") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val cgroup = Project( id = "gearpump-experimental-cgroup", base = file("experiments/cgroup"), - settings = commonSettings ++ noPublish ++ daemonDependencies - ) dependsOn (core % "test->test; compile->compile") + settings = commonSettings ++ noPublish ++ daemonDependencies) + .dependsOn (core % "test->test; compile->compile") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val streaming = Project( id = "gearpump-streaming", base = file("streaming"), - settings = commonSettings ++ javadocSettings ++ streamingDependencies - ) dependsOn(core % "test->test; compile->compile", daemon % "test->test") + settings = commonSettings ++ javadocSettings ++ streamingDependencies) + .dependsOn(core % "test->test; compile->compile", daemon % "test->test") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val external_kafka = Project( id = "gearpump-external-kafka", @@ -290,14 +292,15 @@ object Build extends sbt.Build { "com.twitter" %% "bijection-core" % bijectionVersion, ("org.apache.kafka" %% "kafka" % kafkaVersion classifier ("test")) % "test" ) - ) - ) dependsOn (streaming % "test->test; provided") + )) + .dependsOn (streaming % "test->test; provided") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val services_full = CrossProject("gearpump-services", file("services"), CrossType.Full). settings( publish := {}, publishLocal := {} - ) + ).disablePlugins(sbtassembly.AssemblyPlugin) val distDashboardDirectory = s"${distDirectory}/target/pack/dashboard/views/scalajs" @@ -387,8 +390,8 @@ object Build extends sbt.Build { "org.json4s" %% "json4s-jackson" % "3.2.11" ), mainClass in(Compile, packageBin) := Some("akka.stream.gearpump.example.Test") - ) - ) dependsOn(streaming % "test->test; provided", daemon % "test->test; provided") + )) + .dependsOn(streaming % "test->test; provided", daemon % "test->test; provided") lazy val storm = Project( id = "gearpump-experiments-storm", @@ -422,8 +425,9 @@ object Build extends sbt.Build { exclude("ring", "ring-jetty-adapter") exclude("ring", "ring-servlet") ) - ) - ) dependsOn (streaming % "test->test; compile->compile") + )) + .dependsOn (streaming % "test->test; compile->compile") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val yarn = Project( id = "gearpump-experiments-yarn", @@ -431,18 +435,19 @@ object Build extends sbt.Build { settings = commonSettings ++ noPublish ++ Seq( libraryDependencies ++= Seq( - "org.apache.hadoop" % "hadoop-hdfs" % clouderaVersion, - "org.apache.hadoop" % "hadoop-common" % clouderaVersion, - "org.apache.hadoop" % "hadoop-yarn-api" % clouderaVersion, - "org.apache.hadoop" % "hadoop-yarn-client" % clouderaVersion, - "org.apache.hadoop" % "hadoop-yarn-common" % clouderaVersion, + "org.apache.hadoop" % "hadoop-hdfs" % hadoopVersion, + "org.apache.hadoop" % "hadoop-common" % hadoopVersion, + "org.apache.hadoop" % "hadoop-yarn-api" % hadoopVersion, + "org.apache.hadoop" % "hadoop-yarn-client" % hadoopVersion, + "org.apache.hadoop" % "hadoop-yarn-common" % hadoopVersion, "commons-httpclient" % "commons-httpclient" % commonsHttpVersion, - "org.apache.hadoop" % "hadoop-mapreduce-client-core" % clouderaVersion, - "org.apache.hadoop" % "hadoop-yarn-server-resourcemanager" % clouderaVersion % "provided", - "org.apache.hadoop" % "hadoop-yarn-server-nodemanager" % clouderaVersion % "provided" + "org.apache.hadoop" % "hadoop-mapreduce-client-core" % hadoopVersion, + "org.apache.hadoop" % "hadoop-yarn-server-resourcemanager" % hadoopVersion % "provided", + "org.apache.hadoop" % "hadoop-yarn-server-nodemanager" % hadoopVersion % "provided" ) - ) - ) dependsOn(services % "test->test;compile->compile", core % "provided") + )) + .dependsOn(services % "test->test;compile->compile", core % "provided") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val external_hbase = Project( id = "gearpump-external-hbase", @@ -455,12 +460,12 @@ object Build extends sbt.Build { ) ++ Seq( libraryDependencies ++= Seq( - "org.apache.hadoop" % "hadoop-common" % clouderaVersion % "provided", - "org.apache.hadoop" % "hadoop-hdfs" % clouderaVersion % "provided", - "org.apache.hadoop" % "hadoop-mapreduce-client-core" % clouderaVersion % "provided", + "org.apache.hadoop" % "hadoop-common" % hadoopVersion % "provided", + "org.apache.hadoop" % "hadoop-hdfs" % hadoopVersion % "provided", + "org.apache.hadoop" % "hadoop-mapreduce-client-core" % hadoopVersion % "provided", "org.codehaus.jackson" % "jackson-core-asl" % "1.9.13" % "provided", "org.codehaus.jackson" % "jackson-mapper-asl" % "1.9.13" % "provided", - "org.apache.hbase" % "hbase-client" % clouderaHBaseVersion + "org.apache.hbase" % "hbase-client" % hbaseVersion exclude("com.github.stephenc.findbugs", "findbugs-annotations") exclude("com.google.guava", "guava") exclude("commons-codec", "commons-codec") @@ -472,8 +477,8 @@ object Build extends sbt.Build { exclude("log4j", "log4j") exclude("org.apache.zookeeper", "zookeeper") exclude("org.codehaus.jackson", "jackson-mapper-asl"), - "org.apache.hbase" % "hbase-client" % clouderaHBaseVersion, - "org.apache.hbase" % "hbase-common" % clouderaHBaseVersion + "org.apache.hbase" % "hbase-client" % hbaseVersion, + "org.apache.hbase" % "hbase-common" % hbaseVersion exclude("com.github.stephenc.findbugs", "findbugs-annotations") exclude("com.google.guava", "guava") exclude("commons-codec", "commons-codec") @@ -484,8 +489,9 @@ object Build extends sbt.Build { exclude("junit", "junit") exclude("log4j", "log4j") ) - ) - ) dependsOn (streaming % "test->test; provided") + )) + .dependsOn (streaming % "test->test; provided") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val external_monoid = Project( id = "gearpump-external-monoid", @@ -495,8 +501,9 @@ object Build extends sbt.Build { libraryDependencies ++= Seq( "com.twitter" %% "algebird-core" % algebirdVersion ) - ) - ) dependsOn (streaming % "provided") + )) + .dependsOn (streaming % "provided") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val external_serializer = Project( id = "gearpump-external-serializer", @@ -508,8 +515,9 @@ object Build extends sbt.Build { exclude("com.esotericsoftware.kryo", "kyro") exclude("com.esotericsoftware.minlog", "minlog") ) - ) - ) dependsOn (streaming % "provided") + )) + .dependsOn (streaming % "provided") + .disablePlugins(sbtassembly.AssemblyPlugin) lazy val external_hadoopfs = Project( id = "gearpump-external-hadoopfs", @@ -517,9 +525,10 @@ object Build extends sbt.Build { settings = commonSettings ++ javadocSettings ++ Seq( libraryDependencies ++= Seq( - "org.apache.hadoop" % "hadoop-common" % clouderaVersion % "provided", - "org.apache.hadoop" % "hadoop-hdfs" % clouderaVersion % "provided" + "org.apache.hadoop" % "hadoop-common" % hadoopVersion % "provided", + "org.apache.hadoop" % "hadoop-hdfs" % hadoopVersion % "provided" ) - ) - ) dependsOn (streaming % "test->test; provided") + )) + .dependsOn (streaming % "test->test; provided") + .disablePlugins(sbtassembly.AssemblyPlugin) } http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/project/BuildExample.scala ---------------------------------------------------------------------- diff --git a/project/BuildExample.scala b/project/BuildExample.scala index a4ae87b..060d18a 100644 --- a/project/BuildExample.scala +++ b/project/BuildExample.scala @@ -19,7 +19,7 @@ import sbt.Keys._ import sbt._ import Build._ -import sbtassembly.Plugin.AssemblyKeys._ +import sbtassembly.AssemblyPlugin.autoImport._ object BuildExample extends sbt.Build { @@ -27,8 +27,9 @@ object BuildExample extends sbt.Build { id = "gearpump-examples", base = file("examples"), settings = commonSettings ++ noPublish - ) aggregate(wordcount, wordcountJava, complexdag, sol, fsio, examples_kafka, - distributedshell, stockcrawler, transport, examples_state, pagerank, distributeservice) + ).aggregate(wordcount, wordcountJava, complexdag, sol, fsio, examples_kafka, + distributedshell, stockcrawler, transport, examples_state, pagerank, distributeservice). + disablePlugins(sbtassembly.AssemblyPlugin) lazy val wordcountJava = Project( id = "gearpump-examples-wordcountjava", @@ -139,7 +140,7 @@ object BuildExample extends sbt.Build { settings = commonSettings ++ noPublish ++ Seq( libraryDependencies ++= Seq( - "org.apache.hadoop" % "hadoop-common" % clouderaVersion + "org.apache.hadoop" % "hadoop-common" % hadoopVersion exclude("org.mortbay.jetty", "jetty-util") exclude("org.mortbay.jetty", "jetty") exclude("org.fusesource.leveldbjni", "leveldbjni-all") @@ -198,7 +199,7 @@ object BuildExample extends sbt.Build { base = file("examples/streaming/state"), settings = commonSettings ++ noPublish ++ myAssemblySettings ++ Seq( libraryDependencies ++= Seq( - "org.apache.hadoop" % "hadoop-common" % clouderaVersion + "org.apache.hadoop" % "hadoop-common" % hadoopVersion exclude("org.mortbay.jetty", "jetty-util") exclude("org.mortbay.jetty", "jetty") exclude("org.fusesource.leveldbjni", "leveldbjni-all") @@ -207,7 +208,7 @@ object BuildExample extends sbt.Build { exclude("commons-beanutils", "commons-beanutils") exclude("asm", "asm") exclude("org.ow2.asm", "asm"), - "org.apache.hadoop" % "hadoop-hdfs" % clouderaVersion + "org.apache.hadoop" % "hadoop-hdfs" % hadoopVersion ), mainClass in(Compile, packageBin) := Some("org.apache.gearpump.streaming.examples.state.MessageCountApp"), http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/project/BuildIntegrationTest.scala ---------------------------------------------------------------------- diff --git a/project/BuildIntegrationTest.scala b/project/BuildIntegrationTest.scala index 9ec3640..6eed7a2 100644 --- a/project/BuildIntegrationTest.scala +++ b/project/BuildIntegrationTest.scala @@ -19,7 +19,7 @@ import sbt.Keys._ import sbt._ import Build._ -import sbtassembly.Plugin.AssemblyKeys._ +import sbtassembly.AssemblyPlugin.autoImport._ object BuildIntegrationTest extends sbt.Build { @@ -30,7 +30,8 @@ object BuildIntegrationTest extends sbt.Build { id = "gearpump-integrationtest", base = file("integrationtest"), settings = commonSettings ++ noPublish - ) aggregate(it_core, it_storm09, it_storm010) + ).aggregate(it_core, it_storm09, it_storm010). + disablePlugins(sbtassembly.AssemblyPlugin) val itTestFilter: String => Boolean = { name => name endsWith "Suite" } lazy val it_core = Project( @@ -55,7 +56,7 @@ object BuildIntegrationTest extends sbt.Build { external_kafka, storm, external_serializer - ) + ).disablePlugins(sbtassembly.AssemblyPlugin) // Integration test for Storm 0.9.x lazy val it_storm09 = Project( http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/project/BuildShaded.scala ---------------------------------------------------------------------- diff --git a/project/BuildShaded.scala b/project/BuildShaded.scala new file mode 100644 index 0000000..9fdfb9e --- /dev/null +++ b/project/BuildShaded.scala @@ -0,0 +1,131 @@ +/* + * 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. + */ + +import sbt.Keys._ +import sbt._ +import sbtassembly.AssemblyPlugin.autoImport._ + +object BuildShaded extends sbt.Build { + + val guavaVersion = "16.0.1" + val codahaleVersion = "3.0.2" + val kryoVersion = "0.3.2" + val gsCollectionsVersion = "6.2.0" + private val scalaVersionNumber = "2.11" + + val myAssemblySettings = Seq( + test in assembly := {}, + assemblyOption in assembly ~= { + _.copy(includeScala = false) + }, + assemblyJarName in assembly := { + s"${name.value}-$scalaVersionNumber-${version.value}-assembly.jar" + }, + target in assembly := baseDirectory.value.getParentFile / "target" / scalaVersionNumber + ) + + val shaded = Project( + id = "gearpump-shaded", + base = file("shaded") + ).aggregate(shaded_akka_kryo, shaded_gs_collections, shaded_guava, shaded_metrics_graphite) + .disablePlugins(sbtassembly.AssemblyPlugin) + + + lazy val shaded_akka_kryo = Project( + id = "gearpump-shaded-akka-kryo", + base = file("shaded/akka-kryo"), + settings = myAssemblySettings ++ + Seq( + assemblyShadeRules in assembly := Seq( + ShadeRule.zap("com.google.protobuf.**").inAll, + ShadeRule.zap("com.typesafe.config.**").inAll, + ShadeRule.zap("akka.**").inAll, + ShadeRule.zap("org.jboss.netty.**").inAll, + ShadeRule.zap("net.jpountz.lz4.**").inAll, + ShadeRule.zap("org.uncommons.maths.**").inAll, + ShadeRule.rename("com.romix.**" -> "org.apache.gearpump.romix.@1").inAll, + ShadeRule.rename("com.esotericsoftware.**" -> + "org.apache.gearpump.esotericsoftware.@1").inAll, + ShadeRule.rename("org.objenesis.**" -> "org.apache.gearpump.objenesis.@1").inAll + ) + ) ++ + Seq( + libraryDependencies ++= Seq( + "com.github.romix.akka" %% "akka-kryo-serialization" % kryoVersion + ) + ) + ) + + lazy val shaded_gs_collections = Project( + id = "gearpump-shaded-gs-collections", + base = file("shaded/gs-collections"), + settings = myAssemblySettings ++ + Seq( + assemblyShadeRules in assembly := Seq( + ShadeRule.rename("com.gs.collections.**" -> + "org.apache.gearpump.gs.collections.@1").inAll + ) + ) ++ + Seq( + libraryDependencies ++= Seq( + "com.goldmansachs" % "gs-collections" % gsCollectionsVersion + ) + ) + ) + + lazy val shaded_guava = Project( + id = "gearpump-shaded-guava", + base = file("shaded/guava"), + settings = myAssemblySettings ++ + Seq( + assemblyShadeRules in assembly := Seq( + ShadeRule.rename("com.google.**" -> "org.apache.gearpump.google.@1").inAll + ) + ) ++ + Seq( + libraryDependencies ++= Seq( + "com.google.guava" % "guava" % guavaVersion + ) + ) + ) + + lazy val shaded_metrics_graphite = Project( + id = "gearpump-shaded-metrics-graphite", + base = file("shaded/metrics-graphite"), + settings = myAssemblySettings ++ + Seq( + assemblyShadeRules in assembly := Seq( + ShadeRule.rename("com.codahale.metrics.**" -> + "org.apache.gearpump.codahale.metrics.@1").inAll + ) + ) ++ + Seq( + libraryDependencies ++= Seq( + "com.codahale.metrics" % "metrics-graphite" % codahaleVersion, + "com.codahale.metrics" % "metrics-jvm" % codahaleVersion + ) + ) + ) + + + def getShadedJarFile(name: String, gearpumpVersion: String): File = { + shaded.base / "target" / scalaVersionNumber / + s"gearpump-shaded-$name-$scalaVersionNumber-$gearpumpVersion-assembly.jar" + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/project/Pack.scala ---------------------------------------------------------------------- diff --git a/project/Pack.scala b/project/Pack.scala index 570610b..4efb854 100644 --- a/project/Pack.scala +++ b/project/Pack.scala @@ -122,8 +122,8 @@ object Pack extends sbt.Build { packResourceDir += (baseDirectory.value / ".." / "bin" -> "bin"), packResourceDir += (baseDirectory.value / ".." / "conf" -> "conf"), packResourceDir += (baseDirectory.value / ".." / "yarnconf" -> "conf/yarnconf"), - packResourceDir += (baseDirectory.value / ".." / "unmanagedlibs" / - scalaBinaryVersion.value -> "lib"), + packResourceDir += (baseDirectory.value / ".." / "shaded" / "target" / + CrossVersion.binaryScalaVersion(scalaVersion.value) -> "lib"), packResourceDir += (baseDirectory.value / ".." / "services" / "dashboard" -> "dashboard"), packResourceDir += (baseDirectory.value / ".." / "examples" / "target" / CrossVersion.binaryScalaVersion(scalaVersion.value) -> "examples"), @@ -147,5 +147,6 @@ object Pack extends sbt.Build { packArchiveExcludes := Seq("integrationtest") ) - ).dependsOn(core, streaming, services, yarn, storm) + ).dependsOn(core, streaming, services, yarn, storm). + disablePlugins(sbtassembly.AssemblyPlugin) } http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/project/plugins.sbt ---------------------------------------------------------------------- diff --git a/project/plugins.sbt b/project/plugins.sbt index 100a222..dd73218 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -23,7 +23,7 @@ resolvers += Classpaths.sbtPluginReleases addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.8") -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3") addSbtPlugin("io.gearpump.sbt" % "sbt-pack" % "0.7.6") http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/shaded/akka-kryo/src/main/java/org/apache/gearpump/romix/serialization/kryo/KryoSerializerWrapper.java ---------------------------------------------------------------------- diff --git a/shaded/akka-kryo/src/main/java/org/apache/gearpump/romix/serialization/kryo/KryoSerializerWrapper.java b/shaded/akka-kryo/src/main/java/org/apache/gearpump/romix/serialization/kryo/KryoSerializerWrapper.java new file mode 100644 index 0000000..8e413a9 --- /dev/null +++ b/shaded/akka-kryo/src/main/java/org/apache/gearpump/romix/serialization/kryo/KryoSerializerWrapper.java @@ -0,0 +1,43 @@ +/* + * 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. + */ +package org.apache.gearpump.romix.serialization.kryo; + +import com.esotericsoftware.kryo.Kryo; +import com.romix.akka.serialization.kryo.KryoBasedSerializer; +import com.romix.akka.serialization.kryo.KryoSerializer; +import akka.actor.ExtendedActorSystem; + +public class KryoSerializerWrapper { + private final KryoBasedSerializer serializer; + + public KryoSerializerWrapper(ExtendedActorSystem system) { + this.serializer = new KryoSerializer(system).serializer(); + } + + final public Kryo kryo() { + return serializer.kryo(); + } + + final public byte[] toBinary(Object msg) { + return serializer.toBinary(msg); + } + + final public Object fromBinary(byte[] bytes) { + return serializer.fromBinary(bytes); + } +} http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/shaded/gs-collections/README.md ---------------------------------------------------------------------- diff --git a/shaded/gs-collections/README.md b/shaded/gs-collections/README.md new file mode 100644 index 0000000..1e1dab7 --- /dev/null +++ b/shaded/gs-collections/README.md @@ -0,0 +1 @@ +placeholder for shaded directory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/shaded/guava/README.md ---------------------------------------------------------------------- diff --git a/shaded/guava/README.md b/shaded/guava/README.md new file mode 100644 index 0000000..1e1dab7 --- /dev/null +++ b/shaded/guava/README.md @@ -0,0 +1 @@ +placeholder for shaded directory \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8f44c96d/shaded/metrics-graphite/README.md ---------------------------------------------------------------------- diff --git a/shaded/metrics-graphite/README.md b/shaded/metrics-graphite/README.md new file mode 100644 index 0000000..1e1dab7 --- /dev/null +++ b/shaded/metrics-graphite/README.md @@ -0,0 +1 @@ +placeholder for shaded directory \ No newline at end of file
