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

group = 'org.dom4j'
archivesBaseName = 'dom4j'
version = '2.0.0'

sourceCompatibility = 1.5

tasks.withType(JavaCompile) + tasks.withType(Javadoc) {
	options.encoding = 'UTF-8'
	options.charSet = options.encoding
}

repositories {
	mavenCentral()
}

dependencies {

	compile(
			'jaxen:jaxen:1.1.6',
	)

	compileOnly(
			'javax.xml.stream:stax-api:1.0-2',
			'net.java.dev.msv:xsdlib:2013.6.1',
			'xpp3:xpp3:1.1.4c',
			'pull-parser:pull-parser:2',
			'javax.xml.bind:jaxb-api:2.2.12',
	)


	testCompile(
			'org.testng:testng:6.8.21',

			'xerces:xercesImpl:2.11.0',
			'xalan:xalan:2.7.2',
	)
}

sourceSets {
	test {
		compileClasspath += configurations.compileOnly
		runtimeClasspath += configurations.compileOnly
	}
}

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

task javadocJar(type: Jar, dependsOn: javadoc) {
	classifier = 'javadoc'
	from javadoc.destinationDir
}

artifacts {
	archives sourcesJar
	archives javadocJar
}

test {
	useTestNG()
}

jacocoTestReport {
	reports {
		xml.enabled true
	}
}

check.dependsOn 'jacocoTestReport'

if (project.hasProperty('ossrhUsername') && project.hasProperty('ossrhPassword')) {
	signing {
		sign configurations.archives
	}

	uploadArchives {
		repositories {
			mavenDeployer {
				beforeDeployment {
					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 'dom4j'
					packaging 'jar'
					description 'flexible XML framework for Java'
					url 'http://dom4j.github.io/'
					licenses {
						license {
							name 'BSD 3-clause New License'
							url 'https://github.com/dom4j/dom4j/blob/master/LICENSE'
						}
					}
					developers {
						developer {
							name 'Filip Jirsák'
							email 'filip@jirsak.org'
							url 'https://github.com/FilipJirsak'
						}
					}
					scm {
						connection 'scm:git:git@github.com:dom4j/dom4j.git'
						developerConnection 'scm:git:git@github.com:dom4j/dom4j.git'
						url 'git@github.com:dom4j/dom4j.git'
					}
				}
			}
		}
	}
}

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