- ece-assemble now gives a nice list of the JARs which are duplicates:

  $ ece assemble
  [..]
  [ece#engine-dev1] Duplicates found of library commons-beanutils:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-beanutils-1.8.3.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-beanutils-1.8.0.jar
  [ece#engine-dev1] Duplicates found of library commons-codec:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-codec-1.5.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-codec-1.4.jar
  [ece#engine-dev1] Duplicates found of library commons-collections:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-collections-3.2.1.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-collections-3.2.jar
  [ece#engine-dev1] Duplicates found of library commons-dbcp:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-dbcp-1.4.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-dbcp-1.2.2.jar
  [ece#engine-dev1] Duplicates found of library commons-digester:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-digester-2.1.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-digester-1.6.jar
  [ece#engine-dev1] Duplicates found of library commons-io:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-io-2.1.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-io-1.4.jar
  [ece#engine-dev1] Duplicates found of library commons-lang:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/section-feed/escenic/webapp/plugin/sectionFeed/lib/commons-lang-2.3.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-lang-2.6.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-lang-2.3.jar
- ece-assemble now displays a super-duper summary of duplicate JARs.

  When plugins are built with other 3rd party JAR versions than that
  of ECE, we get duplication in the common app server class loader,
  leading to anything from increased memory consumption to undesired
  runtime behaviour of our components.

  ece assemble has long reported about duplicated JARs (also if you
  have more than one version of the plugin in the plugins folder), but
  it has now the added feature of listing which JARs are actually
  causing the JAR chaos:

  [ece#engine-dev1] Assembling your EAR file...
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/activation-1.1.1.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/activation-1.1.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/lucy/lib/stax-api-1.0.1.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/stax-api-1.0-2.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-codec-1.4.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-codec-1.5.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-collections-3.2.1.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-collections-3.2.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-collections-3.2.1.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-collections-3.2.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-digester-1.6.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-digester-2.1.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-io-1.4.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-io-2.1.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-dbcp-1.2.2.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-dbcp-1.4.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/section-feed/escenic/webapp/plugin/sectionFeed/lib/commons-lang-2.3.jar
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-lang-2.3.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-lang-2.6.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/commons-pool-1.3.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/commons-pool-1.5.6.jar
  [ece#engine-dev1] WARNING These JARs contain (at least some) of the same files:
  [ece#engine-dev1] - /opt/escenic/engine/lib/isorelax-20030108.jar
  [ece#engine-dev1] - /opt/escenic/assemblytool/plugins/community-engine-3.6.2.124119/lib/isorelax-20041111.jar

  The warning message itself is printed in a nice yellow colour :-)

   A wee side note: It does this by looking inside the JARs themselves
   (using unzip instead of jar as it's much much faster). In the
   process, I noticed a number of 3rd party JARs which are shipping
   with the same class files. The XML libraries are the worst
   offenders, but also commons-collection and commons-beanutils doe
   this. Oh well, ece assemble as a white list of JARs with the
   libraries I know about in this respect so the user shouldn't get
   overwhelmed by suspicious warnings, which in fact are harmless.
Merge branch 'master' of github.com:skybert/ece-scripts