plugins { id 'org.igniterealtime.smack.java-common-conventions' id 'org.igniterealtime.smack.android-conventions' } description = """\ Smack core components.""" ext { xmlUnitVersion = '2.6.2' } dependencies { api project(':smack-xmlparser') api "org.jxmpp:jxmpp-core:$jxmppVersion" api "org.jxmpp:jxmpp-jid:$jxmppVersion" api "org.minidns:minidns-core:$miniDnsVersion" // TODO: Migrate Junit4 tests to Junit5. testImplementation "org.junit.vintage:junit-vintage-engine:$junitVersion" testFixturesImplementation project(':smack-xmlparser-stax') testFixturesImplementation project(':smack-xmlparser-xpp3') // Bouncy Castle is setup by SmackTestSuite. We deliberately use // 'implementation' here since there is no need to shadow it // outside of the fixtures compilation classpath. That is, no test // should ever setup Bouncy Castle as security provider explicitly. testFixturesImplementation "org.bouncycastle:bcprov-jdk18on:${bouncyCastleVersion}" testFixturesImplementation 'org.apache.commons:commons-lang3:3.10' testFixturesApi "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" testFixturesApi "org.xmlunit:xmlunit-core:$xmlUnitVersion" // Explicitly 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 testFixturesApi "org.assertj:assertj-core:3.11.1" testFixturesApi "org.xmlunit:xmlunit-assertj:$xmlUnitVersion" testFixturesApi 'org.hamcrest:hamcrest-library:2.2' testFixturesApi "com.google.guava:guava:${guavaVersion}" } 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') } processResources.dependsOn(createVersionResource) jar { bundle { bnd( 'DynamicImport-Package': '*', ) } }