Revision: 10411
Author: jbrosenb...@google.com
Date: Tue Jun 28 02:20:50 2011
Log: Enable generator result caching, by default.
This initially will allow caching for ClientBundle and RPC generators.
Other generators can be updated to support caching.
The -XenableGeneratorResultCaching flag is now redundant, but it is still
allowed. It should eventually be phased out.
To allow diabling caching if needed, the system property
"gwt.disableGeneratorResultCaching" is now available.
Review at http://gwt-code-reviews.appspot.com/1467808
http://code.google.com/p/google-web-toolkit/source/detail?r=10411
Modified:
/trunk/dev/core/src/com/google/gwt/dev/DevModeBase.java
/trunk/dev/core/src/com/google/gwt/dev/PrecompileTaskOptionsImpl.java
/trunk/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java
/trunk/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java
/trunk/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerEnableGeneratorResultCaching.java
/trunk/user/src/com/google/gwt/junit/JUnitShell.java
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/DevModeBase.java Mon Jun 20
09:36:25 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/DevModeBase.java Tue Jun 28
02:20:50 2011
@@ -69,13 +69,13 @@
* any GUI dependencies.
*/
public abstract class DevModeBase implements DoneCallback {
-
/**
* Implementation of BrowserWidgetHost that supports the abstract UI
* interface.
*/
public class UiBrowserWidgetHostImpl implements BrowserWidgetHost {
+ @Override
public ModuleHandle createModuleLogger(String moduleName, String
userAgent, String url,
String tabKey, String sessionKey, BrowserChannelServer
serverChannel, byte[] userAgentIcon) {
if (sessionKey == null) {
@@ -91,6 +91,7 @@
return module;
}
+ @Override
public ModuleSpaceHost createModuleSpaceHost(ModuleHandle module,
String moduleName)
throws UnableToCompleteException {
Event moduleSpaceHostCreateEvent =
@@ -477,34 +478,42 @@
private int remoteUIHostPort;
private final List<String> startupURLs = new ArrayList<String>();
+ @Override
public void addStartupURL(String url) {
startupURLs.add(url);
}
+ @Override
public boolean alsoLogToFile() {
return logDir != null;
}
+ @Override
public String getBindAddress() {
return bindAddress;
}
+ @Override
public String getClientId() {
return remoteUIClientId;
}
+ @Override
public int getCodeServerPort() {
return codeServerPort;
}
+ @Override
public String getConnectAddress() {
return connectAddress;
}
+ @Override
public File getLogDir() {
return logDir;
}
+ @Override
public File getLogFile(String sublog) {
if (logDir == null) {
return null;
@@ -512,62 +521,77 @@
return new File(logDir, sublog);
}
+ @Override
public int getPort() {
return port;
}
+ @Override
public String getRemoteUIHost() {
return remoteUIHost;
}
+ @Override
public int getRemoteUIHostPort() {
return remoteUIHostPort;
}
+ @Override
public List<String> getStartupURLs() {
return Collections.unmodifiableList(startupURLs);
}
+ @Override
public boolean isNoServer() {
return isNoServer;
}
+ @Override
public void setBindAddress(String bindAddress) {
this.bindAddress = bindAddress;
}
+ @Override
public void setClientId(String clientId) {
this.remoteUIClientId = clientId;
}
+ @Override
public void setCodeServerPort(int port) {
codeServerPort = port;
}
+ @Override
public void setConnectAddress(String connectAddress) {
this.connectAddress = connectAddress;
}
+ @Override
public void setLogFile(String filename) {
logDir = new File(filename);
}
+ @Override
public void setNoServer(boolean isNoServer) {
this.isNoServer = isNoServer;
}
+ @Override
public void setPort(int port) {
this.port = port;
}
+ @Override
public void setRemoteUIHost(String remoteUIHost) {
this.remoteUIHost = remoteUIHost;
}
+ @Override
public void setRemoteUIHostPort(int remoteUIHostPort) {
this.remoteUIHostPort = remoteUIHostPort;
}
+ @Override
public boolean useRemoteUI() {
return remoteUIHost != null;
}
@@ -668,7 +692,7 @@
registerHandler(new ArgHandlerPort(options));
registerHandler(new ArgHandlerWhitelist());
registerHandler(new ArgHandlerBlacklist());
- registerHandler(new ArgHandlerEnableGeneratorResultCaching(options));
+ registerHandler(new ArgHandlerEnableGeneratorResultCaching());
registerHandler(new ArgHandlerLogDir(options));
registerHandler(new ArgHandlerLogLevel(options));
registerHandler(new ArgHandlerGenDir(options));
@@ -677,6 +701,9 @@
registerHandler(new ArgHandlerRemoteUI(options));
}
}
+
+ private static final boolean generatorResultCachingDisabled =
+ (System.getProperty("gwt.disableGeneratorResultCaching") != null);
private static final Random RNG = new Random();
@@ -793,6 +820,7 @@
/**
* Callback for the UI to indicate it is done.
*/
+ @Override
public void onDone() {
setDone();
}
@@ -1114,6 +1142,7 @@
throws UnableToCompleteException {
final StandardLinkerContext linkerContext = link(logger, module);
return new ArtifactAcceptor() {
+ @Override
public void accept(TreeLogger relinkLogger, ArtifactSet newArtifacts)
throws UnableToCompleteException {
relink(relinkLogger, linkerContext, module, newArtifacts);
@@ -1160,7 +1189,7 @@
private RebindCache getRebindCache(String moduleName) {
- if (!options.isGeneratorResultCachingEnabled()) {
+ if (generatorResultCachingDisabled) {
return null;
}
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/PrecompileTaskOptionsImpl.java
Tue May 31 04:51:05 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/PrecompileTaskOptionsImpl.java
Tue Jun 28 02:20:50 2011
@@ -101,11 +101,6 @@
public boolean isEnabledGeneratingOnShards() {
return enableGeneratingOnShards;
}
-
- @Override
- public boolean isGeneratorResultCachingEnabled() {
- return jjsOptions.isGeneratorResultCachingEnabled();
- }
@Override
public boolean isOptimizePrecompile() {
@@ -186,11 +181,6 @@
public void setGenDir(File genDir) {
this.genDir = genDir;
}
-
- @Override
- public void setGeneratorResultCachingEnabled(boolean enabled) {
- jjsOptions.setGeneratorResultCachingEnabled(enabled);
- }
@Override
public void setMaxPermsPerPrecompile(int maxPermsPerPrecompile) {
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java Tue May 31
04:51:05 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java Tue Jun 28
02:20:50 2011
@@ -19,7 +19,6 @@
import com.google.gwt.dev.util.arg.OptionDisableCastChecking;
import com.google.gwt.dev.util.arg.OptionDisableClassMetadata;
import com.google.gwt.dev.util.arg.OptionEnableAssertions;
-import com.google.gwt.dev.util.arg.OptionEnableGeneratorResultCaching;
import com.google.gwt.dev.util.arg.OptionOptimize;
import com.google.gwt.dev.util.arg.OptionOptimizePrecompile;
import com.google.gwt.dev.util.arg.OptionRunAsyncEnabled;
@@ -34,8 +33,7 @@
*/
public interface JJSOptions extends OptionOptimize,
OptionAggressivelyOptimize,
OptionDisableClassMetadata, OptionDisableCastChecking,
OptionEnableAssertions,
- OptionEnableGeneratorResultCaching, OptionRunAsyncEnabled,
OptionScriptStyle,
- OptionSoycEnabled, OptionSoycDetailed, OptionOptimizePrecompile,
OptionStrict,
- OptionSoycHtmlDisabled {
+ OptionRunAsyncEnabled, OptionScriptStyle, OptionSoycEnabled,
OptionSoycDetailed,
+ OptionOptimizePrecompile, OptionStrict, OptionSoycHtmlDisabled {
}
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java Tue May
31 04:51:05 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java Tue Jun
28 02:20:50 2011
@@ -29,7 +29,6 @@
private boolean disableCastChecking = false;
private boolean disableClassMetadata = false;
private boolean enableAssertions;
- private boolean enableGeneratorResultCaching = false;
private int optimizationLevel = OptionOptimize.OPTIMIZE_LEVEL_MAX;
private boolean optimizePrecompile = false;
private JsOutputOption output = JsOutputOption.OBFUSCATED;
@@ -52,7 +51,6 @@
setClassMetadataDisabled(other.isClassMetadataDisabled());
setCompilerMetricsEnabled(other.isCompilerMetricsEnabled());
setEnableAssertions(other.isEnableAssertions());
-
setGeneratorResultCachingEnabled(other.isGeneratorResultCachingEnabled());
setOptimizationLevel(other.getOptimizationLevel());
setOutput(other.getOutput());
setRunAsyncEnabled(other.isRunAsyncEnabled());
@@ -62,26 +60,32 @@
setStrict(other.isStrict());
}
+ @Override
public int getOptimizationLevel() {
return optimizationLevel;
}
+ @Override
public JsOutputOption getOutput() {
return output;
}
+ @Override
public boolean isAggressivelyOptimize() {
return aggressivelyOptimize;
}
+ @Override
public boolean isCastCheckingDisabled() {
return disableCastChecking;
}
+ @Override
public boolean isClassMetadataDisabled() {
return disableClassMetadata;
}
+ @Override
public boolean isCompilerMetricsEnabled() {
return compilerMetricsEnabled;
}
@@ -90,90 +94,102 @@
return optimizationLevel == OptionOptimize.OPTIMIZE_LEVEL_DRAFT;
}
+ @Override
public boolean isEnableAssertions() {
return enableAssertions;
}
- public boolean isGeneratorResultCachingEnabled() {
- return enableGeneratorResultCaching;
- }
-
+ @Override
public boolean isOptimizePrecompile() {
return optimizePrecompile;
}
+ @Override
public boolean isRunAsyncEnabled() {
return runAsyncEnabled;
}
+ @Override
public boolean isSoycEnabled() {
return soycEnabled;
}
+ @Override
public boolean isSoycExtra() {
return soycExtra;
}
+ @Override
public boolean isSoycHtmlDisabled() {
return soycHtmlDisabled;
}
+ @Override
public boolean isStrict() {
return strict;
}
+ @Override
public void setAggressivelyOptimize(boolean aggressivelyOptimize) {
this.aggressivelyOptimize = aggressivelyOptimize;
}
+ @Override
public void setCastCheckingDisabled(boolean disabled) {
disableCastChecking = disabled;
}
+ @Override
public void setClassMetadataDisabled(boolean disabled) {
disableClassMetadata = disabled;
}
+ @Override
public void setCompilerMetricsEnabled(boolean enabled) {
this.compilerMetricsEnabled = enabled;
}
+ @Override
public void setEnableAssertions(boolean enableAssertions) {
this.enableAssertions = enableAssertions;
}
- public void setGeneratorResultCachingEnabled(boolean enabled) {
- this.enableGeneratorResultCaching = enabled;
- }
-
+ @Override
public void setOptimizationLevel(int level) {
optimizationLevel = level;
}
+ @Override
public void setOptimizePrecompile(boolean optimize) {
optimizePrecompile = optimize;
}
+ @Override
public void setOutput(JsOutputOption output) {
this.output = output;
}
+ @Override
public void setRunAsyncEnabled(boolean enabled) {
runAsyncEnabled = enabled;
}
+ @Override
public void setSoycEnabled(boolean enabled) {
soycEnabled = enabled;
}
+ @Override
public void setSoycExtra(boolean enabled) {
soycExtra = enabled;
}
+ @Override
public void setSoycHtmlDisabled(boolean disabled) {
soycHtmlDisabled = disabled;
}
+ @Override
public void setStrict(boolean strict) {
this.strict = strict;
}
=======================================
---
/trunk/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerEnableGeneratorResultCaching.java
Mon Dec 20 10:49:11 2010
+++
/trunk/dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerEnableGeneratorResultCaching.java
Tue Jun 28 02:20:50 2011
@@ -19,18 +19,19 @@
/**
* An ArgHandler to provide the -XenableGeneratorResultCaching flag.
+ *
+ * Note: This is no longer needed since generator result caching is now
enabled by default.
+ * It's left here for an interim period, so that uses of the flag can be
removed.
+ * TODO(jbrosenberg): remove this after interim period.
*/
public class ArgHandlerEnableGeneratorResultCaching extends ArgHandlerFlag
{
- private final OptionEnableGeneratorResultCaching option;
-
- public
ArgHandlerEnableGeneratorResultCaching(OptionEnableGeneratorResultCaching
option) {
- this.option = option;
+ public ArgHandlerEnableGeneratorResultCaching() {
}
@Override
public String getPurpose() {
- return "EXPERIMENTAL: enables generator result caching, for those
generators that implement it";
+ return "Enables generator result caching, for those generators that
implement it";
}
@Override
@@ -45,7 +46,6 @@
@Override
public boolean setFlag() {
- option.setGeneratorResultCachingEnabled(true);
return true;
}
}
=======================================
--- /trunk/user/src/com/google/gwt/junit/JUnitShell.java Wed Apr 20
09:30:36 2011
+++ /trunk/user/src/com/google/gwt/junit/JUnitShell.java Tue Jun 28
02:20:50 2011
@@ -42,7 +42,6 @@
import com.google.gwt.dev.util.arg.ArgHandlerDisableUpdateCheck;
import com.google.gwt.dev.util.arg.ArgHandlerDraftCompile;
import com.google.gwt.dev.util.arg.ArgHandlerEnableAssertions;
-import com.google.gwt.dev.util.arg.ArgHandlerEnableGeneratorResultCaching;
import com.google.gwt.dev.util.arg.ArgHandlerExtraDir;
import com.google.gwt.dev.util.arg.ArgHandlerGenDir;
import com.google.gwt.dev.util.arg.ArgHandlerLocalWorkers;
@@ -191,7 +190,6 @@
registerHandler(new ArgHandlerDisableRunAsync(options));
registerHandler(new ArgHandlerDisableUpdateCheck(options));
registerHandler(new ArgHandlerDraftCompile(options));
- registerHandler(new ArgHandlerEnableGeneratorResultCaching(options));
registerHandler(new ArgHandlerMaxPermsPerPrecompile(options));
registerHandler(new ArgHandlerLocalWorkers(options));
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors