You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2018/09/14 11:00:01 UTC

[cxf-xjc-utils] branch master updated: CXFXJC-17 - Multiple Binding Files

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf-xjc-utils.git


The following commit(s) were added to refs/heads/master by this push:
     new ee5ced6  CXFXJC-17 - Multiple Binding Files
ee5ced6 is described below

commit ee5ced64b16c74bd0ed6d66716eee2245f98d2b0
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Fri Sep 14 11:59:18 2018 +0100

    CXFXJC-17 - Multiple Binding Files
---
 .../cxf/maven_plugin/AbstractXSDToJavaMojo.java    | 28 ++++++++++++++--------
 .../org/apache/cxf/maven_plugin/XsdOption.java     | 22 ++++++++++++++---
 2 files changed, 37 insertions(+), 13 deletions(-)

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 @@ public abstract class AbstractXSDToJavaMojo extends AbstractMojo {
                             //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 @@ public abstract class AbstractXSDToJavaMojo extends AbstractMojo {
                                 }
                             }
                             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 @@ public abstract class AbstractXSDToJavaMojo extends AbstractMojo {
             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 @@ public class XsdOption {
         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;