Hi,

let me give you a short summary of the background / the situation I
run into the problem:

There is an Eclipse project "Eclipse SmartHome" (ESH) that provides a
framework / a collection of bundles that could be used to create a
smarthome system (open source, commercial, whatever / doesn't matter).
The project is using (AFAIK common for Eclipse projects) the Manifest
first approach.
So, no tool that creates the manifest, but handwritten (with Eclipse
PDE support) manifests.
The OSGi version that is choosen by the project is OSGi R4.2.

There is no "Provide-Capability" used ATM and I don't think any
developer will maintain this one.
I am a committer of that project, but I don't think I am able to
change the manifest first approach.

I have created Karaf feature some time ago for the Eclipse SmartHome
project that could be consumed by products / custom distributions,
because I like Karaf and would like to support the usage of Karaf and
Eclipse SmartHome.
* 
https://github.com/eclipse/smarthome/blob/master/features/karaf/src/main/feature/feature.xml
* 
https://github.com/eclipse/smarthome/blob/master/features/karaf-tp/src/main/feature/feature.xml

As written above, the bundles are missing the Provide-Capability
entries in their manifest.

The project is under development and there are a lot of changes all the time.
The developers will not add (IMHO) this entries to the manifest.
I have no time to check every commit and add / remove / change
"Capability" nodes in the ESH Feature XML all the time.

The products that are using Karaf and the ESH features provides
bundles and features itself.
Some of that bundles are created using the maven-bundle-plugin, the
bnd-maven-plugin, Bndtools, ...
That bundles have a Require-Capability entry in their manifest.

The products create features for their bundles / functions and depend
on the Eclipse SmartHome feature.

As the ESH Karaf Features are using "dependency" attributes in their
XML they need to use >= v1.3.0.

The problem is, that the feature verification (regardless if it is
used by the karaf-maven-plugin or at runtime on feature installation)
fails with K406 but works with K405.

I already learned that it has been a bug that the feature verification
has been working using XML NS1.4.0. It fails with 1.3.0 only but
should fail with >= 1.3.0.
So, it has been working, but it shouldn't. I understand....

> <feature name="foo" serviceRequirements="disable|default|enforce" ...>

That is something I already posted as an idea today on IRC.
Perhaps that would be possible.

I hope you understand the situation I want to describe above.

Have you some tips how what we could do?
I assume the best solution would be if the ESH bundles' manifest have
an "Provide-Capability" entry.
I assume the next best solution would be if the ESH features have an
"Capability" entry.
But what could be done if that "third party" stuff will not be changed?

I don't like to remove the ESH Karaf features from the ESH repo and
drop the support of Karaf features completely.
But I cannot maintain the features and bundles for all the other
developers and I am pretty sure the project will not add this stuff to
their guidelines.

Any tips and help is welcome.

Best regards and thanks for your time,
Markus Rathgeb

Reply via email to