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

Remove JAXB dependencies for better Java 11 readiness

    XMLWordPrintable

Details

    • Remove JAXB dependencies for better Java 11 readiness

    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

            batmat Baptiste Mathus created issue -
            batmat Baptiste Mathus made changes -
            Field Original Value New Value
            Epic Child JENKINS-55942 [ 197351 ]
            batmat Baptiste Mathus made changes -
            Epic Child JENKINS-55941 [ 197350 ]
            batmat Baptiste Mathus made changes -
            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.

            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.
            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:

            {noformat}
            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"
            {noformat}

            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.

            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"

            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"
            batmat Baptiste Mathus made changes -
            Labels java11 java11 java11-compatibility
            batmat Baptiste Mathus made changes -
            Epic Child JENKINS-55954 [ 197364 ]
            batmat Baptiste Mathus made changes -
            Epic Child JENKINS-55955 [ 197365 ]
            batmat Baptiste Mathus made changes -
            Epic Child JENKINS-55956 [ 197366 ]
            batmat Baptiste Mathus made changes -
            Epic Child JENKINS-55957 [ 197367 ]
            batmat Baptiste Mathus made changes -
            Link This issue is caused by JENKINS-51965 [ JENKINS-51965 ]
            batmat Baptiste Mathus made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            batmat Baptiste Mathus made changes -
            Link This issue relates to JENKINS-55704 [ JENKINS-55704 ]
            mramonleon Ramon Leon made changes -
            Labels java11 java11-compatibility java11 java11-compatibility triaged
            batmat Baptiste Mathus made changes -
            Epic Child JENKINS-56622 [ 198248 ]
            oleg_nenashev Oleg Nenashev made changes -
            Epic Child JENKINS-55572 [ 196736 ]
            oleg_nenashev Oleg Nenashev made changes -
            Epic Child JENKINS-63808 [ 208652 ]
            basil Basil Crow made changes -
            Labels java11 java11-compatibility triaged java11 java11-compatibility jaxb-dependency-missing-classpath triaged
            basil Basil Crow made changes -
            Epic Child JENKINS-62417 [ 206410 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-62170 [ 206100 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-62086 [ 205993 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-59301 [ 201849 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-55941 [ 197350 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-55955 [ 197365 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-59301 [ 201849 ]
            basil Basil Crow made changes -
            Epic Child JENKINS-62417 [ 206410 ]
            basil Basil Crow made changes -
            Labels java11 java11-compatibility jaxb-dependency-missing-classpath triaged java11 jaxb-dependency-missing-classpath
            basil Basil Crow made changes -
            Epic Child JENKINS-63808 [ 208652 ]
            basil Basil Crow added a comment -

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

            basil Basil Crow added a comment - Declaring victory on this epic and moving any remaining tasks to JENKINS-67688 .
            basil Basil Crow made changes -
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            basil Basil Crow added a comment -

            Continued in JENKINS-68446.

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

            People

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

              Dates

                Created:
                Updated:
                Resolved: