version = '2.3.2'

group = "me.doubledutch"
archivesBaseName = "lazyjson"

apply plugin: 'jacoco'
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'signing'

jacoco {
    toolVersion = "0.7.6.201602180812"
    reportsDir = file("$buildDir/jacoco")
}

jacocoTestReport {
    reports {
        xml.enabled true
    }
}

sourceCompatibility = 1.7
targetCompatibility = 1.7



defaultTasks = ['clean', 'jar']


File javaHome = new File(System.getProperty('java.home'))
logger.lifecycle "Using Java from $javaHome (version ${System.getProperty('java.version')})"

repositories {
    mavenLocal()
    mavenCentral()
}

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

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

dependencies {
    testCompile 'junit:junit:4.12'
}

artifacts {
    archives javadocJar, sourcesJar
}

check{
    dependsOn jacocoTestReport
}

/*
signing {
    sign configurations.archives
}
*/


jar {
    def versionFile = file('./src/main/resources/lazyjson_version.properties')
 
    if(versionFile.canRead()){
        def Properties props=new Properties()
        props.load(new FileInputStream(versionFile))
        def buildNumber=props['BUILD_NUMBER'].toInteger()+1
        props['BUILD_NUMBER']=buildNumber.toString()
        props['BUILD_DATE']=new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'",TimeZone.getTimeZone("UTC")).toString()
        props['BUILD_VERSION']=version
        props.store(versionFile.newWriter(),null)
    }

    baseName="lazyjson"
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    manifest {
        attributes 'Implementation-Title': 'LazyJSON Library', 'Implementation-Version': version
    }
}
/*
uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
            authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
            authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            pom.project {
                name 'LazyJSON'
                packaging 'jar'
                // optionally artifactId can be defined here 
                artifactId 'lazyjson'
                description 'A very fast, very lazy JSON parser for Java.'
                url 'https://github.com/doubledutch/LazyJSON'

                scm {
                  connection 'https://github.com/doubledutch/LazyJSON'
                  developerConnection 'https://github.com/doubledutch/LazyJSON'
                  url 'https://github.com/doubledutch/LazyJSON'
                }

                licenses {
                  license {
                    name 'The Apache License, Version 2.0'
                    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                  }
                }

                developers {
                  developer {
                    id 'kasperjj'
                    name 'Kasper Jeppe Jeppesen'
                    email 'kasper@doubledutch.me'
                  }
                }
            }
        }
    }
}
*/

allprojects {
    tasks.withType(Test).configureEach {
        maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
        if (!project.hasProperty("createReports")) {
            reports.html.required = false
            reports.junitXml.required = false
        }
    }

}
