Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-2177

Fragment bundles not loaded after second start when using autodeploy



    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: framework-2.0.3
    • Fix Version/s: framework-3.0.0
    • Component/s: Framework
    • Labels:
    • Environment:
      JDK 6, Linux. felix-framework 2.0.3, felix-main 2.0.2.


      After http://hg.netbeans.org/core-main/rev/6a05c30c5d0b, I can translate a NetBeans module suite to OSGi bundles and load them including branding/localization using fragment bundles. For example, with NetBeans' "FeedReader" demo app, org.netbeans.core.startup-*.jar contains a manifest

      Bundle-SymbolicName: org.netbeans.core.startup

      and a resource org/netbeans/core/startup/splash.gif, whereas core_feedreader.jar contains a manifest

      Bundle-SymbolicName: org.netbeans.core.startup-branding
      Fragment-Host: org.netbeans.core.startup

      and a resource org/netbeans/core/startup/splash_feedreader.gif providing branding (akin to localization). At runtime, Bundle.getResource("org/netbeans/core/startup/splash_feedreader.gif") is called before Bundle.getResource("org/netbeans/core/startup/splash.gif") to permit the branding override.

      This all works fine when I create a directory of bundles and launch Felix using -b on that directory, an empty cache dir, and felix.auto.deploy.action=uninstall,install,update,start.

      But when I launch Felix again using the same cache dir (without first deleting its contents), none of the resources from the fragment bundles seem to be available. If I delete the bundle* subdirs of the cache dir - even just the subdirs corresponding to the fragments - before starting Felix then it works, so the problem is really with the bundle cache (as opposed to some problem with the application's own settings).

      Debug printlns show the fragment bundle in state RESOLVED on the first start, INSTALLED thereafter.

      Appending ";fragment-attachment=resolve-time" to the Bundle-SymbolicName of all (non-fragment) bundles in the directory does not have any effect.

      AutoProcessor handling AUTO_DEPLOY_START_VALUE skips fragment bundles, since start() would be illegal on them. But why aren't they resolved as a consequence of their hosts being resolved and started?




            • Assignee:
              rickhall Richard S. Hall
              jglick@netbeans.org Jesse Glick
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: