Makes a PersistentUnitCache only for directory -war's.
Previously Compiler.java would attempt to place a persistent unit cache
directory relative to the provided -war path except when the provided
-war path was a .jar file.
Generalized the guard to actually avoid any -war path that did not refer
to a directory.
Change-Id: I903adbc3557901b104fc06cd3f44e72be07bb7e4
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java
index bee2b4b..7a1c789 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java
@@ -91,6 +91,11 @@
return false;
}
+ if (compilePerFile && !noPrecompile) {
+ System.out.println("Turning off precompile in compilePerFile mode.");
+ noPrecompile = true;
+ }
+
return true;
}
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/Outbox.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/Outbox.java
index 62f7d19..f2275f2 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/Outbox.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/Outbox.java
@@ -70,7 +70,7 @@
*/
void maybePrecompile(TreeLogger logger) throws UnableToCompleteException {
- if (options.getNoPrecompile() || options.shouldCompilePerFile()) {
+ if (options.getNoPrecompile()) {
publish(recompiler.initWithoutPrecompile(logger), null);
return;
}
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
index 9eb5948..d2ed011 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
@@ -189,7 +189,7 @@
ModuleDef module = loadModule(compileLogger);
- logger.log(TreeLogger.INFO, "Prebuilding/loading the compilation unit cache.");
+ logger.log(TreeLogger.INFO, "Loading Java files in " + inputModuleName + ".");
CompilerOptions loadOptions = new CompilerOptionsImpl(compileDir, inputModuleName, options);
compilerContext = compilerContextBuilder.options(loadOptions).unitCache(
Compiler.getOrCreateUnitCache(logger, loadOptions)).build();
diff --git a/dev/core/src/com/google/gwt/dev/Compiler.java b/dev/core/src/com/google/gwt/dev/Compiler.java
index 440e952..24fb2d9 100644
--- a/dev/core/src/com/google/gwt/dev/Compiler.java
+++ b/dev/core/src/com/google/gwt/dev/Compiler.java
@@ -82,9 +82,11 @@
*/
public static UnitCache getOrCreateUnitCache(TreeLogger logger, CompilerOptions options) {
File persistentUnitCacheDir = null;
- if (options.getWarDir() != null && !options.getWarDir().getName().endsWith(".jar")) {
+ if (options.getWarDir() != null && options.getWarDir().isDirectory()) {
persistentUnitCacheDir = new File(options.getWarDir(), "../");
}
+ // TODO: returns the same UnitCache even if the passed directory changes. Make this less
+ // surprising.
return UnitCacheSingleton.get(logger, persistentUnitCacheDir);
}