I think Bob (and Thomas's) point is that sometimes you have configuration data for which there is an infinite number of options, where it doesn't even make sense to think of the possible options as a set.
On Thu, Sep 11, 2008 at 9:37 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote: > Let me play devil's advocate, though in advance I'll admit I'm not sure I > have a good point. But I think I do. > Why shouldn't these simply be normal deferred binding properties? Consider > compiler optimization flags we may want to add in the future. It is quite > possible that you'd want to compile multiple permutations of a module, each > with different compiler flags set. > > Are there any examples where you want to pass config info that could > theoretically be viewed as participating in deferred binding? > > I understand that, as a practical matter, you may not want to actually > suffer so many permutations being actually built, but controlling which > permutations are realized during a compile is a separate question. > > On Wed, Sep 10, 2008 at 7:17 PM, BobV <[EMAIL PROTECTED]> wrote: > >> This patch adds the concept of module properties which do not affect >> deferred-binding decisions and may be set to any string value. These >> configuration properties are exposed to Generators and Linkers as a >> means of providing global configuration information. >> >> Right now, many developers (ab)use deferred-binding properties to >> provide configuration information to Generators or Linkers. The >> values of deferred-binding properties are restricted to Java >> identifiers and any custom values require and extend-property and >> set-property tags. While Java system properties can be used for >> global effect, these can lead to non-hermetic builds. >> >> Example: >> <set-configuration-property name="someName" value="Any string value" /> >> >> This patch also includes the re-<define-property> behavior to let >> contributors see how the combination may allow for simplification of >> gwt.xml files. >> >> Rules: >> - There is no need to pre-define the property, they can simply be >> declared. >> - Last-one-wins. >> - It is an error to have a <define-property> and >> <set-configuration-property> with the same name. >> - The name must be a valid identifier, but the value may be any string >> value. >> >> Diffstat (comments inline): >> dev/core/src/com/google/gwt/core/ext/LinkerContext.java >> | 8 8 + 0 - 0 ! >> dev/core/src/com/google/gwt/core/ext/PropertyOracle.java >> | 13 7 + 6 - 0 ! >> - Generators access configurations properties in the same manner >> as binding properties. The two kinds of properties are distinguished >> in the Linker interfaces. >> >> dev/core/src/com/google/gwt/core/ext/linker/ConfigurationProperty.java >> | 39 39 + 0 - 0 ! >> >> >> dev/core/src/com/google/gwt/core/ext/linker/impl/StandardConfigurationProperty.java >> | 42 42 + 0 - 0 ! >> >> dev/core/src/com/google/gwt/core/ext/linker/impl/StandardLinkerContext.java >> | 51 41 + 10 - 0 ! >> >> >> dev/core/src/com/google/gwt/core/ext/linker/impl/StandardSelectionProperty.java >> | 6 3 + 3 - 0 ! >> - Linker implementation classes >> >> dev/core/src/com/google/gwt/dev/PermutationCompiler.java >> | 6 3 + 3 - 0 ! >> dev/core/src/com/google/gwt/dev/cfg/BindingProperty.java >> | 73 73 + 0 - 0 ! >> dev/core/src/com/google/gwt/dev/cfg/ConfigurationProperty.java >> | 46 46 + 0 - 0 ! >> dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java >> | 32 17 + 15 - 0 ! >> dev/core/src/com/google/gwt/dev/cfg/ModuleDefSchema.java >> | 63 50 + 13 - 0 ! >> dev/core/src/com/google/gwt/dev/cfg/Properties.java >> | 63 49 + 14 - 0 ! >> dev/core/src/com/google/gwt/dev/cfg/Property.java >> | 62 17 + 45 - 0 ! >> - The Property class has been factored into two subtypes to >> express binding versus configuration properties. >> >> dev/core/test/com/google/gwt/dev/util/test/PropertyPermutationsTest.java >> | 8 4 + 4 - 0 ! >> distro-source/core/src/gwt-module.dtd >> | 12 9 + 3 - 0 ! >> - DTD update included >> >> user/src/com/google/gwt/junit/JUnitShell.java >> | 3 2 + 1 - 0 ! >> user/test/com/google/gwt/dev/cfg/PropertyTest.gwt.xml >> | 25 25 + 0 - 0 ! >> user/test/com/google/gwt/dev/cfg/PropertyTest.java >> | 110 110 + 0 - 0 ! >> user/test/com/google/gwt/dev/cfg/PropertyTestBadA.gwt.xml >> | 18 18 + 0 - 0 ! >> user/test/com/google/gwt/dev/cfg/PropertyTestBadB.gwt.xml >> | 18 18 + 0 - 0 ! >> user/test/com/google/gwt/dev/cfg/TagSuite.java >> | 7 4 + 3 - 0 ! >> user/test/com/google/gwt/module/ConfigurationProperties.gwt.xml >> | 23 23 + 0 - 0 ! >> user/test/com/google/gwt/module/ModuleSuite.java >> | 2 2 + 0 - 0 ! >> user/test/com/google/gwt/module/client/ConfigurationPropertiesTest.java >> | 40 40 + 0 - 0 ! >> >> user/test/com/google/gwt/module/rebind/ConfigurationPropertiesGenerator.java >> | 74 74 + 0 - 0 ! >> 25 files changed, 724 insertions(+), 120 deletions(-) >> >> >> -- >> Bob Vawter >> Google Web Toolkit Team >> > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---