You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Ed Hillmann <ed...@gmail.com> on 2015/07/02 05:58:19 UTC

In 4.0.0, can my features.xml install another repository?

Hi.  I have a features.xml that defined my bundles.  My bundles in turn use
code provided from the apache-cxf project.  To date, in order to set up my
karaf instance, I have

- At the console, used feature:repo-add to add the cxf repository
("repo-add cxf")
- At the console, used feature:repo-add to add my own features.xml from a
mvn address
- At the console, used feature:install to install my bundles.  In my
bundles, I have listed <feature version="3.1.0">cxf</feature>

This all works.  However, I was hoping I could skip the first step.  So,
instead of manually installing the cxf repo, have it defined as part of my
features.xml.  It looks like it is possible, at the schema supports it.
So, at the head of my features file, it looks like this...


<features name="${project.artifactId}-${project.version}" xmlns="
http://karaf.apache.org/xmlns/features/v1.3.0">


<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.0/xml/features</repository>



The hope was that now I could just repo-add my own features.xml file, and
the act of installing my feature would in turn add the cxf repo.  But,
that's not happening.  When I attempt to feature:install my bundles (which
depend on cxf), I get this error:

Error executing command: Unable to resolve root: missing requirement [root]
osgi.identity; osgi.identity=cxf; type=karaf.feature; version=3.1.0

I dare say that, if I manually add the cxf repo, this will then work fine.

Should this work?  If so, am I doing something wrong?  Is there another
command I should be running?

Thanks for any help,
Ed

Re: In 4.0.0, can my features.xml install another repository?

Posted by Ed Hillmann <ed...@gmail.com>.
Hi.  An update.  When I changed by namespace to v1.2.0, it worked exactly
as I had hoped.  For those scoring at home, I changed the declaration of my
features.xml file to look like this:

<features name="${project.artifactId}-${project.version}" xmlns="
http://karaf.apache.org/xmlns/features/v1.2.0">

<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.0/xml/features</repository>

Once I did that, I could install the cxf feature as part of my own.  Again,
exactly what I was after.

Thanks heaps for the help!

Ed

On Thu, Jul 2, 2015 at 10:06 PM, Ed Hillmann <ed...@gmail.com> wrote:

> Hi.  Thanks for the feedback.  I actually had it at 1.0 originally, but
> then tried 1.3 for no reason.  I'll try 1.2 and see if that makes a
> difference.  Thanks again for the nudge in the right direction.  I'll let
> you know how I go
>
> On Thu, Jul 2, 2015 at 5:02 PM, Achim Nierbeck <bc...@googlemail.com>
> wrote:
>
>> Hi,
>>
>> you're doing it right, this is the prefered way of referencing another
>> feature in your own feature.
>> With Karaf 4 we have a new feature-resolver in place which actually works
>> as the bundle resolver.
>> This resolver does a far more strict lookup of the resources to be
>> installed, as it doesn't do you any good to install a bunch of bundles
>> which can't be started anyway because of a missing service etc..
>>
>> Now with your current scenario I'd say we might have an issue with the
>> cxf feature as it doesn't seem to provide some necessary information.
>> I suspect this to be because of a mixture of "feature-versions". So
>> unless you require some new functionalities of the 1.3 namespace try to
>> downgrade your own namespace version to v1.2.0. Cause for Namespaces lower
>> 1.3.0 this new resolving is disabled and it'll just install those features
>> without checking if everything is in place.
>>
>> regards, Achim
>>
>>
>>
>> 2015-07-02 6:22 GMT+02:00 Ed Hillmann <ed...@gmail.com>:
>>
>>> Alternatively, I've tried to define the repo / feature to be started at
>>> boot time, by editing org.apache.karaf.features.cfg.  But that didn't seem
>>> to help.
>>>
>>> ?
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Ed Hillmann <ed...@gmail.com>
>>> Date: Thu, Jul 2, 2015 at 1:58 PM
>>> Subject: In 4.0.0, can my features.xml install another repository?
>>> To: user@karaf.apache.org
>>>
>>>
>>> Hi.  I have a features.xml that defined my bundles.  My bundles in turn
>>> use code provided from the apache-cxf project.  To date, in order to set up
>>> my karaf instance, I have
>>>
>>> - At the console, used feature:repo-add to add the cxf repository
>>> ("repo-add cxf")
>>> - At the console, used feature:repo-add to add my own features.xml from
>>> a mvn address
>>> - At the console, used feature:install to install my bundles.  In my
>>> bundles, I have listed <feature version="3.1.0">cxf</feature>
>>>
>>> This all works.  However, I was hoping I could skip the first step.  So,
>>> instead of manually installing the cxf repo, have it defined as part of my
>>> features.xml.  It looks like it is possible, at the schema supports it.
>>> So, at the head of my features file, it looks like this...
>>>
>>>
>>> <features name="${project.artifactId}-${project.version}" xmlns="
>>> http://karaf.apache.org/xmlns/features/v1.3.0">
>>>
>>>
>>> <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.0/xml/features</repository>
>>>
>>>
>>>
>>> The hope was that now I could just repo-add my own features.xml file,
>>> and the act of installing my feature would in turn add the cxf repo.  But,
>>> that's not happening.  When I attempt to feature:install my bundles (which
>>> depend on cxf), I get this error:
>>>
>>> Error executing command: Unable to resolve root: missing requirement
>>> [root] osgi.identity; osgi.identity=cxf; type=karaf.feature; version=3.1.0
>>>
>>> I dare say that, if I manually add the cxf repo, this will then work
>>> fine.
>>>
>>> Should this work?  If so, am I doing something wrong?  Is there another
>>> command I should be running?
>>>
>>> Thanks for any help,
>>> Ed
>>>
>>>
>>>
>>
>>
>> --
>>
>> Apache Member
>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
>> & Project Lead
>> blog <http://notizblog.nierbeck.de/>
>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>>
>> Software Architect / Project Manager / Scrum Master
>>
>>
>

