Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Web
    • Labels:
      None

      Description

      Currently, the RFC 66 WAR to WAB conversion generates import statements for all discovered dependencies, including those of embedded libraries.

      There are two improvements that should be made even for an initial version:

      • bundle manifests of embedded libraries should be use whenever they exist
      • imports should be generated with "resolution:=optional"

        Activity

        Hide
        Valentin Mahrwald added a comment -

        I agree that we should not change any of the metadata if it supplied and also that mixed OSGi/JEE is going to be quite uncommon.

        The case I had in mind above is a pure legacy JEE war that contains embedded libraries, which happen to supply valid bundle manifests. I think this case will become more common as more utility libraries will be packaged OSGi aware. Here, again going with the philosophy of not changing supplied manifests, we should be taking dependency information for the embedded library from its manifest rather than scanning it.

        Show
        Valentin Mahrwald added a comment - I agree that we should not change any of the metadata if it supplied and also that mixed OSGi/JEE is going to be quite uncommon. The case I had in mind above is a pure legacy JEE war that contains embedded libraries, which happen to supply valid bundle manifests. I think this case will become more common as more utility libraries will be packaged OSGi aware. Here, again going with the philosophy of not changing supplied manifests, we should be taking dependency information for the embedded library from its manifest rather than scanning it.
        Hide
        Guillaume Nodet added a comment -

        I'm not sure to see the value in a mixed OSGi / JEE environment. Either the war is a plain JEE war and we need to scan everything, or it's already an OSGi bundle, and we should not change what the metadata the user decided to put in the war MANIFEST.MF

        Show
        Guillaume Nodet added a comment - I'm not sure to see the value in a mixed OSGi / JEE environment. Either the war is a plain JEE war and we need to scan everything, or it's already an OSGi bundle, and we should not change what the metadata the user decided to put in the war MANIFEST.MF
        Hide
        Valentin Mahrwald added a comment -

        Well, my understanding is that if an embedded library has a bundle manifest then we know exactly what dependencies are optional and which are not. Hence, we can generate non-optional imports for required imports that are not satisfied within the bundle.

        It also saves us from potentially scanning large libraries unnecessarily.

        Admittedly, though this is a lot less important than the general resolution:=optional.

        Show
        Valentin Mahrwald added a comment - Well, my understanding is that if an embedded library has a bundle manifest then we know exactly what dependencies are optional and which are not. Hence, we can generate non-optional imports for required imports that are not satisfied within the bundle. It also saves us from potentially scanning large libraries unnecessarily. Admittedly, though this is a lot less important than the general resolution:=optional.
        Hide
        Guillaume Nodet added a comment -

        How do you plean to use manifests of embedded libraries ? I fail to really see what can be done here.

        Show
        Guillaume Nodet added a comment - How do you plean to use manifests of embedded libraries ? I fail to really see what can be done here.

          People

          • Assignee:
            Unassigned
            Reporter:
            Valentin Mahrwald
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Time Tracking

              Estimated:
              Original Estimate - 24h
              24h
              Remaining:
              Remaining Estimate - 24h
              24h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development