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

ext {
	xmlUnitVersion = '2.6.2'
}

dependencies {
	compile project(':smack-xmlparser')
	compile "org.jxmpp:jxmpp-core:$jxmppVersion"
	compile "org.jxmpp:jxmpp-jid:$jxmppVersion"
	compile "org.minidns:minidns-core:$miniDnsVersion"
	testCompile project(':smack-xmlparser-stax')
	testCompile project(':smack-xmlparser-xpp3')
	testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests"
	testCompile "org.xmlunit:xmlunit-core:$xmlUnitVersion"
	// Explictily add assertj-core which is a dependency of
	// xmlunit-assertj, but gradle fails to resolves it with:
	// Execution failed for task ':smack-core:compileTestJava'.
	// > Could not resolve all files for configuration ':smack-core:testCompileClasspath'.
	//    > Could not find org.assertj:assertj-core:.
	//		 Required by:
	//			 project :smack-core > org.xmlunit:xmlunit-assertj:2.6.2
	testCompile "org.assertj:assertj-core:3.11.1"
	testCompile "org.xmlunit:xmlunit-assertj:$xmlUnitVersion"
	testCompile 'com.jamesmurty.utils:java-xmlbuilder:1.2'
}

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)
