buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'me.champeau.gradle:gradle-javadoc-hotfix-plugin:0.1'
        classpath 'me.champeau.gradle:japicmp-gradle-plugin:0.1.0'
        classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
    }
}

ext {
    libs = [
            gson: 'com.google.code.gson:gson:2.8.5',
            hamcrestCore: 'org.hamcrest:hamcrest-core:1.3',
            hamcrestLibrary: 'org.hamcrest:hamcrest-library:1.3',
            jacksonDatabind: 'com.fasterxml.jackson.core:jackson-databind:2.9.8',
            jettison: 'org.codehaus.jettison:jettison:1.3.7',
            jsonOrg: 'org.json:json:20140107',
            jsonSmart: 'net.minidev:json-smart:2.3',
            slf4jApi: 'org.slf4j:slf4j-api:1.7.26',
            tapestryJson: 'org.apache.tapestry:tapestry-json:5.4.4',

            test: [
                    'commons-io:commons-io:2.4',
                    'junit:junit:4.12',
                    'org.assertj:assertj-core:3.11.1',
                    'org.hamcrest:hamcrest-core:1.3',
                    'org.hamcrest:hamcrest-library:1.3',
                    'org.slf4j:slf4j-simple:1.7.26'
            ]
    ]
    snapshotVersion = false
}

allprojects {
    ext.displayName = null
    ext.buildTimestamp = new Date().format('yyyy-MM-dd HH:mm:ss')

    group = 'com.jayway.jsonpath'
    version = '2.4.0' + (snapshotVersion ? "-SNAPSHOT" : "")

    if (JavaVersion.current().isJava8Compatible()) {
        tasks.withType(Javadoc) {
            options.addStringOption('Xdoclint:none', '-quiet')
        }
    }
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'signing'
    apply plugin: 'osgi'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        mavenCentral()
    }

    task javadocJar(type: Jar) {
        classifier = 'javadoc'
        from javadoc
    }

    task sourcesJar(type: Jar) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }

    signing {
        required { !snapshotVersion && gradle.taskGraph.hasTask("uploadArchives") }
        sign configurations.archives
    }

    artifacts {
        archives jar, javadocJar, sourcesJar
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.1'
}

//Task used by Heroku for staging
task stage(dependsOn: [':json-path-web-test:clean', 'json-path-web-test:jar', 'json-path-web-test:shadowJar']) {}
apply from: "$rootDir/gradle/binaryCompatibility.gradle"