Thanks for the update Raman, it could help other users ;)
Regards
JB
On 02/03/2016 09:04 AM, Raman Gupta wrote:
Got this figured out with some help on IRC from jbonofre. For future
posterity, the solution was to
1) add the framework to the verify <configuration>:
<distribution>org.apache.karaf.features:framework</distribution>
<framework>
<feature>framework</feature>
</framework>
2) add the framework feature as a descriptor
3) ensure the org.apache.karaf.features.framework kar artifact is in
the dependencies with compile scope.
A good working demo:
https://github.com/rocketraman/test-karaf-verify/blob/master/test-verify/pom.xml
Regards,
Raman
On 01/28/2016 11:33 AM, Raman Gupta wrote:
Thanks JB, here is a simple test case:
https://github.com/rocketraman/test-karaf-verify
Just run "mvn install" to see the issue.
Then, at
https://github.com/rocketraman/test-karaf-verify/blob/master/dist/pom.xml#L41
comment out the feature-with-slf4j and uncomment feature-without-slf4j
to see that verification succeeds when slf4j is not a dependency.
Regards,
Raman
On 01/28/2016 10:31 AM, Jean-Baptiste Onofré wrote:
Hi Raman,
Can you share both your pom.xml (as you already did) and your
features.xml ?
I gonna fix that for you.
Thanks,
Regards
JB
On 01/28/2016 04:27 PM, Raman Gupta wrote:
JB, no problem, thanks for your help. Nope that does not work. All my
features that use wrap already have wrap declared.
I think I have this narrowed down a bit more. I eliminated any
features that use wrap, and created the simplest possible features to
test. I see that:
- if a feature contains a bundle that declares an import of
org.slf4j;version="[1.7,2)" then the verification fails with the error:
missing requirement [my-bundle/1.0.0.SNAPSHOT] osgi.wiring.package;
filter:="(&(osgi.wiring.package=org.slf4j)(version>=1.7.0)(!(version>=2.0.0)))"]
- if a feature contains a bundle that does not declare an import on
org.slf4j, then the verification succeeds
So, for some reason, perhaps the verification framework isn't loading
the logging bundle?
Interestingly, I tried adding <feature
prerequisite="true">log</feature> to the feature under verification,
but it just pushed the problem back by one system bundle. Instead of
the error above, I got:
missing requirement [org.apache.karaf.log.core/4.0.4]
osgi.wiring.package;
filter:="(&(osgi.wiring.package=org.ops4j.pax.logging.spi)(version>=1.8.0)(!(version>=2.0.0)))"]
Thoughts?
Regards,
Raman
On 01/28/2016 08:25 AM, Jean-Baptiste Onofré wrote:
Hi Raman,
sorry I missed your message.
As your com.myorg* feature needs wrap, and you validate transitive,
wrap feature should be part of the verify list/definition.
Your features should define the wrap feature as dependency="true".
Regards
JB
On 01/28/2016 02:18 PM, Raman Gupta wrote:
Was the pom below helpful in any way to understanding this issue?
Thanks,
Raman
On 01/26/2016 01:00 PM, Raman Gupta wrote:
Here you go:
http://pastebin.com/4F13xSp9
Regards,
Raman
On 01/26/2016 12:40 PM, Jean-Baptiste Onofré wrote:
Can you share your pom.xml ?
Thanks,
Regards
JB
On 01/26/2016 06:39 PM, Raman Gupta wrote:
I didn't, but adding those does not help. I also tried adding
slf4j-api >= 1.6.0 as suggested by the error message. Still fails
with
the same error. I tried both the pom <dependencies> section as
well as
the plugin <dependencies>.
Regards,
Raman
On 01/26/2016 12:24 PM, Jean-Baptiste Onofré wrote:
Hi Raman,
Can you check if standard feature dependency is present in the
pom.xml
and with compile as scope ?
Basically, you should have:
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>framework</artifactId>
<version>4.0.4</version>
<type>kar</type>
</dependency>
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>standard</artifactId>
<version>4.0.4</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
in your pom.xml.
Is it the case ?
Thanks,
Regards
JB
On 01/26/2016 06:18 PM, Raman Gupta wrote:
I am trying to use karaf-maven-plugin version 4.0.4 to verify a
feature, but always get the following error:
Message: Unable to resolve root: missing requirement [root]
osgi.identity; osgi.identity=wrap; type=karaf.feature;
version=0;
filter:="(&(osgi.identity=wrap)(type=karaf.feature)(version>=0.0.0))"
[caused by: Unable to resolve wrap/0.0.0: missing requirement
[wrap/0.0.0] osgi.identity;
osgi.identity=org.ops4j.pax.url.wrap;
type=osgi.bundle; version="[2.4.5,2.4.5]"; resolution:=mandatory
[caused by: Unable to resolve org.ops4j.pax.url.wrap/2.4.5:
missing
requirement [org.ops4j.pax.url.wrap/2.4.5] osgi.wiring.package;
filter:="(&(osgi.wiring.package=org.slf4j)(version>=1.6.0)(!(version>=2.0.0)))"]]
It seems that the pax wrap feature is not being loaded by the
verifier
(wrap is used in my features.xml).
I don't specify a custom config.properties, so the default is
being
used, which should load the wrap feature.
Any ideas?
Regards,
Raman Gupta
--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com