From eb6d0d674bee71ef61ed36323e604b94afb1a371 Mon Sep 17 00:00:00 2001 From: Peter Palaga Date: Fri, 27 Mar 2026 15:02:40 +0100 Subject: [PATCH] Use direct setter calls instead of using commons-beanutils --- .../hyperjaxb3/ejb/plugin/EjbPlugin.java | 32 ++++++++++++++++++- .../RemoveAnnotationPlugin.java | 10 ++++++ .../jaxb-plugins-tools/pom.xml | 4 --- .../plugin/AbstractParameterizablePlugin.java | 24 ++++++++------ .../jaxb/plugin/equals/EqualsPlugin.java | 12 +++++++ .../jaxb/plugin/hashcode/HashCodePlugin.java | 11 +++++++ .../jaxb/plugin/map_init/MapInitPlugin.java | 10 ++++++ .../plugin/mergeable/MergeablePlugin.java | 11 +++++++ .../jaxb/plugin/setters/SettersPlugin.java | 11 +++++++ .../simpletostring/SimpleToStringPlugin.java | 11 +++++++ .../jaxb/plugin/simplify/SimplifyPlugin.java | 10 ++++++ .../jaxb/plugin/tostring/ToStringPlugin.java | 13 ++++++++ pom.xml | 12 ------- 13 files changed, 145 insertions(+), 26 deletions(-) diff --git a/hyperjaxb/ejb/plugin/src/main/java/org/jvnet/hyperjaxb3/ejb/plugin/EjbPlugin.java b/hyperjaxb/ejb/plugin/src/main/java/org/jvnet/hyperjaxb3/ejb/plugin/EjbPlugin.java index ce497b7ec..c857ab772 100644 --- a/hyperjaxb/ejb/plugin/src/main/java/org/jvnet/hyperjaxb3/ejb/plugin/EjbPlugin.java +++ b/hyperjaxb/ejb/plugin/src/main/java/org/jvnet/hyperjaxb3/ejb/plugin/EjbPlugin.java @@ -84,7 +84,37 @@ public String getUsage() { return " -Xhyperjaxb3-ejb: Hyperjaxb3 EJB plugin"; } - private String roundtripTestClassName; + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "roundtripTestClassName": + setRoundtripTestClassName(value); + return; + case "persistenceUnitName": + setPersistenceUnitName(value); + return; + case "targetDir": + setTargetDir(new File(value)); + return; + case "persistenceXml": + setPersistenceXml(new File(value)); + return; + case "applicationContextClassName": + setApplicationContextClassName(value); + return; + case "maxIdentifierLength": + setMaxIdentifierLength(Integer.parseInt(value)); + return; + case "result": + setResult(value); + return; + default: + super.setProperty(propertyName, value); + } + } + + + private String roundtripTestClassName; public String getRoundtripTestClassName() { return roundtripTestClassName; diff --git a/jaxb-annotate-parent/plugin/src/main/java/org/jvnet/jaxb/plugin/removeannotation/RemoveAnnotationPlugin.java b/jaxb-annotate-parent/plugin/src/main/java/org/jvnet/jaxb/plugin/removeannotation/RemoveAnnotationPlugin.java index bb7f2bec9..edbc8a94b 100644 --- a/jaxb-annotate-parent/plugin/src/main/java/org/jvnet/jaxb/plugin/removeannotation/RemoveAnnotationPlugin.java +++ b/jaxb-annotate-parent/plugin/src/main/java/org/jvnet/jaxb/plugin/removeannotation/RemoveAnnotationPlugin.java @@ -189,6 +189,16 @@ public String getOptionName() { public String getUsage() { return "TBD"; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "defaultFieldTarget": + setDefaultFieldTarget(value); + return; + default: + super.setProperty(propertyName, value); + } + } private String defaultFieldTarget = "getter"; diff --git a/jaxb-plugins-parent/jaxb-plugins-tools/pom.xml b/jaxb-plugins-parent/jaxb-plugins-tools/pom.xml index 0d5d2d663..08ef53246 100644 --- a/jaxb-plugins-parent/jaxb-plugins-tools/pom.xml +++ b/jaxb-plugins-parent/jaxb-plugins-tools/pom.xml @@ -14,10 +14,6 @@ org.slf4j slf4j-api - - commons-beanutils - commons-beanutils - org.slf4j jcl-over-slf4j diff --git a/jaxb-plugins-parent/jaxb-plugins-tools/src/main/java/org/jvnet/jaxb/plugin/AbstractParameterizablePlugin.java b/jaxb-plugins-parent/jaxb-plugins-tools/src/main/java/org/jvnet/jaxb/plugin/AbstractParameterizablePlugin.java index b73c18881..23c361c5c 100644 --- a/jaxb-plugins-parent/jaxb-plugins-tools/src/main/java/org/jvnet/jaxb/plugin/AbstractParameterizablePlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins-tools/src/main/java/org/jvnet/jaxb/plugin/AbstractParameterizablePlugin.java @@ -2,8 +2,6 @@ import java.io.IOException; -import org.apache.commons.beanutils.BeanUtils; - import com.sun.tools.xjc.BadCommandLineException; import com.sun.tools.xjc.Options; @@ -42,14 +40,22 @@ public int parseArgument(Options opt, String[] args, int start) final String value = arg.substring(equalsPosition + 1); consumed++; - try { - BeanUtils.setProperty(this, propertyName, value); - } catch (Exception ex) { - ex.printStackTrace(); - throw new BadCommandLineException("Error setting property [" - + propertyName + "], value [" + value + "]."); - } + setProperty(propertyName, value); } return consumed; } + + /** + * Set the {@code propertyName} filed of this {@link AbstractParameterizablePlugin} to the specified {@code value}. + *

+ * This implementation always throws {@link UnsupportedOperationException}. + * It is up to the subclasses of {@link #AbstractParameterizablePlugin()} to property implement this method and + * possibly delegate to this implementation if an unknown property occurs. + * + * @param propertyName the field to set + * @param value the value to set + */ + protected void setProperty(String propertyName, String value) { + throw new UnsupportedOperationException("Cannot set property " + propertyName + " on " + this.getClass().getName()); + } } diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/equals/EqualsPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/equals/EqualsPlugin.java index 4f5ce510d..c03522c97 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/equals/EqualsPlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/equals/EqualsPlugin.java @@ -1,5 +1,6 @@ package org.jvnet.jaxb.plugin.equals; +import java.io.File; import java.util.Arrays; import java.util.Collection; @@ -48,6 +49,17 @@ public String getUsage() { return "TBD"; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "equalsStrategyClass": + setEqualsStrategyClass(value); + return; + default: + super.setProperty(propertyName, value); + } + } + private FieldAccessorFactory fieldAccessorFactory = PropertyFieldAccessorFactory.INSTANCE; public FieldAccessorFactory getFieldAccessorFactory() { diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/hashcode/HashCodePlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/hashcode/HashCodePlugin.java index 0edeacfb0..2a997a8a5 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/hashcode/HashCodePlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/hashcode/HashCodePlugin.java @@ -47,6 +47,17 @@ public String getUsage() { return "TBD"; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "hashCodeStrategyClass": + setHashCodeStrategyClass(value); + return; + default: + super.setProperty(propertyName, value); + } + } + private FieldAccessorFactory fieldAccessorFactory = PropertyFieldAccessorFactory.INSTANCE; public FieldAccessorFactory getFieldAccessorFactory() { diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/map_init/MapInitPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/map_init/MapInitPlugin.java index a960a6828..bc56e16d4 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/map_init/MapInitPlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/map_init/MapInitPlugin.java @@ -44,6 +44,16 @@ public String getUsage() { return "Change getter for maps to initialize Maps."; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "mapClass": + setMapClass(value); + return; + default: + super.setProperty(propertyName, value); + } + } private String mapClass = HashMap.class.getName(); public void setMapClass(String mapClass) { diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/mergeable/MergeablePlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/mergeable/MergeablePlugin.java index ff9e3c592..48b1038f1 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/mergeable/MergeablePlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/mergeable/MergeablePlugin.java @@ -50,6 +50,17 @@ public String getUsage() { return "TBD"; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "mergeStrategyClass": + setMergeStrategyClass(value); + return; + default: + super.setProperty(propertyName, value); + } + } + private FieldAccessorFactory fieldAccessorFactory = PropertyFieldAccessorFactory.INSTANCE; public FieldAccessorFactory getFieldAccessorFactory() { diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/setters/SettersPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/setters/SettersPlugin.java index aa5663bf9..0eeb904d9 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/setters/SettersPlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/setters/SettersPlugin.java @@ -40,6 +40,17 @@ public String getUsage() { return "Generates setters for collections."; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "mode": + setMode(value); + return; + default: + super.setProperty(propertyName, value); + } + } + public boolean run(Outline outline, Options opt, ErrorHandler errorHandler) { for (final ClassOutline classOutline : outline.getClasses()) if (!getIgnoring().isIgnored(classOutline)) { diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simpletostring/SimpleToStringPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simpletostring/SimpleToStringPlugin.java index 8c80316bf..e8beadd9a 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simpletostring/SimpleToStringPlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simpletostring/SimpleToStringPlugin.java @@ -46,6 +46,17 @@ public String getUsage() { return "TBD"; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "toStringStrategyClass": + setToStringStrategyClass(value); + return; + default: + super.setProperty(propertyName, value); + } + } + private FieldAccessorFactory fieldAccessorFactory = PropertyFieldAccessorFactory.INSTANCE; public FieldAccessorFactory getFieldAccessorFactory() { diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simplify/SimplifyPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simplify/SimplifyPlugin.java index e11fdc23b..1e1999b6b 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simplify/SimplifyPlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simplify/SimplifyPlugin.java @@ -57,6 +57,16 @@ public String getUsage() { + " Please visit https://github.com/highsource/jaxb-tools/wiki/JAXB2-Simplify-Plugin" + " for plugin documentation."; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "usePluralForm": + setUsePluralForm(Boolean.parseBoolean(value)); + return; + default: + super.setProperty(propertyName, value); + } + } private Ignoring ignoring = new ComposedIgnoring( logger, diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/tostring/ToStringPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/tostring/ToStringPlugin.java index f2202ffae..1386a582b 100644 --- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/tostring/ToStringPlugin.java +++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/tostring/ToStringPlugin.java @@ -48,6 +48,19 @@ public String getOptionName() { public String getUsage() { return "TBD"; } + @Override + protected void setProperty(String propertyName, String value) { + switch (propertyName) { + case "toStringStrategyClass": + setToStringStrategyClass(value); + return; + case "toStringEnums": + setToStringEnums(Boolean.parseBoolean(value)); + return; + default: + super.setProperty(propertyName, value); + } + } private FieldAccessorFactory fieldAccessorFactory = PropertyFieldAccessorFactory.INSTANCE; diff --git a/pom.xml b/pom.xml index 2420b96b5..b252d9a0f 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,6 @@ 1.10.14 4.0.6 - 1.11.0 3.18.0 3.0 4.1.1.Final @@ -356,17 +355,6 @@ - - commons-beanutils - commons-beanutils - ${commons-beanutils.version} - - - commons-logging - commons-logging - - - org.apache.commons commons-lang3