Re: In 4.0.0, can my features.xml install another repository?

Posted by Ed Hillmann <ed...@gmail.com>.
Hi.  Thanks for the feedback.  I actually had it at 1.0 originally, but
then tried 1.3 for no reason.  I'll try 1.2 and see if that makes a
difference.  Thanks again for the nudge in the right direction.  I'll let
you know how I go

On Thu, Jul 2, 2015 at 5:02 PM, Achim Nierbeck <bc...@googlemail.com>
wrote:

> Hi,
>
> you're doing it right, this is the prefered way of referencing another
> feature in your own feature.
> With Karaf 4 we have a new feature-resolver in place which actually works
> as the bundle resolver.
> This resolver does a far more strict lookup of the resources to be
> installed, as it doesn't do you any good to install a bunch of bundles
> which can't be started anyway because of a missing service etc..
>
> Now with your current scenario I'd say we might have an issue with the cxf
> feature as it doesn't seem to provide some necessary information.
> I suspect this to be because of a mixture of "feature-versions". So unless
> you require some new functionalities of the 1.3 namespace try to downgrade
> your own namespace version to v1.2.0. Cause for Namespaces lower 1.3.0 this
> new resolving is disabled and it'll just install those features without
> checking if everything is in place.
>
> regards, Achim
>
>
>
> 2015-07-02 6:22 GMT+02:00 Ed Hillmann <ed...@gmail.com>:
>
>> Alternatively, I've tried to define the repo / feature to be started at
>> boot time, by editing org.apache.karaf.features.cfg.  But that didn't seem
>> to help.
>>
>> ?
>>
>>
>> ---------- Forwarded message ----------
>> From: Ed Hillmann <ed...@gmail.com>
>> Date: Thu, Jul 2, 2015 at 1:58 PM
>> Subject: In 4.0.0, can my features.xml install another repository?
>> To: user@karaf.apache.org
>>
>>
>> Hi.  I have a features.xml that defined my bundles.  My bundles in turn
>> use code provided from the apache-cxf project.  To date, in order to set up
>> my karaf instance, I have
>>
>> - At the console, used feature:repo-add to add the cxf repository
>> ("repo-add cxf")
>> - At the console, used feature:repo-add to add my own features.xml from a
>> mvn address
>> - At the console, used feature:install to install my bundles.  In my
>> bundles, I have listed <feature version="3.1.0">cxf</feature>
>>
>> This all works.  However, I was hoping I could skip the first step.  So,
>> instead of manually installing the cxf repo, have it defined as part of my
>> features.xml.  It looks like it is possible, at the schema supports it.
>> So, at the head of my features file, it looks like this...
>>
>>
>> <features name="${project.artifactId}-${project.version}" xmlns="
>> http://karaf.apache.org/xmlns/features/v1.3.0">
>>
>>
>> <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.0/xml/features</repository>
>>
>>
>>
>> The hope was that now I could just repo-add my own features.xml file, and
>> the act of installing my feature would in turn add the cxf repo.  But,
>> that's not happening.  When I attempt to feature:install my bundles (which
>> depend on cxf), I get this error:
>>
>> Error executing command: Unable to resolve root: missing requirement
>> [root] osgi.identity; osgi.identity=cxf; type=karaf.feature; version=3.1.0
>>
>> I dare say that, if I manually add the cxf repo, this will then work fine.
>>
>> Should this work?  If so, am I doing something wrong?  Is there another
>> command I should be running?
>>
>> Thanks for any help,
>> Ed
>>
>>
>>
>
>
> --
>
> Apache Member
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
> Project Lead
> blog <http://notizblog.nierbeck.de/>
> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>
> Software Architect / Project Manager / Scrum Master
>
>

