You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mi...@apache.org on 2008/07/02 02:10:21 UTC

svn commit: r673240 - /ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java

Author: midon
Date: Tue Jul  1 17:10:20 2008
New Revision: 673240

URL: http://svn.apache.org/viewvc?rev=673240&view=rev
Log:
create a restful service for testing purpose

Conflicts:

	axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java

Modified:
    ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java

Modified: ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java
URL: http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java?rev=673240&r1=673239&r2=673240&view=diff
==============================================================================
--- ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java (original)
+++ ode/trunk/axis2-war/src/test/java/org/apache/ode/axis2/httpbinding/JettyWrapper.java Tue Jul  1 17:10:20 2008
@@ -58,8 +58,13 @@
         arithmeticsContext.setContextPath("/HttpBindingTest/ArithmeticsService");
         arithmeticsContext.setHandler(new ArithmeticsServiceHandler());
 
+        ContextHandler blogContext = new ContextHandler();
+        blogContext.setContextPath("/HttpBindingTest/BlogService");
+        blogContext.setHandler(new BlogServiceHandler());
+
         handlerColl = new ContextHandlerCollection();
-        handlerColl.setHandlers(new Handler[]{arithmeticsContext});
+        Handler[] handlers = {arithmeticsContext, blogContext};
+        handlerColl.setHandlers(handlers);
 
         server.addHandler(handlerColl);
     }
@@ -232,6 +237,92 @@
     }
 
 
+    private class BlogServiceHandler extends AbstractHandler {
+
+        public void handle(String s, HttpServletRequest request, HttpServletResponse response, int i) throws IOException, ServletException {
+            String method = request.getMethod();
+            // actually we don't really care about this is.
+            String articleId = s.substring(s.lastIndexOf("/") + 1);
+
+            if ("GET".equalsIgnoreCase(method)) {
+                doGet(request, response, articleId);
+            } else if ("PUT".equalsIgnoreCase(method)) {
+                doPut(request, response, articleId);
+            } else if ("POST".equalsIgnoreCase(method)) {
+                doPost(request, response, articleId);
+            } else if ("DELETE".equalsIgnoreCase(method)) {
+                doDelete(request, response, articleId);
+            }
+            ((Request) request).setHandled(true);
+        }
+
+        private void doGet(HttpServletRequest request, HttpServletResponse response, String articleId) throws IOException {
+            // doGET must receive a custom header, just send it back and let the caller check the received value
+            response.setHeader("TimestampHeader", request.getHeader("TimestampHeader"));
+
+            response.setContentType("text/xml");
+            Document doc = DOMUtils.newDocument();
+            Element articleEl = doc.createElementNS("http://ode/bpel/test/blog", "article");
+            Element idEl = doc.createElementNS("http://ode/bpel/test/blog", "id");
+            Element titleEl = doc.createElementNS("http://ode/bpel/test/blog", "title");
+
+            articleEl.appendChild(idEl);
+            articleEl.appendChild(titleEl);
+
+            idEl.setTextContent(articleId);
+            titleEl.setTextContent("A title with a random number " + System.currentTimeMillis());
+
+            response.getOutputStream().print(DOMUtils.domToString(articleEl));
+            response.setStatus(200);
+        }
+
+        private void doPost(HttpServletRequest request, HttpServletResponse response, String articleId) {
+            response.setHeader("Location", "http://examples.org/a_new_comment_on_article_" + articleId);
+            response.setStatus(201); // Created
+        }
+
+
+        private void doPut(HttpServletRequest request, HttpServletResponse response, String articleId) throws IOException {
+            String faultType = request.getHeader("Fault-Type");
+            if (faultType.startsWith("500_no_body")) {
+                response.setStatus(500);
+            } else if (faultType.startsWith("500_text_body")) {
+                response.setContentType("text");
+                response.getOutputStream().print("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.");
+                response.setStatus(500);
+            } else if (faultType.startsWith("500_unknown_xml_body")) {
+                response.setContentType("text/xml");
+                response.getOutputStream().print("<book><abstract>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</abstract></book>");
+                response.setStatus(500);
+            } else if (faultType.startsWith("500_expected_xml_body")) {
+                response.setContentType("text/xml");
+
+                Document doc = DOMUtils.newDocument();
+                Element faultEl = doc.createElementNS("http://ode/bpel/test/blog", "fault");
+                Element timestamptEl = doc.createElementNS("http://ode/bpel/test/blog", "timestamp");
+                Element detailsEl = doc.createElementNS("http://ode/bpel/test/blog", "details");
+
+                faultEl.appendChild(timestamptEl);
+                faultEl.appendChild(detailsEl);
+
+                timestamptEl.setTextContent("" + System.currentTimeMillis());
+                detailsEl.setTextContent("Fake fault with the expected xml body.");
+
+                response.getOutputStream().print(DOMUtils.domToString(faultEl));
+                response.setStatus(500);
+            } else {
+                response.setStatus(200);
+            }
+        }
+
+        private void doDelete(HttpServletRequest request, HttpServletResponse response, String articleId) {
+            response.setHeader("TimestampHeader", request.getHeader("TimestampHeader"));
+            response.setHeader("User-Agent", request.getHeader("User-Agent"));
+            response.setStatus(204); // No content
+        }
+    }
+
+
     public static void main(String[] args) {
         try {
             new JettyWrapper().server.start();