| /* |
| * Copyright 2010 the original author or authors. |
| * |
| * Licensed 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. |
| */ |
| |
| /** |
| * The Apache Incubator S4 Project Build File |
| * |
| */ |
| |
| description = 'Apache S4' |
| defaultTasks 'assemble' |
| project.ext["archivesBaseName"] = 's4' |
| project.ext["distRootFolder"] = "$archivesBaseName-${-> version}" |
| |
| allprojects { |
| |
| // Append the suffix 'SNAPSHOT' when the build is not for release. |
| version = new Version(major: 0, minor: 5, bugfix: 0, isRelease: false) |
| group = 'org.apache.s4' |
| |
| /* Search these repos to find artifacts. Gradle will download and cache. */ |
| repositories { |
| mavenLocal() |
| mavenCentral() |
| mavenRepo name: "gson", url: "http://google-gson.googlecode.com/svn/mavenrepo" |
| |
| /* Add lib dir as a repo. Some jar files that are not available |
| in a public repo are distributed in the lib dir. */ |
| flatDir name: 'libDir', dirs: "$rootDir/lib" |
| } |
| } |
| |
| /* All project libraries must be defined here. */ |
| project.ext["libraries"] = [ |
| json: 'org.json:json:20090211', |
| guava: 'com.google.guava:guava:10.0.1', |
| gson: 'com.google.code.gson:gson:1.6', |
| guice: 'com.google.inject:guice:3.0', |
| guice_assist: 'com.google.inject.extensions:guice-assistedinject:3.0', |
| guice_grapher: 'com.google.inject:guice-grapher:3.0', |
| flexjson: 'net.sf.flexjson:flexjson:2.1', |
| bcel: 'org.apache.bcel:bcel:5.2', |
| jakarta_regexp: 'jakarta-regexp:jakarta-regexp:1.4', |
| kryo: 'com.googlecode:kryo:1.04', |
| netty: 'org.jboss.netty:netty:3.2.5.Final', |
| reflectasm: 'com.esotericsoftware:reflectasm:0.8', |
| minlog: 'com.esotericsoftware:minlog:1.2', |
| mockito_core: 'org.mockito:mockito-core:1.9.0', |
| asm: 'asm:asm:3.2', |
| commons_io: 'commons-io:commons-io:2.0.1', |
| commons_config: 'commons-configuration:commons-configuration:1.6', |
| commons_codec: 'commons-codec:commons-codec:1.4', |
| commons_httpclient: 'commons-httpclient:commons-httpclient:3.1', |
| commons_coll: 'net.sourceforge.collections:collections-generic:4.01', // Use this lib until the commons collection with Generics is released. |
| slf4j: 'org.slf4j:slf4j-api:1.6.1', |
| logback_core: 'ch.qos.logback:logback-core:0.9.29', |
| logback_classic: 'ch.qos.logback:logback-classic:0.9.29', |
| ejml: 'com.googlecode.efficient-java-matrix-library:ejml:0.17', |
| zk: 'org.apache.zookeeper:zookeeper:3.3.1', |
| jcip: 'net.jcip:jcip-annotations:1.0', |
| junit: 'junit:junit:4.10', |
| zkclient: 'com.github.sgroschupf:zkclient:0.1', |
| diezel: 'net.ericaro:diezel-maven-plugin:1.0.0-beta-4', |
| jcommander: 'com.beust:jcommander:1.25', |
| commons_io: 'commons-io:commons-io:2.1', |
| gradle_base_services: 'gradle-base-services:gradle-base-services:1.0', |
| gradle_core: 'gradle-core:gradle-core:1.0', |
| gradle_tooling_api: 'gradle-tooling-api:gradle-tooling-api:1.0', |
| gradle_wrapper: 'gradle-wrapper:gradle-wrapper:1.0' |
| ] |
| |
| subprojects { |
| apply plugin: 'java' |
| apply plugin: 'eclipse' |
| apply plugin: 'maven' |
| // apply plugin: 'checkstyle' |
| |
| /* Set Java version. */ |
| sourceCompatibility = 1.6 |
| targetCompatibility = 1.6 |
| |
| project.ext["checkstyleConfigFileName"] = "$rootDir/config/checkstyle/s4-checkstyle.xml" |
| |
| configurations.all { |
| exclude group: 'com.sun.jdmk', module: 'jmxtools' |
| exclude group: 'com.sun.jmx', module: 'jmxri' |
| exclude group: 'javax.jms', module: 'jms' |
| } |
| |
| dependencies { |
| |
| /* Google. */ |
| compile( libraries.guava ) |
| compile( libraries.guice ) |
| compile (libraries.guice_assist) |
| |
| /* Logging. */ |
| compile( libraries.slf4j ) |
| compile( libraries.logback_core ) |
| compile( libraries.logback_classic ) |
| |
| /* Commons. */ |
| compile( libraries.commons_io ) |
| compile( libraries.commons_config ) |
| compile( libraries.commons_coll ) |
| |
| /* Misc. */ |
| compile( libraries.jcip ) |
| compile( libraries.zk ) |
| |
| /* Testing. */ |
| testCompile( libraries.junit ) |
| } |
| |
| manifest.mainAttributes( |
| provider: 'gradle', |
| 'Implementation-Url': 'http://incubator.apache.org/projects/s4.html', |
| 'Implementation-Version': version, |
| 'Implementation-Vendor': 'Apache S4', |
| 'Implementation-Vendor-Id': 'io.s4' |
| ) |
| } |
| |
| evaluationDependsOnChildren() |
| |
| project.ext["platformProjects"] = [project(':s4-base'), project(':s4-core'), project(':s4-comm'), project(':s4-tools')] |
| |
| configurations { |
| platformLibs |
| } |
| |
| dependencies { |
| platformLibs platformProjects |
| } |
| |
| project.ext["binDistImage"] = copySpec { |
| platformProjects.collect {proj -> |
| into ("platform/lib") { |
| from proj.sourceSets.main.resources |
| from proj.configurations.runtime.getFiles() |
| from proj.configurations.archives.allArtifacts.files |
| } |
| } |
| } |
| |
| task binImage(type: Copy) { |
| description = "Create binary image" |
| destinationDir = file("$buildDir/s4-image") |
| with binDistImage |
| } |
| |
| task clean << { |
| delete buildDir |
| } |
| |
| // This task lists all the jars. We can use this pattern to create file descriptors. |
| task listJars << { |
| description = 'List all the jars in the S4 framework.' |
| configurations.platformLibs.each { File file -> println file.name } |
| } |
| |
| /* Generates the gradlew scripts. |
| http://www.gradle.org/1.0-milestone-3/docs/userguide/gradle_wrapper.html */ |
| task wrapper(type: Wrapper) { |
| gradleVersion = '1.0' |
| jarFile='lib/gradle-wrapper-1.0.jar' |
| } |
| |
| class Version { |
| int major |
| int minor |
| int bugfix |
| boolean isRelease |
| |
| String toString() { |
| "$major.$minor.$bugfix${isRelease ? '' : '-SNAPSHOT'}" |
| } |
| } |