azkaban-aplcache
Changes
azkaban-common/build.gradle 16(+0 -16)
azkaban-execserver/build.gradle 65(+19 -46)
azkaban-migration/build.gradle 51(+17 -34)
azkaban-soloserver/build.gradle 67(+30 -37)
azkaban-sql/build.gradle 20(+20 -0)
azkaban-webserver/build.gradle 170(+71 -99)
build.gradle 129(+18 -111)
Details
azkaban-common/build.gradle 16(+0 -16)
diff --git a/azkaban-common/build.gradle b/azkaban-common/build.gradle
index 78c04ce..79faaf8 100644
--- a/azkaban-common/build.gradle
+++ b/azkaban-common/build.gradle
@@ -1,12 +1,3 @@
-configurations {
- all {
- transitive = false
- }
- errorprone {
- transitive = true
- }
-}
-
apply plugin: 'c'
model {
components {
@@ -25,24 +16,18 @@ model {
dependencies {
compile('com.google.guava:guava:13.0.1')
- compile('com.h2database:h2:1.3.170')
- compile('commons-codec:commons-codec:1.9')
compile('commons-collections:commons-collections:3.2.2')
- compile('commons-configuration:commons-configuration:1.8')
compile('commons-dbcp:commons-dbcp:1.4')
compile('commons-dbutils:commons-dbutils:1.5')
compile('commons-fileupload:commons-fileupload:1.2.1')
compile('commons-io:commons-io:2.4')
compile('commons-lang:commons-lang:2.6')
- compile('commons-logging:commons-logging:1.1.1')
- compile('commons-pool:commons-pool:1.6')
compile('javax.mail:mail:1.4.5')
compile('javax.servlet:servlet-api:2.5')
compile('joda-time:joda-time:2.0')
compile('log4j:log4j:1.2.16')
compile('mysql:mysql-connector-java:5.1.28')
compile('net.sf.jopt-simple:jopt-simple:4.3')
- compile('org.apache.commons:commons-email:1.2')
compile('org.apache.commons:commons-jexl:2.1.1')
compile('org.apache.commons:commons-math3:3.0')
compile('org.apache.httpcomponents:httpclient:4.3.1')
@@ -52,7 +37,6 @@ dependencies {
compile('org.codehaus.jackson:jackson-mapper-asl:1.9.5')
compile('org.mortbay.jetty:jetty:6.1.26')
compile('org.mortbay.jetty:jetty-util:6.1.26')
- compile('org.slf4j:slf4j-api:1.6.1')
compile('org.quartz-scheduler:quartz:2.2.1')
testCompile(project(':azkaban-test').sourceSets.test.output)
azkaban-execserver/build.gradle 65(+19 -46)
diff --git a/azkaban-execserver/build.gradle b/azkaban-execserver/build.gradle
index 0d02240..4642da6 100644
--- a/azkaban-execserver/build.gradle
+++ b/azkaban-execserver/build.gradle
@@ -1,56 +1,29 @@
-configurations {
- all {
- transitive = false
- }
- errorprone {
- transitive = true
- }
-}
+apply plugin: 'distribution'
dependencies {
compile(project(':azkaban-common'))
- compile('commons-io:commons-io:2.4')
- compile('javax.servlet:servlet-api:2.5')
- compile('joda-time:joda-time:2.0')
- compile('log4j:log4j:1.2.16')
- compile('commons-logging:commons-logging:1.1.1')
- compile('org.apache.httpcomponents:httpclient:4.3.1')
- compile('org.apache.httpcomponents:httpcore:4.3')
- compile('org.mortbay.jetty:jetty:6.1.26')
- compile('org.mortbay.jetty:jetty-util:6.1.26')
- compile('org.codehaus.jackson:jackson-core-asl:1.9.5')
- compile('org.codehaus.jackson:jackson-mapper-asl:1.9.5')
testCompile('junit:junit:4.11')
testCompile('org.hamcrest:hamcrest-all:1.3')
testCompile(project(':azkaban-common').sourceSets.test.output)
}
-task createDirs() << {
- file('build/package/extlib').mkdirs()
- file('build/package/plugins').mkdirs()
-}
-
-task copyDeps(type: Copy, dependsOn: 'build') {
- from(project(':azkaban-common').configurations.compile)
- from(configurations.compile)
- into('build/package/lib')
-}
-
-task copyLibs(type: Copy, dependsOn: 'build') {
- from('build/libs')
- into('build/package/lib')
-}
-
-task copyPackage(type: Copy) {
- from('src/package')
- into('build/package')
-}
-
-task copy(dependsOn: [
- 'createVersionFile',
- 'createDirs',
- 'copyDeps',
- 'copyLibs',
- 'copyPackage']) {
+distributions {
+ main {
+ contents {
+ from('src/main/bash') {
+ into 'bin'
+ fileMode = 0755
+ }
+ from('src/main/resources/conf') {
+ into 'conf'
+ }
+ from(configurations.runtime) {
+ into 'lib'
+ }
+ from(jar) {
+ into 'lib'
+ }
+ }
+ }
}
azkaban-migration/build.gradle 51(+17 -34)
diff --git a/azkaban-migration/build.gradle b/azkaban-migration/build.gradle
index 743c1fc..3f6c120 100644
--- a/azkaban-migration/build.gradle
+++ b/azkaban-migration/build.gradle
@@ -1,40 +1,23 @@
-configurations {
- all {
- transitive = false
- }
- errorprone {
- transitive = true
- }
-}
+apply plugin: 'distribution'
+
dependencies {
compile(project(':azkaban-common'))
- compile('commons-io:commons-io:2.4')
- compile('commons-dbcp:commons-dbcp:1.4')
- compile('commons-dbutils:commons-dbutils:1.5')
- compile('joda-time:joda-time:2.0')
- compile('log4j:log4j:1.2.16')
-}
-
-task copyLibs(type: Copy, dependsOn: 'build') {
- from('build/libs')
- into('build/package/lib')
}
-task copyDeps(type: Copy, dependsOn: 'build') {
- from(project(':azkaban-common').configurations.compile)
- from(configurations.compile)
- into('build/package/lib')
-}
-
-task copyPackage(type: Copy) {
- from('src/package')
- into('build/package')
-}
-
-task copy(dependsOn: [
- 'createVersionFile',
- 'copyLibs',
- 'copyDeps',
- 'copyPackage']) {
+distributions {
+ main {
+ contents {
+ from('src/main/bash') {
+ into 'bin'
+ fileMode = 0755
+ }
+ from(configurations.runtime) {
+ into 'lib'
+ }
+ from(jar) {
+ into 'lib'
+ }
+ }
+ }
}
azkaban-soloserver/build.gradle 67(+30 -37)
diff --git a/azkaban-soloserver/build.gradle b/azkaban-soloserver/build.gradle
index fbfdc3a..173d374 100644
--- a/azkaban-soloserver/build.gradle
+++ b/azkaban-soloserver/build.gradle
@@ -1,45 +1,38 @@
+apply plugin: 'distribution'
+
dependencies {
compile(project(':azkaban-common'))
compile(project(':azkaban-webserver'))
compile(project(':azkaban-execserver'))
}
-task createDirs() << {
- file('build/package/extlib').mkdirs()
- file('build/package/plugins').mkdirs()
-}
-
-task copyDeps(type: Copy, dependsOn: 'build') {
- from(configurations.compile)
- into('build/package/lib')
-}
-
-task copyLibs(type: Copy, dependsOn: 'build') {
- from('build/libs')
- into('build/package/lib')
-}
-
-task copyPackage(type: Copy) {
- from('src/package')
- into('build/package')
-}
-
-task copyWeb(type: Copy, dependsOn: ':azkaban-webserver:copy') {
- from(project(':azkaban-webserver').files('build/package/web'))
- into('build/package/web')
-}
-
-task copySql(type: Copy) {
- from(project(':azkaban-sql').files('src/sql'))
- into('build/package/sql')
-}
+installDist.dependsOn ':azkaban-webserver:installDist'
+distTar.dependsOn ':azkaban-webserver:installDist'
+distZip.dependsOn ':azkaban-webserver:installDist'
-task copy(dependsOn: [
- 'createVersionFile',
- 'createDirs',
- 'copyDeps',
- 'copyLibs',
- 'copyPackage',
- 'copyWeb',
- 'copySql']) {
+distributions {
+ main {
+ contents {
+ from('src/main/bash') {
+ into 'bin'
+ fileMode = 0755
+ }
+ from ('src/main/resources/conf') {
+ into 'conf'
+ }
+ from(configurations.runtime) {
+ into 'lib'
+ }
+ from(jar) {
+ into 'lib'
+ }
+ from(project(':azkaban-sql').files('src/sql')) {
+ into('sql')
+ }
+ // Get the files from sub-dir of distribution of another sub-project
+ from(new File(tasks.getByPath(':azkaban-webserver:installDist').destinationDir, 'web')) {
+ into 'web'
+ }
+ }
+ }
}
azkaban-sql/build.gradle 20(+20 -0)
diff --git a/azkaban-sql/build.gradle b/azkaban-sql/build.gradle
index 04039b5..874a3c4 100644
--- a/azkaban-sql/build.gradle
+++ b/azkaban-sql/build.gradle
@@ -1,3 +1,10 @@
+apply plugin: 'distribution'
+
+/**
+ * concat task
+ * Concatenate all the sql queries / files (except update.*.sql) and collect it into a single
+ * SQL file.
+ */
task concat() << {
ext.destFile = 'build/sql/create-all-sql-' + version + '.sql';
ant.concat(destfile: destFile, fixlastline: 'yes') {
@@ -8,3 +15,16 @@ task concat() << {
}
}
}
+
+installDist.dependsOn concat
+distTar.dependsOn concat
+distZip.dependsOn concat
+
+distributions {
+ main {
+ contents {
+ from('src/sql')
+ from("$buildDir/sql")
+ }
+ }
+}
azkaban-webserver/build.gradle 170(+71 -99)
diff --git a/azkaban-webserver/build.gradle b/azkaban-webserver/build.gradle
index 2801f9b..531d2d8 100644
--- a/azkaban-webserver/build.gradle
+++ b/azkaban-webserver/build.gradle
@@ -1,67 +1,34 @@
-plugins {
- id 'com.craigburke.bower-installer' version '2.5.1'
-}
-
-bower {
- installBase = 'bower' // <1>
-
- 'moment'('2.14.1'){
- source 'min/moment.min.js' >> '/'
- }
-
- 'moment-timezone'('0.5.5') {
- source 'builds/moment-timezone-with-data-2010-2020.min.js' >> '/'
- }
-
- 'eonasdan-bootstrap-datetimepicker'('4.0.0') {
- source 'build/js/*.min.js' >> '/'
- excludes 'jquery'
+buildscript {
+ repositories {
+ mavenCentral()
+ maven {
+ url 'https://plugins.gradle.org/m2/'
}
+ }
+ dependencies {
+ classpath 'com.linkedin:gradle-dustjs-plugin:1.0.0'
+ classpath 'de.obqo.gradle:gradle-lesscss-plugin:1.0-1.3.3'
+ }
+}
- 'later'('1.2.0'){
- source 'later.min.js' >> '/'
- }
+plugins {
+ id 'com.craigburke.bower-installer' version '2.5.1'
}
apply plugin: 'lesscss'
apply plugin: 'dustjs'
+apply plugin: 'distribution'
ext.pegasusVersion = '1.15.7'
configurations {
- all {
- transitive = false
- }
- generateRestli {
- transitive = true
- }
- errorprone {
- transitive = true
- }
+ generateRestli
}
dependencies {
compile(project(':azkaban-common'))
- compile('com.linkedin.parseq:parseq:1.3.7')
- compile('com.linkedin.pegasus:data:' + pegasusVersion)
- compile('com.linkedin.pegasus:gradle-plugins:' + pegasusVersion)
- compile('com.linkedin.pegasus:li-jersey-uri:' + pegasusVersion)
- compile('com.linkedin.pegasus:pegasus-common:' + pegasusVersion)
- compile('com.linkedin.pegasus:restli-common:' + pegasusVersion)
compile('com.linkedin.pegasus:restli-server:' + pegasusVersion)
- compile('com.linkedin.pegasus:r2:' + pegasusVersion)
- compile('com.fasterxml.jackson.core:jackson-core:2.3.2')
- compile('commons-lang:commons-lang:2.6')
- compile('commons-io:commons-io:2.4')
- compile('commons-fileupload:commons-fileupload:1.2.1')
- compile('javax.servlet:servlet-api:2.5')
- compile('joda-time:joda-time:2.0')
- compile('log4j:log4j:1.2.16')
- compile('net.sf.jopt-simple:jopt-simple:4.3')
- compile('org.apache.velocity:velocity:1.7')
compile('org.apache.velocity:velocity-tools:2.0')
- compile('org.mortbay.jetty:jetty:6.1.26')
- compile('org.mortbay.jetty:jetty-util:6.1.26')
testCompile('commons-collections:commons-collections:3.2.2')
testCompile('junit:junit:4.11')
@@ -85,6 +52,28 @@ sourceSets {
}
}
+bower {
+ installBase = 'bower' // <1>
+
+ 'moment'('2.14.1'){
+ source 'min/moment.min.js' >> '/'
+ }
+
+ 'moment-timezone'('0.5.5') {
+ source 'builds/moment-timezone-with-data-2010-2020.min.js' >> '/'
+ }
+
+ 'eonasdan-bootstrap-datetimepicker'('4.0.0') {
+ source 'build/js/*.min.js' >> '/'
+ excludes 'jquery'
+ }
+
+ 'later'('1.2.0'){
+ source 'later.min.js' >> '/'
+ }
+}
+clean.dependsOn 'bowerClean'
+
task restliTemplateGenerator(type: JavaExec) {
mkdir 'src/restli/generatedJava'
@@ -119,56 +108,39 @@ dustjs {
dest = 'build/dust'
}
-task createDirs() << {
- file('build/package/extlib').mkdirs()
- file('build/package/plugins').mkdirs()
-}
+installDist.dependsOn 'lesscss'
-task copyWeb(type: Copy) {
- from('src/web')
- into('build/package/web')
-}
-
-task copyLess(type: Copy, dependsOn: ['lesscss', 'copyWeb']) {
- from('build/less')
- into('build/package/web/css')
-}
-
-task copyDust(type: Copy, dependsOn: ['dustjs', 'copyWeb']) {
- from('build/dust')
- into('build/package/web/js')
-}
-
-task copyJSLibs(type: Copy, dependsOn: ['bowerInstall', 'dustjs', 'copyWeb']) {
- from('bower/')
- into('build/package/web/js')
-}
-
-task copyDeps(type: Copy, dependsOn: 'build') {
- from(project(':azkaban-common').configurations.compile)
- from(configurations.compile)
- into('build/package/lib')
-}
-
-task copyLibs(type: Copy, dependsOn: 'build') {
- from('build/libs')
- into('build/package/lib')
-}
-
-task copyPackage(type: Copy) {
- from('src/package')
- into('build/package')
-}
-
-task copy(dependsOn: [
- 'createVersionFile',
- 'createDirs',
- 'copyLess',
- 'copyDust',
- 'copyDeps',
- 'copyJSLibs',
- 'copyLibs',
- 'copyPackage']) {
+distributions {
+ main {
+ contents {
+ from('src/main/bash') {
+ into 'bin'
+ fileMode = 0755
+ }
+ from ('src/main/resources/conf') {
+ into 'conf'
+ }
+ from(configurations.runtime) {
+ into 'lib'
+ }
+ from(jar) {
+ into 'lib'
+ }
+ from ('src/web') {
+ into 'web'
+ }
+ from (lesscss.dest) {
+ into 'web/css'
+ }
+ from (dustjs) {
+ into 'web/js'
+ }
+ from ('bower') {
+ into 'web/js'
+ }
+ from (bowerInstall) {
+ into 'web/js'
+ }
+ }
+ }
}
-
-clean.dependsOn 'bowerClean'
build.gradle 129(+18 -111)
diff --git a/build.gradle b/build.gradle
index d798528..51af06f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,15 +7,12 @@ buildscript {
}
dependencies {
classpath 'com.cinnober.gradle:semver-git:2.2.1'
- classpath 'com.linkedin:gradle-dustjs-plugin:1.0.0'
- classpath 'de.obqo.gradle:gradle-lesscss-plugin:1.0-1.3.3'
classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.8'
}
}
apply plugin: 'com.cinnober.gradle.semver-git'
apply plugin: 'idea'
-apply plugin: 'distribution'
allprojects {
repositories {
@@ -24,18 +21,6 @@ allprojects {
}
}
-/**
- * Helper that calls a command and returns the output.
- */
-def cmdCaller = { commandln ->
- def stdout = new ByteArrayOutputStream()
- exec {
- commandLine commandln
- standardOutput = stdout
- }
- return stdout.toString().trim()
-}
-
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
@@ -49,26 +34,27 @@ subprojects {
resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.5'
}
- /**
- * Gets the version name from the latest Git tag
- */
- task createVersionFile() << {
- String gitCommitHash = cmdCaller(['git', 'rev-parse', 'HEAD']);
- String gitRepo = cmdCaller(['git', 'config', '--get', 'remote.origin.url']);
- def date = new Date()
- def formattedDate = date.format('yyyy-MM-dd hh:mm zzz')
-
- String versionStr = version + '\n' +
- gitCommitHash + '\n' +
- gitRepo + '\n' +
- formattedDate + '\n'
+ plugins.withType(JavaPlugin) {
+ // Set the Title and Version fields in the jar
+ jar {
+ manifest {
+ attributes (
+ 'Implementation-Title': project.name,
+ 'Implementation-Version': project.version,
+ )
+ }
+ }
+ }
- File versionFile = file('build/package/azkaban.version')
- versionFile.parentFile.mkdirs()
- versionFile.write(versionStr)
+ // Common distribution plugin settings for sub-modules
+ plugins.withType(DistributionPlugin) {
+ distTar {
+ compression = Compression.GZIP
+ extension = 'tar.gz'
+ }
}
- /*
+ /**
* Print test execution summary when informational logging is enabled.
*/
test {
@@ -89,85 +75,6 @@ subprojects {
}
}
-distributions {
- migration {
- baseName = 'azkaban-migration'
- contents {
- from { project(':azkaban-migration').file('build/package') }
- }
- }
-
- webserver {
- baseName = 'azkaban-web-server'
- contents {
- from { project(':azkaban-webserver').file('build/package') }
- }
- }
-
- execserver {
- baseName = 'azkaban-exec-server'
- contents {
- from { project(':azkaban-execserver').file('build/package') }
- }
- }
-
- soloserver {
- baseName = 'azkaban-solo-server'
- contents {
- from { project(':azkaban-soloserver').files('build/package') }
- }
- }
-
- sql {
- baseName = 'azkaban-sql'
- contents {
- from { project(':azkaban-sql').file('src/sql') }
- from { project(':azkaban-sql').file('build/sql') }
- }
- }
-}
-
-// Set up dependencies for distribution tasks.
-//
-// N.B. The extension for the Tar tasks is set since the Gradle Distribution
-// plugin uses the .tar file extension for GZipped Tar files by default.
-//
-// N.B. When the distribution tasks are run, azkaban-execserver,
-// azkaban-webserver, azkaban-migration, and azkaban-soloserver only
-// have a dependency on the azkaban-common build artifacts. As a result,
-// the full :azkaban-common:build task is not run, meaning that the
-// tests are skipped. Thus, the dependency on :azkaban-common:build
-// is set here so that the azkaban-common unit tests are run when running
-// the dist tasks.
-
-migrationDistTar.dependsOn ':azkaban-common:build', ':azkaban-migration:copy'
-migrationDistTar.compression = Compression.GZIP
-migrationDistTar.extension = 'tar.gz'
-migrationDistZip.dependsOn ':azkaban-common:build', ':azkaban-migration:copy'
-
-webserverDistTar.dependsOn ':azkaban-common:build', ':azkaban-webserver:copy'
-webserverDistTar.compression = Compression.GZIP
-webserverDistTar.extension = 'tar.gz'
-webserverDistZip.dependsOn ':azkaban-common:build', ':azkaban-webserver:copy'
-
-execserverDistTar.dependsOn ':azkaban-common:build', ':azkaban-execserver:copy'
-execserverDistTar.compression = Compression.GZIP
-execserverDistTar.extension = 'tar.gz'
-execserverDistZip.dependsOn ':azkaban-common:build', ':azkaban-execserver:copy'
-
-soloserverDistTar.dependsOn ':azkaban-common:build', ':azkaban-soloserver:copy'
-soloserverDistTar.compression = Compression.GZIP
-soloserverDistTar.extension = 'tar.gz'
-soloserverDistZip.dependsOn ':azkaban-common:build', ':azkaban-soloserver:copy'
-
-sqlDistTar.dependsOn ':azkaban-sql:concat'
-sqlDistTar.compression = Compression.GZIP
-sqlDistTar.extension = 'tar.gz'
-sqlDistZip.dependsOn ':azkaban-sql:concat'
-
-distTar.dependsOn migrationDistTar, webserverDistTar, execserverDistTar, soloserverDistTar, sqlDistTar
-distZip.dependsOn migrationDistZip, webserverDistZip, execserverDistZip, soloserverDistZip, sqlDistZip
-
/**
* Gradle wrapper task.
*/