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

ext {
    libs = [
            slf4jApi: 'org.slf4j:slf4j-api:1.7.10',
            jsonSmart: 'net.minidev:json-smart:2.1.1',
            jacksonDatabind: 'com.fasterxml.jackson.core:jackson-databind:2.4.5',
            gson: 'com.google.code.gson:gson:2.3.1',
            hamcrestCore: 'org.hamcrest:hamcrest-core:1.3',
            hamcrestLibrary: 'org.hamcrest:hamcrest-library:1.3',

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

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

    group = 'com.jayway.jsonpath'
    version = '2.0.1' + (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.6
    targetCompatibility = 1.6

    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 = '2.3'
}

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