Removing third party jars from gwt-servlet.jar.

Review at http://gwt-code-reviews.appspot.com/1047802

Review by: jat@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9136 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/distro-source/build.xml b/distro-source/build.xml
index 1bb9439..7918e52 100755
--- a/distro-source/build.xml
+++ b/distro-source/build.xml
@@ -22,6 +22,7 @@
       <zipfileset file="${gwt.build.lib}/gwt-dev.jar" prefix="${project.distname}" />
       <zipfileset file="${gwt.build.lib}/gwt-user.jar" prefix="${project.distname}" />
       <zipfileset file="${gwt.build.lib}/gwt-servlet.jar" prefix="${project.distname}" />
+      <zipfileset file="${gwt.build.lib}/gwt-servlet-deps.jar" prefix="${project.distname}" />
       <zipfileset file="${gwt.build.lib}/gwt-benchmark-viewer.war" prefix="${project.distname}" />
       <zipfileset file="${gwt.build.lib}/gwt-soyc-vis.jar" prefix="${project.distname}" />
       <zipfileset file="${gwt.build.lib}/gwt-api-checker.jar" prefix="${project.distname}" />
diff --git a/samples/validation/build.xml b/samples/validation/build.xml
index 03f7a24..6c25136 100755
--- a/samples/validation/build.xml
+++ b/samples/validation/build.xml
@@ -20,7 +20,9 @@
     <pathelement location="${gwt.tools.lib}/javax/xml/stream/stax-api-1.0-2.jar" />
   </path>
   <fileset id="sample.server.libs" dir="${gwt.tools.lib}">
+    <include name="javax/validation/validation-api-1.0.0.GA-sources.jar" />
     <include name="hibernate/validator/hibernate-validator-4.1.0.Final.jar" />
+    <include name="hibernate/validator/hibernate-validator-4.1.0.Final-sources.jar" />
     <include name="apache/log4j/log4j-1.2.16.jar" />
     <include name="slf4j/slf4j-api/slf4j-api-1.6.1.jar" />
     <include name="slf4j/slf4j-log4j12/slf4j-log4j12-1.6.1.jar" />
diff --git a/servlet/build.xml b/servlet/build.xml
index 6440445..5a90138 100755
--- a/servlet/build.xml
+++ b/servlet/build.xml
@@ -7,7 +7,18 @@
   <property.ensure name="gwt.user.build" location="${gwt.build.out}/user" />
   <property.ensure name="gwt.user.bin" location="${gwt.user.build}/bin" />
 
-  <target name="build" description="Packages this project into a jar">
+  <property name="project.lib.deps"
+      location="${gwt.build.lib}/gwt-${ant.project.name}-deps.jar" />
+
+  <target name="build" description="Packages this project into a jar"
+      depends="-servlet, -deps" />
+
+  <target name="clean" description="Cleans this project's intermediate and output files">
+    <delete file="${project.lib}" />
+    <delete file="${project.lib.deps}" />
+  </target>
+
+  <target name="-servlet" description="Packages this project into a jar">
     <mkdir dir="${gwt.build.lib}" />
     <gwt.jar>
       <fileset dir="${gwt.user.bin}">
@@ -21,13 +32,15 @@
         <exclude name="com/google/gwt/junit/server/**" />
         <exclude name="com/google/gwt/benchmarks/*" />
       </fileset>
+    </gwt.jar>
+  </target>
+
+  <target name="-deps" description="Packages this project's dependencies into a jar">
+    <mkdir dir="${gwt.build.lib}" />
+    <gwt.jar destfile="${project.lib.deps}">
       <!-- The following two jars satisfy RequestFactory dependencies. -->
       <zipfileset src="${gwt.tools.redist}/json/r2_20080312/json-1.5.jar" />
       <zipfileset src="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" />
     </gwt.jar>
   </target>
-
-  <target name="clean" description="Cleans this project's intermediate and output files">
-    <delete file="${project.lib}" />
-  </target>
 </project>
diff --git a/user/src/com/google/gwt/user/tools/WebAppCreator.java b/user/src/com/google/gwt/user/tools/WebAppCreator.java
index e02f4d7..4b8debc 100644
--- a/user/src/com/google/gwt/user/tools/WebAppCreator.java
+++ b/user/src/com/google/gwt/user/tools/WebAppCreator.java
@@ -369,6 +369,15 @@
     replacements.put("@testFolder", testFolder);
     replacements.put("@warFolder", warFolder);
 
+    // Add command to copy gwt-servlet-deps.jar into libs, unless this is a
+    // maven project. Maven projects should include libs as maven dependencies.
+    String copyServletDeps = "";
+    if (!maven) {
+      copyServletDeps = "<copy todir=\"" + warFolder + "/WEB-INF/lib\" "
+          + "file=\"${gwt.sdk}/gwt-servlet-deps.jar\" />";
+    }
+    replacements.put("@copyServletDeps", copyServletDeps);
+
     // Collect the list of server libs to include on the eclipse classpath.
     StringBuilder serverLibs = new StringBuilder();
     if (libDir.exists()) {
diff --git a/user/src/com/google/gwt/user/tools/project.ant.xmlsrc b/user/src/com/google/gwt/user/tools/project.ant.xmlsrc
index a1dd654..dacddf7 100644
--- a/user/src/com/google/gwt/user/tools/project.ant.xmlsrc
+++ b/user/src/com/google/gwt/user/tools/project.ant.xmlsrc
@@ -17,6 +17,7 @@
   <target name="libs" description="Copy libs to WEB-INF/lib">
     <mkdir dir="@warFolder/WEB-INF/lib" />
     <copy todir="@warFolder/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet.jar" />
+    @copyServletDeps
     <!-- Add any additional server libs that need to be copied -->
   </target>