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 2011/07/19 00:30:52 UTC
svn commit: r1148077 - in /cxf/trunk:
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java
tools/wadlto/jaxrs/src/test/resources/wadl/singleResource.xml
Author: sergeyb
Date: Mon Jul 18 22:30:51 2011
New Revision: 1148077
URL: http://svn.apache.org/viewvc?rev=1148077&view=rev
Log:
[CXF-3662] Better support for multiple response elements
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java
cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/singleResource.xml
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java?rev=1148077&r1=1148076&r2=1148077&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java Mon Jul 18 22:30:51 2011
@@ -576,9 +576,29 @@ public class SourceGenerator {
private boolean writeResponseType(List<Element> responseEls, StringBuilder sbCode,
Set<String> imports, Set<String> typeClassNames,
GrammarInfo gInfo) {
- List<Element> repElements = responseEls.size() == 1
- ? DOMUtils.getChildrenWithName(responseEls.get(0), WadlGenerator.WADL_NS, "representation")
- : CastUtils.cast(Collections.emptyList(), Element.class);
+ List<Element> repElements = null;
+ if (responseEls.size() >= 1) {
+ Element okResponse = null;
+ if (responseEls.size() > 1) {
+ for (int i = 0; i < responseEls.size(); i++) {
+ String statusValue = responseEls.get(0).getAttribute("status");
+ try {
+ int status = statusValue.isEmpty() ? 200 : Integer.valueOf(statusValue);
+ if (status == 200) {
+ okResponse = responseEls.get(i);
+ break;
+ }
+ } catch (NumberFormatException ex) {
+ // ignore
+ }
+ }
+ } else {
+ okResponse = responseEls.get(0);
+ }
+ repElements = DOMUtils.getChildrenWithName(okResponse, WadlGenerator.WADL_NS, "representation");
+ } else {
+ repElements = CastUtils.cast(Collections.emptyList(), Element.class);
+ }
if (repElements.size() == 0) {
sbCode.append("void ");
return false;
Modified: cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/singleResource.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/singleResource.xml?rev=1148077&r1=1148076&r2=1148077&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/singleResource.xml (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/test/resources/wadl/singleResource.xml Mon Jul 18 22:30:51 2011
@@ -32,11 +32,14 @@
</method>
<resource path="/books">
<method name="GET">
- <response>
+ <response status="200">
<representation mediaType="text/plain">
<param name="result" style="plain" type="xs:string"/>
</representation>
</response>
+ <response status="400">
+ <representation mediaType="application/json"/>
+ </response>
</method>
</resource>