blob: 6eed7a2334a2e321f549f520fc3d2c093bb553ec [file] [log] [blame]
/*
* 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 Build._
import sbtassembly.AssemblyPlugin.autoImport._
object BuildIntegrationTest extends sbt.Build {
val jsonSimpleVersion = "1.1"
val storm09Version = "0.9.6"
lazy val integration_test = Project(
id = "gearpump-integrationtest",
base = file("integrationtest"),
settings = commonSettings ++ noPublish
).aggregate(it_core, it_storm09, it_storm010).
disablePlugins(sbtassembly.AssemblyPlugin)
val itTestFilter: String => Boolean = { name => name endsWith "Suite" }
lazy val it_core = Project(
id = "gearpump-integrationtest-core",
base = file("integrationtest/core"),
settings = commonSettings ++ noPublish ++ Seq(
testOptions in IntegrationTest += Tests.Filter(itTestFilter),
libraryDependencies ++= Seq(
"com.lihaoyi" %% "upickle" % upickleVersion,
"org.scalatest" %% "scalatest" % scalaTestVersion % "it",
"org.pegdown" % "pegdown" % "1.4.2" % "it",
"org.parboiled" % "parboiled-core" % "1.1.7" % "it",
"org.parboiled" % "parboiled-java" % "1.1.7" % "it",
"org.mortbay.jetty" % "jetty-util" % "6.1.26" % "it",
"org.ow2.asm" % "asm-all" % "5.0.3" % "it"
)
)
).configs(IntegrationTest).settings(Defaults.itSettings: _*)
.dependsOn(
streaming % "test->test; provided",
services % "test->test; provided",
external_kafka,
storm,
external_serializer
).disablePlugins(sbtassembly.AssemblyPlugin)
// Integration test for Storm 0.9.x
lazy val it_storm09 = Project(
id = "gearpump-integrationtest-storm09",
base = file("integrationtest/storm09"),
settings = commonSettings ++ noPublish ++ myAssemblySettings ++
Seq(
libraryDependencies ++= Seq(
"org.apache.storm" % "storm-kafka" % storm09Version,
"org.apache.storm" % "storm-starter" % storm09Version,
"com.googlecode.json-simple" % "json-simple" % jsonSimpleVersion,
"org.apache.kafka" %% "kafka" % kafkaVersion
),
target in assembly := baseDirectory.value.getParentFile / "target" /
CrossVersion.binaryScalaVersion(scalaVersion.value)
)
) dependsOn (storm % "provided")
// Integration test for Storm 0.10.x
lazy val it_storm010 = Project(
id = "gearpump-integrationtest-storm010",
base = file("integrationtest/storm010"),
settings = commonSettings ++ noPublish ++ myAssemblySettings ++
Seq(
libraryDependencies ++= Seq(
"org.apache.storm" % "storm-kafka" % stormVersion,
"org.apache.storm" % "storm-starter" % stormVersion,
"org.apache.kafka" %% "kafka" % kafkaVersion
),
target in assembly := baseDirectory.value.getParentFile / "target" /
CrossVersion.binaryScalaVersion(scalaVersion.value)
)
) dependsOn (storm % "provided")
}