Skip to content
Open
Show file tree
Hide file tree
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
17 changes: 0 additions & 17 deletions .travis.yml

This file was deleted.

257 changes: 257 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
plugins {
id 'java'
id 'groovy'
}

defaultTasks 'main'

version = providers.gradleProperty('version').getOrElse('dev')

ext {
pluginName = 'Box-UCD'

releasesDir = file("$projectDir/releases")
libDir = file("$projectDir/lib")

libBuildDir = file("$projectDir/lib/build")
libTestDir = file("$projectDir/lib/test")

libBuildClassesDir = file("$projectDir/lib/build/classes")
buildJavaDir = file("$buildDir/java")
buildPluginDir = file("$buildDir/plugin")

libTestJavaDir = file("$projectDir/lib/test/java")
}

repositories {
mavenCentral()
}

configurations {
buildConf
testConf
}

dependencies {
buildConf 'org.codehaus.groovy:groovy-all:1.8.8'

// Runtime jars – packaged into the plugin's lib/ directory by the resolve task.
// transitive=false mirrors the original Ivy build (no unwanted transitive deps).
runtimeOnly('com.auth0:java-jwt:2.1.0') { transitive = false }
runtimeOnly('com.box:box-java-sdk:2.0.0') { transitive = false }
runtimeOnly('com.eclipsesource.minimal-json:minimal-json:0.9.1') { transitive = false }
runtimeOnly('com.ibm.urbancode.plugins:groovy-plugin-utils:1.0') { transitive = false }
runtimeOnly('commons-codec:commons-codec:1.3') { transitive = false }
runtimeOnly('commons-httpclient:commons-httpclient:3.1') { transitive = false }
runtimeOnly('commons-logging:commons-logging:1.1') { transitive = false }
runtimeOnly('org.bitbucket.b_c:jose4j:0.4.4') { transitive = false }
runtimeOnly('org.bouncycastle:bcpkix-jdk15on:1.52') { transitive = false }
runtimeOnly('org.bouncycastle:bcprov-jdk15on:1.52') { transitive = false }
runtimeOnly('org.slf4j:slf4j-api:1.7.7') { transitive = false }
runtimeOnly('org.slf4j:slf4j-nop:1.7.7') { transitive = false }

testImplementation 'junit:junit:4.13.2'
testImplementation 'org.hamcrest:hamcrest-core:1.3'

testConf 'junit:junit:4.13.2'
testConf 'org.hamcrest:hamcrest-core:1.3'
}

sourceSets {
main {
java.srcDirs = ['src/main/java']
groovy.srcDirs = ['src/main/groovy']
}

test {
java.srcDirs = ['src/test/java']
groovy.srcDirs = ['src/test/groovy']
}
}

tasks.register('main') {
dependsOn 'cleanBuild', 'resolve', 'compileClasses', 'buildPlugin', 'dist', 'runTests'
doLast {
println 'Plugin build complete!'
}
}

tasks.register('cleanBuild') {
description 'Clean build directory, releases directory, and lib directory'
delete buildDir
delete releasesDir
delete libDir

doLast {
mkdir buildDir
}
}

tasks.register('resolve') {
dependsOn 'cleanBuild'

doFirst {
mkdir libDir
mkdir libBuildDir
mkdir libTestDir
}

doLast {
copy {
from configurations.runtimeClasspath
into libDir
}

copy {
from configurations.buildConf
into libBuildDir
}

copy {
from configurations.testConf
into libTestDir
}
}
}

tasks.register('compileClasses') {

dependsOn 'resolve', 'compileJava', 'compileGroovy'

doLast {

mkdir libBuildClassesDir
mkdir buildJavaDir

copy {
from sourceSets.main.output.classesDirs
into libBuildClassesDir
}

copy {
from('src/main/java') {
include '**/*.properties'
}
into libBuildClassesDir
}

copy {
from 'src/main/java/com/ibm/rational/deploy/Hadoop/messages.properties'
into "$libBuildClassesDir/com/ibm/rational/deploy/Hadoop"
}

println 'Classes compiled successfully'
}
}

tasks.register('buildPlugin') {

dependsOn 'resolve'

doLast {

mkdir buildPluginDir

// Copy plugin metadata files
copy {
from('plugin') {
include 'info.xml'
include 'upgrade.xml'
include 'plugin.xml'
}
into buildPluginDir
}

// Copy all src/ files (excl. groovy/, java/, test/ sub-dirs) to plugin root.
// src/*.groovy scripts land here – UCD agent expects them at the plugin root.
copy {
from('src') {
exclude '**/groovy/**'
exclude '**/java/**'
exclude '**/test/**'
}
into buildPluginDir
}

// Copy license
copy {
from('license') {
include 'EPL.txt'
}
into "$buildPluginDir/license"
}

// Copy documentation
copy {
from('doc') {
include 'HowTo.html'
}
into "$buildPluginDir/doc"
}

// Copy libraries
copy {
from('lib') {
exclude '**/build/**'
exclude '**/test/**'
}
into "$buildPluginDir/lib"
}

// Copy Groovy source files
copy {
from('src/groovy') {
include '**/*.groovy'
}
into "$buildPluginDir/classes"
}

// Copy compiled Java classes
copy {
from("$buildDir/classes/java/main") {
include '**/*.class'
}
into "$buildPluginDir/classes"
}
}
}

tasks.register('dist', Zip) {
description = 'Create distribution zip'
dependsOn 'resolve', 'buildPlugin'
archiveFileName = "${pluginName}-v${version}.zip"
destinationDirectory = releasesDir
from buildPluginDir
doLast {
println '[zip] Building zip: ' + file("$releasesDir/${pluginName}-v${version}.zip")
}
}

tasks.register('runTests') {
description = 'Compile and run JUnit tests ()'
dependsOn 'compileTests', 'test'
}

tasks.register('compileTests') {
description = 'Compile test Java classes (equivalent to Ant compile-tests)'
dependsOn 'compileClasses', 'compileTestJava'
}

test {
useJUnit()

reports {
junitXml.required = true
html.required = true

junitXml.outputLocation = layout.projectDirectory.dir("releases/report/xml")
html.outputLocation = layout.projectDirectory.dir("releases/report/html")
}

testLogging {
events "passed", "failed", "skipped"
}
}



Loading