CXFXJC-17 - Multiple Binding Files
diff --git a/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java
index 9e9b0dd..fbe12e3 100644
--- a/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java
+++ b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java
@@ -214,12 +214,14 @@
//ignore
}
}
- if (xsdOptions[x].getBindingFile() != null) {
- URI bindingURI = mapLocation(xsdOptions[x].getBindingFile());
- if ("file".equals(bindingURI.getScheme())) {
- long bts = new File(bindingURI).lastModified();
- if (bts > srctimestamp) {
- srctimestamp = bts;
+ if (xsdOptions[x].getBindingFiles() != null) {
+ for (String bf : xsdOptions[x].getBindingFiles()) {
+ URI bindingURI = mapLocation(bf);
+ if ("file".equals(bindingURI.getScheme())) {
+ long bts = new File(bindingURI).lastModified();
+ if (bts > srctimestamp) {
+ srctimestamp = bts;
+ }
}
}
}
@@ -251,7 +253,11 @@
}
}
removeMessages(xsdFile);
- removeMessages(xsdOptions[x].getBindingFile());
+ if (xsdOptions[x].getBindingFiles() != null) {
+ for (String bf : xsdOptions[x].getBindingFiles()) {
+ removeMessages(bf);
+ }
+ }
int i = run(xsdOptions[x], xsdFile, outputDir);
if (i == 0) {
doneFile.delete();
@@ -410,9 +416,11 @@
list.add("-p");
list.add(option.getPackagename());
}
- if (option.getBindingFile() != null) {
- list.add("-b");
- list.add(mapLocation(option.getBindingFile()).toString());
+ if (option.getBindingFiles() != null) {
+ for (String bf : option.getBindingFiles()) {
+ list.add("-b");
+ list.add(mapLocation(bf).toString());
+ }
}
if (option.getCatalog() != null) {
list.add("-catalog");
diff --git a/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XsdOption.java b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XsdOption.java
index 4329b39..8fc2a13 100644
--- a/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XsdOption.java
+++ b/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XsdOption.java
@@ -20,17 +20,18 @@
package org.apache.cxf.maven_plugin;
import java.io.File;
+import java.util.ArrayList;
import java.util.List;
public class XsdOption {
String xsd;
String xsdDir;
String packagename;
- String bindingFile;
File dependencies[];
File redundantDirs[];
boolean extension;
List<String> extensionArgs;
+ List<String> bindingFiles;
String catalog;
public String getPackagename() {
@@ -52,10 +53,25 @@
this.xsdDir = x;
}
public String getBindingFile() {
- return bindingFile;
+ if (bindingFiles != null && !bindingFiles.isEmpty()) {
+ return bindingFiles.get(0);
+ }
+ return null;
}
public void setBindingFile(String bf) {
- this.bindingFile = bf;
+ if (bindingFiles == null) {
+ bindingFiles = new ArrayList<>();
+ bindingFiles.add(bf);
+ } else {
+ bindingFiles.clear();
+ bindingFiles.add(bf);
+ }
+ }
+ public List<String> getBindingFiles() {
+ return bindingFiles;
+ }
+ public void setBindingFiles(List<String> bindingFiles) {
+ this.bindingFiles = bindingFiles;
}
public void setDependencies(File files[]) {
dependencies = files;