10730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustbuildscript {
229fe72fdd875a57dab0cccb099b0165917853749Cédric Beust
329fe72fdd875a57dab0cccb099b0165917853749Cédric Beust    def a_user = hasProperty('artifactory_user') ? artifactory_user : System.getenv('artifactory_user')
429fe72fdd875a57dab0cccb099b0165917853749Cédric Beust    def a_password = hasProperty('artifactory_password') ? artifactory_password : System.getenv('artifactory_password')
529fe72fdd875a57dab0cccb099b0165917853749Cédric Beust
60730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    repositories {
70730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust        mavenCentral()
80730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust        jcenter()
90730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust        maven {
100730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust            url 'http://dl.bintray.com/cbeust/maven'
11576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust        }
12576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust        maven {
13576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust            url 'http://oss.jfrog.org/artifactory/plugins-release'
14576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust            credentials {
1529fe72fdd875a57dab0cccb099b0165917853749Cédric Beust                username = "${a_user}"
1629fe72fdd875a57dab0cccb099b0165917853749Cédric Beust                password = "${a_password}"
17576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust            }
18576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust        }
19576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust    }
20576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust
21576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust    dependencies {
22576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust        //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
23576120b7b9592579b3c9f05c568768a28586bf59Cédric Beust        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3"
24551ccd571179729f2dd8d15302ce91ee8ea04014Cédric Beust        classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3"
2539aaf03f378d6071b1882f74faf154658cef643dJulien Herr        classpath "com.netflix.nebula:gradle-extra-configurations-plugin:3.0.3"
260730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    }
270730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
280730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
290730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustplugins {
30ef1fd54842adfc84ce67df6626c52da34c2869d0Cédric Beust    id "com.jfrog.bintray" version "1.2"
3184697c02645295aa3e9f4ac2a7c75db9071264b4Cédric Beust    id "com.jfrog.artifactory" version "3.1.1"
32141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr    id "org.sonarqube" version "1.0"
330730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
340730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
3564349ff6098837b588dc9548d9bfcc1b6ae7fe63Cédric Beustversion = '6.9.10-SNAPSHOT'
360730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
370730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustapply plugin: 'java'
3839aaf03f378d6071b1882f74faf154658cef643dJulien Herrapply plugin: 'nebula.optional-base'
3939aaf03f378d6071b1882f74faf154658cef643dJulien Herrapply plugin: 'nebula.provided-base'
40c642de6d1ec569829597f5b003eeffbfefe0d914Cédric Beust
41c642de6d1ec569829597f5b003eeffbfefe0d914Cédric BeusttargetCompatibility = "1.7"
42c642de6d1ec569829597f5b003eeffbfefe0d914Cédric BeustsourceCompatibility = "1.7"
43c642de6d1ec569829597f5b003eeffbfefe0d914Cédric Beust
44800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIREapply plugin: 'osgi'
450730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
460730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustrepositories {
470730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    mavenCentral()
480730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    jcenter()
490730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    maven {
500730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust        url 'http://dl.bintray.com/cbeust/maven'
510730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    }
520730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
530730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
540730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustdependencies {
550730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    compile 'org.beanshell:bsh:2.0b4'
560730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    compile 'com.beust:jcommander:1.48'
57a685f868e937be2449d5c140be00da3fbbf78aaaJulien Herr
58a685f868e937be2449d5c140be00da3fbbf78aaaJulien Herr    compile 'org.apache.ant:ant:1.7.0', optional
59a685f868e937be2449d5c140be00da3fbbf78aaaJulien Herr    compile 'junit:junit:4.10', optional
6039aaf03f378d6071b1882f74faf154658cef643dJulien Herr    compile 'org.yaml:snakeyaml:1.15', optional
610730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
62a685f868e937be2449d5c140be00da3fbbf78aaaJulien Herr    provided 'com.google.inject:guice:4.0:no_aop'
63a685f868e937be2449d5c140be00da3fbbf78aaaJulien Herr
640730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    testCompile 'org.assertj:assertj-core:2.0.0'
650730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    testCompile 'org.testng:testng:6.9.4'
660730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
670730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
680730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beusttask sourceJar(type: Jar) {
690730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    group 'Build'
700730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    description 'An archive of the source code'
710730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    classifier 'sources'
720730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    from sourceSets.main.allSource
730730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
740730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
750730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustartifacts {
760730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    sourceJar
770730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
780730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
790730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beustimport org.apache.tools.ant.filters.ReplaceTokens
800730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
8198fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beustdef generatedSourcesFolder = projectDir.toString() + '/src/generated/java'
8298fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust
8398fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beustdef dirFrom = projectDir.toString() + '/src/main/resources/org/testng/internal'
8498fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beustdef dirTo = generatedSourcesFolder + "/org/testng/internal"
8598fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beustdef fileFrom = 'VersionTemplateJava'
8698fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beustdef fileTo = 'Version.java'
8798fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust
880730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beusttask removeVersion {
8998fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust    delete dirTo + fileTo
900730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
910730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
9271f679780443e4a425c831261fc34fcad9e2a48bCédric BeustsourceSets {
9371f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    generated {
9471f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        java {
9571f679780443e4a425c831261fc34fcad9e2a48bCédric Beust            srcDir 'src/generated/java'
9671f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        }
9771f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        resources {
9871f679780443e4a425c831261fc34fcad9e2a48bCédric Beust            srcDir 'src/generated/resources'
9971f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        }
10071f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    }
10171f679780443e4a425c831261fc34fcad9e2a48bCédric Beust}
1020730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
10371f679780443e4a425c831261fc34fcad9e2a48bCédric BeustsourceSets {
10471f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    main {
10571f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        compileClasspath += generated.output
10671f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        runtimeClasspath += generated.output
10771f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    }
10871f679780443e4a425c831261fc34fcad9e2a48bCédric Beust}
1090730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
11071f679780443e4a425c831261fc34fcad9e2a48bCédric Beustgradle.projectsEvaluated {
11171f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    compileJava.dependsOn(myDir)
11271f679780443e4a425c831261fc34fcad9e2a48bCédric Beust}
11371f679780443e4a425c831261fc34fcad9e2a48bCédric Beust
1140730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beusttask myDir {
11598fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust    delete dirTo + "/" + fileTo
11698fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust    mkdir(dirTo)
1170730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
1180730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust
1196583ca9cbacee5b49542ea7fc56763821ade93d8Cédric Beust// Include the generated Version.class in the jar
1206583ca9cbacee5b49542ea7fc56763821ade93d8Cédric Beustjar {
121800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE    manifest {
122800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE        instruction 'Bundle-License', 'http://apache.org/licenses/LICENSE-2.0'
123800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE        instruction 'Bundle-Description', 'TestNG is a testing framework.'
124800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE        instruction 'Import-Package',
125800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'bsh.*;version="[2.0.0,3.0.0)";resolution:=optional',
126800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'com.beust.jcommander.*;version="[1.7.0,3.0.0)";resolution:=optional',
127800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'com.google.inject.*;version="[1.2,1.3)";resolution:=optional',
128800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'junit.framework;version="[3.8.1, 5.0.0)";resolution:=optional',
129800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'org.junit.*;resolution:=optional',
130800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'org.apache.tools.ant.*;version="[1.7.0, 2.0.0)";resolution:=optional',
131800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            'org.yaml.*;version="[1.6,2.0)";resolution:=optional',
132800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            '!com.beust.testng',
133800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            '!org.testng.*',
134800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            '!com.sun.*',
135800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE            '*'
136800cb344c485f3e3347bc2aa4dbcdcd2ea96493eMathieu SEBIRE    }
1376583ca9cbacee5b49542ea7fc56763821ade93d8Cédric Beust    from "$buildDir/classes/generated"
1386583ca9cbacee5b49542ea7fc56763821ade93d8Cédric Beust}
1396583ca9cbacee5b49542ea7fc56763821ade93d8Cédric Beust
1400730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beusttask createVersion(type: Copy, dependsOn: myDir) {
1410730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    println("Creating Version file: ${version} in ${dirTo}")
1420730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    from dirFrom
14398fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust    include fileFrom
1440730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    into(dirTo)
14598fbd6d632235232e33efcc1c6222c0fe85a23fbCédric Beust    rename(fileFrom, fileTo)
1460730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust    filter(ReplaceTokens, tokens: [version: version])
14771f679780443e4a425c831261fc34fcad9e2a48bCédric Beust}
14871f679780443e4a425c831261fc34fcad9e2a48bCédric Beust
14971f679780443e4a425c831261fc34fcad9e2a48bCédric BeustcompileJava.dependsOn(createVersion)
15071f679780443e4a425c831261fc34fcad9e2a48bCédric Beust
15171f679780443e4a425c831261fc34fcad9e2a48bCédric Beusttest {
15271f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    useTestNG() {
15371f679780443e4a425c831261fc34fcad9e2a48bCédric Beust        suites 'src/test/resources/testng.xml'
15471f679780443e4a425c831261fc34fcad9e2a48bCédric Beust    }
155962f7ad1044abb42355e0c787121f1cc8f90d583Cédric Beust//    testLogging.showStandardStreams = true
156a9e2d61d35529552a81a59498bf4c8c416412a8dKrishnan Mahadevan    systemProperties = System.getProperties()
157a9e2d61d35529552a81a59498bf4c8c416412a8dKrishnan Mahadevan    systemProperties['test.resources.dir'] = 'build/resources/test/'
1580730d08ad0b4812c5b2a798729cb7b6cc618dc9bCédric Beust}
1598771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust
1608771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beustif (JavaVersion.current().isJava8Compatible()) {
1618771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust    allprojects {
1628771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust        tasks.withType(Javadoc) {
1638771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust            options.addStringOption('Xdoclint:none', '-quiet')
1648771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust        }
1658771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust    }
1668771b43ff24110c794fc9045d2d24268dc35bb39Cédric Beust}
16701794396ac49704e552ba07e6817752e02e90b9dCédric Beust
168141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herrsonarqube {
169141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr    properties {
170141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr        property "sonar.host.url", "http://nemo.sonarqube.org"
171141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr        property "sonar.analysis.mode", "preview"
172141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr        property "sonar.github.repository", "cbeust/testng"
173141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr        property "sonar.github.login", "testng-bot"
174141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr    }
175141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr}
176141d3ae5084a3a2d9c182cab6c366cc89eded6aaJulien Herr
17701794396ac49704e552ba07e6817752e02e90b9dCédric Beustapply from: 'gradle/publishing.gradle'
178