[
https://issues.apache.org/jira/browse/KARAF-1617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Uwe Barthel updated KARAF-1617:
-------------------------------
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|https://github.com/cschneider/Karaf-Tutorial/blob/master/db/datasource/datasource-derby.xml]
and is located in our Maven repository.
I try to install the datasource definition like:
{quote}
bundle:install -s
blueprint:mvn:my.product.database/my.product.database.layer//xml/datasource-hsqldb
{quote}
or via Kara feature:
{quote}
feature:install datasource-hsqldb
{quote}
{code:title=features.xml}
[...]
<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>
[...]
{code}
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/}}.
{code:title=org.apache.karaf.deployer.blueprint.BlueprintTransformer.transform(URL,
OutputStream)}
[...]
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();
[...]
{code}
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.
{code:title=org.apache.aries.blueprint.container.BlueprintExtender.checkBundle(Bundle)}
[...]
addEntries(bundle, name, "*.xml", pathList);
[...]
{code}
was:
We are using the Aries JNDI service for providing database-datasources via JNDI.
The datasource definition is a blueprint-XML file like [this
one|https://github.com/cschneider/Karaf-Tutorial/blob/master/db/datasource/datasource-derby.xml]
and is located in our Maven repository.
I try to install the datasource definition like:
{quote}
bundle:install -s
blueprint:mvn:my.product.database/my.product.database.layer//xml/datasource-hsqldb
{quote}
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/}}.
{code:title=org.apache.karaf.deployer.blueprint.BlueprintTransformer.transform(URL,
OutputStream)}
[...]
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();
[...]
{code}
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.
{code:title=org.apache.aries.blueprint.container.BlueprintExtender.checkBundle(Bundle)}
[...]
addEntries(bundle, name, "*.xml", pathList);
[...]
{code}
> Blueprint deployer in combination with maven URL deployer creates wrong
> OSGi/blueprint/ file
> --------------------------------------------------------------------------------------------
>
> Key: KARAF-1617
> URL: https://issues.apache.org/jira/browse/KARAF-1617
> Project: Karaf
> Issue Type: Bug
> Components: karaf-core
> Affects Versions: 2.2.8
> 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
> Reporter: Uwe Barthel
> Labels: newbie
>
> We are using the Aries JNDI service for providing database-datasources via
> JNDI.
> The datasource definition is a blueprint-XML file like [this
> one|https://github.com/cschneider/Karaf-Tutorial/blob/master/db/datasource/datasource-derby.xml]
> and is located in our Maven repository.
> I try to install the datasource definition like:
> {quote}
> bundle:install -s
> blueprint:mvn:my.product.database/my.product.database.layer//xml/datasource-hsqldb
> {quote}
> or via Kara feature:
> {quote}
> feature:install datasource-hsqldb
> {quote}
> {code:title=features.xml}
> [...]
> <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>
> [...]
> {code}
> 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/}}.
> {code:title=org.apache.karaf.deployer.blueprint.BlueprintTransformer.transform(URL,
> OutputStream)}
> [...]
> 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();
> [...]
> {code}
> 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.
> {code:title=org.apache.aries.blueprint.container.BlueprintExtender.checkBundle(Bundle)}
> [...]
> addEntries(bundle, name, "*.xml", pathList);
> [...]
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira