You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2015/07/09 15:25:15 UTC

cxf git commit: [CXF-6491] Avoiding listing all the representation media types if a method is generated per every request representation

Repository: cxf
Updated Branches:
  refs/heads/master 5081ed089 -> fc14aa86a


[CXF-6491] Avoiding listing all the representation media types if a method is generated per every request representation


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/fc14aa86
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/fc14aa86
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/fc14aa86

Branch: refs/heads/master
Commit: fc14aa86aae6a496e9461b95493af00b63b5e506
Parents: 5081ed0
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Thu Jul 9 14:24:51 2015 +0100
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Thu Jul 9 14:24:51 2015 +0100

----------------------------------------------------------------------
 .../cxf/tools/wadlto/jaxrs/SourceGenerator.java | 28 +++++++++++---------
 .../jaxrs/src/test/resources/wadl/bookstore.xml |  2 +-
 2 files changed, 16 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/fc14aa86/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
index 44aeda4..d74204b 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
@@ -217,7 +217,7 @@ public class SourceGenerator {
     private Map<String, String> schemaTypeMap = Collections.emptyMap();
     private Map<String, String> mediaTypesMap = Collections.emptyMap();
     private Bus bus;
-    private boolean supportMultipleXmlReps;
+    private boolean supportMultipleRepsWithElements;
     private boolean validateWadl;    
     private SchemaCollection schemaCollection = new SchemaCollection();
     private String encoding;
@@ -231,7 +231,7 @@ public class SourceGenerator {
     }
     
     public void setSupportMultipleXmlReps(boolean support) {
-        supportMultipleXmlReps = support;
+        supportMultipleRepsWithElements = support;
     }
     
     public void setWadlNamespace(String ns) {
@@ -688,7 +688,7 @@ public class SourceGenerator {
         List<Element> requestEls = getWadlElements(methodEl, "request");
         Element firstRequestEl = requestEls.size() >= 1 ? requestEls.get(0) : null;
         List<Element> allRequestReps = getWadlElements(firstRequestEl, "representation");
-        List<Element> xmlRequestReps = getXmlReps(allRequestReps, info.getGrammarInfo());
+        List<Element> requestRepsWithElements = getRepsWithElements(allRequestReps, info.getGrammarInfo());
         
         final String methodNameLowerCase = methodEl.getAttribute("name").toLowerCase();
         String id = methodEl.getAttribute("id");
@@ -699,17 +699,19 @@ public class SourceGenerator {
         final boolean suspendedAsync = responseRequired ? false
             : isMethodMatched(suspendedAsyncMethods, methodNameLowerCase, id);
         
-        boolean jaxpSourceRequired = xmlRequestReps.size() > 1 && !supportMultipleXmlReps;
-        int numOfMethods = jaxpSourceRequired ? 1 : xmlRequestReps.size(); 
+        boolean jaxpSourceRequired = requestRepsWithElements.size() > 1 && !supportMultipleRepsWithElements;
+        int numOfMethods = jaxpSourceRequired ? 1 : requestRepsWithElements.size(); 
         for (int i = 0; i < numOfMethods; i++) {
             
-            Element inXmlRep = xmlRequestReps.get(i);
-                        
+            List<Element> requestReps = allRequestReps;
+            
+            Element requestRepWithElement = requestRepsWithElements.get(i);
             String suffixName = "";
-            if (!jaxpSourceRequired && inXmlRep != null && xmlRequestReps.size() > 1) {
-                String value = inXmlRep.getAttribute("element");
+            if (!jaxpSourceRequired && requestRepWithElement != null && requestRepsWithElements.size() > 1) {
+                String value = requestRepWithElement.getAttribute("element");
                 int index = value.indexOf(":");
                 suffixName = value.substring(index + 1).replace("-", "");
+                requestReps = Collections.singletonList(requestRepWithElement);
             }
             if (writeAnnotations(info.isInterfaceGenerated())) {
                 sbCode.append(TAB);
@@ -721,7 +723,7 @@ public class SourceGenerator {
                     } else {
                         // TODO : write a custom annotation class name based on HttpMethod    
                     }
-                    writeFormatAnnotations(allRequestReps, sbCode, imports, true);
+                    writeFormatAnnotations(requestReps, sbCode, imports, true);
                     writeFormatAnnotations(getWadlElements(getOKResponse(responseEls), "representation"),
                             sbCode, imports, false);
                 }
@@ -783,7 +785,7 @@ public class SourceGenerator {
             List<Element> inParamElements = getParameters(resourceEl, info.getInheritedParams(),
                         !isRoot && !isResourceElement && resourceEl.getAttribute("id").length() > 0);
             
-            Element repElement = getActualRepElement(allRequestReps, inXmlRep); 
+            Element repElement = getActualRepElement(allRequestReps, requestRepWithElement); 
             writeRequestTypes(firstRequestEl, classPackage, repElement, inParamElements, 
                     jaxpSourceRequired, sbCode, imports, info, suspendedAsync);
             sbCode.append(")");
@@ -805,7 +807,7 @@ public class SourceGenerator {
             || methodNames.size() == 1 && "*".equals(methodNames.iterator().next());
     }
 
-    private List<Element> getXmlReps(List<Element> repElements, GrammarInfo gInfo) {
+    private List<Element> getRepsWithElements(List<Element> repElements, GrammarInfo gInfo) {
         Set<String> values = new HashSet<String>(repElements.size());
         List<Element> xmlReps = new ArrayList<Element>();
         for (Element el : repElements) {
@@ -947,7 +949,7 @@ public class SourceGenerator {
         }
         
         String elementType = responseRequired ? null : getElementRefName(
-                getActualRepElement(repElements, getXmlReps(repElements, info.getGrammarInfo()).get(0)), 
+                getActualRepElement(repElements, getRepsWithElements(repElements, info.getGrammarInfo()).get(0)), 
                 info, imports, true);
         if (elementType != null) {
             sbCode.append(elementType + " ");

http://git-wip-us.apache.org/repos/asf/cxf/blob/fc14aa86/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml b/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
index ebf8bcd..69a8108 100644
--- a/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
+++ b/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
@@ -145,7 +145,7 @@
                 <method name="POST" id="addBookOrBook2">
                     <request>
                         <representation mediaType="application/xml" element="prefix1:thebook"/>
-                        <representation mediaType="application/xml" element="prefix1:the-Book2"/>
+                        <representation mediaType="application/v2+xml" element="prefix1:the-Book2"/>
                         <representation mediaType="application/json"/>
                     </request>
                     <response status="201"/>