utils: refactor HTTP transport stuff to HttpUtils

Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com>


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

Branch: refs/heads/master
Commit: 315feb06839bbe74f4f8068a1ad634be352b49fc
Parents: f11dcf8
Author: Rohit Yadav <rohit.ya...@shapeblue.com>
Authored: Tue Aug 12 10:04:01 2014 +0200
Committer: Rohit Yadav <rohit.ya...@shapeblue.com>
Committed: Tue Aug 12 12:01:31 2014 +0200

----------------------------------------------------------------------
 utils/src/com/cloud/utils/HttpUtils.java | 56 +++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/315feb06/utils/src/com/cloud/utils/HttpUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/HttpUtils.java 
b/utils/src/com/cloud/utils/HttpUtils.java
new file mode 100644
index 0000000..f608b86
--- /dev/null
+++ b/utils/src/com/cloud/utils/HttpUtils.java
@@ -0,0 +1,56 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.utils;
+
+import org.apache.log4j.Logger;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+public class HttpUtils {
+
+    public static final Logger s_logger = Logger.getLogger(HttpUtils.class);
+
+    public static final String UTF_8 = "UTF-8";
+    public static final String RESPONSE_TYPE_JSON = "json";
+    public static final String RESPONSE_TYPE_XML = "xml";
+    public static final String JSON_CONTENT_TYPE = "text/javascript; 
charset=UTF-8";
+    public static final String XML_CONTENT_TYPE = "text/xml; charset=UTF-8";
+
+    public static void writeHttpResponse(final HttpServletResponse resp, final 
String response,
+                                         final Integer responseCode, final 
String responseType) {
+        try {
+            if (RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) {
+                resp.setContentType(JSON_CONTENT_TYPE);
+            } else if (RESPONSE_TYPE_XML.equalsIgnoreCase(responseType)){
+                resp.setContentType(XML_CONTENT_TYPE);
+            }
+            if (responseCode != null) {
+                resp.setStatus(responseCode);
+            }
+            resp.getWriter().print(response);
+        } catch (final IOException ioex) {
+            if (s_logger.isTraceEnabled()) {
+                s_logger.trace("Exception writing http response: " + ioex);
+            }
+        } catch (final Exception ex) {
+            if (!(ex instanceof IllegalStateException)) {
+                s_logger.error("Unknown exception writing http response", ex);
+            }
+        }
+    }
+}

Reply via email to