Author: mrdon
Date: Sun Oct 21 04:58:21 2007
New Revision: 586887
URL: http://svn.apache.org/viewvc?rev=586887&view=rev
Log:
Automatic handling to ensure no return from OK PUT, POST, and DELETE
Modified:
struts/sandbox/trunk/struts2-rest-plugin/showcase/src/main/java/org/apache/struts2/rest/example/OrdersResource.java
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/DefaultRestInfo.java
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/RestInfo.java
Modified:
struts/sandbox/trunk/struts2-rest-plugin/showcase/src/main/java/org/apache/struts2/rest/example/OrdersResource.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-rest-plugin/showcase/src/main/java/org/apache/struts2/rest/example/OrdersResource.java?rev=586887&r1=586886&r2=586887&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-rest-plugin/showcase/src/main/java/org/apache/struts2/rest/example/OrdersResource.java
(original)
+++
struts/sandbox/trunk/struts2-rest-plugin/showcase/src/main/java/org/apache/struts2/rest/example/OrdersResource.java
Sun Oct 21 04:58:21 2007
@@ -46,13 +46,11 @@
public String destroy() {
orders.remove(model.getId());
- model = null;
return "success";
}
public RestInfo create() {
orders.put(model.getId(), model);
- model = null;
return new DefaultRestInfo()
.setLocationId(model.getId())
.renderResult("success");
@@ -60,7 +58,6 @@
public String update() {
orders.put(model.getId(), model);
- model = null;
return "success";
}
Modified:
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java?rev=586887&r1=586886&r2=586887&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
(original)
+++
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
Sun Oct 21 04:58:21 2007
@@ -28,6 +28,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import static javax.servlet.http.HttpServletResponse.SC_OK;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.rest.handler.ContentTypeHandler;
@@ -73,12 +74,22 @@
target = ((ModelDriven)target).getModel();
}
+ boolean statusNotOk = false;
if (methodResult instanceof RestInfo) {
RestInfo info = (RestInfo) methodResult;
resultCode = info.apply(req, res, target);
+ if (info.getStatus() != SC_OK) {
+ statusNotOk = true;
+ }
} else {
resultCode = (String) methodResult;
}
+
+ // Don't return any content for PUT, DELETE, and POST where there are
no errors
+ if (!statusNotOk && !"get".equalsIgnoreCase(req.getMethod())) {
+ target = null;
+ }
+
ContentTypeHandler handler = getHandlerForRequest(req);
String extCode = resultCode+"-"+handler.getExtension();
if (actionConfig.getResults().get(extCode) != null) {
@@ -95,6 +106,7 @@
}
}
return resultCode;
+
}
protected String findExtension(String url) {
Modified:
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/DefaultRestInfo.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/DefaultRestInfo.java?rev=586887&r1=586886&r2=586887&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/DefaultRestInfo.java
(original)
+++
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/DefaultRestInfo.java
Sun Oct 21 04:58:21 2007
@@ -101,6 +101,10 @@
}
return resultCode;
}
+
+ public int getStatus() {
+ return status;
+ }
Modified:
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/RestInfo.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/RestInfo.java?rev=586887&r1=586886&r2=586887&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/RestInfo.java
(original)
+++
struts/sandbox/trunk/struts2-rest-plugin/src/main/java/org/apache/struts2/rest/RestInfo.java
Sun Oct 21 04:58:21 2007
@@ -27,4 +27,6 @@
String apply(HttpServletRequest request,
HttpServletResponse response, Object target);
+
+ int getStatus();
}