Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.2.8
-
Component/s: karaf
-
Environment:
Karaf 2.2.8
- org/apache/karaf/deployer/org.apache.karaf.deployer.blueprint/2.2.8
- org/apache/aries/blueprint/org.apache.aries.blueprint/0.3.2
Description
We are using the Aries JNDI service for providing database-datasources via JNDI.
The datasource definition is a blueprint-XML file like this one and is located in our Maven repository.
I try to install the datasource definition like:
bundle:install -s blueprint:mvn:my.product.database/my.product.database.layer//xml/datasource-hsqldb
or via Kara feature:
feature:install datasource-hsqldb
[...] <feature name="datasource-hsqldb" version="${project.version}" resolver="(obr)"> <feature>hsqldb</feature> <bundle >blueprint:mvn:my.product.database/my.product.database.layer/${project.version}/xml/datasource-hsqldb</bundle> </feature> [...]
The bundle will be installed but the blueprint service was not created.
The blueprint deployer creates a bundle-JAR file and including a new ZipEntry as blueprint service descriptor into OSGi/blueprint/.
[...]
String name = url.getPath();
int idx = name.lastIndexOf('/');
if (idx >= 0) {
name = name.substring(idx + 1);
}
[...]
e = new ZipEntry("OSGI-INF/blueprint/" + name);
out.putNextEntry(e);
// Copy the new DOM
if (tf == null) {
tf = TransformerFactory.newInstance();
}
tf.newTransformer().transform(new DOMSource(doc), new StreamResult(out));
out.closeEntry();
[...]
Based on the mvn: URL the name of the blueprint descriptor file is datasource-hsqldb (w/o the .xml extension).
The blueprint service needs the .xml file extension.
[...]
addEntries(bundle, name, "*.xml", pathList);
[...]