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

Reply via email to