// Note that this is also declared in the main build.gradle for
// subprojects, but since evaluationDependsOnChildren is enabled we
// need to declare it here too
apply plugin: 'osgi'

description = """\
Smack core components."""

ext {
	xmlUnitVersion = "2.6.0"
	powerMockVersion = "1.7.3"
}

dependencies {
	compile 'xpp3:xpp3:1.1.4c'
	compile "org.jxmpp:jxmpp-core:$jxmppVersion"
	compile "org.jxmpp:jxmpp-jid:$jxmppVersion"
	compile "org.minidns:minidns-core:$miniDnsVersion"
	testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests"
	testCompile "org.junit.jupiter:junit-jupiter-api:$junitVersion"
	testCompile "org.junit.vintage:junit-vintage-engine:$junitVersion"
	testCompile "org.xmlunit:xmlunit-core:$xmlUnitVersion"
	testCompile "org.xmlunit:xmlunit-legacy:$xmlUnitVersion"
	testCompile "org.powermock:powermock-module-junit4:$powerMockVersion"
	testCompile "org.powermock:powermock-module-junit4-rule:$powerMockVersion"
	testCompile "org.powermock:powermock-api-mockito2:$powerMockVersion"
	testCompile 'com.jamesmurty.utils:java-xmlbuilder:1.2'
	testCompile 'net.iharder:base64:2.3.8'
}

class CreateFileTask extends DefaultTask {
	@Input
	String fileContent

	@OutputFile
	File outputFile

	@TaskAction
	def createFile() {
		outputFile.text = fileContent
	}
}

task createVersionResource(type: CreateFileTask) {
	fileContent = version + ' (' + gitCommit + ' ' + builtDate + ')'
	outputFile = new File(projectDir, 'src/main/resources/org.jivesoftware.smack/version')
}

compileJava.dependsOn(createVersionResource)

jar {
  manifest {
    instruction 'DynamicImport-Package', '*'
  }
}