Oh sorry I mean at runtime you talk about build time. Can you share your Pom 
xml ?

> Le 18 mai 2021 à 21:23, Alex Soto <[email protected]> a écrit :
> 
> Inline comments...
> 
> 
>>> On May 18, 2021, at 12:28 PM, JB Onofré <[email protected]> wrote:
>>> 
>>> Hi Alex
>>> 
>>> The resolver always take the latest release candidates. It was always like 
>>> this. If you use open version range it will take the latest one. 
>>> 
>>> For instance, as reminder, foo/bar/1.0 doesn’t mean only 1.0 but actually 
>>> [1.0,), so it will take the latest version. 
>>> 
>> 
>> 
>> I am afraid this is not what is actually happening.   Both versions appear 
>> in my system directory. Why does it pull both versions and not just one (the 
>> latest)?
>> 
>> But, even if both versions are in the system directory, why is the 
>> dependency not resolved during Karaf startup?  It should find either one, 
>> no?  
>> 
>> 
>> It’s also the case for the features repository. 
>> 
>> So if you don’t want the latest version you have to use [version,version] or 
>> blacklist in etc/org.Apache.Karaf.features.xml. 
>> 
>> Regards 
>> JB
>> 
>>>> Le 18 mai 2021 à 20:18, Alex Soto <[email protected]> a écrit :
>>>> 
>>> 
>>> Hi JB,
>>> 
>>> I wonder how to tie the versions, apparently something changed in the 
>>> resolver, where it is now picking up the latest released version of various 
>>> artifacts, originally it was for wrap but I am now seeing it for others.  
>>> Funny thing is, it was working before, but after version 4.3.2 was 
>>> released, now it is failing.  
>>> 
>>> For example, now I am seeing it happening with the Framework.  Example:
>>> 
>>> 
>>> Unable to resolve framework/4.3.1: missing requirement [framework/4.3.1] 
>>> osgi.identity; osgi.identity=org.apache.karaf.features.extension; 
>>> type=osgi.fragment; version="[4.3.1,4.3.1]"; resolution:=mandatory [caused 
>>> by: Fragment was not selected for attachment: 
>>> org.apache.karaf.features.extension [1](R 1.0)]
>>>     at 
>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>     ... 12 more
>>> Caused by: org.apache.felix.resolver.reason.ReasonException: Fragment was 
>>> not selected for attachment: org.apache.karaf.features.extension [1](R 1.0)
>>>     at 
>>> org.apache.felix.resolver.Candidates$FragmentNotSelectedError.toException(Candidates.java:1305)
>>>     ... 13 more
>>> 
>>> 
>>> This is in the context of Custom Karaf distributions.  I see multiple 
>>> versions being put in the system directory: 
>>> 
>>> $  ls -l 
>>> system/org/apache/karaf/features/org.apache.karaf.features.extension
>>> total 0
>>> drwxr-xr-x. 2 vagrant vagrant 59 May 18 18:04 4.3.1
>>> drwxr-xr-x. 2 vagrant vagrant 59 May 18 18:04 4.3.2
>>> 
>>> So it is pulling version 4.3.2, but I am only referencing 4.3.1 in my Maven 
>>> POM:
>>> 
>>> <dependencies>
>>>     <dependency>
>>>       <groupId>org.apache.karaf.features</groupId>
>>>       <artifactId>framework</artifactId>
>>>       <version>4.3.1</version>
>>>       <type>kar</type>
>>>       <scope>provided</scope>
>>>     </dependency>
>>>     <dependency>
>>>       <groupId>org.apache.karaf.features</groupId>
>>>       <artifactId>standard</artifactId>
>>>       <version>4.3.1</version>
>>>       <type>xml</type>
>>>       <classifier>features</classifier>
>>>       <scope>provided</scope>
>>>     </dependency>
>>>   </dependencies>
>>> 
>>> 
>>> Even though I am specifying the versions, the karaf-maven-plugin is still 
>>> pulling the newest.  So, the question is, how to control the versions I 
>>> want, and not be surprised by a future Karaf release?   
>>> 
>>> Best regards,
>>> Alex soto
>>> 
>>> 
>>> 
>>> 
>>>> On May 6, 2021, at 11:56 PM, Jean-Baptiste Onofre <[email protected]> 
>>>> wrote:
>>>> 
>>>> Hi Alex,
>>>> 
>>>> Yes, the version is not correct. I would check your feature / pom.xml, 
>>>> maybe you don’t have version defined, so it takes the latest one.
>>>> 
>>>> Regards
>>>> JB
>>>> 
>>>>> Le 6 mai 2021 à 18:56, Alex Soto <[email protected]> a écrit :
>>>>> 
>>>>> 
>>>>> I see…  
>>>>> 
>>>>> Karaf is looking for wrap version 2.6.7, but the version the  framework 
>>>>> feature brings  is version is 2.6.2, so it does not find it.
>>>>> However, I don’t know who is pulling version 2.6.7.  Will search for 
>>>>> that...
>>>>> 
>>>>> Best regards,
>>>>> Alex soto
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> On May 6, 2021, at 10:15 AM, Alex Soto <[email protected]> wrote:
>>>>>> 
>>>>>> Thanks, JB, 
>>>>>> 
>>>>>> but I don’t understand.  When I inspect my 
>>>>>> /etc/org.apache.karaf.features.cfg  file:
>>>>>> 
>>>>>> #
>>>>>> # Comma separated list of features repositories to register by default
>>>>>> #
>>>>>> featuresRepositories = \
>>>>>>     mvn:org.apache.karaf.features/standard/4.3.0/xml/features, \
>>>>>>     mvn:org.apache.karaf.features/framework/4.3.0/xml/features, ...
>>>>>> 
>>>>>> #
>>>>>> # Comma separated list of features to install at startup
>>>>>> #
>>>>>> featuresBoot = \
>>>>>>     (wrap), \
>>>>>>     package/4.3.1, \
>>>>>>     log/4.3.1, \
>>>>>>     ssh/4.3.1, \
>>>>>>     framework/4.3.0, \
>>>>>>     system/4.3.1, \
>>>>>>  ...
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> The framework feature is there.
>>>>>> 
>>>>>> Also there is the jar:  
>>>>>> /system/org/osgi/org.osgi.util.function/1.0.0/org.osgi.util.function-1.0.0.jar
>>>>>>  
>>>>>> 
>>>>>> So, what do I need to do?
>>>>>> 
>>>>>> Best regards,
>>>>>> Alex soto
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On May 6, 2021, at 9:59 AM, Jean-Baptiste Onofre <[email protected]> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> osgi.function is part of the framework feature:
>>>>>>> 
>>>>>>> https://github.com/apache/karaf/blob/main/assemblies/features/framework/src/main/feature/feature.xml#L34
>>>>>>> 
>>>>>>> That’s for Karaf 4.3.1/4.3.2.
>>>>>>> 
>>>>>>> For 4.3.0, it’s there but in version 1.0.0:
>>>>>>> 
>>>>>>> https://repo1.maven.org/maven2/org/apache/karaf/features/framework/4.3.0/framework-4.3.0-features.xml
>>>>>>> 
>>>>>>> Regards
>>>>>>> JB
>>>>>>> 
>>>>>>>> Le 6 mai 2021 à 17:36, Alex Soto <[email protected]> a écrit :
>>>>>>>> 
>>>>>>>> Hello,
>>>>>>>> 
>>>>>>>> Using a custom distribution, based on  Karaf version 4.3.0, I am 
>>>>>>>> getting the following error, and Karaf would not start:
>>>>>>>> 
>>>>>>>> 
>>>>>>>> $ bin/karaf 
>>>>>>>> org.apache.felix.resolver.reason.ReasonException: Unable to resolve 
>>>>>>>> root: missing requirement [root] osgi.identity; osgi.identity=wrap; 
>>>>>>>> type=karaf.feature; version="[2.6.7,2.6.7]"; 
>>>>>>>> filter:="(&(osgi.identity=wrap)(type=karaf.feature)(version>=2.6.7)(version<=2.6.7))"
>>>>>>>>  [caused by: Unable to resolve wrap/2.6.7: missing requirement 
>>>>>>>> [wrap/2.6.7] osgi.identity; osgi.identity=pax-url-wrap; 
>>>>>>>> type=karaf.feature; version="[2.6.7,2.6.7]" [caused by: Unable to 
>>>>>>>> resolve pax-url-wrap/2.6.7: missing requirement [pax-url-wrap/2.6.7] 
>>>>>>>> osgi.identity; osgi.identity=org.ops4j.pax.url.wrap; type=osgi.bundle; 
>>>>>>>> version="[2.6.7,2.6.7]"; resolution:=mandatory [caused by: Unable to 
>>>>>>>> resolve org.ops4j.pax.url.wrap/2.6.7: missing requirement 
>>>>>>>> [org.ops4j.pax.url.wrap/2.6.7] osgi.wiring.package; 
>>>>>>>> filter:="(&(osgi.wiring.package=org.osgi.util.function)(version>=1.1.0)(!(version>=2.0.0)))"]]]
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:434)
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:421)
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:375)
>>>>>>>>        at 
>>>>>>>> org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
>>>>>>>>        at 
>>>>>>>> org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:392)
>>>>>>>>        at 
>>>>>>>> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062)
>>>>>>>>        at 
>>>>>>>> org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998)
>>>>>>>>        at 
>>>>>>>> java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>>>>>>>>        at 
>>>>>>>> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>>>>>>>>        at 
>>>>>>>> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>>>>>>>>        at java.base/java.lang.Thread.run(Thread.java:829)
>>>>>>>> Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to 
>>>>>>>> resolve wrap/2.6.7: missing requirement [wrap/2.6.7] osgi.identity; 
>>>>>>>> osgi.identity=pax-url-wrap; type=karaf.feature; 
>>>>>>>> version="[2.6.7,2.6.7]" [caused by: Unable to resolve 
>>>>>>>> pax-url-wrap/2.6.7: missing requirement [pax-url-wrap/2.6.7] 
>>>>>>>> osgi.identity; osgi.identity=org.ops4j.pax.url.wrap; type=osgi.bundle; 
>>>>>>>> version="[2.6.7,2.6.7]"; resolution:=mandatory [caused by: Unable to 
>>>>>>>> resolve org.ops4j.pax.url.wrap/2.6.7: missing requirement 
>>>>>>>> [org.ops4j.pax.url.wrap/2.6.7] osgi.wiring.package; 
>>>>>>>> filter:="(&(osgi.wiring.package=org.osgi.util.function)(version>=1.1.0)(!(version>=2.0.0)))"]]
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>>>>>>        ... 12 more
>>>>>>>> Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to 
>>>>>>>> resolve pax-url-wrap/2.6.7: missing requirement [pax-url-wrap/2.6.7] 
>>>>>>>> osgi.identity; osgi.identity=org.ops4j.pax.url.wrap; type=osgi.bundle; 
>>>>>>>> version="[2.6.7,2.6.7]"; resolution:=mandatory [caused by: Unable to 
>>>>>>>> resolve org.ops4j.pax.url.wrap/2.6.7: missing requirement 
>>>>>>>> [org.ops4j.pax.url.wrap/2.6.7] osgi.wiring.package; 
>>>>>>>> filter:="(&(osgi.wiring.package=org.osgi.util.function)(version>=1.1.0)(!(version>=2.0.0)))"]
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>>>>>>        ... 13 more
>>>>>>>> Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to 
>>>>>>>> resolve org.ops4j.pax.url.wrap/2.6.7: missing requirement 
>>>>>>>> [org.ops4j.pax.url.wrap/2.6.7] osgi.wiring.package; 
>>>>>>>> filter:="(&(osgi.wiring.package=org.osgi.util.function)(version>=1.1.0)(!(version>=2.0.0)))"
>>>>>>>>        at 
>>>>>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>>>>>>        ... 14 more
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Java version is:  openjdk version "11.0.11" 2021-04-20 LTS
>>>>>>>> OS:  Linux version 3.10.0-1127.el7.x86_64 
>>>>>>>> ([email protected]) (gcc version 4.8.5 20150623 (Red 
>>>>>>>> Hat 4.8.5-39) (GCC) ) #1 SMP Tue Mar 31 23:36:51 UTC 2020
>>>>>>>> 
>>>>>>>> 
>>>>>>>> I have verified the required jar is present:
>>>>>>>> 
>>>>>>>> $ ls -l system/org/osgi/org.osgi.util.function/1.1.0/
>>>>>>>> total 16
>>>>>>>> -rw-r--r--. 1 vagrant vagrant 14053 May  6 14:49 
>>>>>>>> org.osgi.util.function-1.1.0.jar
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Any help will be appreciated. 
>>>>>>>> 
>>>>>>>> Best regards,
>>>>>>>> Alex soto
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
> 

Reply via email to