plugins duplicate internal jars

XMLWordPrintable

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Minor
    • Component/s: plugin-proposals
    • None

      I'm not sure if this is actually fixable, but I wanted to record it just in case. I am exploring building my own hudson.war using m-war-p overlay mechanism. One of the things I do is remove stuff which is not important to my team, e.g. NLS, slaves, and cli; but I'd also like to just install the plugins that I know we're going to be using anyway. One of the things that irritates me is that there is a lot of duplication of support jars in the plugins we have installed.. perhaps each plugin has its own classloader? I'm not sure, but justifying having duplicated jars lingering around in each plugin is going to require justification of that kind of strength!

      Some example command output will illustrate:

      $ pushd $HUDSON_HOME
      $ ls *.hpi
      analysis-core.hpi
      checkstyle.hpi
      cobertura.hpi
      cvs.hpi
      dry.hpi
      findbugs.hpi
      greenballs.hpi
      instant-messaging.hpi
      ircbot.hpi
      jabber.hpi
      javancss.hpi
      jdepend.hpi
      maven-plugin.hpi
      pmd.hpi
      scis-ad.hpi
      ssh-slaves.hpi
      subversion.hpi
      tasks.hpi
      violations.hpi
      warnings.hpi

      $ less *.hpi | grep 'WEB-INF/lib' | grep jar | cut c 59 | sort
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/annotations-1.3.9.jar
      WEB-INF/lib/ant-1.6.jar
      WEB-INF/lib/asm-3.1.jar
      WEB-INF/lib/classworlds-1.1.jar
      WEB-INF/lib/commons-codec-1.2.jar
      WEB-INF/lib/commons-codec-1.2.jar
      WEB-INF/lib/commons-httpclient-3.1-rc1.jar
      WEB-INF/lib/commons-httpclient-3.1.jar
      WEB-INF/lib/commons-lang-2.4.jar
      WEB-INF/lib/commons-logging-1.0.4.jar
      WEB-INF/lib/commons-logging-1.1.jar
      WEB-INF/lib/commons-validator-1.1.4.jar
      WEB-INF/lib/dom4j-1.6.1.jar
      WEB-INF/lib/doxia-core-1.0-alpha-4.jar
      WEB-INF/lib/doxia-core-1.1.1.jar
      WEB-INF/lib/doxia-logging-api-1.1.1.jar
      WEB-INF/lib/doxia-module-xhtml-1.1.1.jar
      WEB-INF/lib/doxia-sink-api-1.0-alpha-10.jar
      WEB-INF/lib/doxia-sink-api-1.0-alpha-4.jar
      WEB-INF/lib/doxia-sink-api-1.1.1.jar
      WEB-INF/lib/icu4j-2.6.1.jar
      WEB-INF/lib/java2html-5.0.jar
      WEB-INF/lib/java2html-5.0.jar
      WEB-INF/lib/jaxen-1.1.1.jar
      WEB-INF/lib/jdepend-2.9.1.jar
      WEB-INF/lib/jdepend-maven-plugin-2.0-beta-2.jar
      WEB-INF/lib/jdom-1.0.jar
      WEB-INF/lib/jsch-0.1.27.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/jsr305-1.3.9.jar
      WEB-INF/lib/library-1.3.9.jar
      WEB-INF/lib/maven-agent-1.357.jar
      WEB-INF/lib/maven-artifact-2.0.9.jar
      WEB-INF/lib/maven-artifact-2.0.jar
      WEB-INF/lib/maven-artifact-manager-2.0.9.jar
      WEB-INF/lib/maven-artifact-manager-2.0.jar
      WEB-INF/lib/maven-core-2.0.9.jar
      WEB-INF/lib/maven-embedder-2.0.4-hudson-1.jar
      WEB-INF/lib/maven-embedder-2.0.4.jar
      WEB-INF/lib/maven-error-diagnostics-2.0.9.jar
      WEB-INF/lib/maven-interceptor-1.357.jar
      WEB-INF/lib/maven-model-2.0.9.jar
      WEB-INF/lib/maven-model-2.0.jar
      WEB-INF/lib/maven-monitor-2.0.9.jar
      WEB-INF/lib/maven-plugin-api-2.0.9.jar
      WEB-INF/lib/maven-plugin-api-2.0.jar
      WEB-INF/lib/maven-plugin-descriptor-2.0.9.jar
      WEB-INF/lib/maven-plugin-parameter-documenter-2.0.9.jar
      WEB-INF/lib/maven-plugin-registry-2.0.9.jar
      WEB-INF/lib/maven-profile-2.0.9.jar
      WEB-INF/lib/maven-profile-2.0.jar
      WEB-INF/lib/maven-project-2.0.9.jar
      WEB-INF/lib/maven-project-2.0.jar
      WEB-INF/lib/maven-reporting-api-2.0.9.jar
      WEB-INF/lib/maven-reporting-api-2.0.jar
      WEB-INF/lib/maven-reporting-impl-2.0.jar
      WEB-INF/lib/maven-repository-metadata-2.0.9.jar
      WEB-INF/lib/maven-repository-metadata-2.0.9.jar
      WEB-INF/lib/maven-settings-2.0.9.jar
      WEB-INF/lib/maven2.1-interceptor-1.2.jar
      WEB-INF/lib/oro-2.0.7.jar
      WEB-INF/lib/pircbot-1.4.6.jar
      WEB-INF/lib/plexus-classworlds-1.2-alpha-9.jar
      WEB-INF/lib/plexus-container-default-1.0-alpha-30.jar
      WEB-INF/lib/plexus-container-default-1.0-alpha-9-stable-1.jar
      WEB-INF/lib/plexus-interactivity-api-1.0-alpha-4.jar
      WEB-INF/lib/plexus-utils-1.5.1.jar
      WEB-INF/lib/plexus-utils-1.5.15.jar
      WEB-INF/lib/pmd-4.2.4.jar
      WEB-INF/lib/slide-webdavlib-2.1.jar
      WEB-INF/lib/smack-3.1.0.jar
      WEB-INF/lib/smackx-3.1.0.jar
      WEB-INF/lib/svnkit-1.3.0-hudson-4.jar
      WEB-INF/lib/wagon-file-1.0-beta-2.jar
      WEB-INF/lib/wagon-http-lightweight-1.0-beta-2.jar
      WEB-INF/lib/wagon-http-shared-1.0-beta-2.jar
      WEB-INF/lib/wagon-provider-api-1.0-beta-2.jar
      WEB-INF/lib/wagon-provider-api-1.0-beta-2.jar
      WEB-INF/lib/wagon-ssh-1.0-beta-2.jar
      WEB-INF/lib/wagon-ssh-common-1.0-beta-2.jar
      WEB-INF/lib/wagon-ssh-external-1.0-beta-2.jar
      WEB-INF/lib/wagon-webdav-1.0-beta-2-hudson-1.jar
      WEB-INF/lib/xalan-2.7.1.jar
      WEB-INF/lib/xercesImpl-2.6.2.jar
      WEB-INF/lib/xercesImpl-2.8.1.jar
      WEB-INF/lib/xercesImpl-2.8.1.jar
      WEB-INF/lib/xml-apis-1.3.02.jar
      WEB-INF/lib/xml-apis-1.3.03.jar
      WEB-INF/lib/xml-apis-1.3.03.jar
      WEB-INF/lib/xml-im-exporter-1.1.jar
      WEB-INF/lib/xmlParserAPIs-2.6.2.jar
      WEB-INF/lib/xom-1.0.jar
      WEB-INF/lib/xpp3-1.1.3.3.jar

      When I unpack each hpi into its own directory and then run du -h, I get 38M; when I unpack each hpi into the same directory, and allow the zip to overwrite existing JARs and then run du -h, I get 35M. This is about a 8% size savings...

            Assignee:
            Unassigned
            Reporter:
            jieryn
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated: