Reviewers: rdayal, cromwellian, skybrian,

Message:
Note that this doesn't address the possible breaking change described by
Brian at
http://code.google.com/p/google-web-toolkit/issues/detail?id=7397

If we need/want to update org.json (latest version is 20090211) and/or
repackage it, we could add it to/after this change.

Switching to "the new JSON lib" won't help much here, unless Closure
Compiler also makes the switch so we can update sourcemaps.jar with a
version that no longer use org.json.

The changes to the Maven POMs are independent from the changes in the
build; and we should really get them in for GWT 2.5.
(I could extract them to another CL if you prefer)

Description:
Bundle org.json in gwt-dev and javax.validation into gwt-user, unbundle
from requestfactory-*

Fixes issue 7397


Please review this at https://gwt-code-reviews.appspot.com/1731804/

Affected files:
  M dev/build.xml
  M distro-source/build.xml
  M maven/lib-gwt.sh
  M maven/poms/gwt/gwt-dev/pom-template.xml
  M maven/poms/gwt/gwt-user/pom-template.xml
  M requestfactory/build.xml
  M user/build.xml
M user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java


Index: dev/build.xml
diff --git a/dev/build.xml b/dev/build.xml
index bb0df88db6c54a5b75f00cd41d2189f7a88588f6..7d99466dffebae2343eb47390d90f8c81ccd239e 100755
--- a/dev/build.xml
+++ b/dev/build.xml
@@ -40,7 +40,6 @@
<pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
         <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
<pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" /> - <pathelement location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" /> <pathelement location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final.jar" /> <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" /> <pathelement location="${gwt.build.lib}/gwt-dev-${build.host.platform}.jar" />
@@ -114,6 +113,9 @@
           <include name="guava/guava-10.0.1/guava-10.0.1-rebased.jar" />
           <include name="jscomp/r1649/compiler-rebased.jar" />
         </fileset>
+        <fileset dir="${gwt.tools.redist}">
+          <include name="json/r2_20080312/json-1.5.jar" />
+        </fileset>
         <fileset file="build.xml"/>
       </sourcefiles>
       <targetfiles>
@@ -179,6 +181,7 @@
<zipfileset src="${gwt.tools.lib}/sun/swingworker/swing-worker-1.1.jar" /> <zipfileset src="${gwt.tools.lib}/guava/guava-10.0.1/guava-10.0.1-rebased.jar" /> <zipfileset src="${gwt.tools.lib}/jscomp/r1649/compiler-rebased.jar" /> + <zipfileset src="${gwt.tools.redist}/json/r2_20080312/json-1.5.jar" />
         </gwt.jar>
       </sequential>
     </outofdate>
Index: distro-source/build.xml
diff --git a/distro-source/build.xml b/distro-source/build.xml
index 791aef689c1fa7c3d9e220b18ae149ea1ce9d648..87beae1a31a7df2b0640e405858f2358134e3ac0 100755
--- a/distro-source/build.xml
+++ b/distro-source/build.xml
@@ -31,10 +31,6 @@
       <!-- jni libs-->
<zipfileset dir="${gwt.build.jni}/windows" prefix="${project.distname}" />

-      <!-- external libs -->
- <zipfileset file="${gwt.tools}/lib/javax/validation/validation-api-1.0.0.GA.jar" prefix="${project.distname}" /> - <zipfileset file="${gwt.tools}/lib/javax/validation/validation-api-1.0.0.GA-sources.jar" prefix="${project.distname}" />
-
       <!-- raw files -->
       <zipfileset dir="${dist.resources}" prefix="${project.distname}" />
       <zipfileset filemode="755" dir="src" prefix="${project.distname}" />
