Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      Task: Update ProtAnnot so that it can work with main-JDK21.

        Attachments

          Issue Links

            Activity

            Hide
            nfreese Nowlan Freese added a comment -

            I'm following the same logic discussed and applied in IGBF-1906. The changes made in IGBF-1906 were undone by David for ProtAnnot when we were refactoring the app for JDK 21. I am now re-implementing them for the IGB dependencies. By declaring an import-package in the maven-bundle-plugin for the IGB dependencies with just a single version(i.e. 10.0.0), it sets the manifest's import-package version for those IGB dependencies to anything 10.0.0 or greater. Compare this to the normal convention of not passing anything in to the import-package as part of maven-bundle-plugin, which leads to the manifest giving an upper bound of version="[10.0,11)". It would be more "correct" to have the upper bound, as the assumption is that by changing to a new major version we are indicating that there are new changes that would break backwards compatibility. However, it would mean that anytime we changed the major version of IGB, we would need to re-release all apps, whether or not they were compatible.

            Show
            nfreese Nowlan Freese added a comment - I'm following the same logic discussed and applied in IGBF-1906 . The changes made in IGBF-1906 were undone by David for ProtAnnot when we were refactoring the app for JDK 21. I am now re-implementing them for the IGB dependencies. By declaring an import-package in the maven-bundle-plugin for the IGB dependencies with just a single version(i.e. 10.0.0), it sets the manifest's import-package version for those IGB dependencies to anything 10.0.0 or greater. Compare this to the normal convention of not passing anything in to the import-package as part of maven-bundle-plugin, which leads to the manifest giving an upper bound of version="[10.0,11)". It would be more "correct" to have the upper bound, as the assumption is that by changing to a new major version we are indicating that there are new changes that would break backwards compatibility. However, it would mean that anytime we changed the major version of IGB, we would need to re-release all apps, whether or not they were compatible.
            Hide
            ann.loraine Ann Loraine added a comment -

            Yes, I think what you have said is correct. I just wanted to double-check.

            IBM WebSphere Application server documentation writes:

            ...Import-Package: org.apache.commons.logging;version="1.0.4"
            Import-Package
            This header declares the external dependencies of the bundle that the OSGi Framework uses to resolve the bundle. Specific versions or version ranges for each package can be declared. In this example manifest file, the org.apache.commons.logging package is required at Version 1.0.4 or later.

            Link: https://www.ibm.com/docs/en/was/9.0.5?topic=files-example-osgi-bundle-manifest-file

            Show
            ann.loraine Ann Loraine added a comment - Yes, I think what you have said is correct. I just wanted to double-check. IBM WebSphere Application server documentation writes: ...Import-Package: org.apache.commons.logging;version="1.0.4" Import-Package This header declares the external dependencies of the bundle that the OSGi Framework uses to resolve the bundle. Specific versions or version ranges for each package can be declared. In this example manifest file, the org.apache.commons.logging package is required at Version 1.0.4 or later. Link: https://www.ibm.com/docs/en/was/9.0.5?topic=files-example-osgi-bundle-manifest-file
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            The authoritative answer is available from osgi.org:

            If a version range is specified as a single version, it must be interpreted as the range [version, infinity)

            See:

            Show
            ann.loraine Ann Loraine added a comment - - edited The authoritative answer is available from osgi.org: If a version range is specified as a single version, it must be interpreted as the range [version, infinity) See: https://docs.osgi.org/specification/osgi.core/8.0.0/framework.module.html#i3189032 (source of the above quote) https://docs.osgi.org/specification/osgi.core/8.0.0/framework.module.html#framework.module.importpackage
            Hide
            ann.loraine Ann Loraine added a comment -

            All ProtAnnot PR's are now merged.

            Show
            ann.loraine Ann Loraine added a comment - All ProtAnnot PR's are now merged.
            Hide
            nfreese Nowlan Freese added a comment -

            ProtAnnot 10.0.1 has been released to the app store: https://apps.bioviz.org/apps/org.lorainelab.igb.protannot#

            Tested on Mac on IGB 10.0.0 as well as a development version of IGB with the IGB version set to 11. I was able to install and run ProtAnnot from the app store or app manager. The ProtAnnot icon was also visible from either the Tools menu or the right-click menu.

            Closing ticket.

            Show
            nfreese Nowlan Freese added a comment - ProtAnnot 10.0.1 has been released to the app store: https://apps.bioviz.org/apps/org.lorainelab.igb.protannot# Tested on Mac on IGB 10.0.0 as well as a development version of IGB with the IGB version set to 11. I was able to install and run ProtAnnot from the app store or app manager. The ProtAnnot icon was also visible from either the Tools menu or the right-click menu. Closing ticket.

              People

              • Assignee:
                nfreese Nowlan Freese
                Reporter:
                nfreese Nowlan Freese
              • Votes:
                0 Vote for this issue
                Watchers:
                Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: