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..5ad6809bd 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,30 @@ 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
+ */
+ private void setProperty(String propertyName, String value) throws BadCommandLineException {
+ try {
+ doSetProperty(propertyName, value);
+ } catch (Exception e) {
+ throw new BadCommandLineException("Error setting property [" + propertyName + "], value [" + value + "].", e);
+ }
+ }
+
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ 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/autoinheritance/AutoInheritancePlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/autoinheritance/AutoInheritancePlugin.java
index 69d00388e..36ea8a4ae 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/autoinheritance/AutoInheritancePlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/autoinheritance/AutoInheritancePlugin.java
@@ -17,12 +17,12 @@
public class AutoInheritancePlugin extends AbstractParameterizablePlugin {
private String xmlRootElementsExtend = null;
- private List xmlRootElementsImplement = new LinkedList();
+ private List xmlRootElementsImplement = new LinkedList<>();
private String xmlTypesExtend = null;
- private List xmlTypesImplement = new LinkedList();
+ private List xmlTypesImplement = new LinkedList<>();
- private List jaxbElementsImplement = new LinkedList();
+ private List jaxbElementsImplement = new LinkedList<>();
public String getXmlRootElementsExtend() {
return xmlRootElementsExtend;
@@ -74,6 +74,23 @@ public String getUsage() {
return "TBD";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("xmlRootElementsExtend".equals(propertyName)) {
+ setXmlRootElementsExtend(value);
+ } else if ("xmlRootElementsImplement".equals(propertyName)) {
+ setXmlRootElementsImplement(value);
+ } else if ("xmlTypesExtend".equals(propertyName)) {
+ setXmlTypesExtend(value);
+ } else if ("xmlTypesImplement".equals(propertyName)) {
+ setXmlTypesImplement(value);
+ } else if ("jaxbElementsImplement".equals(propertyName)) {
+ setJaxbElementsImplement(value);
+ } else {
+ super.doSetProperty(propertyName, value);
+ }
+ }
+
@Override
public boolean run(Outline outline, Options opt, ErrorHandler errorHandler) {
for (final ClassOutline classOutline : outline.getClasses()) {
diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/codegenerator/AbstractCodeGeneratorPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/codegenerator/AbstractCodeGeneratorPlugin.java
index 18f371ec1..a491c26a2 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/codegenerator/AbstractCodeGeneratorPlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/codegenerator/AbstractCodeGeneratorPlugin.java
@@ -21,6 +21,15 @@
public abstract class AbstractCodeGeneratorPlugin> extends
AbstractParameterizablePlugin {
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("fieldAccessorFactory".equals(propertyName)) {
+ setFieldAccessorFactory((FieldAccessorFactory) Class.forName(value).getConstructor().newInstance());
+ } else {
+ super.doSetProperty(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/copyable/CopyablePlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/copyable/CopyablePlugin.java
index 9ed1231b0..47625ed0b 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/copyable/CopyablePlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/copyable/CopyablePlugin.java
@@ -51,6 +51,17 @@ public String getUsage() {
return "TBD";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("fieldAccessorFactory".equals(propertyName)) {
+ setFieldAccessorFactory((FieldAccessorFactory) Class.forName(value).getConstructor().newInstance());
+ } else if ("copyStrategyClass".equals(propertyName)) {
+ setCopyStrategyClass(value);
+ } else {
+ super.doSetProperty(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/customizations/CustomizationsPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/customizations/CustomizationsPlugin.java
index e5e74559c..346302d55 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/customizations/CustomizationsPlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/customizations/CustomizationsPlugin.java
@@ -15,6 +15,7 @@
import org.jvnet.jaxb.plugin.AbstractParameterizablePlugin;
import org.jvnet.jaxb.util.ClassUtils;
+import org.jvnet.jaxb.util.FieldAccessorFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -67,6 +68,17 @@ public String getUsage() {
return " -Xcustomizations : reads and adds customizations from files";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("verbose".equals(propertyName)) {
+ setVerbose(Boolean.parseBoolean(value));
+ } else if ("directory".equals(propertyName)) {
+ setDirectory(new File(value));
+ } else {
+ super.doSetProperty(propertyName, value);
+ }
+ }
+
@Override
public void postProcessModel(Model model, ErrorHandler errorHandler) {
if (getDirectory() == null) {
diff --git a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/enumvalue/EnumValuePlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/enumvalue/EnumValuePlugin.java
index 5eb4ccc57..2c323da70 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/enumvalue/EnumValuePlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/enumvalue/EnumValuePlugin.java
@@ -6,7 +6,7 @@
import javax.xml.namespace.QName;
import org.jvnet.jaxb.lang.EnumValue;
-import org.jvnet.jaxb.plugin.AbstractParameterizablePlugin;
+import org.jvnet.jaxb.plugin.AbstractPlugin;
import org.jvnet.jaxb.plugin.ComposedIgnoring;
import org.jvnet.jaxb.plugin.CustomizedIgnoring;
import org.jvnet.jaxb.plugin.Ignoring;
@@ -24,7 +24,7 @@
import com.sun.tools.xjc.outline.EnumOutline;
import com.sun.tools.xjc.outline.Outline;
-public class EnumValuePlugin extends AbstractParameterizablePlugin {
+public class EnumValuePlugin extends AbstractPlugin {
@Override
public String getOptionName() {
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 a64bb9825..faad7cff9 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
@@ -49,6 +49,17 @@ public String getUsage() {
return "TBD";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("fieldAccessorFactory".equals(propertyName)) {
+ setFieldAccessorFactory((FieldAccessorFactory) Class.forName(value).getConstructor().newInstance());
+ } else if ("equalsStrategyClass".equals(propertyName)) {
+ setEqualsStrategyClass(value);
+ } else {
+ super.doSetProperty(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 036ffde3c..ba42896c9 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 doSetProperty(String propertyName, String value) throws Exception {
+ if ("fieldAccessorFactory".equals(propertyName)) {
+ setFieldAccessorFactory((FieldAccessorFactory) Class.forName(value).getConstructor().newInstance());
+ } else if ("hashCodeStrategyClass".equals(propertyName)) {
+ setHashCodeStrategyClass(value);
+ } else {
+ super.doSetProperty(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/inheritance/InheritancePlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/inheritance/InheritancePlugin.java
index d491ae234..37910d64d 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/inheritance/InheritancePlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/inheritance/InheritancePlugin.java
@@ -10,7 +10,7 @@
import javax.xml.namespace.QName;
-import org.jvnet.jaxb.plugin.AbstractParameterizablePlugin;
+import org.jvnet.jaxb.plugin.AbstractPlugin;
import org.jvnet.jaxb.plugin.inheritance.util.JavaTypeParser;
import org.jvnet.jaxb.util.CustomizationUtils;
import org.xml.sax.ErrorHandler;
@@ -33,7 +33,7 @@
import com.sun.tools.xjc.outline.PackageOutline;
import com.sun.tools.xjc.reader.xmlschema.bindinfo.BIEnum;
-public class InheritancePlugin extends AbstractParameterizablePlugin {
+public class InheritancePlugin extends AbstractPlugin {
@Override
public String getOptionName() {
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..27a6aadc2 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
@@ -21,6 +21,7 @@
import org.jvnet.jaxb.plugin.inheritance.ExtendsClass;
import org.jvnet.jaxb.plugin.util.FieldOutlineUtils;
import org.jvnet.jaxb.util.CustomizationUtils;
+import org.jvnet.jaxb.util.FieldAccessorFactory;
import org.xml.sax.ErrorHandler;
import javax.xml.namespace.QName;
@@ -44,6 +45,15 @@ public String getUsage() {
return "Change getter for maps to initialize Maps.";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("mapClass".equals(propertyName)) {
+ setMapClass(value);
+ } else {
+ super.doSetProperty(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 9b9de78d9..cdd26dcaa 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 doSetProperty(String propertyName, String value) throws Exception {
+ if ("fieldAccessorFactory".equals(propertyName)) {
+ setFieldAccessorFactory((FieldAccessorFactory) Class.forName(value).getConstructor().newInstance());
+ } else if ("mergeStrategyClass".equals(propertyName)) {
+ setMergeStrategyClass(value);
+ } else {
+ super.doSetProperty(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/parentpointer/ParentPointerPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/parentpointer/ParentPointerPlugin.java
index e0fef5fb9..b885f9651 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/parentpointer/ParentPointerPlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/parentpointer/ParentPointerPlugin.java
@@ -25,7 +25,7 @@ public class ParentPointerPlugin extends Plugin {
protected final String OPTION_NAME = "Xparent-pointer";
- private static final String className = Plugin.class.getName();
+ private static final String className = ParentPointerPlugin.class.getName();
private static final Logger logger = Logger.getLogger(className);
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..ad583a637 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
@@ -11,6 +11,7 @@
import org.jvnet.jaxb.plugin.CustomizedIgnoring;
import org.jvnet.jaxb.plugin.Ignoring;
import org.jvnet.jaxb.plugin.util.FieldOutlineUtils;
+import org.jvnet.jaxb.util.FieldAccessorFactory;
import org.xml.sax.ErrorHandler;
import com.sun.codemodel.JDefinedClass;
@@ -40,6 +41,15 @@ public String getUsage() {
return "Generates setters for collections.";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("mode".equals(propertyName)) {
+ setMode(value);
+ } else {
+ super.doSetProperty(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/simplify/SimplifyPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/simplify/SimplifyPlugin.java
index e11fdc23b..e30b1c82e 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
@@ -13,6 +13,7 @@
import org.jvnet.jaxb.plugin.CustomizedIgnoring;
import org.jvnet.jaxb.plugin.Ignoring;
import org.jvnet.jaxb.util.CustomizationUtils;
+import org.jvnet.jaxb.util.FieldAccessorFactory;
import org.xml.sax.ErrorHandler;
import com.sun.codemodel.JJavaName;
@@ -58,6 +59,15 @@ public String getUsage() {
+ " for plugin documentation.";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("usePluralForm".equals(propertyName)) {
+ setUsePluralForm(Boolean.parseBoolean(value));
+ } else {
+ super.doSetProperty(propertyName, value);
+ }
+ }
+
private Ignoring ignoring = new ComposedIgnoring(
logger,
new CustomizedIgnoring(
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 c12eadce8..48aa04ae5 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
@@ -50,6 +50,19 @@ public String getUsage() {
return "TBD";
}
+ @Override
+ protected void doSetProperty(String propertyName, String value) throws Exception {
+ if ("fieldAccessorFactory".equals(propertyName)) {
+ setFieldAccessorFactory((FieldAccessorFactory) Class.forName(value).getConstructor().newInstance());
+ } else if ("toStringStrategyClass".equals(propertyName)) {
+ setToStringStrategyClass(value);
+ } else if ("toStringEnums".equals(propertyName)) {
+ setToStringEnums(Boolean.parseBoolean(value));
+ } else {
+ super.doSetProperty(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/wildcard/WildcardPlugin.java b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/wildcard/WildcardPlugin.java
index b4c7c2a50..3da5de3c7 100644
--- a/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/wildcard/WildcardPlugin.java
+++ b/jaxb-plugins-parent/jaxb-plugins/src/main/java/org/jvnet/jaxb/plugin/wildcard/WildcardPlugin.java
@@ -5,7 +5,7 @@
import javax.xml.namespace.QName;
-import org.jvnet.jaxb.plugin.AbstractParameterizablePlugin;
+import org.jvnet.jaxb.plugin.AbstractPlugin;
import org.jvnet.jaxb.util.CustomizationUtils;
import org.xml.sax.ErrorHandler;
@@ -15,7 +15,7 @@
import com.sun.tools.xjc.model.Model;
import org.glassfish.jaxb.core.v2.model.core.WildcardMode;
-public class WildcardPlugin extends AbstractParameterizablePlugin {
+public class WildcardPlugin extends AbstractPlugin {
@Override
public String getOptionName() {
diff --git a/pom.xml b/pom.xml
index d158c19d5..e4224bc84 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,6 @@
1.10.14
4.0.9
- 1.11.0
3.18.0
3.0
4.1.1.Final
@@ -355,21 +354,6 @@
-