Index: maven/lib-gwt.sh
diff --git a/maven/lib-gwt.sh b/maven/lib-gwt.sh
index c8f54124c7beaa8da412cf00ffdfbf6464dc5e03..c01996e4034d2408f3ce0f9f1a15bb6a779a630c 100644
--- a/maven/lib-gwt.sh
+++ b/maven/lib-gwt.sh
@@ -86,12 +86,17 @@ function maven-gwt() {
     popd > /dev/null
   done

-  # Remove bundled org/json classes from Request Factory jars
-  for i in server client
-  do
-    echo "Removing org.json classes from requestfactory-${i}"
-    zip -d $GWT_EXTRACT_DIR/requestfactory-${i}.jar org/json/*
-  done
+  echo "Removing org.json classes from gwt-dev"
+  zip -d $GWT_EXTRACT_DIR/gwt-dev.jar org/json/*
+
+  echo "Removing javax.validation classes and sources from gwt-user"
+  zip -d $GWT_EXTRACT_DIR/gwt-user.jar META-INF/maven/javax.validation/*
+ # We need to list them explicitly as we have to keep a few of our own files
+  zip -d $GWT_EXTRACT_DIR/gwt-user.jar \
+    `jar tf $GWT_EXTRACT_DIR/gwt-user.jar javax/validation \
+      | grep -vF _CustomFieldSerializer \
+      | grep -vF .gwt.xml \
+      | grep -vF /super/`

   for i in dev user servlet codeserver
   do
Index: maven/poms/gwt/gwt-dev/pom-template.xml
diff --git a/maven/poms/gwt/gwt-dev/pom-template.xml b/maven/poms/gwt/gwt-dev/pom-template.xml index b58d3cd6356ce21b241d7610edf38ab185497a8b..38955ff61e69d28b281f1b162e5556bbd30f6918 100644
--- a/maven/poms/gwt/gwt-dev/pom-template.xml
+++ b/maven/poms/gwt/gwt-dev/pom-template.xml
@@ -12,4 +12,12 @@
     <artifactId>gwt-dev</artifactId>
     <packaging>jar</packaging>
     <version>${gwtVersion}</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+            <version>20090211</version>
+        </dependency>
+    </dependencies>
 </project>
Index: maven/poms/gwt/gwt-user/pom-template.xml
diff --git a/maven/poms/gwt/gwt-user/pom-template.xml b/maven/poms/gwt/gwt-user/pom-template.xml index 83167d23209f20a0ea40e8d16a70369f2fd0dcf4..2e69c5d42265161ef0bd060476edebd3ebe10725 100644
--- a/maven/poms/gwt/gwt-user/pom-template.xml
+++ b/maven/poms/gwt/gwt-user/pom-template.xml
@@ -24,5 +24,10 @@
             <version>1.0.0.GA</version>
             <classifier>sources</classifier>
         </dependency>
+        <dependency>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+            <version>20090211</version>
+        </dependency>
     </dependencies>
 </project>
Index: requestfactory/build.xml
diff --git a/requestfactory/build.xml b/requestfactory/build.xml
index 6df45f99fd715d2ce8907be56df3ec2db7497352..5b1ccaab191bec8e6ec2aff0d5caa0022131a4e9 100755
--- a/requestfactory/build.xml
+++ b/requestfactory/build.xml
@@ -30,7 +30,6 @@
classname="com.google.web.bindery.requestfactory.server.RequestFactoryJarExtractor">
         <classpath>
<fileset dir="${gwt.build.lib}" includes="gwt-user.jar,gwt-dev.jar" /> - <fileset dir="${gwt.tools.redist}" includes="json/r2_20080312/json-1.5.jar" />
           <pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar" />
           <pathelement path="${gwt.build.out}/user/bin" />
           <pathelement path="${gwt.build.out}/dev/bin-test" />
Index: user/build.xml
diff --git a/user/build.xml b/user/build.xml
index fa0903b8fbd329e0ce4145a91f9f19c2d2373c77..633a5c65b5c39d590569bff0eab88ed60fe1c915 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -73,7 +73,6 @@
<pathelement location="${gwt.tools.lib}/hibernate/validator/hibernate-validator-4.1.0.Final-sources.jar" /> <pathelement location="${gwt.tools.lib}/slf4j/slf4j-api/slf4j-api-1.6.1.jar" /> <pathelement location="${gwt.tools.lib}/slf4j/slf4j-log4j12/slf4j-log4j12-1.6.1.jar" /> - <pathelement location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
     <!-- TCK jars -->
<pathelement location="${gwt.tools.lib}/hibernate/validator/tck/jsr303-tck-1.0.3.GA-sources.jar" /> <pathelement location="${gwt.tools.lib}/hibernate/validator/tck/jsr303-tck-1.0.3.GA.jar" />
@@ -99,7 +98,6 @@
<pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
         <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
<pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" /> - <pathelement location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" /> <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" /> <!-- The source is included so validation is available from client code --> <pathelement location="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" />
@@ -215,6 +213,8 @@
<zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" excludes="**/*.java"/>
       <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
       <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3-gg2.jar" />
+ <zipfileset src="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA.jar" /> + <zipfileset src="${gwt.tools.lib}/javax/validation/validation-api-1.0.0.GA-sources.jar" />
     </gwt.jar>
   </target>

Index: user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java diff --git a/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java b/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java index 4289ce5eed0547d13b12848e7306b1c82a6dabad..65af797686401293c6afffba93238fd50f022947 100644 --- a/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java +++ b/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java
@@ -1046,7 +1046,8 @@ public class RequestFactoryJarExtractor {
       return toReturn;
     }
     assert type.getInternalName().charAt(0) != 'L';
- if (type.getInternalName().startsWith("java/") || type.getInternalName().startsWith("javax/")) { + if (type.getInternalName().startsWith("java/") || type.getInternalName().startsWith("javax/")
+        || type.getInternalName().startsWith("org/json/")) {
       return toReturn;
     }
     if (VERBOSE) {


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to