Uploaded image for project: 'Aries'
  1. Aries
  2. ARIES-1453

Fragment-Host requirements with version range do not match with FragmentHostCapability

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • subsystem-2.0.6
    • subsystem-2.0.8
    • Subsystem
    • None
    • Patch, Important

    Description

      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.

      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
      
      

      Attachments

        Issue Links

          Activity

            People

              jwross@us.ibm.com John Ross
              tom.dewolf Tom De Wolf
              Votes:
              6 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: