From 660e3a2a6052dda41a705d51faaeb1d13441f0de Mon Sep 17 00:00:00 2001 From: Charles Walker Date: Wed, 11 Oct 2023 10:10:30 -0400 Subject: [PATCH 1/2] add -setProperty gwt compiler option --- .../plugins/gwt/AbstractGwtCompile.java | 20 +++++++++++++++++++ .../docstr/gradle/plugins/gwt/GwtCompile.java | 2 ++ .../gradle/plugins/gwt/GwtCompileOptions.java | 11 ++++++++++ .../gwt/internal/GwtCompileOptionsImpl.java | 15 ++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/src/main/java/org/docstr/gradle/plugins/gwt/AbstractGwtCompile.java b/src/main/java/org/docstr/gradle/plugins/gwt/AbstractGwtCompile.java index bcbd4e5..4cba608 100644 --- a/src/main/java/org/docstr/gradle/plugins/gwt/AbstractGwtCompile.java +++ b/src/main/java/org/docstr/gradle/plugins/gwt/AbstractGwtCompile.java @@ -16,6 +16,7 @@ package org.docstr.gradle.plugins.gwt; import java.io.File; +import java.util.List; import java.util.concurrent.Callable; import org.gradle.api.internal.IConventionAware; import org.gradle.api.tasks.Input; @@ -51,6 +52,11 @@ protected void addArgs() { argIfEnabled(getDisableGeneratingOnShards(), "-XdisableGeneratingOnShards"); argIfSet("-optimize", getOptimize()); + + for (String property: getSetProperties()) { + args("-setProperty", property); + } + argIfEnabled(getDisableAggressiveOptimization(), "-XdisableAggressiveOptimization"); argIfEnabled(getDisableClassMetadata(), "-XdisableClassMetadata"); @@ -433,4 +439,18 @@ public Boolean getClosureFormattedOutput() { public void setClosureFormattedOutput(Boolean closureFormattedOutput) { options.setClosureFormattedOutput(closureFormattedOutput); } + + /** {@inheritDoc} */ + @Override + public void setSetProperties(List properties) { + options.setSetProperties(properties); + } + + /** {@inheritDoc} */ + @Optional + @Input + @Override + public List getSetProperties() { + return options.getSetProperties(); + } } diff --git a/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompile.java b/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompile.java index 613a55b..d5ca9d2 100644 --- a/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompile.java +++ b/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompile.java @@ -16,6 +16,7 @@ package org.docstr.gradle.plugins.gwt; import java.io.File; +import java.util.List; import java.util.concurrent.Callable; import org.gradle.api.internal.ConventionMapping; import org.gradle.api.internal.IConventionAware; @@ -93,5 +94,6 @@ protected void configure(final GwtCompileOptions options) { (Callable) () -> options.getSaveSourceOutput()); conventionMapping .map("closureFormattedOutput", options::getClosureFormattedOutput); + conventionMapping.map("setProperties", options::getSetProperties); } } diff --git a/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompileOptions.java b/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompileOptions.java index 57698df..68e970e 100644 --- a/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompileOptions.java +++ b/src/main/java/org/docstr/gradle/plugins/gwt/GwtCompileOptions.java @@ -16,6 +16,7 @@ package org.docstr.gradle.plugins.gwt; import java.io.File; +import java.util.List; /** @@ -236,4 +237,14 @@ public interface GwtCompileOptions { * @param closureFormattedOutput The closure formatted output. */ void setClosureFormattedOutput(Boolean closureFormattedOutput); + + /** + * Set the values of a property in the form of propertyName=value1[,value2...]. + * Example: -setProperties = ["user.agent=safari", "locale=default"] + * would add the parameters -setProperty user.agent=safari -setProperty locale=default + * @param properties The list of properties to be set + */ + void setSetProperties(List properties); + + List getSetProperties(); } \ No newline at end of file diff --git a/src/main/java/org/docstr/gradle/plugins/gwt/internal/GwtCompileOptionsImpl.java b/src/main/java/org/docstr/gradle/plugins/gwt/internal/GwtCompileOptionsImpl.java index 932b1b6..c6454a2 100644 --- a/src/main/java/org/docstr/gradle/plugins/gwt/internal/GwtCompileOptionsImpl.java +++ b/src/main/java/org/docstr/gradle/plugins/gwt/internal/GwtCompileOptionsImpl.java @@ -16,6 +16,8 @@ package org.docstr.gradle.plugins.gwt.internal; import java.io.File; +import java.util.Collections; +import java.util.List; import org.docstr.gradle.plugins.gwt.GwtCompileOptions; import org.docstr.gradle.plugins.gwt.Namespace; import org.docstr.gradle.plugins.gwt.Style; @@ -61,6 +63,7 @@ public class GwtCompileOptionsImpl implements GwtCompileOptions { private File saveSourceOutput; // -X[no]closureFormattedOutput private Boolean closureFormattedOutput; + private List properties = Collections.emptyList(); /** {@inheritDoc} */ @Override @@ -363,4 +366,16 @@ public Boolean getClosureFormattedOutput() { public void setClosureFormattedOutput(Boolean closureFormattedOutput) { this.closureFormattedOutput = closureFormattedOutput; } + + /** {@inheritDoc} */ + @Override + public void setSetProperties(List properties) { + this.properties = properties; + } + + /** {@inheritDoc} */ + @Override + public List getSetProperties() { + return this.properties; + } } From 2130567fc8b9a34cca70498b33fa65f58837f07a Mon Sep 17 00:00:00 2001 From: Charles Walker Date: Wed, 11 Oct 2023 12:03:18 -0400 Subject: [PATCH 2/2] update configuration reference doc --- doc/setup/Configuration References.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/setup/Configuration References.md b/doc/setup/Configuration References.md index cf97095..bd0d1a6 100644 --- a/doc/setup/Configuration References.md +++ b/doc/setup/Configuration References.md @@ -129,3 +129,15 @@ gwt { ``` The available log levels are defined in the enum [LogLevel](../javadoc/org/docstr/gradle/plugins/gwt/LogLevel.html). + +### Using the setProperty Compiler Flag + +GWT allows you to set the value of a property using the `-setProperty` flag. This is accomplished here by: + +``` +gwt { + compiler { + setProperties = ["user.agent=safari", "locale=default"] + } +} +```