Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55944

Remove JAXB dependencies for better Java 11 readiness

    Details

    • Epic Name:
      Remove JAXB dependencies for better Java 11 readiness
    • Similar Issues:

      Description

      As explained in https://issues.jenkins-ci.org/browse/JENKINS-51965?focusedCommentId=357813&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-357813, there are a lot of JAXB usages in the Jenkins ecosystem.

      Copied here:

      286 "coverity-plugin"
      194 "inflectra-spira-integration-plugin"
      105 "zephyr-enterprise-test-management-plugin"
      24 "codebeamer-coverage-publisher-plugin"
      21 "codesonar-plugin"
      14 "java-client-api"
      13 "packageversion-plugin"
      9 "performance-signature-dynatrace-plugin"
      9 "hp-operations-orchestration-plugin"
      8 "meliora-testlab-plugin"
      8 "mabl-integration-plugin"
      8 "jelly"
      8 "app.io-plugin"
      7 "sloccount-plugin"
      7 "jira-issues-versioning-plugin"
      7 "dom4j"
      6 "extras-ec2-launcher"
      6 "dynatrace-plugin"
      5 "xlrelease-plugin"
      5 "xcode-plugin"
      5 "libdtkit"
      5 "github-coverage-reporter-plugin"
      4 "zanata-plugin"
      3 "cppcheck-plugin"
      2 "ucm4svn-plugin"
      2 "tfs-plugin"
      2 "stride-notification-plugin"
      2 "refit-plugin"
      2 "notification-plugin"
      2 "maven-metadata-plugin"
      2 "hp-quality-center-plugin"
      2 "ec2-deployment-dashboard"
      2 "docker-workflow-plugin"
      2 "docker"
      1 "windows-azure-storage-plugin"
      1 "timestamper-plugin"
      1 "testinium-plugin"
      1 "testcomplete-plugin"
      1 "testcomplete11-xunit-plugin"
      1 "qualityclouds-plugin"
      1 "policycenter-gate-validator-plugin"
      1 "pipeline-aws-plugin"
      1 "performance-plugin"
      1 "maven-hudson-dev-plugin"
      1 "maven-artifact-choicelistprovider-plugin"
      1 "localization-plugin"
      1 "klocwork-plugin"
      1 "jwsdp-sqe-plugin"
      1 "job-import-plugin"
      1 "jenkow-plugin"
      1 "jclouds-plugin"
      1 "jaxb-plugin"
      1 "ibm-cloud-devops-plugin"
      1 "fortify360-plugin"
      1 "dtkit-plugin"
      1 "agile-cockpit-notification-plugin"
      1 "acceptance-test-harness"
      

      It should be ideally removed to make things unlikely to fail.
      A few usages are actually even only a JAXB API usage of base 64 conversions API, which can be replaced by java.util.Base64. For example https://github.com/jenkinsci/instance-identity-module/pull/11 shows such a usage removal.

        Attachments

          Issue Links

            Activity

            Hide
            batmat Baptiste Mathus added a comment -

            Analyzed this a bit further manually:

            Deprecated plugins/tools

            286 "coverity-plugin" (Cf. https://plugins.jenkins.io/coverity)
            6 "extras-ec2-launcher": last commit 10 years ago, likely should be archived

            Actually using JAXB for its marshalling/unmarshalling features

            194 "inflectra-spira-integration-plugin"
            105 "zephyr-enterprise-test-management-plugin"
            24 "codebeamer-coverage-publisher-plugin"
            21 "codesonar-plugin"
            13 "packageversion-plugin"
            9 "performance-signature-dynatrace-plugin"
            9 "hp-operations-orchestration-plugin"
            8 "meliora-testlab-plugin"
            8 "mabl-integration-plugin"
            8 "app.io-plugin"
            7 "jira-issues-versioning-plugin"
            6 "dynatrace-plugin"
            5 "xlrelease-plugin"
            5 "xcode-plugin"
            5 "libdtkit" (last released 4 years ago, only used apparently in dtkit-plugin)
            5 "github-coverage-reporter-plugin"
            4 "zanata-plugin"
            3 "cppcheck-plugin"
            2 "ucm4svn-plugin"
            2 "refit-plugin"
            2 "maven-metadata-plugin"
            2 "hp-quality-center-plugin"
            2 "ec2-deployment-dashboard"
            1 "testcomplete-plugin"
            1 "maven-artifact-choicelistprovider-plugin"
            1 "localization-plugin"
            1 "klocwork-plugin"
            1 "jenkow-plugin"
            1 "fortify360-plugin"

            7 "sloccount-plugin" JENKINS-55620

            1 "performance-plugin" JENKINS-55942

            Usages (probably) removable (DatatypeConverter base 64 encoding, etc.)

            2 "stride-notification-plugin" no usage actually, filed https://github.com/jenkinsci/stride-notification-plugin/pull/1
            2 "docker-workflow-plugin" (only used in demo)
            1 "qualityclouds-plugin" (used only in a comment)
            1 "maven-hudson-dev-plugin" (used only in an IT)
            1 "jwsdp-sqe-plugin" (xml file in src/test)

            DatatypeConverter usages

            2 "tfs-plugin" JENKINS-55941
            2 "notification-plugin"
            1 "windows-azure-storage-plugin"
            1 "timestamper-plugin" (and only used in tests)
            1 "testinium-plugin"
            1 "testcomplete11-xunit-plugin"
            1 "policycenter-gate-validator-plugin"
            1 "pipeline-aws-plugin"
            1 "job-import-plugin"
            1 "jclouds-plugin"
            1 "ibm-cloud-devops-plugin"
            1 "agile-cockpit-notification-plugin"

            Projects where JAXB issue not applicable (not running in Jenkins, etc.)

            14 "java-client-api" (client side API for interacting with Jenkins)
            2 "docker" (the occurrences are normal switches for running on Java 11)
            1 "jaxb-plugin": expected
            1 "dtkit-plugin" actually an exclusion in the pom, so JAXB is *not* a dependency https://github.com/jenkinsci/dtkit-plugin/blob/2c42cd5a57d78ca1c3eff76918b72aeadc761b44/pom.xml#L103-L116
            1 "acceptance-test-harness" (Java 11 runtime options, so expected)

            To be analyzed further/undecided

            8 "jelly": IIUC, there's a marshal tag. I suppose we could (should?) simply delete it.
            7 "dom4j"

            Show
            batmat Baptiste Mathus added a comment - Analyzed this a bit further manually: Deprecated plugins/tools 286 "coverity-plugin" (Cf. https://plugins.jenkins.io/coverity ) 6 "extras-ec2-launcher": last commit 10 years ago, likely should be archived Actually using JAXB for its marshalling/unmarshalling features 194 "inflectra-spira-integration-plugin" 105 "zephyr-enterprise-test-management-plugin" 24 "codebeamer-coverage-publisher-plugin" 21 "codesonar-plugin" 13 "packageversion-plugin" 9 "performance-signature-dynatrace-plugin" 9 "hp-operations-orchestration-plugin" 8 "meliora-testlab-plugin" 8 "mabl-integration-plugin" 8 "app.io-plugin" 7 "jira-issues-versioning-plugin" 6 "dynatrace-plugin" 5 "xlrelease-plugin" 5 "xcode-plugin" 5 "libdtkit" (last released 4 years ago, only used apparently in dtkit-plugin) 5 "github-coverage-reporter-plugin" 4 "zanata-plugin" 3 "cppcheck-plugin" 2 "ucm4svn-plugin" 2 "refit-plugin" 2 "maven-metadata-plugin" 2 "hp-quality-center-plugin" 2 "ec2-deployment-dashboard" 1 "testcomplete-plugin" 1 "maven-artifact-choicelistprovider-plugin" 1 "localization-plugin" 1 "klocwork-plugin" 1 "jenkow-plugin" 1 "fortify360-plugin" 7 "sloccount-plugin" JENKINS-55620 1 "performance-plugin" JENKINS-55942 Usages (probably) removable (DatatypeConverter base 64 encoding, etc.) 2 "stride-notification-plugin" no usage actually, filed https://github.com/jenkinsci/stride-notification-plugin/pull/1 2 "docker-workflow-plugin" (only used in demo) 1 "qualityclouds-plugin" (used only in a comment) 1 "maven-hudson-dev-plugin" (used only in an IT) 1 "jwsdp-sqe-plugin" (xml file in src/test) DatatypeConverter usages 2 "tfs-plugin" JENKINS-55941 2 "notification-plugin" 1 "windows-azure-storage-plugin" 1 "timestamper-plugin" (and only used in tests) 1 "testinium-plugin" 1 "testcomplete11-xunit-plugin" 1 "policycenter-gate-validator-plugin" 1 "pipeline-aws-plugin" 1 "job-import-plugin" 1 "jclouds-plugin" 1 "ibm-cloud-devops-plugin" 1 "agile-cockpit-notification-plugin" Projects where JAXB issue not applicable (not running in Jenkins, etc.) 14 "java-client-api" (client side API for interacting with Jenkins) 2 "docker" (the occurrences are normal switches for running on Java 11) 1 "jaxb-plugin": expected 1 "dtkit-plugin" actually an exclusion in the pom, so JAXB is * not * a dependency https://github.com/jenkinsci/dtkit-plugin/blob/2c42cd5a57d78ca1c3eff76918b72aeadc761b44/pom.xml#L103-L116 1 "acceptance-test-harness" (Java 11 runtime options, so expected) To be analyzed further/undecided 8 "jelly": IIUC, there's a marshal tag. I suppose we could (should?) simply delete it. 7 "dom4j"

              People

              • Assignee:
                Unassigned
                Reporter:
                batmat Baptiste Mathus
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: