blob: 2ed9b921efe5e6361084f88183c7a1320cc45b7f [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.
*/
buildscript {
repositories {
mavenCentral()
}
apply from: file('gradle/buildscript.gradle'), to: buildscript
}
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
}
apply from: file("gradle/dependency-versions.gradle")
apply from: file("gradle/dependency-versions-scala-" + scalaSuffix + ".gradle")
apply from: file("gradle/release.gradle")
apply from: file("gradle/rat.gradle")
apply from: file('gradle/customize.gradle')
apply from: file('gradle/stacktrace.gradle')
rat {
excludes = [
'*.patch',
'**/*.eot',
'**/*.graffle',
'**/*.iml',
'**/*.ipr',
'**/*.iws',
'**/*.json',
'**/*.otf',
'**/*.svg',
'**/*.ttf',
'**/*.woff',
'*.log',
'**/hs_err_pid*.log',
'**/.classpath',
'**/.cache/**',
'**/.git/**',
'**/.gitignore',
'**/.gradle/**',
'**/.idea/**',
'**/.project',
'**/.settings/**',
'**/.DS_Store/**',
'**/bootstrap.css.map',
'**/bootstrap.min.css',
'**/bootstrap.min.js',
'**/build/**',
'**/ionicons.min.css',
'**/font-awesome.min.css',
'**/jquery-1.11.1.min.js',
'**/jquery.tablesorter.min.js',
'**/flickity.js',
'**/non-responsive.less',
'**/ropa-sans.css',
'**/syntax.css',
'**/d3.v3.min.js',
'**/dagre-d3.min.js',
'.idea/**',
'.reviewboardrc',
'docs/_site/**',
'docs/sitemap.xml',
'docs/learn/documentation/*/api/javadocs/**',
'docs/learn/documentation/*/rest/javadocs/**',
'docs/Gemfile.lock',
'gradle/wrapper/**',
'gradlew',
'gradlew.bat',
'samza-test/state/**',
'README.md',
'RELEASE.md',
'samza-core/src/test/resources/classloader/samza-framework-api-classes.txt',
'samza-core/src/test/resources/*.txt',
'samza-test/src/main/resources/**',
'samza-hdfs/src/main/resources/**',
'samza-hdfs/src/test/resources/**',
'out/**',
'state/**'
]
}
allprojects {
apply plugin: 'idea'
// For all scala compilation, add extra compiler options, taken from version-specific
// dependency-versions-scala file applied above.
tasks.withType(ScalaCompile) {
scalaCompileOptions.additionalParameters = scalaOptions
}
}
idea {
project {
languageLevel = 1.8
}
}
subprojects {
apply plugin: 'eclipse'
apply plugin: 'project-report'
apply plugin: 'jacoco'
apply plugin: 'checkstyle'
checkstyle {
configFile = new File(rootDir, "checkstyle/checkstyle.xml")
toolVersion = "$checkstyleVersion"
}
tasks.withType(Test) {
test {
testLogging {
showStackTraces = true
showExceptions = true
showCauses = true
displayGranularity = maxGranularity
exceptionFormat = 'full'
}
}
}
}
project(':samza-api') {
apply plugin: 'java'
dependencies {
compile "org.apache.commons:commons-lang3:$commonsLang3Version"
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile "com.google.guava:guava:$guavaVersion"
compile "com.google.code.gson:gson:$gsonVersion"
compile "org.slf4j:slf4j-api:$slf4jVersion"
compile "io.dropwizard.metrics:metrics-core:3.1.2"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
}
}
project(":samza-core_$scalaSuffix") {
apply plugin: 'scala'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
// Disable the Javac compiler by forcing joint compilation by scalac. This is equivalent to setting
// tasks.compileTestJava.enabled = false
sourceSets.main.java.srcDirs = []
sourceSets.test.java.srcDirs = []
jar {
manifest {
attributes("Implementation-Version": "$version")
}
}
dependencies {
compile project(':samza-api')
compile("com.101tec:zkclient:$zkClientVersion") {
exclude module: 'junit:junit'
// exclude the slf4j implementation since it should be up to the application to choose the logging implementation
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}
compile "com.google.guava:guava:$guavaVersion"
compile "net.sf.jopt-simple:jopt-simple:$joptSimpleVersion"
compile "org.apache.commons:commons-collections4:$apacheCommonsCollections4Version"
compile "org.apache.commons:commons-lang3:$commonsLang3Version"
compile "commons-io:commons-io:$commonsIoVersion"
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion"
compile "org.eclipse.jetty:jetty-webapp:$jettyVersion"
compile "org.scala-lang:scala-library:$scalaVersion"
compile "org.slf4j:slf4j-api:$slf4jVersion"
compile "net.jodah:failsafe:$failsafeVersion"
testCompile project(":samza-api").sourceSets.test.output
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile "org.powermock:powermock-api-mockito:$powerMockVersion"
testCompile "org.powermock:powermock-core:$powerMockVersion"
testCompile "org.powermock:powermock-module-junit4:$powerMockVersion"
testCompile "org.scalatest:scalatest_$scalaSuffix:$scalaTestVersion"
testCompile "org.hamcrest:hamcrest-all:$hamcrestVersion"
// zookeeper debug logging causes some memory issues in tests; avoid those issues by using log4j2, which defaults to error log level
testRuntime "org.apache.logging.log4j:log4j-slf4j-impl:$log4j2Version"
}
test {
// some unit tests use embedded zookeeper, so adding some extra memory for those
maxHeapSize = "1560m"
jvmArgs = ["-XX:+UseConcMarkSweepGC", "-server"]
}
}
project(":samza-azure_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile "com.azure:azure-storage-blob:12.14.0"
compile "com.azure:azure-identity:1.3.6"
compile "com.microsoft.azure:azure-storage:5.3.1"
compile "com.microsoft.azure:azure-eventhubs:1.0.1"
compile "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
compile "io.dropwizard.metrics:metrics-core:3.1.2"
compile "org.apache.avro:avro:$avroVersion"
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "org.slf4j:slf4j-api:$slf4jVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile "org.powermock:powermock-api-mockito:$powerMockVersion"
testCompile "org.powermock:powermock-core:$powerMockVersion"
testCompile "org.powermock:powermock-module-junit4:$powerMockVersion"
}
}
project(":samza-aws_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile "com.amazonaws:aws-java-sdk-kinesis:1.11.152"
compile "com.amazonaws:amazon-kinesis-client:1.7.5"
compile "com.amazonaws:amazon-kinesis-producer:0.10.0"
compile "io.dropwizard.metrics:metrics-core:3.1.2"
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "org.slf4j:slf4j-api:$slf4jVersion"
runtime "org.apache.httpcomponents:httpclient:4.5.2"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-all:$mockitoVersion"
}
repositories {
maven {
url "https://repo1.maven.org/maven2/"
}
}
}
project(":samza-elasticsearch_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "org.elasticsearch:elasticsearch:$elasticsearchVersion"
compile "org.slf4j:slf4j-api:$slf4jVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testRuntime "org.slf4j:slf4j-simple:$slf4jVersion"
}
}
project(":samza-sql_$scalaSuffix") {
apply plugin: 'java'
// Disabling assertions while running test because of a calcite bug in {@link RelOptUtil#eq} method
// it checks for the type1 != type2 rather than !type1.equals(type2)
tasks.withType(Test) {
enableAssertions = false
}
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile project(":samza-kafka_$scalaSuffix")
compile project(":samza-kv-inmemory_$scalaSuffix")
compile project(":samza-kv-rocksdb_$scalaSuffix")
compile "org.apache.avro:avro:$avroVersion"
compile "org.apache.calcite:calcite-core:$calciteVersion"
compile "org.codehaus.janino:commons-compiler:3.0.11"
compile "org.slf4j:slf4j-api:$slf4jVersion"
compile "org.reflections:reflections:0.9.10"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile "org.powermock:powermock-api-mockito:$powerMockVersion"
testCompile "org.powermock:powermock-core:$powerMockVersion"
testCompile "org.powermock:powermock-module-junit4:$powerMockVersion"
testRuntime "org.slf4j:slf4j-simple:$slf4jVersion"
}
}
project(":samza-sql-shell_$scalaSuffix") {
apply plugin: 'java'
jar {
manifest {
attributes("Implementation-Version": "$version")
}
}
dependencies {
compile project(":samza-sql_$scalaSuffix")
compile project(":samza-tools_$scalaSuffix")
compile project(":samza-core_$scalaSuffix")
compile project(':samza-api')
compile project(":samza-kafka_$scalaSuffix")
compile project(":samza-azure_$scalaSuffix")
compile "net.java.dev.jna:jna:$jnaVersion"
compile "org.jline:jline:$jlineVersion"
testCompile "junit:junit:$junitVersion"
}
tasks.create(name: "releaseSqlShellTarGz", dependsOn: configurations.archives.artifacts, type: Tar) {
into "samza-sql-shell-${version}"
compression = Compression.GZIP
from(project.file("./scripts")) { into "scripts/" }
from(project.file("./conf")) { into "conf/" }
from(project(':samza-shell').file("src/main/bash/run-class.sh")) { into "scripts/" }
from(configurations.runtime) { into("lib/") }
from(configurations.archives.artifacts.files) { into("lib/") }
duplicatesStrategy 'exclude'
}
}
project(":samza-tools_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile project(":samza-sql_$scalaSuffix")
compile project(':samza-api')
compile project(":samza-azure_$scalaSuffix")
compile project(":samza-core_$scalaSuffix")
compile "org.slf4j:slf4j-api:$slf4jVersion"
compile "commons-cli:commons-cli:$commonsCliVersion"
compile "org.apache.avro:avro:$avroVersion"
compile "org.apache.commons:commons-lang3:$commonsLang3Version"
compile "org.apache.kafka:kafka-clients:$kafkaVersion"
}
tasks.create(name: "releaseToolsTarGz", dependsOn: configurations.archives.artifacts, type: Tar) {
into "samza-tools-${version}"
compression = Compression.GZIP
from(project.file("./scripts")) { into "scripts/" }
from(project.file("./config")) { into "config/" }
from(project(':samza-shell').file("src/main/bash/run-class.sh")) { into "scripts/" }
from(configurations.runtime) { into("lib/") }
from(configurations.archives.artifacts.files) { into("lib/") }
duplicatesStrategy 'exclude'
}
}
project(":samza-kafka_$scalaSuffix") {
apply plugin: 'scala'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
// Disable the Javac compiler by forcing joint compilation by scalac. This is equivalent to setting
// tasks.compileTestJava.enabled = false
sourceSets.main.java.srcDirs = []
sourceSets.test.java.srcDirs = []
configurations {
// Remove transitive dependencies from Zookeeper that we don't want.
compile.exclude group: 'javax.jms', module: 'jms'
compile.exclude group: 'com.sun.jdmk', module: 'jmxtools'
compile.exclude group: 'com.sun.jmx', module: 'jmxri'
}
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "org.scala-lang:scala-library:$scalaVersion"
compile "com.101tec:zkclient:$zkClientVersion"
compile "org.apache.zookeeper:zookeeper:$zookeeperVersion"
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile "org.apache.kafka:kafka_$scalaSuffix:$kafkaVersion"
compile "org.apache.kafka:kafka-clients:$kafkaVersion"
testCompile "org.apache.kafka:kafka_$scalaSuffix:$kafkaVersion:test"
testCompile "org.apache.kafka:kafka-clients:$kafkaVersion:test"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile "org.scalatest:scalatest_$scalaSuffix:$scalaTestVersion"
testCompile project(":samza-core_$scalaSuffix").sourceSets.test.output
// Logging in tests is good.
testRuntime "org.slf4j:slf4j-simple:$slf4jVersion"
constraints {
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
compile "com.fasterxml.jackson.module:jackson-module-scala_$scalaSuffix:$jacksonVersion"
compile "com.fasterxml.jackson.dataformat:jackson-dataformat-csv:$jacksonVersion"
compile "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion"
}
}
test {
// Bump up the heap so we can start ZooKeeper and Kafka brokers.
minHeapSize = "1560m"
maxHeapSize = "1560m"
jvmArgs = ["-XX:+UseConcMarkSweepGC", "-server"]
// There appear to be issues between TestKafkaSystemAdmin and
// TestKafkaCheckpointManager both running brokeres and ZK. Restarting the
// gradle worker after every test clears things up. These tests should be
// moved to the integration test suite.
forkEvery = 1
}
}
project(":samza-log4j_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile "log4j:log4j:$log4jVersion"
compile "org.slf4j:slf4j-log4j12:$slf4jVersion"
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
testCompile "junit:junit:$junitVersion"
}
}
project(":samza-log4j2_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile "org.apache.logging.log4j:log4j-1.2-api:$log4j2Version"
compile "org.apache.logging.log4j:log4j-api:$log4j2Version"
compile "org.apache.logging.log4j:log4j-core:$log4j2Version"
compile "org.apache.logging.log4j:log4j-slf4j-impl:$log4j2Version"
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
}
}
project(":samza-yarn_$scalaSuffix") {
apply plugin: 'scala'
apply plugin: 'lesscss'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
// Disable the Javac compiler by forcing joint compilation by scalac. This is equivalent to setting
// tasks.compileTestJava.enabled = false
sourceSets.main.java.srcDirs = []
sourceSets.test.java.srcDirs = []
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "org.scala-lang:scala-library:$scalaVersion"
compile "org.scala-lang:scala-compiler:$scalaVersion"
compile "com.google.guava:guava:$guavaVersion"
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile "commons-httpclient:commons-httpclient:$commonsHttpClientVersion"
compile "org.apache.httpcomponents:httpclient:$httpClientVersion"
compile("org.apache.hadoop:hadoop-yarn-api:$yarnVersion") {
}
compile("org.apache.hadoop:hadoop-yarn-common:$yarnVersion") {
exclude module: 'servlet-api'
}
compile("org.apache.hadoop:hadoop-yarn-client:$yarnVersion") {
exclude module: 'servlet-api'
}
compile("org.apache.hadoop:hadoop-common:$yarnVersion") {
exclude module: 'servlet-api'
// Exclude because YARN's 3.4.5 ZK version is incompatbile with Kafka's 3.3.4.
exclude module: 'zookeeper'
}
compile("org.apache.hadoop:hadoop-hdfs:$yarnVersion") {
exclude module: 'servlet-api'
}
compile("org.scalatra:scalatra_$scalaSuffix:$scalatraVersion") {
exclude module: 'scala-compiler'
exclude module: 'slf4j-api'
}
compile("org.scalatra:scalatra-scalate_$scalaSuffix:$scalatraVersion") {
exclude module: 'scala-compiler'
exclude module: 'slf4j-api'
}
compile "joda-time:joda-time:$jodaTimeVersion"
compile "org.apache.zookeeper:zookeeper:$zookeeperVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile project(":samza-core_$scalaSuffix").sourceSets.test.output
testCompile "org.scalatest:scalatest_$scalaSuffix:$scalaTestVersion"
}
repositories {
maven {
url "https://repo.typesafe.com/typesafe/releases"
}
}
lesscss {
source = fileTree('src/main/less') {
include 'main.less'
}
dest = "$buildDir/resources/main/scalate/css"
}
jar.dependsOn("lesscss")
}
project(":samza-shell") {
apply plugin: 'java'
configurations {
gradleShell
}
dependencies {
gradleShell project(":samza-core_$scalaSuffix")
gradleShell project(":samza-kafka_$scalaSuffix")
gradleShell project(":samza-test_$scalaSuffix")
gradleShell project(":samza-yarn_$scalaSuffix")
}
task shellTarGz(type: Tar) {
compression = Compression.GZIP
classifier = 'dist'
from 'src/main/bash'
from 'src/main/resources'
from 'src/main/visualizer'
}
artifacts {
archives(shellTarGz) {
name 'samza-shell'
classifier 'dist'
}
}
// Usage: ./gradlew samza-shell:runJob \
// -PconfigPath=/path/to/job/config.properties
task runJob(type:JavaExec) {
description 'To run a job (defined in a properties file)'
main = 'org.apache.samza.job.JobRunner'
classpath = configurations.gradleShell
if (project.hasProperty('configPath')) args += [
'--config', 'job.config.loader.factory=org.apache.samza.config.loaders.PropertiesConfigLoaderFactory',
'--config', 'job.config.loader.properties.path=' + configPath]
jvmArgs = ["-Dlog4j.configurationFile=file:src/main/resources/log4j2-console.xml"]
}
// Usage: ./gradlew samza-shell:checkpointTool \
// -PconfigPath=/path/to/job/config.properties -PnewOffsets=/path/to/new/offsets.properties
task checkpointTool(type:JavaExec) {
description 'Command-line tool to inspect and manipulate the job’s checkpoint'
main = 'org.apache.samza.checkpoint.CheckpointTool'
classpath = configurations.gradleShell
if (project.hasProperty('configPath')) args += [
'--config', 'job.config.loader.factory=org.apache.samza.config.loaders.PropertiesConfigLoaderFactory',
'--config', 'job.config.loader.properties.path=' + configPath]
if (project.hasProperty('newOffsets')) args += ['--new-offsets', newOffsets]
jvmArgs = ["-Dlog4j.configurationFile=file:src/main/resources/log4j2-console.xml"]
}
// Usage: ./gradlew samza-shell:kvPerformanceTest
// -PconfigPath=/path/to/job/config.properties
task kvPerformanceTest(type:JavaExec) {
description 'Command-line tool to run key-value performance tests'
main = 'org.apache.samza.test.performance.TestKeyValuePerformance'
classpath = configurations.gradleShell
if (project.hasProperty('configPath')) args += [
'--config', 'job.config.loader.factory=org.apache.samza.config.loaders.PropertiesConfigLoaderFactory',
'--config', 'job.config.loader.properties.path=' + configPath]
jvmArgs = ["-Dlog4j.configurationFile=file:src/main/resources/log4j2-console.xml"]
}
}
project(":samza-kv_$scalaSuffix") {
apply plugin: 'scala'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
// Disable the Javac compiler by forcing joint compilation by scalac. This is equivalent to setting
// tasks.compileTestJava.enabled = false
sourceSets.main.java.srcDirs = []
sourceSets.test.java.srcDirs = []
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "org.scala-lang:scala-library:$scalaVersion"
testCompile "com.google.guava:guava:$guavaVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
}
}
project(":samza-kv-inmemory_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile project(":samza-kv_$scalaSuffix")
compile "com.google.guava:guava:$guavaVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
}
}
project(":samza-kv-rocksdb_$scalaSuffix") {
apply plugin: 'scala'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
// Disable the Javac compiler by forcing joint compilation by scalac. This is equivalent to setting
// tasks.compileTestJava.enabled = false
sourceSets.main.java.srcDirs = []
sourceSets.test.java.srcDirs = []
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile project(":samza-kv_$scalaSuffix")
compile "org.scala-lang:scala-library:$scalaVersion"
compile "org.rocksdb:rocksdbjni:$rocksdbVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.scalatest:scalatest_$scalaSuffix:$scalaTestVersion"
}
}
project(":samza-kv-couchbase_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
compile "com.couchbase.client:java-client:$couchbaseClientVersion"
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile "org.powermock:powermock-api-mockito:$powerMockVersion"
testCompile "org.powermock:powermock-core:$powerMockVersion"
testCompile "org.powermock:powermock-module-junit4:$powerMockVersion"
}
}
project(":samza-hdfs_$scalaSuffix") {
apply plugin: 'scala'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
sourceSets.main.java.srcDirs = []
dependencies {
compile project(':samza-api')
compile project(":samza-core_$scalaSuffix")
// currently hdfs system producer/consumer do depend on yarn for two things:
// 1. staging directory 2. security
// SAMZA-1032 to solve the staging directory dependency
compile project(":samza-yarn_$scalaSuffix")
compile "org.scala-lang:scala-library:$scalaVersion"
compile("org.apache.hadoop:hadoop-hdfs:$yarnVersion") {
exclude module: 'servlet-api'
}
compile("org.apache.hadoop:hadoop-common:$yarnVersion") {
exclude module: 'servlet-api'
exclude module: 'zookeeper'
}
testCompile "junit:junit:$junitVersion"
testCompile "org.scalatest:scalatest_$scalaSuffix:$scalaTestVersion"
testCompile "org.apache.hadoop:hadoop-minicluster:$yarnVersion"
testCompile "org.apache.hadoop:hadoop-hdfs:$yarnVersion:tests"
}
}
project(":samza-rest_$scalaSuffix") {
apply plugin: 'java'
dependencies {
compile project(":samza-shell")
compile project(":samza-core_$scalaSuffix")
runtime "org.slf4j:slf4j-log4j12:$slf4jVersion"
compile "com.google.guava:guava:$guavaVersion"
compile "org.glassfish.jersey.core:jersey-server:$jerseyVersion"
compile "org.glassfish.jersey.containers:jersey-container-servlet-core:$jerseyVersion"
compile "org.glassfish.jersey.containers:jersey-container-jetty-http:$jerseyVersion"
compile "org.glassfish.jersey.media:jersey-media-moxy:$jerseyVersion"
compile "org.eclipse.jetty.aggregate:jetty-all:$jettyVersion"
compile "commons-httpclient:commons-httpclient:$commonsHttpClientVersion"
compile("org.apache.hadoop:hadoop-yarn-client:$yarnVersion") {
exclude module: 'servlet-api'
exclude group: 'com.sun.jersey'
}
runtime("org.apache.hadoop:hadoop-yarn-api:$yarnVersion") {
exclude module: 'servlet-api'
exclude group: 'com.sun.jersey'
}
testCompile "junit:junit:$junitVersion"
testCompile "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:$jerseyVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
}
tasks.create(name: "releaseRestServiceTar", type: Tar) {
description 'Build a tarball containing the samza-rest component and its dependencies'
compression = Compression.GZIP
from(file("$projectDir/src/main/config")) { into "config/" }
from(file("$projectDir/src/main/resources/log4j2.xml")) { into "bin/" }
from(file("$projectDir/src/main/bash/run-samza-rest-service.sh")) { into "bin/" }
from(project(':samza-shell').file("src/main/bash/run-class.sh")) { into "bin/" }
from '../LICENSE'
from '../NOTICE'
from(configurations.runtime) { into("lib/") }
from(jar) { into("lib/") }
}
tasks.create(name: "restTarGz", type: Tar) {
description 'Build a tarball containing the samza-rest supplementary files'
compression = Compression.GZIP
from 'src/main/bash'
from 'src/main/resources'
from(project(':samza-shell').file("src/main/bash/run-class.sh"))
}
artifacts {
archives(restTarGz) {
name 'samza-rest-scripts'
classifier 'dist'
}
}
}
project(":samza-test_$scalaSuffix") {
apply plugin: 'scala'
// Force scala joint compilation
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.test.scala.srcDir "src/test/java"
// Disable the Javac compiler by forcing joint compilation by scalac. This is equivalent to setting
// tasks.compileTestJava.enabled = false
sourceSets.main.java.srcDirs = []
sourceSets.test.java.srcDirs = []
// Disabling assertions while running test because of a calcite bug in {@link RelOptUtil#eq} method
// it checks for the type1 != type2 rather than !type1.equals(type2)
tasks.withType(Test) {
enableAssertions = false
}
configurations {
// Remove transitive dependencies from Zookeeper that we don't want.
compile.exclude group: 'javax.jms', module: 'jms'
compile.exclude group: 'com.sun.jdmk', module: 'jmxtools'
compile.exclude group: 'com.sun.jmx', module: 'jmxri'
}
dependencies {
compile project(':samza-api')
compile project(":samza-kv-inmemory_$scalaSuffix")
compile project(":samza-kv-couchbase_$scalaSuffix")
compile project(":samza-kv-rocksdb_$scalaSuffix")
compile project(":samza-core_$scalaSuffix")
compile project(":samza-kafka_$scalaSuffix")
compile project(":samza-sql_$scalaSuffix")
runtime project(":samza-log4j2_$scalaSuffix")
runtime project(":samza-yarn_$scalaSuffix")
runtime project(":samza-hdfs_$scalaSuffix")
compile "org.scala-lang:scala-library:$scalaVersion"
compile "net.sf.jopt-simple:jopt-simple:$joptSimpleVersion"
compile "javax.mail:mail:1.4"
compile "org.apache.kafka:kafka_$scalaSuffix:$kafkaVersion"
compile "junit:junit:$junitVersion"
compile "org.hamcrest:hamcrest-all:$hamcrestVersion"
testCompile "org.apache.kafka:kafka_$scalaSuffix:$kafkaVersion:test"
testCompile "com.101tec:zkclient:$zkClientVersion"
testCompile project(":samza-kafka_$scalaSuffix")
testCompile "org.apache.kafka:kafka_$scalaSuffix:$kafkaVersion:test"
testCompile "org.apache.kafka:kafka-clients:$kafkaVersion:test"
testCompile project(":samza-core_$scalaSuffix").sourceSets.test.output
testCompile project(":samza-sql_$scalaSuffix").sourceSets.test.output
testCompile "org.scalatest:scalatest_$scalaSuffix:$scalaTestVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
testCompile "com.couchbase.mock:CouchbaseMock:$couchbaseMockVersion"
testRuntime "org.slf4j:slf4j-simple:$slf4jVersion"
}
test {
// Bump up the heap so we can run KV store tests.
minHeapSize = "1560m"
maxHeapSize = "1560m"
jvmArgs = ["-XX:+UseConcMarkSweepGC", "-server"]
}
tasks.create(name: "releaseTestJobs", dependsOn: configurations.archives.artifacts, type: Tar) {
description 'Build an integration test tarball'
compression = Compression.GZIP
from(file("$projectDir/src/main/config")) { into "config/" }
from(file("$projectDir/src/main/resources")) { into "lib/" }
from(project(':samza-shell').file("src/main/bash")) { into "bin/" }
from(file("$projectDir/src/main/python/ghostface_killah.py")) { into "bin/"}
from(project(':samza-shell').file("src/main/resources")) { into "lib/" }
from(project(':samza-shell').file("src/main/resources/log4j2-console.xml")) { into "bin/" }
from '../LICENSE'
from '../NOTICE'
from(configurations.runtime) { into("lib/") }
from(configurations.archives.artifacts.files) { into("lib/") }
}
}
// SAMZA-2473 read wrapper version from gradle.properties
wrapper {
gradleVersion = project.gradleVersion
}