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

Reply via email to