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

Remove JAXB dependencies for better Java 11 readiness

    • Remove JAXB dependencies for better Java 11 readiness

      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.

          [JENKINS-55944] Remove JAXB dependencies for better Java 11 readiness

          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"

          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"

          Basil Crow added a comment -

          Declaring victory on this epic and moving any remaining tasks to JENKINS-67688.

          Basil Crow added a comment - Declaring victory on this epic and moving any remaining tasks to JENKINS-67688 .

          Basil Crow added a comment -

          Continued in JENKINS-68446.

          Basil Crow added a comment - Continued in JENKINS-68446 .

            Unassigned Unassigned
            batmat Baptiste Mathus
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: