Author: limpbizkit
Date: Sat Nov 29 12:45:55 2008
New Revision: 706

Modified:
    trunk/build.xml
    trunk/common.xml
    trunk/extensions/assistedinject/build.xml
    trunk/extensions/commands/build.xml
    trunk/extensions/multibindings/build.xml
    trunk/extensions/throwingproviders/build.xml
    trunk/servlet/build.xml
    trunk/spring/build.xml
    trunk/struts2/plugin/build.xml

Log:
Fix for issue 254.
http://code.google.com/p/google-guice/issues/detail?id=254

This solution is unfortunate but it works... For each extension like  
assistedinject, we use jarjar to create a .jar with all dependencies  
embedded. This classes in this jar have "imports" that point at  
the .internal versions of our libraries.

Then we create a second jar that's a copy of the first without the  
internal/ package. This way Guice only includes one copy of collections,  
etc.

It would be convenient if jarjar had a feature where it could remap imports  
without actually embedding 'em.

Modified: trunk/build.xml
==============================================================================
--- trunk/build.xml     (original)
+++ trunk/build.xml     Sat Nov 29 12:45:55 2008
@@ -9,22 +9,12 @@
      <fileset dir="${lib.dir}/build" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
-      classpath="lib/build/jarjar-1.0rc8.jar"/>
-    <mkdir dir="${build.dir}/dist"/>
-    <jarjar jarfile="${build.dir}/dist/guice-${version}.jar"
+
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
+    <jar jarfile="${build.dir}/dist/guice-${version}.jar"
          manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
-      <zipfileset src="lib/build/cglib-2.2.jar"/>
-      <zipfileset src="lib/build/asm-3.1.jar"/>
-      <zipfileset src="lib/build/google-collect-snapshot-20080530.jar"/>
-      <rule pattern="com.google.common.**"  
result="[EMAIL PROTECTED]"/>
-      <rule pattern="net.sf.cglib.**"  
result="[EMAIL PROTECTED]"/>
-      <rule pattern="org.objectweb.asm.**"  
result="[EMAIL PROTECTED]"/>
-      <keep pattern="com.google.inject.**"/>
-    </jarjar>
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"/>
+    </jar>
    </target>

    <target name="dist" depends="distjars, javadoc"
@@ -38,25 +28,25 @@
      <ant antfile="extensions/commands/build.xml" target="distjars"  
inheritAll="false"/>

      <copy toDir="${build.dir}/dist">
-      <fileset dir="servlet/build" includes="*.jar"/>
+      <fileset dir="servlet/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>
      <copy toDir="${build.dir}/dist">
-      <fileset dir="spring/build" includes="*.jar"/>
+      <fileset dir="spring/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>
      <copy toDir="${build.dir}/dist">
-      <fileset dir="struts2/plugin/build" includes="*.jar"/>
+      <fileset dir="struts2/plugin/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>
      <copy toDir="${build.dir}/dist">
-      <fileset dir="extensions/assistedinject/build" includes="*.jar"/>
+      <fileset dir="extensions/assistedinject/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>
      <copy toDir="${build.dir}/dist">
-      <fileset dir="extensions/throwingproviders/build" includes="*.jar"/>
+      <fileset dir="extensions/throwingproviders/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>
      <copy toDir="${build.dir}/dist">
-      <fileset dir="extensions/multibindings/build" includes="*.jar"/>
+      <fileset dir="extensions/multibindings/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>
      <copy toDir="${build.dir}/dist">
-      <fileset dir="extensions/commands/build" includes="*.jar"/>
+      <fileset dir="extensions/commands/build" includes="*.jar"  
excludes="*-with-deps.jar"/>
      </copy>

      <copy toDir="${build.dir}/dist" file="COPYING"/>
@@ -69,7 +59,7 @@
      </copy>

      <zip destfile="${build.dir}/guice-${version}.zip">
-      <zipfileset dir="${build.dir}/dist" prefix="guice-${version}"/>
+      <zipfileset dir="${build.dir}/dist" prefix="guice-${version}"  
excludes="*-src.jar"/>
      </zip>
      <zip destfile="${build.dir}/guice-${version}-src.zip">
        <zipfileset dir="." prefix="guice-${version}-src"

Modified: trunk/common.xml
==============================================================================
--- trunk/common.xml    (original)
+++ trunk/common.xml    Sat Nov 29 12:45:55 2008
@@ -104,4 +104,22 @@
        depends="source.jar, jar"
        description="Build jar files"/>

+  <target name="jar.withdeps" depends="compile"
+      description="Build jar with dependencies embedded.">
+    <mkdir dir="${build.dir}/dist"/>
+    <dirname property="common.basedir" file="${ant.file.common}"/>
+    <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask"
+        classpath="${common.basedir}/lib/build/jarjar-1.0rc8.jar"/>
+    <jarjar jarfile="${build.dir}/${ant.project.name}-with-deps.jar">
+      <fileset dir="${build.dir}/classes"/>
+      <zipfileset src="${common.basedir}/lib/build/cglib-2.2.jar"/>
+      <zipfileset src="${common.basedir}/lib/build/asm-3.1.jar"/>
+      <zipfileset  
src="${common.basedir}/lib/build/google-collect-snapshot-20080530.jar"/>
+      <rule pattern="com.google.common.**"  
result="[EMAIL PROTECTED]"/>
+      <rule pattern="net.sf.cglib.**"  
result="[EMAIL PROTECTED]"/>
+      <rule pattern="org.objectweb.asm.**"  
result="[EMAIL PROTECTED]"/>
+      <keep pattern="com.google.inject.**"/>
+    </jarjar>
+  </target>
+
  </project>

Modified: trunk/extensions/assistedinject/build.xml
==============================================================================
--- trunk/extensions/assistedinject/build.xml   (original)
+++ trunk/extensions/assistedinject/build.xml   Sat Nov 29 12:45:55 2008
@@ -10,12 +10,11 @@
      <fileset dir="../../build/dist" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


Modified: trunk/extensions/commands/build.xml
==============================================================================
--- trunk/extensions/commands/build.xml (original)
+++ trunk/extensions/commands/build.xml Sat Nov 29 12:45:55 2008
@@ -10,12 +10,11 @@
      <fileset dir="../../build/dist" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


Modified: trunk/extensions/multibindings/build.xml
==============================================================================
--- trunk/extensions/multibindings/build.xml    (original)
+++ trunk/extensions/multibindings/build.xml    Sat Nov 29 12:45:55 2008
@@ -10,12 +10,11 @@
      <fileset dir="../../build/dist" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


Modified: trunk/extensions/throwingproviders/build.xml
==============================================================================
--- trunk/extensions/throwingproviders/build.xml        (original)
+++ trunk/extensions/throwingproviders/build.xml        Sat Nov 29 12:45:55 2008
@@ -10,12 +10,11 @@
      <fileset dir="../../build/dist" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


Modified: trunk/servlet/build.xml
==============================================================================
--- trunk/servlet/build.xml     (original)
+++ trunk/servlet/build.xml     Sat Nov 29 12:45:55 2008
@@ -12,12 +12,11 @@
      <fileset dir="../build/dist" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


Modified: trunk/spring/build.xml
==============================================================================
--- trunk/spring/build.xml      (original)
+++ trunk/spring/build.xml      Sat Nov 29 12:45:55 2008
@@ -10,12 +10,11 @@
      <fileset dir="../build/dist" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


Modified: trunk/struts2/plugin/build.xml
==============================================================================
--- trunk/struts2/plugin/build.xml      (original)
+++ trunk/struts2/plugin/build.xml      Sat Nov 29 12:45:55 2008
@@ -10,12 +10,11 @@
      <fileset dir="../../servlet/build" includes="*.jar"/>
    </path>

-  <target name="jar" depends="compile, manifest"
-       description="Build jar.">
-    <mkdir dir="${build.dir}"/>
+  <target name="jar" depends="jar.withdeps, manifest" description="Build  
jar.">
      <jar destfile="${build.dir}/${ant.project.name}-${version}.jar"
-         manifest="${build.dir}/META-INF/MANIFEST.MF">
-      <fileset dir="${build.dir}/classes"/>
+        manifest="${build.dir}/META-INF/MANIFEST.MF">
+      <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"
+          excludes="com/google/inject/internal/**"/>
      </jar>
    </target>


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-guice-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to