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

Reply via email to