apply plugin: "java"
apply plugin: "idea"
apply plugin: 'maven'
apply plugin: 'signing'

sourceCompatibility = 1.8

repositories {
	mavenCentral()
}

dependencies {
	implementation "com.google.code.gson:gson:2.8.9"
	implementation "org.apache.httpcomponents:httpcore:4.4.9"
	implementation "org.apache.httpcomponents:httpclient:4.5.5"

	testImplementation 'org.junit.jupiter:junit-jupiter-api:5.1.0'
	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.1.0'

	testImplementation "org.mockito:mockito-core:2.23.0"
	testImplementation "org.hamcrest:hamcrest-library:1.3"
	testImplementation "nl.jqno.equalsverifier:equalsverifier:3.4.1"
	testImplementation "org.slf4j:slf4j-simple:1.7.25"
	testImplementation "com.pszymczyk.consul:embedded-consul:1.0.2"
}

if (JavaVersion.current().isJava9Compatible()) {
	tasks.withType(JavaCompile).all { options.compilerArgs.addAll(['--release', '8']) }
}

test {
	enableAssertions = true
	useJUnitPlatform()

	testLogging {
		exceptionFormat 'full'
		events "PASSED", "STARTED", "FAILED", "SKIPPED"
		// Set to true if you want to see output from tests
		showStandardStreams false
	}
}

// --------------------------------------------------------------
// Tasks for publishing into Maven Central

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

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

artifacts {
	archives jar
	archives sourcesJar
	archives javadocJar
}

def doUploadArchives = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')
if (doUploadArchives) {
	group = "com.ecwid.consul"
	archivesBaseName = "consul-api"
	version = "1.4.5"

	signing {
		sign configurations.archives
	}

	uploadArchives {
		repositories {
			mavenDeployer {beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

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

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

				pom.project {
					name 'Ecwid Consul API'
					packaging 'jar'
					description 'Java client for Consul HTTP API (http://consul.io)'
					url 'https://github.com/Ecwid/consul-api'

					scm {
						connection 'scm:git:git@github.com:Ecwid/consul-api.git'
						developerConnection 'scm:git:git@github.com:Ecwid/consul-api.git'
						url 'https://github.com/Ecwid/consul-api.git'
					}

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

					developers {
						developer {
							id 'vgv'
							name 'Vasily Vasilkov'
							email 'vgv@ecwid.com'
						}
					}
				}
			}
		}
	}
}
