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 >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>>> >>
