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