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

refactor HTTP transport stuff to HttpUtils