use ConfigProps in more places
Also added two methods to Properties, to simplify callers.
No user-visible changes.
Change-Id: I706d21130c395f5f81275f443418528c34261750
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 122a529..3db96af 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
@@ -26,10 +26,10 @@
import com.google.gwt.dev.IncrementalBuilder;
import com.google.gwt.dev.IncrementalBuilder.BuildResultStatus;
import com.google.gwt.dev.cfg.BindingProperty;
+import com.google.gwt.dev.cfg.ConfigProps;
import com.google.gwt.dev.cfg.ConfigurationProperty;
import com.google.gwt.dev.cfg.ModuleDef;
import com.google.gwt.dev.cfg.ModuleDefLoader;
-import com.google.gwt.dev.cfg.Property;
import com.google.gwt.dev.cfg.ResourceLoader;
import com.google.gwt.dev.cfg.ResourceLoaders;
import com.google.gwt.dev.javac.UnitCacheSingleton;
@@ -63,7 +63,6 @@
private final AtomicReference<CompileDir> lastBuild = new AtomicReference<CompileDir>();
private CompileDir publishedCompileDir;
- private boolean listenerFailed;
private final AtomicReference<ResourceLoader> resourceLoader =
new AtomicReference<ResourceLoader>();
private final CompilerContext.Builder compilerContextBuilder = new CompilerContext.Builder();
@@ -96,7 +95,7 @@
CompileDir compileDir = makeCompileDir(compileId);
TreeLogger compileLogger = makeCompileLogger(compileDir);
- listenerFailed = false;
+ boolean listenerFailed = false;
try {
options.getRecompileListener().startedCompile(originalModuleName, compileId, compileDir);
} catch (Exception e) {
@@ -274,6 +273,9 @@
logger, compilerContext, originalModuleName, resources, true);
compilerContext = compilerContextBuilder.module(moduleDef).build();
+ // A snapshot of the module's configuration before we modified it.
+ ConfigProps config = new ConfigProps(moduleDef);
+
// We need a cross-site linker. Automatically replace the default linker.
if (IFrameLinker.class.isAssignableFrom(moduleDef.getActivePrimaryLinker())) {
moduleDef.addLinker("xsiframe");
@@ -288,7 +290,7 @@
}
// Print a nice error if the superdevmode hook isn't present
- if (moduleDef.getProperties().find("devModeRedirectEnabled") == null) {
+ if (config.getStrings("devModeRedirectEnabled").isEmpty()) {
throw new RuntimeException("devModeRedirectEnabled isn't set for module: " +
moduleDef.getName());
}
@@ -299,7 +301,7 @@
// Turn off "installCode" if it's on because it makes debugging harder.
// (If it's already off, don't change anything.)
- if (getBooleanConfig(moduleDef, "installCode", true)) {
+ if (config.getBoolean("installCode", true)) {
overrideConfig(moduleDef, "installCode", "false");
// Make sure installScriptJs is set to the default for compiling without installCode.
overrideConfig(moduleDef, "installScriptJs",
@@ -343,8 +345,8 @@
logger = logger.branch(TreeLogger.Type.INFO, "binding: " + propName + "=" + newValue);
- Property prop = module.getProperties().find(propName);
- if (!(prop instanceof BindingProperty)) {
+ BindingProperty prop = module.getProperties().findBindingProp(propName);
+ if (prop == null) {
logger.log(TreeLogger.Type.WARN, "undefined property: '" + propName + "'");
return;
}
@@ -392,37 +394,15 @@
* Sets a binding even if it's set to a different value in the GWT application.
*/
private static void overrideBinding(ModuleDef module, String propName, String newValue) {
- Property prop = module.getProperties().find(propName);
- if (prop instanceof BindingProperty) {
- BindingProperty binding = (BindingProperty) prop;
+ BindingProperty binding = module.getProperties().findBindingProp(propName);
+ if (binding != null) {
binding.setAllowedValues(binding.getRootCondition(), newValue);
}
}
- /**
- * Returns a boolean configuration property. If not defined, returns the default.
- */
- private static boolean getBooleanConfig(ModuleDef module, String propName,
- boolean defaultValue) {
- Property prop = module.getProperties().find(propName);
- if (prop instanceof ConfigurationProperty) {
- ConfigurationProperty config = (ConfigurationProperty) prop;
- String value = config.getValue();
- if (value != null) {
- if (value.equalsIgnoreCase("true")) {
- return true;
- } else if (value.equalsIgnoreCase("false")) {
- return false;
- }
- }
- }
- return defaultValue;
- }
-
private static boolean maybeOverrideConfig(ModuleDef module, String propName, String newValue) {
- Property prop = module.getProperties().find(propName);
- if (prop instanceof ConfigurationProperty) {
- ConfigurationProperty config = (ConfigurationProperty) prop;
+ ConfigurationProperty config = module.getProperties().findConfigProp(propName);
+ if (config != null) {
config.setValue(newValue);
return true;
}
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/StandardLinkerContext.java b/dev/core/src/com/google/gwt/core/ext/linker/impl/StandardLinkerContext.java
index a6e3791..35e0f7a 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/StandardLinkerContext.java
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/StandardLinkerContext.java
@@ -29,7 +29,6 @@
import com.google.gwt.core.ext.linker.SelectionProperty;
import com.google.gwt.dev.cfg.BindingProperty;
import com.google.gwt.dev.cfg.ModuleDef;
-import com.google.gwt.dev.cfg.Property;
import com.google.gwt.dev.cfg.Script;
import com.google.gwt.dev.jjs.InternalCompilerException;
import com.google.gwt.dev.jjs.JJSOptions;
@@ -196,28 +195,22 @@
CONFIGURATION_PROPERTY_COMPARATOR);
SortedSet<SelectionProperty> mutableSelectionProperties = new TreeSet<SelectionProperty>(
SELECTION_PROPERTY_COMPARATOR);
- for (Property p : module.getProperties()) {
- // Create a new view
- if (p instanceof com.google.gwt.dev.cfg.ConfigurationProperty) {
- StandardConfigurationProperty newProp = new StandardConfigurationProperty(
- (com.google.gwt.dev.cfg.ConfigurationProperty) p);
- mutableConfigurationProperties.add(newProp);
- if (logger.isLoggable(TreeLogger.SPAM)) {
- logger.log(TreeLogger.SPAM,
- "Added configuration property " + newProp, null);
- }
- } else if (p instanceof BindingProperty) {
- StandardSelectionProperty newProp = new StandardSelectionProperty(
- (BindingProperty) p);
- mutableSelectionProperties.add(newProp);
- propertiesByName.put(newProp.getName(), newProp);
- if (logger.isLoggable(TreeLogger.SPAM)) {
- logger.log(TreeLogger.SPAM, "Added selection property " + newProp,
- null);
- }
- } else {
- logger.log(TreeLogger.ERROR, "Unknown property type "
- + p.getClass().getName());
+ for (com.google.gwt.dev.cfg.ConfigurationProperty p : module
+ .getProperties().getConfigurationProperties()) {
+ StandardConfigurationProperty newProp = new StandardConfigurationProperty(p);
+ mutableConfigurationProperties.add(newProp);
+ if (logger.isLoggable(TreeLogger.SPAM)) {
+ logger.log(TreeLogger.SPAM,
+ "Added configuration property " + newProp, null);
+ }
+ }
+ for (BindingProperty p : module.getProperties().getBindingProperties()) {
+ StandardSelectionProperty newProp = new StandardSelectionProperty(p);
+ mutableSelectionProperties.add(newProp);
+ propertiesByName.put(newProp.getName(), newProp);
+ if (logger.isLoggable(TreeLogger.SPAM)) {
+ logger.log(TreeLogger.SPAM, "Added selection property " + newProp,
+ null);
}
}
selectionProperties = Collections.unmodifiableSortedSet(mutableSelectionProperties);
diff --git a/dev/core/src/com/google/gwt/dev/DistillerRebindPermutationOracle.java b/dev/core/src/com/google/gwt/dev/DistillerRebindPermutationOracle.java
index bae1b5f..bb69320 100644
--- a/dev/core/src/com/google/gwt/dev/DistillerRebindPermutationOracle.java
+++ b/dev/core/src/com/google/gwt/dev/DistillerRebindPermutationOracle.java
@@ -56,8 +56,7 @@
generatorContext = new StandardGeneratorContext(
compilerContext, compilationState, generatorArtifacts, true);
BindingProperty[] orderedProps = perms.getOrderedProperties();
- ConfigProps config = new ConfigProps(
- module.getProperties().getConfigurationProperties());
+ ConfigProps config = new ConfigProps(module);
Rules rules = module.getRules();
for (int i = 0; i < rebindOracles.length; ++i) {
BindingProps props = new BindingProps(orderedProps, perms.getOrderedPropertyValues(i), config);
diff --git a/dev/core/src/com/google/gwt/dev/cfg/BindingProps.java b/dev/core/src/com/google/gwt/dev/cfg/BindingProps.java
index 328c2c7..0c1799f 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/BindingProps.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/BindingProps.java
@@ -155,6 +155,18 @@
return out.toString();
}
+ boolean hasSameBindingProperties(BindingProps other) {
+ if (orderedProps.length != other.orderedProps.length) {
+ return false;
+ }
+ for (int i = 0; i < orderedProps.length; i++) {
+ if (orderedProps[i] != other.orderedProps[i]) {
+ return false;
+ }
+ }
+ return true;
+ }
+
private class SoftPropsOracle implements PropertyOracle {
@Override
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ConfigProps.java b/dev/core/src/com/google/gwt/dev/cfg/ConfigProps.java
index 76e3989..cc52757 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ConfigProps.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ConfigProps.java
@@ -59,7 +59,7 @@
private final ImmutableMap<String, List<String>> props;
/**
- * Construct from internal ConfigurationProperty instances.
+ * Takes a snapshot of some ConfigurationProperty instances.
*/
public ConfigProps(Iterable<ConfigurationProperty> props) {
Builder<String, List<String>> builder = ImmutableMap.builder();
@@ -70,6 +70,13 @@
}
/**
+ * Takes a snapshot of a module's configuration properties.
+ */
+ public ConfigProps(ModuleDef def) {
+ this(def.getProperties().getConfigurationProperties());
+ }
+
+ /**
* Construct from a map (for testing).
*/
public ConfigProps(Map<String, List<String>> map) {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/DynamicPropertyOracle.java b/dev/core/src/com/google/gwt/dev/cfg/DynamicPropertyOracle.java
index 57426d0..0d8f80c 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/DynamicPropertyOracle.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/DynamicPropertyOracle.java
@@ -70,12 +70,9 @@
@Override
public ConfigurationProperty getConfigurationProperty(String propertyName)
throws BadPropertyValueException {
- Property property = properties.find(propertyName);
- if (property instanceof com.google.gwt.dev.cfg.ConfigurationProperty) {
- com.google.gwt.dev.cfg.ConfigurationProperty configurationProperty =
- (com.google.gwt.dev.cfg.ConfigurationProperty) property;
- return new DefaultConfigurationProperty(
- configurationProperty.getName(), configurationProperty.getValues());
+ com.google.gwt.dev.cfg.ConfigurationProperty prop = properties.findConfigProp(propertyName);
+ if (prop != null) {
+ return new DefaultConfigurationProperty(prop.getName(), prop.getValues());
}
throw new BadPropertyValueException(propertyName);
}
@@ -113,9 +110,9 @@
}
private BindingProperty getBindingProperty(String propertyName) throws BadPropertyValueException {
- Property property = properties.find(propertyName);
- if (property instanceof BindingProperty) {
- return (BindingProperty) property;
+ BindingProperty property = properties.findBindingProp(propertyName);
+ if (property != null) {
+ return property;
}
throw new BadPropertyValueException(propertyName);
}
diff --git a/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java b/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java
index 731c606..8f7d743 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java
@@ -906,27 +906,23 @@
// Normalize property providers.
//
- for (Property current : getProperties()) {
- if (current instanceof BindingProperty) {
- BindingProperty prop = (BindingProperty) current;
+ for (BindingProperty prop : properties.getBindingProperties()) {
+ if (collapseAllProperties) {
+ prop.addCollapsedValues("*");
+ }
- if (collapseAllProperties) {
- prop.addCollapsedValues("*");
- }
+ prop.normalizeCollapsedValues();
- prop.normalizeCollapsedValues();
-
- /*
- * Create a default property provider for any properties with more than
- * one possible value and no existing provider.
- */
- if (prop.getProvider() == null && prop.getConstrainedValue() == null) {
- String src = "{";
- src += "return __gwt_getMetaProperty(\"";
- src += prop.getName();
- src += "\"); }";
- prop.setProvider(new PropertyProvider(src));
- }
+ /*
+ * Create a default property provider for any properties with more than
+ * one possible value and no existing provider.
+ */
+ if (prop.getProvider() == null && prop.getConstrainedValue() == null) {
+ String src = "{";
+ src += "return __gwt_getMetaProperty(\"";
+ src += prop.getName();
+ src += "\"); }";
+ prop.setProvider(new PropertyProvider(src));
}
}
diff --git a/dev/core/src/com/google/gwt/dev/cfg/PermProps.java b/dev/core/src/com/google/gwt/dev/cfg/PermProps.java
index 5a5cb59..167a3c0 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/PermProps.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/PermProps.java
@@ -31,6 +31,8 @@
public PermProps(Iterable<BindingProps> softProps) {
this.props = ImmutableList.copyOf(softProps);
assert props.size() >= 1;
+ assert sameBindingProperties(props) :
+ "The binding properties should be the same for each soft permutation.";
}
/**
@@ -107,4 +109,14 @@
}
return out.toString();
}
+
+ private boolean sameBindingProperties(ImmutableList<BindingProps> props) {
+ BindingProps expected = props.get(0);
+ for (BindingProps actual : props.subList(1, props.size())) {
+ if (!expected.hasSameBindingProperties(actual)) {
+ return false;
+ }
+ }
+ return true;
+ }
}
diff --git a/dev/core/src/com/google/gwt/dev/cfg/Properties.java b/dev/core/src/com/google/gwt/dev/cfg/Properties.java
index 80123da..9ff0a90 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/Properties.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/Properties.java
@@ -16,7 +16,6 @@
package com.google.gwt.dev.cfg;
import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
@@ -25,7 +24,7 @@
/**
* A typed map of deferred binding properties.
*/
-public class Properties implements Iterable<Property> {
+public class Properties {
private final SortedSet<BindingProperty> bindingProps = new TreeSet<BindingProperty>();
@@ -67,6 +66,30 @@
}
/**
+ * Returns the property if (and only if) it's a BindingProperty, otherwise null.
+ */
+ public BindingProperty findBindingProp(String propName) {
+ Property p = map.get(propName);
+ if (p instanceof BindingProperty) {
+ return (BindingProperty) p;
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the property if (and only if) it's a ConfigurationProperty, otherwise null.
+ */
+ public ConfigurationProperty findConfigProp(String propName) {
+ Property p = map.get(propName);
+ if (p instanceof ConfigurationProperty) {
+ return (ConfigurationProperty) p;
+ } else {
+ return null;
+ }
+ }
+
+ /**
* Gets all deferred binding properties in sorted order.
*/
public SortedSet<BindingProperty> getBindingProperties() {
@@ -77,11 +100,6 @@
return configProps;
}
- @Override
- public Iterator<Property> iterator() {
- return map.values().iterator();
- }
-
private <T extends Property> T create(String name, boolean flag,
boolean useFlagArgument, Class<T> clazz) {
if (clazz == null) {
@@ -101,7 +119,7 @@
}
}
- Exception ex = null;
+ Exception ex;
try {
T newInstance;
if (useFlagArgument) {
diff --git a/dev/core/src/com/google/gwt/dev/cfg/PropertyPermutations.java b/dev/core/src/com/google/gwt/dev/cfg/PropertyPermutations.java
index d1af533..7225587 100644
--- a/dev/core/src/com/google/gwt/dev/cfg/PropertyPermutations.java
+++ b/dev/core/src/com/google/gwt/dev/cfg/PropertyPermutations.java
@@ -176,12 +176,13 @@
// Collate property values in this map
SortedMap<CollapsedPropertyKey, List<String[]>> map = new TreeMap<CollapsedPropertyKey, List<String[]>>();
+ BindingProperty[] propertyKeys = getOrderedProperties();
// Loop over all possible property value permutations
for (Iterator<String[]> it = iterator(); it.hasNext();) {
String[] propertyValues = it.next();
- assert propertyValues.length == getOrderedProperties().length;
+ assert propertyValues.length == propertyKeys.length;
- BindingProps props = new BindingProps(getOrderedProperties(), propertyValues,
+ BindingProps props = new BindingProps(propertyKeys, propertyValues,
ConfigProps.EMPTY);
CollapsedPropertyKey key = new CollapsedPropertyKey(props);
diff --git a/dev/core/src/com/google/gwt/dev/jjs/AstConstructor.java b/dev/core/src/com/google/gwt/dev/jjs/AstConstructor.java
index a7ff5bf..24b9eaa 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/AstConstructor.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/AstConstructor.java
@@ -19,7 +19,7 @@
import com.google.gwt.core.ext.UnableToCompleteException;
import com.google.gwt.dev.CompilerContext;
import com.google.gwt.dev.PrecompileTaskOptions;
-import com.google.gwt.dev.cfg.Properties;
+import com.google.gwt.dev.cfg.ConfigProps;
import com.google.gwt.dev.javac.CompilationState;
import com.google.gwt.dev.javac.StandardGeneratorContext;
import com.google.gwt.dev.jdt.RebindPermutationOracle;
@@ -44,7 +44,7 @@
* {@link JavaToJavaScriptCompiler}.
*/
public static JProgram construct(TreeLogger logger, final CompilationState state,
- PrecompileTaskOptions options, Properties properties) throws UnableToCompleteException {
+ PrecompileTaskOptions options, ConfigProps config) throws UnableToCompleteException {
InternalCompilerException.preload();
@@ -97,8 +97,8 @@
if (options.isRunAsyncEnabled()) {
ReplaceRunAsyncs.exec(logger, jprogram);
- if (properties != null) {
- CodeSplitters.pickInitialLoadSequence(logger, jprogram, properties);
+ if (config != null) {
+ CodeSplitters.pickInitialLoadSequence(logger, jprogram, config);
}
}
diff --git a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
index 1e3509e..eae6151 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
@@ -37,7 +37,6 @@
import com.google.gwt.dev.Permutation;
import com.google.gwt.dev.PrecompileTaskOptions;
import com.google.gwt.dev.cfg.ConfigProps;
-import com.google.gwt.dev.cfg.ConfigurationProperty;
import com.google.gwt.dev.cfg.EntryMethodHolderGenerator;
import com.google.gwt.dev.cfg.LibraryGroup.CollidingCompilationUnitException;
import com.google.gwt.dev.cfg.ModuleDef;
@@ -872,7 +871,8 @@
}
if (module != null && options.isRunAsyncEnabled()) {
ReplaceRunAsyncs.exec(logger, jprogram);
- CodeSplitters.pickInitialLoadSequence(logger, jprogram, module.getProperties());
+ ConfigProps config = new ConfigProps(module);
+ CodeSplitters.pickInitialLoadSequence(logger, jprogram, config);
}
ImplementClassLiteralsAsFields.exec(jprogram);
@@ -995,10 +995,8 @@
private void obfuscateEnums() {
// See if we should run the EnumNameObfuscator
if (module != null) {
- ConfigurationProperty enumNameObfuscationProp =
- (ConfigurationProperty) module.getProperties().find(ENUM_NAME_OBFUSCATION_PROPERTY);
- if (enumNameObfuscationProp != null
- && Boolean.parseBoolean(enumNameObfuscationProp.getValue())) {
+ ConfigProps config = new ConfigProps(module);
+ if (config.getBoolean(ENUM_NAME_OBFUSCATION_PROPERTY, false)) {
EnumNameObfuscator.exec(jprogram, logger);
}
}
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/codesplitter/CodeSplitters.java b/dev/core/src/com/google/gwt/dev/jjs/impl/codesplitter/CodeSplitters.java
index c023da4..de92870 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/codesplitter/CodeSplitters.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/codesplitter/CodeSplitters.java
@@ -17,10 +17,7 @@
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.UnableToCompleteException;
-import com.google.gwt.dev.cfg.ConfigurationProperty;
-import com.google.gwt.dev.cfg.Properties;
-import com.google.gwt.dev.cfg.Property;
-import com.google.gwt.dev.jjs.InternalCompilerException;
+import com.google.gwt.dev.cfg.ConfigProps;
import com.google.gwt.dev.jjs.ast.JArrayType;
import com.google.gwt.dev.jjs.ast.JExpression;
import com.google.gwt.dev.jjs.ast.JMethod;
@@ -42,7 +39,6 @@
import com.google.gwt.thirdparty.guava.common.collect.Lists;
import com.google.gwt.thirdparty.guava.common.collect.Multimap;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
@@ -62,7 +58,7 @@
* @throws UnableToCompleteException If the module specifies a bad load order
*/
public static void pickInitialLoadSequence(TreeLogger logger,
- JProgram program, Properties properties) throws UnableToCompleteException {
+ JProgram program, ConfigProps config) throws UnableToCompleteException {
SpeedTracerLogger.Event codeSplitterEvent =
SpeedTracerLogger
.start(CompilerEventType.CODE_SPLITTER, "phase", "pickInitialLoadSequence");
@@ -70,21 +66,8 @@
logger.branch(TreeLogger.TRACE, "Looking up initial load sequence for split points");
LinkedHashSet<JRunAsync> asyncsInInitialLoadSequence = new LinkedHashSet<JRunAsync>();
- ConfigurationProperty configurationPropertyInitialSequence;
- {
- Property property = properties.find(PROP_INITIAL_SEQUENCE);
- if (property == null) {
- throw new InternalCompilerException("Could not find configuration property "
- + PROP_INITIAL_SEQUENCE);
- }
- if (!(property instanceof ConfigurationProperty)) {
- throw new InternalCompilerException(PROP_INITIAL_SEQUENCE
- + " is not a configuration property");
- }
- configurationPropertyInitialSequence = (ConfigurationProperty) property;
- }
-
- for (String runAsyncReference : configurationPropertyInitialSequence.getValues()) {
+ List<String> initialSequence = config.getStrings(PROP_INITIAL_SEQUENCE);
+ for (String runAsyncReference : initialSequence) {
JRunAsync runAsync = findRunAsync(runAsyncReference, program, branch);
if (asyncsInInitialLoadSequence.contains(runAsync)) {
branch.log(TreeLogger.ERROR, "Split point specified more than once: " + runAsyncReference);
diff --git a/dev/core/test/com/google/gwt/dev/jjs/JavaAstConstructor.java b/dev/core/test/com/google/gwt/dev/jjs/JavaAstConstructor.java
index 1be1ffe..255b738 100644
--- a/dev/core/test/com/google/gwt/dev/jjs/JavaAstConstructor.java
+++ b/dev/core/test/com/google/gwt/dev/jjs/JavaAstConstructor.java
@@ -18,7 +18,7 @@
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.UnableToCompleteException;
import com.google.gwt.dev.PrecompileTaskOptions;
-import com.google.gwt.dev.cfg.Properties;
+import com.google.gwt.dev.cfg.ConfigProps;
import com.google.gwt.dev.javac.CompilationState;
import com.google.gwt.dev.javac.testing.impl.JavaResourceBase;
import com.google.gwt.dev.javac.testing.impl.MockJavaResource;
@@ -322,10 +322,10 @@
};
public static JProgram construct(TreeLogger logger, CompilationState state,
- PrecompileTaskOptions options, Properties properties,
+ PrecompileTaskOptions options, ConfigProps config,
String... entryPoints) throws UnableToCompleteException {
options.setEnableAssertions(true);
- JProgram jprogram = AstConstructor.construct(logger, state, options, properties);
+ JProgram jprogram = AstConstructor.construct(logger, state, options, config);
// Add entry methods for entry points.
for (String entryPoint : entryPoints) {
diff --git a/dev/core/test/com/google/gwt/dev/jjs/impl/FullCompileTestBase.java b/dev/core/test/com/google/gwt/dev/jjs/impl/FullCompileTestBase.java
index 9fe8031..c6ed121 100644
--- a/dev/core/test/com/google/gwt/dev/jjs/impl/FullCompileTestBase.java
+++ b/dev/core/test/com/google/gwt/dev/jjs/impl/FullCompileTestBase.java
@@ -24,7 +24,6 @@
import com.google.gwt.dev.cfg.ConfigProps;
import com.google.gwt.dev.cfg.ConfigurationProperty;
import com.google.gwt.dev.cfg.PermProps;
-import com.google.gwt.dev.cfg.Properties;
import com.google.gwt.dev.javac.CompilationState;
import com.google.gwt.dev.javac.CompilationStateBuilder;
import com.google.gwt.dev.javac.testing.impl.MockJavaResource;
@@ -36,6 +35,7 @@
import com.google.gwt.dev.js.ast.JsNode;
import com.google.gwt.dev.js.ast.JsProgram;
import com.google.gwt.dev.util.Pair;
+import com.google.gwt.thirdparty.guava.common.collect.Lists;
import java.util.Arrays;
import java.util.Map;
@@ -77,10 +77,10 @@
CompilationState state =
CompilationStateBuilder.buildFrom(logger, compilerContext,
sourceOracle.getResources(), getAdditionalTypeProviderDelegate());
+ ConfigProps config = new ConfigProps(Lists.newArrayList(configProps));
- Properties properties = createPropertiesObject(configProps);
jProgram =
- JavaAstConstructor.construct(logger, state, compilerContext.getOptions(), properties,
+ JavaAstConstructor.construct(logger, state, compilerContext.getOptions(), config,
"test.EntryPoint", "com.google.gwt.lang.Exceptions");
jProgram.addEntryMethod(findMethod(jProgram, "onModuleLoad"));
@@ -97,7 +97,6 @@
Map<StandardSymbolData, JsName> symbolTable =
new TreeMap<StandardSymbolData, JsName>(new SymbolData.ClassIdentComparator());
- ConfigProps config = new ConfigProps(Arrays.asList(configProps));
PermProps props = new PermProps(Arrays.asList(
new BindingProps(orderedProps, orderedPropValues, config)
));
@@ -111,19 +110,6 @@
return new CompilerContext.Builder().build();
}
- private static Properties createPropertiesObject(ConfigurationProperty[] propertyArray) {
- Properties properties = new Properties();
- for (ConfigurationProperty configurationPropertyFromArray : propertyArray) {
- ConfigurationProperty configurationProperty =
- properties.createConfiguration(configurationPropertyFromArray.getName(),
- configurationPropertyFromArray.allowsMultipleValues());
- for (String value : configurationPropertyFromArray.getValues()) {
- configurationProperty.addValue(value);
- }
- }
- return properties;
- }
-
public void setProperties(BindingProperty[] orderedProps, String[] orderedValues,
ConfigurationProperty[] configurationProperties) {
this.orderedProps = orderedProps;
diff --git a/dev/core/test/com/google/gwt/dev/js/JsStackEmulatorTest.java b/dev/core/test/com/google/gwt/dev/js/JsStackEmulatorTest.java
index 5f68821..81c0357 100644
--- a/dev/core/test/com/google/gwt/dev/js/JsStackEmulatorTest.java
+++ b/dev/core/test/com/google/gwt/dev/js/JsStackEmulatorTest.java
@@ -27,7 +27,6 @@
import com.google.gwt.dev.cfg.ConfigProps;
import com.google.gwt.dev.cfg.ConfigurationProperty;
import com.google.gwt.dev.cfg.PermProps;
-import com.google.gwt.dev.cfg.Properties;
import com.google.gwt.dev.javac.CompilationState;
import com.google.gwt.dev.javac.CompilationStateBuilder;
import com.google.gwt.dev.javac.testing.impl.MockJavaResource;
@@ -230,10 +229,13 @@
options.setRunAsyncEnabled(false);
CompilerContext context = new CompilerContext.Builder().options(options).build();
+ ConfigProps config = new ConfigProps(Arrays.asList(recordFileNamesProp,
+ recordLineNumbersProp));
+
CompilationState state =
CompilationStateBuilder.buildFrom(logger, context,
sourceOracle.getResources(), null);
- JProgram jProgram = AstConstructor.construct(logger, state, options, new Properties());
+ JProgram jProgram = AstConstructor.construct(logger, state, options, config);
jProgram.addEntryMethod(findMethod(jProgram, "onModuleLoad"));
if (inline) {
@@ -256,8 +258,6 @@
BindingProperty stackMode = new BindingProperty("compiler.stackMode");
stackMode.addDefinedValue(new ConditionNone(), "EMULATED");
- ConfigProps config = new ConfigProps(Arrays.asList(recordFileNamesProp,
- recordLineNumbersProp));
PermProps props = new PermProps(Arrays.asList(
new BindingProps(new BindingProperty[]{stackMode}, new String[]{"EMULATED"}, config)
));