diff --git a/build.gradle b/build.gradle index 6827860869614f2d0ff575cfb5e6229e6d4a3806..f0887c989ad703da8eb141385f19d1d098627dd6 100644 --- a/build.gradle +++ b/build.gradle @@ -10,20 +10,28 @@ buildscript { } } -// Plugins for all projects +// Variables used to distinct different subprojects +def useCaseProjects = subprojects.findAll {it -> it.name.matches('uc(.)*')} +def useCaseApplications = subprojects.findAll {it -> it.name.matches('uc[0-9]+-application')} +def useCaseGenerators = subprojects.findAll {it -> it.name.matches('uc[0-9]+-workload-generator*')} +def commonProjects = subprojects.findAll {it -> it.name.matches('(.)*common(s?)(.)*')} + +// Plugins allprojects { apply plugin: 'eclipse' } -// Plugins for subprojects subprojects { - apply plugin: 'application' apply plugin: 'checkstyle' apply plugin: 'pmd' apply plugin: 'com.github.spotbugs' apply plugin: 'java-library' } +configure(useCaseProjects){ + apply plugin: 'application' +} + // Java version for all subprojects subprojects { java { @@ -44,22 +52,59 @@ allprojects { maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } + maven { + url 'https://packages.confluent.io/maven/' + } } } -// Dependencies -subprojects { +// Dependencies for all use case applications +configure(useCaseApplications) { dependencies { - // These dependencies is exported to consumers, that is to say found on their compile classpath. - api('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true } - api 'net.kieker-monitoring:kieker:1.14-SNAPSHOT' - api 'net.sourceforge.teetime:teetime:3.0' + // These dependencies are used internally, and not exposed to consumers on their own compile classpath. + implementation('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true } // This branch depends still on old version of titan-ccp-common + implementation('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT') { changing = true } + implementation 'com.google.guava:guava:24.1-jre' + implementation 'org.jctools:jctools-core:2.1.1' + implementation 'org.slf4j:slf4j-simple:1.6.1' + // Use JUnit test framework + testImplementation 'junit:junit:4.12' + + implementation('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true } + } +} + +// Dependencies for all use case generators +configure(useCaseGenerators) { + dependencies { // These dependencies are used internally, and not exposed to consumers on their own compile classpath. - implementation 'org.apache.kafka:kafka-clients:2.1.0' + // implementation('org.industrial-devops:titan-ccp-common:0.1.0-SNAPSHOT') { changing = true } + implementation('org.industrial-devops:titan-ccp-common-kafka:0.0.1-SNAPSHOT') { changing = true } implementation 'com.google.guava:guava:24.1-jre' implementation 'org.jctools:jctools-core:2.1.1' implementation 'org.slf4j:slf4j-simple:1.6.1' + implementation project(':workload-generator-common') + + // maintain build of generators + implementation 'net.kieker-monitoring:kieker:1.14-SNAPSHOT' + implementation('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true } + + // Use JUnit test framework + testImplementation 'junit:junit:4.12' + } +} + +// Dependencies for all commons +configure(commonProjects) { + dependencies { + // These dependencies is exported to consumers, that is to say found on their compile classpath. + api 'org.apache.kafka:kafka-clients:2.4.0' + + // These dependencies are used internally, and not exposed to consumers on their own compile classpath. + implementation 'org.slf4j:slf4j-simple:1.6.1' + implementation('org.industrial-devops:titan-ccp-common:0.0.3-SNAPSHOT') { changing = true } // This branch depends still on old version of titan-ccp-common + implementation('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT') { changing = true } // Use JUnit test framework testImplementation 'junit:junit:4.12' diff --git a/settings.gradle b/settings.gradle index a8da5d5dfd548bc9c359c7c21902acce224e77a4..4a8dfe3a6f7372f3fef319f94afef877e5fe74d8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,7 @@ rootProject.name = 'scalability-benchmarking' +include 'workload-generator-common' + include 'uc1-workload-generator' include 'uc1-application' @@ -10,6 +12,4 @@ include 'uc3-workload-generator' include 'uc3-application' include 'uc4-workload-generator' -include 'uc4-application' - -include 'workload-generator-common' \ No newline at end of file +include 'uc4-application' \ No newline at end of file diff --git a/uc1-workload-generator/build.gradle b/uc1-workload-generator/build.gradle index cba0ffcbcb3b74a40d45e27ac6874c7006fc9726..d934bd09de1d64cadac982669d7cab5b564f0dd5 100644 --- a/uc1-workload-generator/build.gradle +++ b/uc1-workload-generator/build.gradle @@ -1,5 +1 @@ mainClassName = "spesb.uc1.workloadgenerator.LoadGenerator" - -dependencies { - compile project(':workload-generator-common') -} \ No newline at end of file diff --git a/uc2-workload-generator/build.gradle b/uc2-workload-generator/build.gradle index 66007916808c78566f16e42b2e6f5a973a7c0ae1..9b35bdaa4d618943a61042d9bbf93d4c9c4f35a2 100644 --- a/uc2-workload-generator/build.gradle +++ b/uc2-workload-generator/build.gradle @@ -1,5 +1 @@ -mainClassName = "spesb.uc2.workloadgenerator.LoadGenerator" - -dependencies { - compile project(':workload-generator-common') -} \ No newline at end of file +mainClassName = "spesb.uc2.workloadgenerator.LoadGenerator" \ No newline at end of file diff --git a/uc3-workload-generator/build.gradle b/uc3-workload-generator/build.gradle index a635010f46d13e0938fecb487843a84fcacf283b..e27cf26d28ba0d3f85a4c2a11e4eae2b85f29e4c 100644 --- a/uc3-workload-generator/build.gradle +++ b/uc3-workload-generator/build.gradle @@ -1,5 +1 @@ mainClassName = "spesb.uc3.workloadgenerator.LoadGenerator" - -dependencies { - compile project(':workload-generator-common') -} \ No newline at end of file diff --git a/uc4-workload-generator/build.gradle b/uc4-workload-generator/build.gradle index de0d5028d58cb7e9ccd384c0d56e295b33d82e87..8bbdedf4f7c41da73dd2d591b8fd56830d7060b7 100644 --- a/uc4-workload-generator/build.gradle +++ b/uc4-workload-generator/build.gradle @@ -1,5 +1 @@ mainClassName = "spesb.uc4.workloadgenerator.LoadGenerator" - -dependencies { - compile project(':workload-generator-common') -} \ No newline at end of file diff --git a/workload-generator-common/build.gradle b/workload-generator-common/build.gradle index fa81c5036e7e7af168f065087255f3bafeea1384..5ce6a38befce006491cdc25f843a23256d9f55a2 100644 --- a/workload-generator-common/build.gradle +++ b/workload-generator-common/build.gradle @@ -1,27 +1,3 @@ -apply plugin: 'java-library' - -buildscript { - repositories { - maven { - url "https://plugins.gradle.org/m2/" - } - } -} - -sourceCompatibility = "1.11" -targetCompatibility = "1.11" - dependencies { compile 'org.apache.curator:curator-recipes:4.3.0' - compile 'org.slf4j:slf4j-simple:1.6.1' - - // Use JUnit test framework - testCompile 'junit:junit:4.12' -} - -eclipse { - classpath { - downloadSources=true - downloadJavadoc=true - } } \ No newline at end of file