Re: In 4.0.0, can my features.xml install another repository?

Posted by Achim Nierbeck <bc...@googlemail.com>.
Hi,

you're doing it right, this is the prefered way of referencing another
feature in your own feature.
With Karaf 4 we have a new feature-resolver in place which actually works
as the bundle resolver.
This resolver does a far more strict lookup of the resources to be
installed, as it doesn't do you any good to install a bunch of bundles
which can't be started anyway because of a missing service etc..

Now with your current scenario I'd say we might have an issue with the cxf
feature as it doesn't seem to provide some necessary information.
I suspect this to be because of a mixture of "feature-versions". So unless
you require some new functionalities of the 1.3 namespace try to downgrade
your own namespace version to v1.2.0. Cause for Namespaces lower 1.3.0 this
new resolving is disabled and it'll just install those features without
checking if everything is in place.

regards, Achim



2015-07-02 6:22 GMT+02:00 Ed Hillmann <ed...@gmail.com>:

> Alternatively, I've tried to define the repo / feature to be started at
> boot time, by editing org.apache.karaf.features.cfg.  But that didn't seem
> to help.
>
> ?
>
>
> ---------- Forwarded message ----------
> From: Ed Hillmann <ed...@gmail.com>
> Date: Thu, Jul 2, 2015 at 1:58 PM
> Subject: In 4.0.0, can my features.xml install another repository?
> To: user@karaf.apache.org
>
>
> Hi.  I have a features.xml that defined my bundles.  My bundles in turn
> use code provided from the apache-cxf project.  To date, in order to set up
> my karaf instance, I have
>
> - At the console, used feature:repo-add to add the cxf repository
> ("repo-add cxf")
> - At the console, used feature:repo-add to add my own features.xml from a
> mvn address
> - At the console, used feature:install to install my bundles.  In my
> bundles, I have listed <feature version="3.1.0">cxf</feature>
>
> This all works.  However, I was hoping I could skip the first step.  So,
> instead of manually installing the cxf repo, have it defined as part of my
> features.xml.  It looks like it is possible, at the schema supports it.
> So, at the head of my features file, it looks like this...
>
>
> <features name="${project.artifactId}-${project.version}" xmlns="
> http://karaf.apache.org/xmlns/features/v1.3.0">
>
>
> <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.0/xml/features</repository>
>
>
>
> The hope was that now I could just repo-add my own features.xml file, and
> the act of installing my feature would in turn add the cxf repo.  But,
> that's not happening.  When I attempt to feature:install my bundles (which
> depend on cxf), I get this error:
>
> Error executing command: Unable to resolve root: missing requirement
> [root] osgi.identity; osgi.identity=cxf; type=karaf.feature; version=3.1.0
>
> I dare say that, if I manually add the cxf repo, this will then work fine.
>
> Should this work?  If so, am I doing something wrong?  Is there another
> command I should be running?
>
> Thanks for any help,
> Ed
>
>
>


-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

Fwd: In 4.0.0, can my features.xml install another repository?

Posted by Ed Hillmann <ed...@gmail.com>.
Alternatively, I've tried to define the repo / feature to be started at
boot time, by editing org.apache.karaf.features.cfg.  But that didn't seem
to help.

?

---------- Forwarded message ----------
From: Ed Hillmann <ed...@gmail.com>
Date: Thu, Jul 2, 2015 at 1:58 PM
Subject: In 4.0.0, can my features.xml install another repository?
To: user@karaf.apache.org


Hi.  I have a features.xml that defined my bundles.  My bundles in turn use
code provided from the apache-cxf project.  To date, in order to set up my
karaf instance, I have

- At the console, used feature:repo-add to add the cxf repository
("repo-add cxf")
- At the console, used feature:repo-add to add my own features.xml from a
mvn address
- At the console, used feature:install to install my bundles.  In my
bundles, I have listed <feature version="3.1.0">cxf</feature>

This all works.  However, I was hoping I could skip the first step.  So,
instead of manually installing the cxf repo, have it defined as part of my
features.xml.  It looks like it is possible, at the schema supports it.
So, at the head of my features file, it looks like this...


<features name="${project.artifactId}-${project.version}" xmlns="
http://karaf.apache.org/xmlns/features/v1.3.0">


<repository>mvn:org.apache.cxf.karaf/apache-cxf/3.1.0/xml/features</repository>



The hope was that now I could just repo-add my own features.xml file, and
the act of installing my feature would in turn add the cxf repo.  But,
that's not happening.  When I attempt to feature:install my bundles (which
depend on cxf), I get this error:

Error executing command: Unable to resolve root: missing requirement [root]
osgi.identity; osgi.identity=cxf; type=karaf.feature; version=3.1.0

I dare say that, if I manually add the cxf repo, this will then work fine.

Should this work?  If so, am I doing something wrong?  Is there another
command I should be running?

Thanks for any help,
Ed