Tom De Wolf created ARIES-1453: ---------------------------------- Summary: Fragment-Host requirements with version range do not match with FragmentHostCapability Key: ARIES-1453 URL: https://issues.apache.org/jira/browse/ARIES-1453 Project: Aries Issue Type: Bug Components: Subsystem Affects Versions: subsystem-2.0.6 Reporter: Tom De Wolf Priority: Blocker Fix For: subsystem-2.0.8
According to http://wiki.osgi.org/wiki/Fragment-Host we can specify Fragment-host headers using version ranges. When we do that the requirement no longer matches on the capabilities in the aries subsystem implementation. It results in the errors below. Reason for this is that the FragmentHostCapability only uses 'string' attributes which results in versions "9.6.1" and "10.0.0" being compared as if "10.0.0" is earlier than "9.6.1". A bundle host with version 9.6.1 therefore does not match the version range [9.6.0, 10.0.0). It should not do string comparison but have a real 'Version' instance to compare with. {code} Error installing subsystem: org.osgi.service.subsystem.SubsystemException: org.osgi.service.resolver.ResolutionException: Unable to resolve /var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8702582580344751163.zip/ui-main-13.3.1.jar: missing requirement org.apache.aries.subsystem.core.archive.FragmentHostRequirement: namespace=osgi.wiring.host, attributes={}, directives={filter=(&(osgi.wiring.host=be.aca.ui-framework)(&(bundle-version>=9.3.0)(!(bundle-version>=10.0.0))))}, resource=/var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8702582580344751163.zip/ui-main-13.3.1.jar g! at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477) at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403) at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183) at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120) at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92) at org.apache.felix.gogo.shell.Activator.run(Activator.java:75) at java.lang.Thread.run(Thread.java:745) Caused by: org.osgi.service.subsystem.SubsystemException: org.osgi.service.resolver.ResolutionException: Unable to resolve /var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8702582580344751163.zip/ui-main-13.3.1.jar: missing requirement org.apache.aries.subsystem.core.archive.FragmentHostRequirement: namespace=osgi.wiring.host, attributes={}, directives={filter=(&(osgi.wiring.host=be.aca.ui-framework)(&(bundle-version>=9.3.0)(!(bundle-version>=10.0.0))))}, resource=/var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8702582580344751163.zip/ui-main-13.3.1.jar at org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:395) at org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:356) at org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:98) at org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:90) at org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:54) at org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:30) at java.security.AccessController.doPrivileged(Native Method) at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:646) at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:690) at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:278) at org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:65) at be.aca.subsystem.internal.DefaultSubsystemService.installFromRepo(DefaultSubsystemService.java:86) at be.aca.subsystem.internal.DefaultSubsystemService.install(DefaultSubsystemService.java:47) ... 30 more Caused by: org.osgi.service.resolver.ResolutionException: Unable to resolve /var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8702582580344751163.zip/ui-main-13.3.1.jar: missing requirement org.apache.aries.subsystem.core.archive.FragmentHostRequirement: namespace=osgi.wiring.host, attributes={}, directives={filter=(&(osgi.wiring.host=be.aca.ui-framework)(&(bundle-version>=9.3.0)(!(bundle-version>=10.0.0))))}, resource=/var/folders/9b/nqy6w5xs6gz1m1q4g6gpfr_c0000gn/T/inputStreamExtract8702582580344751163.zip/ui-main-13.3.1.jar at org.apache.felix.resolver.Candidates.populateResource(Candidates.java:285) at org.apache.felix.resolver.Candidates.populate(Candidates.java:153) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:148) at org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:373) ... 42 more {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)