Skip to content

Commit

Permalink
Move off Properties for parameters (#441)
Browse files Browse the repository at this point in the history
Make it Map<String, Object> so not only strings
can be passed to modello.
  • Loading branch information
cstamas committed May 2, 2024
1 parent 7769a40 commit a2e2113
Show file tree
Hide file tree
Showing 80 changed files with 292 additions and 285 deletions.
6 changes: 3 additions & 3 deletions modello-core/src/main/java/org/codehaus/modello/Modello.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

import java.io.Reader;
import java.io.Writer;
import java.util.Properties;
import java.util.Map;

import org.codehaus.modello.core.ModelloCore;
import org.codehaus.modello.model.Model;
Expand All @@ -44,14 +44,14 @@ public Modello(ModelloCore core) {
this.core = core;
}

public void generate(Reader modelReader, String outputType, Properties parameters)
public void generate(Reader modelReader, String outputType, Map<String, Object> parameters)
throws ModelloException, ModelValidationException {
Model model = core.loadModel(modelReader);

core.generate(model, outputType, parameters);
}

public void translate(Reader reader, Writer writer, String outputType, Properties parameters)
public void translate(Reader reader, Writer writer, String outputType, Map<String, Object> parameters)
throws ModelloException, ModelValidationException {
Model model = core.translate(reader, outputType, parameters);

Expand Down
17 changes: 9 additions & 8 deletions modello-core/src/main/java/org/codehaus/modello/ModelloCli.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
*/

import java.io.File;
import java.util.Properties;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.util.StringUtils;
Expand All @@ -37,7 +38,7 @@ public class ModelloCli {

private static String outputType;

private static Properties parameters;
private static Map<String, Object> parameters;

public static void main(String[] args) throws Exception {
Modello modello = new DefaultPlexusContainer().lookup(Modello.class);
Expand All @@ -58,7 +59,7 @@ public static void parseArgumentsFromCommandLine(String[] args) throws Exception

outputType = args[1];

parameters = new Properties();
parameters = new HashMap<>();

String outputDirectory = args[2];

Expand All @@ -70,7 +71,7 @@ public static void parseArgumentsFromCommandLine(String[] args) throws Exception
System.exit(1);
}

parameters.setProperty(ModelloParameterConstants.OUTPUT_DIRECTORY, outputDirectory);
parameters.put(ModelloParameterConstants.OUTPUT_DIRECTORY, outputDirectory);

String modelVersion = args[3];

Expand All @@ -82,7 +83,7 @@ public static void parseArgumentsFromCommandLine(String[] args) throws Exception
System.exit(1);
}

parameters.setProperty(ModelloParameterConstants.VERSION, modelVersion);
parameters.put(ModelloParameterConstants.VERSION, modelVersion);

String packageWithVersion = args[4];

Expand All @@ -94,7 +95,7 @@ public static void parseArgumentsFromCommandLine(String[] args) throws Exception
System.exit(1);
}

parameters.setProperty(ModelloParameterConstants.PACKAGE_WITH_VERSION, packageWithVersion);
parameters.put(ModelloParameterConstants.PACKAGE_WITH_VERSION, packageWithVersion);

String javaSource = args[5];

Expand All @@ -106,10 +107,10 @@ public static void parseArgumentsFromCommandLine(String[] args) throws Exception
System.exit(1);
}

parameters.setProperty(ModelloParameterConstants.OUTPUT_JAVA_SOURCE, javaSource);
parameters.put(ModelloParameterConstants.OUTPUT_JAVA_SOURCE, javaSource);

