Change instance initializer in About.java to static. Most of the work, though, was on the Ant files such that once the filtered copies have already been generated, they will re-generate IFF the gwt OR svn versions have changed (i.e. after an svn up).
Review by: scottb
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3646 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/common.ant.xml b/dev/common.ant.xml
index 58266be..4353204 100755
--- a/dev/common.ant.xml
+++ b/dev/common.ant.xml
@@ -19,8 +19,11 @@
<target name="build" depends="compile" description="Build and package this project">
<mkdir dir="${gwt.build.lib}" />
<gwt.jar>
- <fileset dir="src" excludes="**/package.html" />
- <fileset dir="${gwt.core.root}/src" excludes="**/package.html" />
+ <fileset dir="src" excludes="**/package.html"/>
+ <fileset dir="${gwt.core.root}/src">
+ <exclude name="**/package.html"/>
+ <exclude name="com/google/gwt/dev/About.properties"/>
+ </fileset>
<fileset dir="${gwt.core.root}/super" excludes="**/package.html" />
<fileset dir="${javac.out}" />
<fileset dir="${gwt.core.build}/bin" />
diff --git a/dev/core/build.xml b/dev/core/build.xml
index 5b6a713..bcc6f13 100755
--- a/dev/core/build.xml
+++ b/dev/core/build.xml
@@ -57,12 +57,12 @@
<property name="filter.pattern" value="com/google/gwt/dev/About.properties" />
- <target name="-filter.src" description="Creates filtered copies of source files" unless="filter.uptodate">
- <delete dir="${src.filtered}" failonerror="false" />
- <gwt.revfilter todir="${src.filtered}" >
+ <target name="-filter.props" description="Creates filtered About.properties with version info"
+ unless="filter.uptodate">
+ <gwt.revfilter todir="${javac.out}">
<fileset dir="src" includes="${filter.pattern}" />
</gwt.revfilter>
- <touch file="${src.filtered}/gwt.version-${gwt.version}" />
+ <touch file="${filter.sentinel}" />
</target>
<target name="build" depends="build.alldeps.jar" description="Compiles this project">
@@ -76,22 +76,8 @@
<mkdir dir="${javac.out-dummy}" />
<gwt.javac srcdir="src-dummy" destdir="${javac.out-dummy}" />
- <!-- Files with hardcoded version information must be filtered -->
- <property name="src.filtered" location="${project.build}/src-filtered" />
- <condition property="filter.uptodate">
- <and>
- <available file="${src.filtered}/gwt.version-${gwt.version}" />
- <uptodate>
- <srcfiles dir="src" includes="${filter.pattern}" />
- <globmapper from="*" to="${src.filtered}/*" />
- </uptodate>
- </and>
- </condition>
- <antcall target="-filter.src" />
-
<mkdir dir="${javac.out}" />
<gwt.javac srcdir="super" excludes="com/google/gwt/dev/jjs/intrinsic/"/>
- <gwt.javac srcdir="${src.filtered}" />
<gwt.javac srcdir="src" excludes="${filter.pattern}">
<classpath>
<pathelement location="${javac.out-dummy}" />
@@ -102,8 +88,21 @@
</classpath>
</gwt.javac>
<copy todir="${javac.out}">
- <fileset dir="src" includes="**/*.properties"/>
- </copy>
+ <fileset dir="src" includes="**/*.properties" excludes="${filter.pattern}"/>
+ </copy>
+
+ <!-- Files with hardcoded version information must be filtered -->
+ <gwt.getsvninfo />
+ <condition property="filter.uptodate">
+ <and>
+ <available file="${filter.sentinel}" />
+ <uptodate>
+ <srcfiles dir="src" includes="${filter.pattern}" />
+ <globmapper from="*" to="${javac.out}/*" />
+ </uptodate>
+ </and>
+ </condition>
+ <antcall target="-filter.props" />
</target>
<target name="checkstyle" description="Static analysis of source">
diff --git a/dev/core/src/com/google/gwt/dev/About.java b/dev/core/src/com/google/gwt/dev/About.java
index 98d15f1..b64eb5a 100644
--- a/dev/core/src/com/google/gwt/dev/About.java
+++ b/dev/core/src/com/google/gwt/dev/About.java
@@ -32,13 +32,10 @@
public static String GWT_VERSION;
- {
- Class<? extends About> myClass = this.getClass();
- String propsPath = myClass.getName().replace('.', '/').concat(".properties");
+ static {
Properties props = new Properties();
try {
- InputStream instream = myClass.getClassLoader().getResourceAsStream(
- propsPath);
+ InputStream instream = About.class.getResourceAsStream("About.properties");
props.load(instream);
} catch (IOException iox) {
// okay... we use default values, then.