blob: 88fb20af614f9684b4810cab1adc334561420655 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.groovy.gradle.JarJarTask
plugins {
id 'org.apache.groovy-common'
id 'org.apache.groovy-base'
id 'org.apache.groovy-published-library'
id 'org.apache.groovy-documented'
}
dependencies {
testImplementation testFixtures(project(":"))
}
tasks.named('jarjar') { JarJarTask it ->
def groovyBundleVersion = sharedConfiguration.groovyBundleVersion.get()
def symbolicName = project.name
it.withManifest {
version = groovyBundleVersion
instruction '-nouses', 'true'
instruction 'Export-Package', "*;version=${groovyBundleVersion}"
def folder = file("${projectDir}/src/main/resources/META-INF/services")
if (folder.exists()) {
if (folder.listFiles().count { it.name ==~ /^(?!(org.codehaus.groovy.transform.ASTTransformation)$).*$/ } > 0) {
instruction 'Require-Capability', 'osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)"'
instruction 'Require-Capability', 'osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)"'
folder.eachFileMatch(~/^(?!(org.codehaus.groovy.transform.ASTTransformation)$).*$/) {
instruction 'Require-Capability', "osgi.serviceloader;filter:=\"(osgi.serviceloader=${it.name})\";cardinality:=multiple"
instruction 'Provide-Capability', "osgi.serviceloader;osgi.serviceloader=\"${it.name}\""
}
}
}
}
}