if (args.length > 6) {
parameters.setProperty(ModelloParameterConstants.ENCODING, args[6]);
parameters.put(ModelloParameterConstants.ENCODING, args[6]);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
import java.io.Writer;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.codehaus.modello.ModelloException;
import org.codehaus.modello.ModelloRuntimeException;
Expand Down Expand Up @@ -251,11 +251,11 @@ public void saveModel(Model model, Writer writer) throws ModelloException {
throw new ModelloRuntimeException("Not implemented.");
}

public Model translate(Reader reader, String inputType, Properties parameters) throws ModelloException {
public Model translate(Reader reader, String inputType, Map<String, Object> parameters) throws ModelloException {
throw new ModelloRuntimeException("Not implemented.");
}

public void generate(Model model, String outputType, Properties parameters) throws ModelloException {
public void generate(Model model, String outputType, Map<String, Object> parameters) throws ModelloException {
if (model == null) {
throw new ModelloRuntimeException("Illegal argument: model == null.");
}
Expand All @@ -265,7 +265,7 @@ public void generate(Model model, String outputType, Properties parameters) thro
}

if (parameters == null) {
parameters = new Properties();
parameters = new HashMap<>();
}

ModelloGenerator generator = generatorPluginManager.getGeneratorPlugin(outputType);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Properties;
import java.util.Map;

import org.codehaus.modello.ModelloException;
import org.codehaus.modello.model.Model;
Expand All @@ -46,8 +46,8 @@ public interface ModelloCore {

void saveModel(Model model, Writer writer) throws ModelloException;

Model translate(Reader reader, String inputType, Properties parameters)
Model translate(Reader reader, String inputType, Map<String, Object> parameters)
throws ModelloException, ModelValidationException;

void generate(Model model, String outputType, Properties parameters) throws ModelloException;
void generate(Model model, String outputType, Map<String, Object> parameters) throws ModelloException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.Map;

import org.codehaus.modello.ModelloException;
import org.codehaus.modello.ModelloParameterConstants;
Expand Down Expand Up @@ -76,24 +76,21 @@ protected Logger getLogger() {
return logger;
}

protected void initialize(Model model, Properties parameters) throws ModelloException {
protected void initialize(Model model, Map<String, Object> parameters) throws ModelloException {
this.model = model;

outputDirectory = new File(getParameter(parameters, ModelloParameterConstants.OUTPUT_DIRECTORY));
outputDirectory = new File(requireParameter(parameters, ModelloParameterConstants.OUTPUT_DIRECTORY));

String version = getParameter(parameters, ModelloParameterConstants.VERSION);
String version = requireParameter(parameters, ModelloParameterConstants.VERSION);

generatedVersion = new Version(version);

packageWithVersion =
Boolean.parseBoolean(getParameter(parameters, ModelloParameterConstants.PACKAGE_WITH_VERSION));
Boolean.parseBoolean(requireParameter(parameters, ModelloParameterConstants.PACKAGE_WITH_VERSION));

encoding = parameters.getProperty(ModelloParameterConstants.ENCODING);
encoding = (String) parameters.get(ModelloParameterConstants.ENCODING);

String licenseTextPacked = parameters.getProperty(ModelloParameterConstants.LICENSE_TEXT);
if (licenseTextPacked != null) {
licenseText = Arrays.asList(licenseTextPacked.split("\\|"));
}
licenseText = (List<String>) parameters.get(ModelloParameterConstants.LICENSE_TEXT);
}

protected Model getModel() {
Expand Down Expand Up @@ -237,19 +234,8 @@ protected boolean isEmpty(String string) {
// Parameter utils
// ----------------------------------------------------------------------

/**
* @deprecated Use {@link #getParameter(Properties, String)} instead
* @param name parameter name
* @param parameters the properties
* @return the parameter value
*/
@Deprecated
protected String getParameter(String name, Properties parameters) {
return getParameter(parameters, name);
}

protected String getParameter(Properties parameters, String name) {
String value = parameters.getProperty(name);
protected String requireParameter(Map<String, Object> parameters, String name) {
String value = (String) parameters.get(name);

if (value == null) {
throw new ModelloRuntimeException("Missing parameter '" + name + "'.");
Expand All @@ -258,8 +244,8 @@ protected String getParameter(Properties parameters, String name) {
return value;
}

protected String getParameter(Properties parameters, String name, String defaultValue) {
return parameters.getProperty(name, defaultValue);
protected String getParameter(Map<String, Object> parameters, String name, String defaultValue) {
return (String) parameters.getOrDefault(name, defaultValue);
}

protected BuildContext getBuildContext() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* SOFTWARE.
*/

import java.util.Properties;
import java.util.Map;

import org.codehaus.modello.ModelloException;
import org.codehaus.modello.model.Model;
Expand All @@ -31,5 +31,5 @@
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
*/
public interface ModelloGenerator {
void generate(Model model, Properties parameters) throws ModelloException;
void generate(Model model, Map<String, Object> parameters) throws ModelloException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import java.util.Map;
import java.util.stream.Collectors;

import org.apache.maven.model.Resource;
Expand Down Expand Up @@ -144,8 +145,8 @@ protected boolean producesResources() {
*
* @return the parameters
*/
protected Properties createParameters() {
return new Properties();
protected Map<String, Object> createParameters() {
return new HashMap<>();
}

/**
Expand All @@ -156,7 +157,7 @@ protected Properties createParameters() {
*
* @param parameters the parameters to customize
*/
protected void customizeParameters(Properties parameters) {}
protected void customizeParameters(Map<String, Object> parameters) {}

// ----------------------------------------------------------------------
//
Expand All @@ -171,21 +172,20 @@ public void execute() throws MojoExecutionException {
// Initialize the parameters
// ----------------------------------------------------------------------

Properties parameters = createParameters();
Map<String, Object> parameters = createParameters();

parameters.setProperty(ModelloParameterConstants.OUTPUT_DIRECTORY, outputDirectory);
parameters.put(ModelloParameterConstants.OUTPUT_DIRECTORY, outputDirectory);

parameters.setProperty(ModelloParameterConstants.VERSION, version);
parameters.put(ModelloParameterConstants.VERSION, version);

parameters.setProperty(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(packageWithVersion));
parameters.put(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(packageWithVersion));

if (!packagedVersions.isEmpty()) {
parameters.setProperty(
ModelloParameterConstants.ALL_VERSIONS, StringUtils.join(packagedVersions.iterator(), ","));
parameters.put(ModelloParameterConstants.ALL_VERSIONS, StringUtils.join(packagedVersions.iterator(), ","));
}

if (licenseText != null || licenseFile != null) {
List<String> license = null;
List<String> license;
if (licenseText != null) {
// licenseText prevails
license = Arrays.asList(licenseText.split(System.lineSeparator()));
Expand All @@ -199,7 +199,7 @@ public void execute() throws MojoExecutionException {
throw new MojoExecutionException("Could not load up license text from " + licenseFile, e);
}
}
parameters.setProperty(ModelloParameterConstants.LICENSE_TEXT, String.join("|", license));
parameters.put(ModelloParameterConstants.LICENSE_TEXT, license);
}

customizeParameters(parameters);
Expand Down Expand Up @@ -227,7 +227,7 @@ public void execute() throws MojoExecutionException {
/**
* Performs execute on a single specified model.
*/
private void doExecute(String modelStr, String outputDirectory, Properties parameters)
private void doExecute(String modelStr, String outputDirectory, Map<String, Object> parameters)
throws MojoExecutionException {
if (!buildContext.hasDelta(modelStr)) {
getLog().debug("Skipping unchanged model: " + modelStr);
Expand All @@ -247,9 +247,9 @@ private void doExecute(String modelStr, String outputDirectory, Properties param
modelloCore.generate(model, getGeneratorType(), parameters);

for (String version : packagedVersions) {
parameters.setProperty(ModelloParameterConstants.VERSION, version);
parameters.put(ModelloParameterConstants.VERSION, version);

parameters.setProperty(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(true));
parameters.put(ModelloParameterConstants.PACKAGE_WITH_VERSION, Boolean.toString(true));

getLog().info("Generating packaged version: " + version);
modelloCore.generate(model, getGeneratorType(), parameters);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*/

import java.io.File;
import java.util.Map;
import java.util.Optional;
import java.util.Properties;
import java.util.function.Supplier;
Expand Down Expand Up @@ -87,11 +88,11 @@ public void setOutputDirectory(File outputDirectory) {
}

@Override
protected void customizeParameters(Properties parameters) {
protected void customizeParameters(Map<String, Object> parameters) {
super.customizeParameters(parameters);

if (encoding != null) {
parameters.setProperty(ModelloParameterConstants.ENCODING, encoding);
parameters.put(ModelloParameterConstants.ENCODING, encoding);
}

if (javaSource == null) {
Expand All @@ -101,9 +102,9 @@ protected void customizeParameters(Properties parameters) {
javaSource = javaSource.substring("1.".length());
}
getLog().debug("javaSource=" + javaSource);
parameters.setProperty(ModelloParameterConstants.OUTPUT_JAVA_SOURCE, javaSource);
parameters.put(ModelloParameterConstants.OUTPUT_JAVA_SOURCE, javaSource);

parameters.setProperty(ModelloParameterConstants.DOM_AS_XPP3, Boolean.toString(domAsXpp3));
parameters.put(ModelloParameterConstants.DOM_AS_XPP3, Boolean.toString(domAsXpp3));
}

private String discoverJavaSource() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* SOFTWARE.
*/

import java.util.Properties;
import java.util.Map;

import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
Expand All @@ -41,10 +41,10 @@ protected String getGeneratorType() {
}

@Override
protected void customizeParameters(Properties parameters) {
protected void customizeParameters(Map<String, Object> parameters) {
super.customizeParameters(parameters);

if ("true".equals(parameters.getProperty(ModelloParameterConstants.DOM_AS_XPP3))
if ("true".equals(parameters.get(ModelloParameterConstants.DOM_AS_XPP3))
&& !getProject().getArtifactMap().containsKey("com.fasterxml.jackson.core:jackson-databind")) {
getLog().warn("Jackson DOM support requires auxiliary com.fasterxml.jackson.core:jackson-databind module!");
}
Expand Down

0 comments on commit a2e2113

Please sign in to comment.