Hi!
>> There is an easy way to install bundles.
>> Just use the feature:requirement-add command.
Sounds practical. But then again, I really like the idea of “features”. I like
to see which “feature” is installed and running. If my bundle is only added as
a requirement, then I lose that visibility. Also, having to restart Karaf each
time I want to add a new repository (as is currently the case) is not a very
nice option for me.
In any case, feature:requirement-add is currently not working for me, for 2
reasons…
1) The patch I submitted to allow resolution of resources with relative URLs
only works when
there is one single Repository added to the config file. I am
investigating an updated fix, but:
2) Something odd happens intermittently when I try to add a requirement. Karaf
adds “type=karaf.feature”
even when I express the type as “osgi.bundle”. Example:
karaf@root()> feature:requirement-add ‘osgi.identity=my.bundle;type=osgi.bundle'
Error executing command: Unable to resolve root: missing requirement [root]
osgi.identity; osgi.identity=“osgi.identity=my.bundle;type=osgi.bundle";
type=karaf.feature;
filter:="(&(osgi.identity=osgi.identity=my.bundle;type=osgi.bundle)(type=karaf.feature))”
That filter is very odd, considering that (1) there is no such feature, and (2)
that is not what I asked for.
I tried stepping my way through the code to understand what is happening, but I
am finding it very difficult to navigate. There is too much complexity IMHO and
not enough clarity, at least for an outsider like me.
> You can use the feature service, to install the "top level" feature
> containing the requirements. Then the resolver will install all bundles
> needed from the OBR repo.
I tried this, but unfortunately it appears it won’t work without some more
updates to Karaf.
Problems:
* Added features throws an error if it cannot be corresponded to an existing
“features repository”
* It seems that currently the ONLY way to add a features repository is by
having an actual xml file
(i.e. it cannot be constructed in runtime without artificially creating an
xml file just to satisfy the above constraint)
I am investigating this more now, but if you have any hints, that would be
great.
> To be completely in the line of the feature service it would probably also be
> possible to create a kind of wrapper feature just with the one bundle to pull
> up the rest.
> So bndtools could be used to define everything besides the wrapper feature
> but that would be no big issue as it is quite trivial.
That would be perfect for my use case. That is in effect what I am currently
trying to accomplish. I have just run into the above problems, though. Since I
am not yet very used to the Karaf code base, it takes me a while to understand
what is going on.
I will continue to investigate this kind of wrapper, but any help would be
greatly appreciated. You say this is "trivial", but since I don’t know the code
well, it is taking me a really long time. :-)
Cheers,
=David