Make Smack jars OSGi bundles

Fixes SMACK-343 by using bnd instead of the deprecated Gradle
plugin that was previously used and removed in commit
d06f533bb9.
This commit is contained in:
Ingo Bauersachs 2021-10-17 15:57:48 +02:00
parent ec456399b5
commit b675aac81b
5 changed files with 68 additions and 3 deletions

View File

@ -7,6 +7,7 @@ buildscript {
dependencies {
classpath 'org.kordamp.gradle:clirr-gradle-plugin:0.2.2'
classpath "org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.3.1"
classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:6.0.0"
}
}
@ -413,6 +414,7 @@ subprojects {
apply plugin: 'signing'
apply plugin: 'checkstyle'
apply plugin: 'org.kordamp.gradle.clirr'
apply plugin: 'biz.aQute.bnd.builder'
checkstyle {
toolVersion = '8.27'
@ -578,6 +580,12 @@ subprojects*.jar {
manifest {
from sharedManifest
}
bundle {
bnd(
'-removeheaders': 'Tool, Bnd-*',
'-exportcontents': '*',
)
}
}
configure(subprojects - gplLicensedProjects) {

View File

@ -1,3 +1,8 @@
// 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 to have bundle{bnd{...}} available
apply plugin: 'biz.aQute.bnd.builder'
description = """\
Smack core components."""
@ -55,3 +60,11 @@ task createVersionResource(type: CreateFileTask) {
}
compileJava.dependsOn(createVersionResource)
jar {
bundle {
bnd(
'DynamicImport-Package': '*',
)
}
}

View File

@ -1,3 +1,8 @@
// 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 to have bundle{bnd{...}} available
apply plugin: 'biz.aQute.bnd.builder'
description = """\
Smack XML parser using Stax."""
@ -5,3 +10,13 @@ dependencies {
compile project(':smack-xmlparser')
//testCompile project(path: ":smack-xmlparser", configuration: "testRuntime")
}
jar {
bundle {
bnd(
// see http://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.loader.html
'Require-Capability': 'osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)"',
'Provide-Capability': "osgi.serviceloader;osgi.serviceloader=org.jivesoftware.smack.xml.XmlPullParserFactory;register:=org.jivesoftware.smack.xml.stax.StaxXmlPullParserFactory",
)
}
}

View File

@ -1,3 +1,8 @@
// 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 to have bundle{bnd{...}} available
apply plugin: 'biz.aQute.bnd.builder'
description = """\
Smack XML parser using XPP3."""
@ -11,3 +16,13 @@ dependencies {
api project(':smack-xmlparser')
//testCompile project(path: ":smack-xmlparser", configuration: "testRuntime")
}
jar {
bundle {
bnd(
// see http://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.loader.html
'Require-Capability': 'osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)"',
'Provide-Capability': "osgi.serviceloader;osgi.serviceloader=org.jivesoftware.smack.xml.XmlPullParserFactory;register:=org.jivesoftware.smack.xml.xpp3.Xpp3XmlPullParserFactory",
)
}
}

View File

@ -1,2 +1,16 @@
// 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 to have bundle{bnd{...}} available
apply plugin: 'biz.aQute.bnd.builder'
description = """\
Smack XML parser fundamentals"""
jar {
bundle {
bnd(
// see http://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.loader.html
'Require-Capability': 'osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)"',
)
}
}