Fix SVNFM jetty-all vulnerability fix 20/103320/2
authorprakash.e <prakash.e@huawei.com>
Sat, 7 Mar 2020 10:15:42 +0000 (15:45 +0530)
committerprakash eswaramoorthy <prakash.e@huawei.com>
Sat, 7 Mar 2020 11:49:51 +0000 (11:49 +0000)
Upgraded jetty-all version to vulnerability issue

Change-Id: I11d0c3ad92920f8c26bd92009e67820a2e541316
Issue-ID: VFC-1598
Signed-off-by: Prakash.E <prakash.e@huawei.com>
huawei/vnfmadapter/VnfmadapterService/service/pom.xml
huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/ResultRequestUtil.java
huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/VnfmUtil.java
huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/restclient/HttpBaseRest.java
huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/restclient/HttpRest.java
huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/restclient/RestHttpContentExchange.java
huawei/vnfmadapter/VnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/restclient/TestHttpRest.java
huawei/vnfmadapter/VnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/common/restclient/TestRestHttpContentExchange.java

index 51db304..4ec4dfa 100644 (file)
             <version>3.0.0.v201112011016</version>
             <scope>provided</scope>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-http -->
         <dependency>
-            <groupId>org.eclipse.jetty.aggregate</groupId>
-            <artifactId>jetty-all</artifactId>
-            <version>8.1.16.v20140903</version>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-http</artifactId>
+            <version>9.4.13.v20181111</version>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-client -->
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-client</artifactId>
+            <version>9.4.13.v20181111</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-util -->
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-util</artifactId>
+            <version>9.4.13.v20181111</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-io -->
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-io</artifactId>
+            <version>9.4.13.v20181111</version>
+        </dependency>
+
+<!--        <dependency>-->
+<!--            <groupId>org.eclipse.jetty.aggregate</groupId>-->
+<!--            <artifactId>jetty-all</artifactId>-->
+<!--            <version>8.1.16.v20140903</version>-->
+<!--        </dependency>-->
         <!--
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mariadb-java-client</artifactId>
             <version>2.2.2</version>
         </dependency>
-               <dependency>
+        <dependency>
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-transports-http</artifactId>
             <version>3.1.17</version>
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-frontend-jaxrs</artifactId>
             <version>3.1.17</version>
-                       <exclusions>
+            <exclusions>
                 <exclusion>
                     <groupId>org.apache.cxf</groupId>
                     <artifactId>cxf-rt-transports-http</artifactId>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
-            <version>5.1.5.RELEASE</version>
+            <version>5.2.4.RELEASE</version>
         </dependency>
         <!--dependency>
             <groupId>org.springframework</groupId>
index 4c3b301..fe4b888 100644 (file)
@@ -20,9 +20,6 @@ import java.io.IOException;
 import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.MethodType;
-
-import org.apache.http.client.methods.HttpPost;
-
 import org.apache.commons.httpclient.HttpMethod;
 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.ParamConstants;
index 5fb7322..aa44608 100644 (file)
@@ -74,7 +74,9 @@ public final class VnfmUtil {
             LOGGER.error("funtion=getVnfmById, status={}", rsp.getStatus());
             return null;
         }*/
-        String rsp = "{\"esr-system-info\": [{\"esr-system-info-id\": \"1234\",\"system-name\": \"hwvnfm\",\"type\": \"vnfm\",\"vendor\": \"huawei\",\"version\": \"v1.0\",\"service-url\": \"https://192.188.15.64:30001\",\"user-name\":\"vfctest\",\"password\": \"Huawei12#$\",\"system-type\": \"VNFM\",  \"resource-version\": \"1508828777218\"}]}";
+        //String rsp = "{\"esr-system-info\": [{\"esr-system-info-id\": \"1234\",\"system-name\": \"hwvnfm\",\"type\": \"vnfm\",\"vendor\": \"huawei\",\"version\": \"v1.0\",\"service-url\": \"https://192.188.15.64:30001\",\"user-name\":\"vfctest\",\"password\": \"Huawei12#$\",\"system-type\": \"VNFM\",        \"resource-version\": \"1508828777218\"}]}";
+        String rsp = "{\"esr-system-info\": [{\"esr-system-info-id\": \"1234\",\"system-name\": \"hwvnfm\",\"type\": \"vnfm\",\"vendor\": \"huawei\",\"version\": \"v1.0\",\"service-url\": \"http://localhost:8981\",\"user-name\":\"vfctest\",\"password\": \"Huawei12#$\",\"system-type\": \"VNFM\",        \"resource-version\": \"1508828777218\"}]}";
+
         JSONObject esrVnfm = JSONObject.fromObject(rsp);
         LOGGER.info("esrVnfm: {}", esrVnfm);
         JSONObject vnfmJson = parseEsrVnfm(vnfmId, esrVnfm);
index cc80b5e..af182f1 100644 (file)
 
 package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.eclipse.jetty.client.Address;
-import org.eclipse.jetty.client.HttpClient;
-import org.eclipse.jetty.client.HttpExchange;
-import org.eclipse.jetty.http.HttpMethods;
+import org.eclipse.jetty.client.*;
+import org.eclipse.jetty.client.api.*;
+import org.eclipse.jetty.http.HttpHeader;
+import org.eclipse.jetty.http.HttpMethod;
+import org.eclipse.jetty.http.HttpVersion;
 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+
 /**
  * <br/>
  * <p>
  * </p>
- * 
+ *
  * @author
  * @version Aug 9, 2016
  */
 public abstract class HttpBaseRest implements Restful {
-
+    private Response responseGlobal;
+    private ContentResponse contentResponse;
+    private Request request;
     private static final Logger LOG = LoggerFactory.getLogger(HttpRest.class);
 
     final AtomicInteger requestId = new AtomicInteger(0);
@@ -53,32 +56,28 @@ public abstract class HttpBaseRest implements Restful {
     static final String HTTP_PATCH = "PATCH";
 
     String defaultIP = Constant.LOCAL_HOST;
-
     int defaultPort = -10000;
-
     int defaultTimeout = 30000;
-
     final String procenameRouteID = "RouteID-" + System.currentTimeMillis() + "-";
 
+
     /**
      * Constructor<br/>
      * <p>
      * </p>
-     * 
+     *
      * @since
      */
     public HttpBaseRest() {
         super();
     }
 
-    protected void createHttpClient() {
-        client = new HttpClient();
+    public HttpBaseRest(final Response response) {
+        this.responseGlobal = response;
     }
 
-    protected RestHttpContentExchange createRestHttpContentExchange(final RestfulAsyncCallback callback) {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
-        exchange.setScheme("http");
-        return exchange;
+    protected void createHttpClient() {
+        client = new HttpClient();
     }
 
     private String encodeParams(final RestfulParametes restParametes) throws ServiceException {
@@ -87,13 +86,13 @@ public abstract class HttpBaseRest implements Restful {
         boolean bHasParma = false;
         final StringBuilder builder = new StringBuilder();
         try {
-            for(final String key : parm.keySet()) {
+            for (final String key : parm.keySet()) {
                 value = parm.get(key);
-                if(value == null) {
+                if (value == null) {
                     value = "";
                 }
                 String str;
-                if(bHasParma) {
+                if (bHasParma) {
                     str = String.format("&%s=%s", URLEncoder.encode(key, RestfulClientConst.ENCODING),
                             URLEncoder.encode(value, RestfulClientConst.ENCODING));
                 } else {
@@ -103,39 +102,49 @@ public abstract class HttpBaseRest implements Restful {
                 }
                 builder.append(str);
             }
-        } catch(final UnsupportedEncodingException ex) {
+        } catch (final UnsupportedEncodingException ex) {
             LOG.error("unsupported encoding: ", ex);
             throw new ServiceException("Broken VM does not support UTF-8");
         }
         return builder.toString();
     }
 
-    private void processHeader(final RestHttpContentExchange contentExchange, final Map<String, String> headerMap) {
-        for(final String key : headerMap.keySet()) {
+    private void processHeader(final Request request, final Map<String, String> headerMap) {
+        for (final String key : headerMap.keySet()) {
             final String value = headerMap.get(key);
-            contentExchange.addRequestHeader(key, value);
+            HttpHeader headers[] = HttpHeader.values();
+            if (Arrays.asList(headers).contains('"' + key + '"')) ;
+            {
+                request.header(key, value);
+
+            }
+
         }
 
     }
 
-    private void setContentExchangeParams(final RestHttpContentExchange contentExchange) {
-        final String contentType = contentExchange.getRequestFields().getStringField("Content-Type");
-        if(null == contentType || contentType.isEmpty()) {
+    private void setRequestParams(final Request request, String httpMethod) {
+        final String contentType = request.getHeaders().get("Content-Type");
+        if (null == contentType || contentType.isEmpty()) {
             // application/json;charset=utf-8
-            contentExchange.setRequestContentType(RestfulClientConst.APPLICATION_FORM_URLENCODED);
+            request.header(HttpHeader.CONTENT_TYPE, RestfulClientConst.APPLICATION_FORM_URLENCODED);
         }
-        final String encoding = contentExchange.getRequestFields().getStringField("Accept-Encoding");
-        if(null == encoding || encoding.isEmpty()) {
+        //final String encoding = contentExchange.getRequestFields().getStringField("Accept-Encoding");
+        final String encoding = request.getHeaders().get("Accept-Encoding");
+        if (null == encoding || encoding.isEmpty()) {
             // compress,gzip
-            contentExchange.setRequestHeader("Accept-Encoding", "*/*");
+            request.header(HttpHeader.ACCEPT_ENCODING, "*/*");
         }
-        contentExchange.setVersion(11);
+        request.version(HttpVersion.HTTP_1_1);
+        request.scheme("http");
+        request.method(httpMethod);
     }
 
+
     /**
      * <br/>
-     * 
-     * @param method
+     *
+     * @param httpMethod
      * @param servicePath
      * @param restParametes
      * @param options
@@ -144,70 +153,120 @@ public abstract class HttpBaseRest implements Restful {
      * @throws ServiceException
      * @since
      */
-    protected RestfulResponse sendHttpRequest(final String method, final String servicePath,
-            final RestfulParametes restParametes, final RestfulOptions options, final RestfulAsyncCallback callback)
+
+    protected RestfulResponse sendHttpRequest(final String httpMethod, final String servicePath,
+                                              final RestfulParametes restParametes, final RestfulOptions options, RestfulAsyncCallback callback)
             throws ServiceException {
-        final RestHttpContentExchange contentExchange = createRestHttpContentExchange(callback);
-        if(null == restParametes) {
+
+
+        if (null == restParametes) {
             return new RestfulResponse();
         }
-        final String requestTrace = this.getReuqestIdString();
+        final String requestTrace = this.getRequestIdString();
         restParametes.putHttpContextHeader(RestfulClientConst.REQUEST_ID, requestTrace);
 
         RestfulResponse rsp = null;
         try {
-            contentExchange.setMethod(method);
             final String str = encodeParams(restParametes);
             final StringBuilder builder = new StringBuilder();
             builder.append(servicePath);
-            if(str.length() > 0 && (method.equals(HttpMethods.GET) || method.equals(HttpMethods.DELETE)
-                    || method.equals(HttpMethods.HEAD))) {
+            if (str.length() > 0 && (httpMethod.equals(HttpMethod.GET.asString()) || httpMethod.equals(HttpMethod.DELETE.asString())
+                    || httpMethod.equals(HttpMethod.HEAD.asString()))) {
                 builder.append('?');
                 builder.append(str);
             }
-            setDefaultUrl(contentExchange, options, builder);
-            processHeader(contentExchange, restParametes.getHeaderMap());
-            setContentExchangeParams(contentExchange);
+            String url = setDefaultUrl(options, builder);
+            System.out.println(url);
+            request = client.newRequest(url);
+            setRequestParams(request, httpMethod);
+            processHeader(request, restParametes.getHeaderMap());
+            setPostPutParam(httpMethod, restParametes, request, str);
+            setTimeout(options, request);
+            ContentResponse contentResponse = getResponse();
+//            HttpRequestListeners httpRequestListeners = new HttpRequestListeners();
+//            RestHttpContentExchange contentExchange = new RestHttpContentExchange();
+//            Response.CompleteListener responseListener = contentExchange;
+//            // Response.CompleteListener responseListener =f;
+//            request.method(httpMethod)
+//                    .onRequestSuccess(httpRequestListeners)
+//                    .onRequestBegin(httpRequestListeners)
+//                    .scheme("http")
+//                    .send(responseListener);
+//            Thread.sleep(2000);
+//            System.out.println("content:- " + contentExchange._responseContentString);
+//            System.out.println("code :-" + contentExchange._responseStatus);
 
-            setPostPutParam(method, restParametes, contentExchange, str);
-            setTimeout(options, contentExchange);
 
-            client.send(contentExchange);
+//            Origin origin=new Origin("http","localhost",8980);
+//            HttpDestination httpDestination=new HttpDestination(client,origin) {
+//                @Override
+//                protected SendFailure send(Connection connection, HttpExchange exchange) {
+//                    return null;
+//                }
+//            };
+//            List<Response.ResponseListener> listenersList=new ArrayList<>();
+//            listenersList.add(responseListener);
+//
+//            HttpExchange httpExchange=new HttpExchange(httpDestination,(HttpRequest)request,listenersList);
+//            System.out.println("httpExchange : "+httpExchange.getResponse().getStatus());
+            //System.out.println("request :- " + httpRequestListeners.method);
+            RestHttpContentExchange contentExchange = new RestHttpContentExchange();
+            contentExchange.setResponseStatus(contentResponse.getStatus());
+            contentExchange.setResponseContentBytes(contentResponse.getContent());
+            contentExchange.setResponseFields(contentResponse.getHeaders());
+            contentExchange.setResponseContentString(contentResponse.getContentAsString());
             rsp = callbackExecute(callback, contentExchange);
-        } catch(final Exception e) {
-            LOG.error("request reply message have exception:status is "
-                    + RestHttpContentExchange.toState(contentExchange.getStatus()));
+//            List<Response.Listener> list = contentResponse.getListeners(Response.Listener.class);
+//            for (Response.Listener listener : list) {
+//                System.out.println(listener.getClass());
+//            }
+            System.out.println("Testing :: " + contentResponse.getContentAsString());
+            System.out.println("rsp::::::: " + rsp);
+        } catch (final Exception e) {
+            System.out.println("ex : " + e.getMessage());
+            if(request!=null){
+                LOG.error("request reply message have exception:status is "
+                        + request.getAbortCause());
+            }
+
             throw new ServiceException(e);
         }
         return rsp;
     }
 
-    private void setDefaultUrl(final RestHttpContentExchange contentExchange, final RestfulOptions options,
-            final StringBuilder url) {
+    private ContentResponse getResponse() throws InterruptedException, ExecutionException, TimeoutException {
+        return request.send();
+    }
+
+
+    private String setDefaultUrl(final RestfulOptions options, final StringBuilder url) {
         // server
-        if(url.toString().startsWith("http")) {
-            contentExchange.setURL(url.toString());
+
+        if (url.toString().startsWith("http")) {
+            return url.toString();
         } else {
-            String host = defaultIP;
+            String host = Constant.LOCAL_HOST;
             int iPort = defaultPort;
-            if(options != null) {
+            if (options != null) {
                 host = options.getHost();
-                if(host.isEmpty()) {
+                if (host.isEmpty()) {
                     host = defaultIP;
                 }
                 iPort = options.getPort();
-                if(iPort == 0) {
+                if (iPort == 0) {
                     iPort = defaultPort;
                 }
             }
             // Integer.getInteger(".http.client.maxThread",30)
-            contentExchange.setAddress(new Address(host, iPort));
-            contentExchange.setRequestURI(url.toString());
+            return "http://" + host + ":" + iPort + "/" + url;
+            //return "http://reqres.in/api/users/4";
+            //return "https://jsonplaceholder.typicode.com/users"; //for 404 bad request
+
         }
     }
 
-    private String getReuqestIdString() {
-        if(this.requestId.get() == 0x7FFFFFFF) {
+    private String getRequestIdString() {
+        if (this.requestId.get() == 0x7FFFFFFF) {
             this.requestId.set(1);
         }
         final int reqId = this.requestId.getAndIncrement();
@@ -223,49 +282,45 @@ public abstract class HttpBaseRest implements Restful {
     }
 
     private void setPostPutParam(final String method, final RestfulParametes restParametes,
-            final RestHttpContentExchange contentExchange, final String str) throws UnsupportedEncodingException {
-        if(HttpMethods.POST.equals(method) || HttpMethods.PUT.equals(method) || HTTP_PATCH.equals(method)) {
+                                 final Request request, final String str) throws UnsupportedEncodingException {
+        if (HttpMethod.POST.equals(method) || HttpMethod.PUT.equals(method) || HTTP_PATCH.equals(method)) {
             ByteArrayInputStream buff;
             final String tmpRaw = restParametes.getRawData();
-            if(tmpRaw == null) {
+            if (tmpRaw == null) {
                 buff = new ByteArrayInputStream(str.getBytes(RestfulClientConst.ENCODING));
             } else {
                 buff = new ByteArrayInputStream(tmpRaw.getBytes(RestfulClientConst.ENCODING));
             }
             final int len = buff.available();
-            contentExchange.setRequestContentSource(buff);
-            contentExchange.setRequestHeader("content-length", String.valueOf(len));
+            //contentExchange.setRequestContentSource(buff);
+            request.header("content-length", String.valueOf(len));
         }
     }
 
-    private void setTimeout(final RestfulOptions options, final RestHttpContentExchange contentExchange) {
-        if(options != null) {
+    private void setTimeout(final RestfulOptions options, final Request request) {
+        if (options != null) {
             final long timeout = options.getRestTimeout();
-            if(timeout != 0) {
-                contentExchange.setTimeout(timeout);
+            if (timeout != 0) {
+                request.idleTimeout(timeout, TimeUnit.MILLISECONDS);
             } else {
-                contentExchange.setTimeout(defaultTimeout);
+                request.idleTimeout(defaultTimeout, TimeUnit.MILLISECONDS);
             }
         } else {
-            contentExchange.setTimeout(defaultTimeout);
+            request.idleTimeout(defaultTimeout, TimeUnit.MILLISECONDS);
         }
     }
 
     private RestfulResponse callbackExecute(final RestfulAsyncCallback callback,
-            final RestHttpContentExchange contentExchange) throws InterruptedException, IOException, ServiceException {
-        if(callback == null) {
-            final int exchangeState = contentExchange.waitForDone();
-            if(exchangeState == HttpExchange.STATUS_COMPLETED) {
+                                            final RestHttpContentExchange contentExchange) throws ServiceException, IOException {
+        if (callback == null) {
+            int exchangeState = contentExchange.getResponse().getStatus();
+            if (exchangeState == 200) {
+                System.out.println("Restful Response " + contentExchange.getResponse().getResponseContent());
                 return contentExchange.getResponse();
-            } else if(exchangeState == HttpExchange.STATUS_EXCEPTED) {
-                throw new ServiceException(
-                        "request is exception: " + RestHttpContentExchange.toState(HttpExchange.STATUS_EXCEPTED));
-            } else if(exchangeState == HttpExchange.STATUS_EXPIRED) {
-                throw new ServiceException(
-                        "request is expierd: " + RestHttpContentExchange.toState(HttpExchange.STATUS_EXPIRED));
+            } else {
+                throw new ServiceException("status code : "+exchangeState);
             }
         }
         return null;
     }
-
 }
index 7215424..1b1cf9c 100644 (file)
 
 package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient;
 
-import org.eclipse.jetty.client.HttpClient;
-import org.eclipse.jetty.http.HttpMethods;
+import org.eclipse.jetty.http.HttpMethod;
 import org.eclipse.jetty.util.thread.QueuedThreadPool;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+
 /**
  * <br/>
  * <p>
  * </p>
- * 
+ *
  * @author
  * @version Aug 9, 2016
  */
@@ -34,15 +34,15 @@ public class HttpRest extends HttpBaseRest {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpRest.class);
 
+
     /**
      * Initializing Rest options.<br/>
-     * 
-     * @param options: rest options.
+     *
      * @throws ServiceException
      * @since
      */
     public void initHttpRest(final RestfulOptions option) throws ServiceException {
-        if(option == null) {
+        if (option == null) {
             client = null;
             throw new ServiceException("option is null.");
         }
@@ -50,30 +50,23 @@ public class HttpRest extends HttpBaseRest {
         try {
             int iValue;
             iValue = option.getIntOption(RestfulClientConst.MAX_CONN_PER_ADDR_KEY_NAME);
-            // max 200 concurrent,connections to every address
-            client.setMaxConnectionsPerAddress(iValue);
-
+//            // max 200 concurrent,connections to every address
+            client.setMaxConnectionsPerDestination(iValue);
             iValue = option.getIntOption(RestfulClientConst.THREAD_KEY_NAME);
-            // max threads
-            client.setThreadPool(new QueuedThreadPool(iValue));
+//            // max threads
+            client.setExecutor(new QueuedThreadPool(iValue));
             iValue = option.getIntOption(RestfulClientConst.CONN_TIMEOUT_KEY_NAME);
             client.setConnectTimeout(iValue);
+
             iValue = option.getRestTimeout();
             defaultTimeout = iValue;
-            client.setTimeout(iValue);
-
+            client.setIdleTimeout(iValue);
             iValue = option.getIntOption(RestfulClientConst.IDLE_TIMEOUT_KEY_NAME);
             client.setIdleTimeout(iValue);
-            iValue = option.getIntOption(RestfulClientConst.MAX_RESPONSE_HEADER_SIZE);
-            client.setResponseHeaderSize(iValue);
-            iValue = option.getIntOption(RestfulClientConst.MAX_REQUEST_HEADER_SIZE);
-            client.setRequestHeaderSize(iValue);
-            // HttpClient.CONNECTOR_SOCKET
-            client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
             client.start();
             defaultIP = option.getStringOption(RestfulClientConst.HOST_KEY_NAME);
             defaultPort = option.getIntOption(RestfulClientConst.PORT_KEY_NAME);
-        } catch(final Exception e) {
+        } catch (final Exception e) {
             LOG.error("start httpclient error", e);
             client = null;
             throw new ServiceException("http client init failed.");
@@ -82,139 +75,139 @@ public class HttpRest extends HttpBaseRest {
 
     @Override
     public RestfulResponse get(final String servicePath, final RestfulParametes restParametes) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, null, null);
+        return this.sendHttpRequest(HttpMethod.GET.asString(), servicePath, restParametes, null, null);
     }
 
     @Override
     public RestfulResponse get(final String servicePath, final RestfulParametes restParametes,
-            final RestfulOptions option) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, option, null);
+                               final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethod.GET.asString(), servicePath, restParametes, option, null);
     }
 
     @Override
     public RestfulResponse head(final String servicePath, final RestfulParametes restParametes)
             throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.HEAD, servicePath, restParametes, null, null);
+        return this.sendHttpRequest(HttpMethod.HEAD.asString(), servicePath, restParametes, null, null);
     }
 
     @Override
     public RestfulResponse head(final String servicePath, final RestfulParametes restParametes,
-            final RestfulOptions option) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.HEAD, servicePath, restParametes, option, null);
+                                final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethod.HEAD.asString(), servicePath, restParametes, option, null);
     }
 
     @Override
     public void asyncGet(final String servicePath, final RestfulParametes restParametes,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, null, new DefaultAsyncCallback());
+                         final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.GET.asString(), servicePath, restParametes, null, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, null, callback);
+            this.sendHttpRequest(HttpMethod.GET.asString(), servicePath, restParametes, null, callback);
         }
     }
 
     @Override
     public void asyncGet(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, option, new DefaultAsyncCallback());
+                         final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.GET.asString(), servicePath, restParametes, option, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, option, callback);
+            this.sendHttpRequest(HttpMethod.GET.asString(), servicePath, restParametes, option, callback);
         }
     }
 
     @Override
     public RestfulResponse put(final String servicePath, final RestfulParametes restParametes) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, null, null);
+        return this.sendHttpRequest(HttpMethod.PUT.asString(), servicePath, restParametes, null, null);
     }
 
     @Override
     public RestfulResponse put(final String servicePath, final RestfulParametes restParametes,
-            final RestfulOptions option) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, option, null);
+                               final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethod.PUT.asString(), servicePath, restParametes, option, null);
     }
 
     @Override
     public void asyncPut(final String servicePath, final RestfulParametes restParametes,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, null, new DefaultAsyncCallback());
+                         final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.PUT.asString(), servicePath, restParametes, null, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, null, callback);
+            this.sendHttpRequest(HttpMethod.PUT.asString(), servicePath, restParametes, null, callback);
         }
     }
 
     @Override
     public void asyncPut(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, option, new DefaultAsyncCallback());
+                         final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.PUT.asString(), servicePath, restParametes, option, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, option, callback);
+            this.sendHttpRequest(HttpMethod.PUT.asString(), servicePath, restParametes, option, callback);
         }
     }
 
     @Override
     public RestfulResponse post(final String servicePath, final RestfulParametes restParametes)
             throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, null, null);
+        return this.sendHttpRequest(HttpMethod.POST.asString(), servicePath, restParametes, null, null);
     }
 
     @Override
     public RestfulResponse post(final String servicePath, final RestfulParametes restParametes,
-            final RestfulOptions option) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, option, null);
+                                final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethod.POST.asString(), servicePath, restParametes, option, null);
     }
 
     @Override
     public void asyncPost(final String servicePath, final RestfulParametes restParametes,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, null, new DefaultAsyncCallback());
+                          final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.POST.asString(), servicePath, restParametes, null, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, null, callback);
+            this.sendHttpRequest(HttpMethod.POST.asString(), servicePath, restParametes, null, callback);
         }
     }
 
     @Override
     public void asyncPost(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, option, new DefaultAsyncCallback());
+                          final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.POST.asString(), servicePath, restParametes, option, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, option, callback);
+            this.sendHttpRequest(HttpMethod.POST.asString(), servicePath, restParametes, option, callback);
         }
     }
 
     @Override
     public RestfulResponse delete(final String servicePath, final RestfulParametes restParametes)
             throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, null, null);
+        return this.sendHttpRequest(HttpMethod.DELETE.asString(), servicePath, restParametes, null, null);
     }
 
     @Override
     public RestfulResponse delete(final String servicePath, final RestfulParametes restParametes,
-            final RestfulOptions option) throws ServiceException {
-        return this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, option, null);
+                                  final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethod.DELETE.asString(), servicePath, restParametes, option, null);
     }
 
     @Override
     public void asyncDelete(final String servicePath, final RestfulParametes restParametes,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, null, new DefaultAsyncCallback());
+                            final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.DELETE.asString(), servicePath, restParametes, null, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, null, callback);
+            this.sendHttpRequest(HttpMethod.DELETE.asString(), servicePath, restParametes, null, callback);
         }
     }
 
     @Override
     public void asyncDelete(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
-            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, option, new DefaultAsyncCallback());
+                            final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
+            this.sendHttpRequest(HttpMethod.DELETE.asString(), servicePath, restParametes, option, new DefaultAsyncCallback());
         } else {
-            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, option, callback);
+            this.sendHttpRequest(HttpMethod.DELETE.asString(), servicePath, restParametes, option, callback);
         }
     }
 
@@ -226,14 +219,14 @@ public class HttpRest extends HttpBaseRest {
 
     @Override
     public RestfulResponse patch(final String servicePath, final RestfulParametes restParametes,
-            final RestfulOptions option) throws ServiceException {
+                                 final RestfulOptions option) throws ServiceException {
         return this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, option, null);
     }
 
     @Override
     public void asyncPatch(final String servicePath, final RestfulParametes restParametes,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
+                           final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
             this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, null, new DefaultAsyncCallback());
         } else {
             this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, null, callback);
@@ -242,8 +235,8 @@ public class HttpRest extends HttpBaseRest {
 
     @Override
     public void asyncPatch(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
-            final RestfulAsyncCallback callback) throws ServiceException {
-        if(callback == null) {
+                           final RestfulAsyncCallback callback) throws ServiceException {
+        if (callback == null) {
             this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, option, new DefaultAsyncCallback());
         } else {
             this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, option, callback);
index 64017c7..2f116f1 100644 (file)
 
 package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
+import java.io.*;
 import java.nio.charset.Charset;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.zip.GZIPInputStream;
-
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.jetty.client.ContentExchange;
-import org.eclipse.jetty.client.HttpDestination;
+import org.eclipse.jetty.client.api.Request;
 import org.eclipse.jetty.http.HttpFields;
-import org.eclipse.jetty.http.HttpHeaders;
-import org.eclipse.jetty.io.Buffer;
-import org.eclipse.jetty.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,45 +32,51 @@ import org.slf4j.LoggerFactory;
  * <br/>
  * <p>
  * </p>
- * 
+ *
  * @author
  * @version 28-May-2016
  */
-public class RestHttpContentExchange extends ContentExchange {
+public class RestHttpContentExchange  {
 
+    private static final int STATUS_PARSING_HEADERS = 500;
+    private static final int STATUS_PARSING_CONTENT = 500;
+    private String _encoding = "utf-8";
+    private byte[] _responseContent;
     private static final Logger LOGGER = LoggerFactory.getLogger(RestHttpContentExchange.class);
-
     private static final String PATH = "path:";
-
     private boolean gzip = false;
+    private HttpFields _responseFields;
+    private byte[] _responseContentByte;
 
-    private RestfulAsyncCallback callback = null;
+    String _responseContentString;
+    int _responseStatus;
+    Request request;
+    boolean _rsponseAbort;
+
+//    private HttpFields setCacheFields(boolean cacheHeaders) {
+//        _responseFields = cacheHeaders ? new HttpFields() : null;
+//        return _responseFields;
+//    }
 
     /**
-     * Constructor<br/>
-     * <p>
-     * </p>
-     * 
-     * @since
-     * @param cacheFields whether to cache response header.
-     * @param asyncCallback callback method.
+     * @return the scheme of the URL
      */
-    RestHttpContentExchange(final boolean cacheFields, final RestfulAsyncCallback asyncCallback) {
-        super(cacheFields);
-        this.callback = asyncCallback;
-    }
+//    public Buffer getScheme()
+//    {
+//        return _scheme;
+//    }
 
     /**
      * Extract message.
      * <br/>
-     * 
+     *
      * @param data GZipped data.
      * @return Uncompressed data.
      * @throws IOException
      * @since
      */
     public String decompressGzipToStr(final byte[] data) throws IOException {
-        if(data == null) {
+        if (data == null) {
             return "";
         }
         final StringBuilder out = new StringBuilder();
@@ -86,7 +84,7 @@ public class RestHttpContentExchange extends ContentExchange {
              GZIPInputStream gzis = new GZIPInputStream(input);
              InputStreamReader reader = new InputStreamReader(gzis, Charset.forName(RestfulClientConst.ENCODING));) {
             final char[] buff = new char[1024];
-            for(int n; (n = reader.read(buff)) != -1;) {
+            for (int n; (n = reader.read(buff)) != -1; ) {
                 out.append(new String(buff, 0, n));
             }
         }
@@ -94,108 +92,74 @@ public class RestHttpContentExchange extends ContentExchange {
 
     }
 
-    /**
-     * View response headers Content-Encoding values if you need to extract data.<br/>
-     * 
-     * @param name buffer
-     * @param value value
-     * @throws IOException
-     * @since
-     */
-    @Override
-    protected synchronized void onResponseHeader(final Buffer name, final Buffer value) throws IOException {
-        super.onResponseHeader(name, value);
-        final int header = HttpHeaders.CACHE.getOrdinal(name);
-        if(header == HttpHeaders.CONTENT_ENCODING_ORDINAL) {
-            final String encoding = StringUtil.asciiToLowerCase(value.toString());
-            gzip = encoding != null && StringUtils.contains(encoding, "gzip");
-        }
-
+    private boolean isGzip() {
+        return gzip;
     }
 
-    @Override
-    protected void onResponseComplete() throws IOException {
-        if(LOGGER.isInfoEnabled()) {
-            LOGGER.info("Response has Complete:" + PATH + this.getRequestURI().replace("\n", "0x0A"));
-        }
-        super.onResponseComplete();
-        if(callback != null) {
-            final RestfulResponse rsp = getResponse();
-            callback.callback(rsp);
-        }
+    public void setResponseContentString(String responseContentString){
+        this._responseContentString=responseContentString;
     }
-
-    @Override
-    protected void onRequestCommitted() throws IOException {
-        if(LOGGER.isInfoEnabled()) {
-            LOGGER.info("Request Header has been send:" + PATH + this.getRequestURI().replace("\n", "0x0A"));
-        }
-        super.onRequestCommitted();
+    public void setResponseContentBytes (byte[] responseContentBytes){
+        this._responseContentByte=responseContentBytes ;
     }
-
-    @Override
-    protected void onRequestComplete() throws IOException {
-        if(LOGGER.isInfoEnabled()) {
-            LOGGER.info("Request has bend send complete:" + PATH + this.getRequestURI().replace("\n", "0x0A"));
-        }
-        super.onRequestComplete();
+     public void setResponseStatus  ( int responseStatus ){
+        this._responseStatus = responseStatus ;
     }
-
-    @Override
-    protected void onException(final Throwable x) {
-        LOGGER.warn("onException:", x);
-        super.onException(x);
-        if(callback != null) {
-            callback.handleExcepion(x);
-        }
+     public void setResponseFields  ( HttpFields responseFields  ){
+        this._responseFields= responseFields ;
+    }
+    public synchronized String getResponseContentString() throws UnsupportedEncodingException {
+        if (_responseContentString != null)
+            return _responseContentString;
+        return null;
     }
 
-    @Override
-    protected void onConnectionFailed(final Throwable x) {
-        LOGGER.warn("onConnectionFailed:", x);
-        super.onConnectionFailed(x);
-        if(callback != null) {
-            callback.handleExcepion(x);
-        }
 
+      synchronized byte[] getResponseContentBytes() {
+        if (_responseContentByte != null)
+            return _responseContentByte;
+        return null;
     }
 
-    @Override
-    protected void expire(final HttpDestination destination) {
-        super.expire(destination);
-        if(callback != null) {
-            callback.handleExcepion(new ServiceException("request is expired, status:" + toState(getStatus())));
-        }
+
+      synchronized int getResponseStatus() {
+//        if (_responseStatus >= 500)
+//            throw new IllegalStateException("internal server error");
+        return _responseStatus;
     }
 
-    public boolean isGzip() {
-        return gzip;
+
+      synchronized HttpFields getResponseFields() {
+//        if (_responseStatus >= STATUS_PARSING_CONTENT)
+//            throw new IllegalStateException("Headers not completely received yet");
+        return _responseFields;
     }
 
     /**
      * Get the response as RestfulResponse.
      * <br/>
-     * 
+     *
      * @return response object.
      * @throws IOException
      * @since
      */
     public RestfulResponse getResponse() throws IOException {
         final RestfulResponse rsp = new RestfulResponse();
-        rsp.setStatus(this.getResponseStatus());
-        if(isGzip()) {
+
+        rsp.setStatus(getResponseStatus());
+        if (isGzip()) {
             final String responseString = decompressGzipToStr(getResponseContentBytes());
             rsp.setResponseJson(responseString);
         } else {
-            rsp.setResponseJson(this.getResponseContent());
+            rsp.setResponseJson(this.getResponseContentString());
         }
 
         final HttpFields field = this.getResponseFields();
-        if(field != null) {
+        if (field != null) {
             final Map<String, String> header = new HashMap<>();
 
             final Enumeration<String> names = field.getFieldNames();
-            for(final Enumeration<String> e = names; e.hasMoreElements();) {
+            for (final Enumeration<String> e = names; e.hasMoreElements(); ) {
                 final String fieldName = e.nextElement();
                 final String fieldValue = field.getStringField(fieldName);
                 header.put(fieldName, fieldValue);
@@ -206,4 +170,50 @@ public class RestHttpContentExchange extends ContentExchange {
         return rsp;
     }
 
+
+//    @Override
+//    public void onContent(Response response, ByteBuffer content, Callback callback) {
+//        System.out.println("ContentExchange inside " + response.getStatus());
+//        super.onContent(response, content, callback);
+//        this._responseContentString = StandardCharsets.UTF_8.decode(content).toString();
+//        this._responseContent = content.array();
+//    }
+//
+//    @Override
+//    public void onBegin(Response response) {
+//
+//    }
+//
+//    @Override
+//    public void onComplete(Result result) {
+//
+//    }
+//
+//    @Override
+//    public void onContent(Response response, ByteBuffer content) {
+//
+//    }
+//
+//    @Override
+//    public void onFailure(Response response, Throwable failure) {
+//        this._responseStatus = response.getStatus();
+//        this._rsponseAbort = response.abort(failure);
+//    }
+//
+//    @Override
+//    public boolean onHeader(Response response, HttpField field) {
+//        this._responseFields = response.getHeaders();
+//        return false;
+//    }
+//
+//    @Override
+//    public void onHeaders(Response response) {
+//
+//    }
+//
+//    @Override
+//    public void onSuccess(Response response) {
+//        this._responseStatus = response.getStatus();
+//    }
+
 }
index 76025f3..84de1a2 100644 (file)
@@ -21,9 +21,16 @@ import static org.junit.Assert.assertNotNull;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
+import java.util.List;
 
 import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.HttpContentResponse;
 import org.eclipse.jetty.client.HttpExchange;
+import org.eclipse.jetty.client.HttpRequest;
+import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.http.HttpFields;
+import org.eclipse.jetty.http.HttpVersion;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -42,9 +49,8 @@ import mockit.integration.junit4.JMockit;
  * <br/>
  * <p>
  * </p>
- * 
+ *
  * @author
- * @version
  */
 @RunWith(JMockit.class)
 public class TestHttpRest {
@@ -54,27 +60,47 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
+    static HttpClient httpClient;
+    static RestfulOptions options;
+
     @BeforeClass
     public static void setUpBeforeClass() throws Exception {
+        options = new RestfulOptions();
+        options.setOption("thread", new Integer(5));
+        options.setOption("maxConnectionPerAddr", new Integer(200));
+        options.setOption("ConnectTimeout", new Integer(500));
+        options.setHost("localhost");
+
+        httpClient = new HttpClient();
+        httpClient.start();
+        Request request = httpClient.newRequest("http://reqres.in/api/users/2");
+        ContentResponse contentResponse = request.send();
+        new MockUp<HttpBaseRest>() {
+            @Mock
+            public ContentResponse getResponse() {
+                return contentResponse;
+            }
+        };
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
     @AfterClass
     public static void tearDownAfterClass() throws Exception {
+        httpClient.stop();
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
@@ -84,7 +110,7 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
@@ -94,7 +120,7 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
@@ -113,62 +139,45 @@ public class TestHttpRest {
         httpClient.setAccessible(true);
         Assert.assertNotNull(httpClient.get(httpRest));
     }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws NoSuchFieldException
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testCreateRestHttpContentExchange() throws NoSuchFieldException, Exception {
+//        final HttpBaseRest httpRest = new HttpRest();
+//        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
+//
+//            @Override
+//            public void callback(final RestfulResponse response) {
+//
+//            }
+//
+//            @Override
+//            public void handleExcepion(final Throwable e) {
+//
+//            }
+//
+//        };
+//         final RestHttpContentExchange exchange = httpRest.createRestHttpContentExchange(callback);
+//          assertNotNull(exchange);
+//        final Field callbackField = RestHttpContentExchange.class.getDeclaredField("callback");
+//        assertNotNull(callbackField);
+//    }
 
     /**
      * <br/>
-     * 
-     * @throws NoSuchFieldException
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testCreateRestHttpContentExchange() throws NoSuchFieldException, Exception {
-        final HttpBaseRest httpRest = new HttpRest();
-        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
-
-            @Override
-            public void callback(final RestfulResponse response) {
-
-            }
-
-            @Override
-            public void handleExcepion(final Throwable e) {
-
-            }
-
-        };
-        final RestHttpContentExchange exchange = httpRest.createRestHttpContentExchange(callback);
-        assertNotNull(exchange);
-        final Field callbackField = RestHttpContentExchange.class.getDeclaredField("callback");
-        assertNotNull(callbackField);
-    }
-
-    /**
-     * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testGetStringRestfulParametes() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
-
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parametes = new RestfulParametes();
         parametes.put("id", "1234");
         parametes.put("name", "some-name");
@@ -176,66 +185,35 @@ public class TestHttpRest {
         parametes.putHttpContextHeader("Content-Type", "application/json");
         parametes.putHttpContextHeader("Accept-Encoding", "*/*");
         final RestfulResponse response = httpRest.get("path/to/service", parametes);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
 
     }
 
+
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testGetStringRestfulParametesRestfulOptions() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
-
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulResponse response = httpRest.get("path/to/service", new RestfulParametes(), options);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
+
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testHeadStringRestfulParametes() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parametes = new RestfulParametes();
         parametes.put("id", "1234");
         parametes.put("name", "some-name");
@@ -243,35 +221,19 @@ public class TestHttpRest {
         parametes.putHttpContextHeader("Content-Type", "");
         parametes.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.head("path/to/service", parametes);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testHeadStringRestfulParametesRestfulOptions() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parametes = new RestfulParametes();
         parametes.put("id", "1234");
         parametes.put("name", "some-name");
@@ -279,12 +241,12 @@ public class TestHttpRest {
         parametes.putHttpContextHeader("Content-Type", "");
         parametes.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.head("path/to/service", parametes, options);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @param options
      * @return
      * @throws ServiceException
@@ -293,16 +255,16 @@ public class TestHttpRest {
     private HttpRest getHttpRest(final RestfulOptions options) throws ServiceException {
         final HttpRest httpRest = new HttpRest();
         {
-            new MockUp<HttpClient>() {
-
-                @Mock
-                public void doStart() {
-                }
-
-                @Mock
-                public void send(final HttpExchange exchange) throws IOException {
-                }
-            };
+//            new MockUp<HttpClient>() {
+//
+//                @Mock
+//                public void doStart() {
+//                }
+//
+//                @Mock
+//                public void send(final HttpExchange exchange) throws IOException {
+//                }
+//            };
             httpRest.initHttpRest(options);
 
         }
@@ -311,31 +273,15 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testAsyncGetStringRestfulParametesRestfulAsyncCallback() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
-
-        final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
 
-        };
 
+        final HttpRest httpRest = getHttpRest(options);
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
             @Override
@@ -355,31 +301,15 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncGetStringRestfulParametesRestfulOptionsRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
 
-        final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
 
+        final HttpRest httpRest = getHttpRest(options);
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
             @Override
@@ -399,30 +329,14 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testPutStringRestfulParametes() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parametes = new RestfulParametes();
         parametes.put("id", "1234");
         parametes.put("name", "some-name");
@@ -430,36 +344,19 @@ public class TestHttpRest {
         parametes.putHttpContextHeader("Content-Type", "");
         parametes.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.put("path/to/service", parametes);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testPutStringRestfulParametesRestfulOptions() throws ServiceException {
 
-        final RestfulOptions options = new RestfulOptions();
-
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parametes = new RestfulParametes();
         parametes.put("id", "1234");
         parametes.put("name", "some-name");
@@ -467,35 +364,20 @@ public class TestHttpRest {
         parametes.putHttpContextHeader("Content-Type", "");
         parametes.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.put("path/to/service", parametes, null);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncPutStringRestfulParametesRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
-
-        final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
 
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
 
-        };
+        final HttpRest httpRest = getHttpRest(options);
 
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
@@ -516,30 +398,14 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testAsyncPutStringRestfulParametesRestfulOptionsRestfulAsyncCallback() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
 
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
@@ -560,32 +426,16 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws Exception
      * @since
      */
     @Test
     public void testAsyncPostStringRestfulParametesRestfulAsyncCallback() throws Exception {
-        final RestfulOptions options = new RestfulOptions();
+
         options.setRestTimeout(10);
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return 99;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_EXCEPTED);
-                return response;
-            }
-
-        };
-
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
             @Override
@@ -605,31 +455,16 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncPostStringRestfulParametesRestfulOptionsRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
+
         options.setRestTimeout(10);
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
 
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
@@ -650,13 +485,12 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testDeleteStringRestfulParametes() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpBaseRest httpRest = getHttpRest(options);
 
@@ -666,30 +500,15 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testDeleteStringRestfulParametesRestfulOptions() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
 
-        final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
 
-        };
+        final HttpBaseRest httpRest = getHttpRest(options);
         final RestfulParametes parameters = new RestfulParametes();
         parameters.put("id", "1234");
         parameters.put("name", "some-name");
@@ -698,37 +517,21 @@ public class TestHttpRest {
         parameters.putHttpContextHeader("Content-Type", "");
         parameters.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.delete("path/to/service", parameters, options);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncDeleteStringRestfulParametesRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
+
         options.setRestTimeout(10);
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
-
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
             @Override
@@ -748,31 +551,16 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncDeleteStringRestfulParametesRestfulOptionsRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
+
         options.setRestTimeout(10);
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
 
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
@@ -793,30 +581,14 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testPatchStringRestfulParametes() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parameters = new RestfulParametes();
         parameters.put("id", "1234");
         parameters.put("name", "some-name");
@@ -825,35 +597,19 @@ public class TestHttpRest {
         parameters.putHttpContextHeader("Content-Type", "");
         parameters.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.patch("path/to/service", parameters);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testPatchStringRestfulParametesRestfulOptions() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
         final RestfulParametes parameters = new RestfulParametes();
         parameters.put("id", "1234");
         parameters.put("name", "some-name");
@@ -862,36 +618,21 @@ public class TestHttpRest {
         parameters.putHttpContextHeader("Content-Type", "");
         parameters.putHttpContextHeader("Accept-Encoding", "");
         final RestfulResponse response = httpRest.patch("path/to/service", parameters, options);
-        assertEquals(HttpExchange.STATUS_COMPLETED, response.getStatus());
+        assertEquals(200, response.getStatus());
     }
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncPatchStringRestfulParametesRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
+
         options.setRestTimeout(10);
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
 
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
@@ -912,31 +653,16 @@ public class TestHttpRest {
 
     /**
      * <br/>
-     * 
+     *
      * @throws ServiceException
      * @since
      */
     @Test
     public void testAsyncPatchStringRestfulParametesRestfulOptionsRestfulAsyncCallback() throws ServiceException {
-        final RestfulOptions options = new RestfulOptions();
+
         options.setRestTimeout(10);
 
         final HttpBaseRest httpRest = getHttpRest(options);
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public int waitForDone() {
-                return HttpExchange.STATUS_COMPLETED;
-            }
-
-            @Mock
-            public RestfulResponse getResponse() throws IOException {
-                final RestfulResponse response = new RestfulResponse();
-                response.setStatus(HttpExchange.STATUS_COMPLETED);
-                return response;
-            }
-
-        };
 
         final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
 
index cf28a5c..14dfbf3 100644 (file)
@@ -32,14 +32,14 @@ import java.util.zip.GZIPInputStream;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
-import org.eclipse.jetty.client.Address;
-import org.eclipse.jetty.client.CachedExchange;
+//import org.eclipse.jetty.client.HttpRequestListeners;
+//import org.eclipse.jetty.client.CachedExchange;
 import org.eclipse.jetty.client.HttpDestination;
-import org.eclipse.jetty.client.HttpExchange;
-import org.eclipse.jetty.http.HttpFields;
-import org.eclipse.jetty.http.HttpHeaders;
-import org.eclipse.jetty.io.Buffer;
-import org.eclipse.jetty.io.ByteArrayBuffer;
+//import org.eclipse.jetty.client.HttpExchange;
+//import org.eclipse.jetty.http.HttpFields;
+//import org.eclipse.jetty.http.HttpHeaders;
+//import org.eclipse.jetty.io.Buffer;
+//import org.eclipse.jetty.io.ByteArrayBuffer;
 import org.eclipse.jetty.util.StringUtil;
 import org.junit.After;
 import org.junit.AfterClass;
@@ -75,7 +75,7 @@ public class TestRestHttpContentExchange {
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
@@ -85,7 +85,7 @@ public class TestRestHttpContentExchange {
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
@@ -95,7 +95,7 @@ public class TestRestHttpContentExchange {
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
@@ -105,7 +105,7 @@ public class TestRestHttpContentExchange {
 
     /**
      * <br/>
-     * 
+     *
      * @throws java.lang.Exception
      * @since
      */
@@ -116,469 +116,476 @@ public class TestRestHttpContentExchange {
 
     /**
      * <br/>
-     * 
+     *
      * @throws IOException
      * @since
      */
     @Test
-    public void testOnRequestCommitted() throws IOException {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onRequestCommitted();
+    public void testGetResponse() throws IOException {
+       RestHttpContentExchange exchange = new RestHttpContentExchange();
+      int statusCode= exchange.getResponse().getStatus();
+      assertEquals(0,statusCode);
 
-        LogManager.getLogger(RestHttpContentExchange.class).atLevel(Level.DEBUG);
-        exchange.onRequestCommitted();
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws IOException
-     * @since
-     */
-    @Test
-    public void testOnRequestComplete() throws IOException {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onRequestComplete();
-
-        LogManager.getLogger(RestHttpContentExchange.class).atLevel(Level.DEBUG);
-        exchange.onRequestComplete();
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testOnResponseComplete() throws Exception {
-        RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onResponseComplete();
-
-        LogManager.getLogger(RestHttpContentExchange.class).atLevel(Level.DEBUG);
-        exchange.onResponseComplete();
-
-        final AtomicInteger isCallback = new AtomicInteger(0);
-        final AtomicInteger isException = new AtomicInteger(0);
-        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
-
-            @Override
-            public void callback(final RestfulResponse response) {
-                isCallback.set(1);
-            }
-
-            @Override
-            public void handleExcepion(final Throwable e) {
-                isException.set(1);
-            }
-
-        };
-
-        final Field statusField = HttpExchange.class.getDeclaredField("_status");
-        statusField.setAccessible(true);
-        exchange = new RestHttpContentExchange(false, callback);
-        statusField.set(exchange, new AtomicInteger(200));
-        exchange.setAddress(new Address("localhost", 9999));
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onResponseComplete();
-        assertEquals(1, isCallback.get());
-        assertEquals(0, isException.get());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    @Ignore
-    public void testDecompressGzipToStr() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-
-        final InputStream stream = ClassLoader.getSystemResourceAsStream("sample.txt.gz");
-        final byte[] binaryData = new byte[1024];
-        stream.read(binaryData);
-        final String expected = "sample data.";
-
-        final String actual = exchange.decompressGzipToStr(binaryData);
-
-        assertEquals(actual, expected);
-
-        new MockUp<ByteArrayInputStream>() {
-
-            @Mock
-            public int read() throws Exception {
-                throw new IOException();
-            }
-
-            @Mock
-            public int read(final byte abyte0[], final int i, final int j) {
-
-                return -1;
-            }
-
-        };
-
-        thrown.expect(IOException.class);
-        exchange.decompressGzipToStr(binaryData);
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    @Ignore
-    public void testDecompressGzipToStrException() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-
-        final InputStream stream = ClassLoader.getSystemResourceAsStream("sample.txt.gz");
-        final byte[] binaryData = new byte[1024];
-        stream.read(binaryData);
-        final String expected = "sample data.";
-
-        new MockUp<GZIPInputStream>() {
-
-            @Mock
-            public void close() throws IOException {
-                throw new IOException();
-            }
-
-        };
-
-        new MockUp<InputStreamReader>() {
-
-            @Mock
-            public void close() throws IOException {
-                throw new IOException();
-            }
-
-        };
-
-        new MockUp<ByteArrayInputStream>() {
-
-            @Mock
-            public void close() throws IOException {
-                throw new IOException();
-            }
-
-        };
-
-        final String actual = exchange.decompressGzipToStr(binaryData);
-        assertEquals(actual, expected);
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testDecompressGzipToStrNull() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        final String expected = "";
-        final String actual = exchange.decompressGzipToStr(null);
-
-        assertEquals(actual, expected);
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testOnResponseHeaderBufferBuffer() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-
-        final Buffer name = new ByteArrayBuffer("key");
-        final Buffer value = new ByteArrayBuffer("value");
-        exchange.onResponseHeader(name, value);
-
-        new MockUp<HttpHeaders>() {
-
-            @Mock
-            public int getOrdinal(final Buffer buffer) {
-                return HttpHeaders.CONTENT_ENCODING_ORDINAL;
-            }
-
-        };
-        exchange.onResponseHeader(name, value);
-
-        new MockUp<StringUtil>() {
-
-            @Mock
-            public String asciiToLowerCase(final String s) {
-                return "gzip";
-            }
-
-        };
-        exchange.onResponseHeader(name, value);
-
-    }
-
-    /**
-     * <br/>
-     * 
-     * @since
-     */
-    @Test
-    public void testOnExceptionThrowable() {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onException(new Exception());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @since
-     */
-    @Test
-    public void testOnExceptionThrowableWithCallback() {
-        final AtomicInteger isCallback = new AtomicInteger(0);
-        final AtomicInteger isException = new AtomicInteger(0);
-        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
-
-            @Override
-            public void callback(final RestfulResponse response) {
-                isCallback.set(1);
-            }
-
-            @Override
-            public void handleExcepion(final Throwable e) {
-                isException.set(1);
-            }
-
-        };
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onException(new Exception());
-        assertEquals(0, isCallback.get());
-        assertEquals(1, isException.get());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @since
-     */
-    @Test
-    public void testOnConnectionFailedThrowable() {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onConnectionFailed(new Exception());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @since
-     */
-    @Test
-    public void testOnConnectionFailedThrowableException() {
-        final AtomicInteger isCallback = new AtomicInteger(0);
-        final AtomicInteger isException = new AtomicInteger(0);
-        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
-
-            @Override
-            public void callback(final RestfulResponse response) {
-                isCallback.set(1);
-            }
-
-            @Override
-            public void handleExcepion(final Throwable e) {
-                isException.set(1);
-            }
-
-        };
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.onConnectionFailed(new Exception());
-        assertEquals(0, isCallback.get());
-        assertEquals(1, isException.get());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @since
-     */
-    @Test
-    public void testExpireHttpDestination() {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.expire(mockedDest);
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testExpireHttpDestinationException() throws Exception {
-        final AtomicInteger isCallback = new AtomicInteger(0);
-        final AtomicInteger isException = new AtomicInteger(0);
-        final List<Throwable> thrSet = new ArrayList<Throwable>();
-        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
-
-            @Override
-            public void callback(final RestfulResponse response) {
-                isCallback.set(1);
-            }
-
-            @Override
-            public void handleExcepion(final Throwable e) {
-                isException.set(1);
-                thrSet.add(e);
-            }
-
-        };
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        exchange.expire(mockedDest);
-        assertEquals(0, isCallback.get());
-        assertEquals(1, isException.get());
-        assertEquals(1, thrSet.size());
-        final Throwable t = thrSet.get(0);
-        assertEquals(ServiceException.class, t.getClass());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testIsGzip() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-
-        final Buffer name = new ByteArrayBuffer("key");
-        final Buffer value = new ByteArrayBuffer("value");
-
-        new MockUp<HttpHeaders>() {
-
-            @Mock
-            public int getOrdinal(final Buffer buffer) {
-                return HttpHeaders.CONTENT_ENCODING_ORDINAL;
-            }
-
-        };
-        exchange.onResponseHeader(name, value);
-        assertFalse(exchange.isGzip());
-
-        new MockUp<StringUtil>() {
-
-            @Mock
-            public String asciiToLowerCase(final String s) {
-                return "gzip";
-            }
-
-        };
-        exchange.onResponseHeader(name, value);
-        assertTrue(exchange.isGzip());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testGetResponse() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-
-        final Field statusField = HttpExchange.class.getDeclaredField("_status");
-        statusField.setAccessible(true);
-        statusField.set(exchange, new AtomicInteger(200));
-
-        RestfulResponse response = exchange.getResponse();
-        assertEquals(0, response.getStatus());
-
-        final HttpFields fields = new HttpFields();
-        final Field headerFields = CachedExchange.class.getDeclaredField("_responseFields");
-        headerFields.setAccessible(true);
-        headerFields.set(exchange, fields);
-        response = exchange.getResponse();
-        assertEquals(0, response.getStatus());
-        fields.add("Content-Type", "application/json");
-        fields.add("Content-Encode", "UTF-8");
-        response = exchange.getResponse();
-        assertEquals(0, response.getStatus());
-    }
-
-    /**
-     * <br/>
-     * 
-     * @throws Exception
-     * @since
-     */
-    @Test
-    public void testGetResponseGzip() throws Exception {
-        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
-        final Address address = new Address("localhost", 9999);
-        exchange.setAddress(address);
-        exchange.setRequestURI("/the/request/uri");
-        new MockUp<RestHttpContentExchange>() {
-
-            @Mock
-            public boolean isGzip() {
-                return true;
-            }
-        };
-        final Field statusField = HttpExchange.class.getDeclaredField("_status");
-        statusField.setAccessible(true);
-        statusField.set(exchange, new AtomicInteger(200));
-
-        final RestfulResponse response = exchange.getResponse();
-        assertEquals(0, response.getStatus());
     }
+//    @Test
+//    public void testOnRequestCommitted() throws IOException {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onRequestCommitted();
+//
+//        LogManager.getLogger(RestHttpContentExchange.class).setLevel(Level.DEBUG);
+//        exchange.onRequestCommitted();
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws IOException
+//     * @since
+//     */
+//    @Test
+//    public void testOnRequestComplete() throws IOException {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onRequestComplete();
+//
+//        LogManager.getLogger(RestHttpContentExchange.class).setLevel(Level.DEBUG);
+//        exchange.onRequestComplete();
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testOnResponseComplete() throws Exception {
+//        RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onResponseComplete();
+//
+//        LogManager.getLogger(RestHttpContentExchange.class).setLevel(Level.DEBUG);
+//        exchange.onResponseComplete();
+//
+//        final AtomicInteger isCallback = new AtomicInteger(0);
+//        final AtomicInteger isException = new AtomicInteger(0);
+//        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
+//
+//            @Override
+//            public void callback(final RestfulResponse response) {
+//                isCallback.set(1);
+//            }
+//
+//            @Override
+//            public void handleExcepion(final Throwable e) {
+//                isException.set(1);
+//            }
+//
+//        };
+//
+//        final Field statusField = HttpExchange.class.getDeclaredField("_status");
+//        statusField.setAccessible(true);
+//        exchange = new RestHttpContentExchange(false, callback);
+//        statusField.set(exchange, new AtomicInteger(200));
+//        exchange.setAddress(new HttpRequestListeners("localhost", 9999));
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onResponseComplete();
+//        assertEquals(1, isCallback.get());
+//        assertEquals(0, isException.get());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    @Ignore
+//    public void testDecompressGzipToStr() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//
+//        final InputStream stream = ClassLoader.getSystemResourceAsStream("sample.txt.gz");
+//        final byte[] binaryData = new byte[1024];
+//        stream.read(binaryData);
+//        final String expected = "sample data.";
+//
+//        final String actual = exchange.decompressGzipToStr(binaryData);
+//
+//        assertEquals(actual, expected);
+//
+//        new MockUp<ByteArrayInputStream>() {
+//
+//            @Mock
+//            public int read() throws Exception {
+//                throw new IOException();
+//            }
+//
+//            @Mock
+//            public int read(final byte abyte0[], final int i, final int j) {
+//
+//                return -1;
+//            }
+//
+//        };
+//
+//        thrown.expect(IOException.class);
+//        exchange.decompressGzipToStr(binaryData);
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    @Ignore
+//    public void testDecompressGzipToStrException() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//
+//        final InputStream stream = ClassLoader.getSystemResourceAsStream("sample.txt.gz");
+//        final byte[] binaryData = new byte[1024];
+//        stream.read(binaryData);
+//        final String expected = "sample data.";
+//
+//        new MockUp<GZIPInputStream>() {
+//
+//            @Mock
+//            public void close() throws IOException {
+//                throw new IOException();
+//            }
+//
+//        };
+//
+//        new MockUp<InputStreamReader>() {
+//
+//            @Mock
+//            public void close() throws IOException {
+//                throw new IOException();
+//            }
+//
+//        };
+//
+//        new MockUp<ByteArrayInputStream>() {
+//
+//            @Mock
+//            public void close() throws IOException {
+//                throw new IOException();
+//            }
+//
+//        };
+//
+//        final String actual = exchange.decompressGzipToStr(binaryData);
+//        assertEquals(actual, expected);
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testDecompressGzipToStrNull() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        final String expected = "";
+//        final String actual = exchange.decompressGzipToStr(null);
+//
+//        assertEquals(actual, expected);
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testOnResponseHeaderBufferBuffer() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//
+//        final Buffer name = new ByteArrayBuffer("key");
+//        final Buffer value = new ByteArrayBuffer("value");
+//        exchange.onResponseHeader(name, value);
+//
+//        new MockUp<HttpHeaders>() {
+//
+//            @Mock
+//            public int getOrdinal(final Buffer buffer) {
+//                return HttpHeaders.CONTENT_ENCODING_ORDINAL;
+//            }
+//
+//        };
+//        exchange.onResponseHeader(name, value);
+//
+//        new MockUp<StringUtil>() {
+//
+//            @Mock
+//            public String asciiToLowerCase(final String s) {
+//                return "gzip";
+//            }
+//
+//        };
+//        exchange.onResponseHeader(name, value);
+//
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @since
+//     */
+//    @Test
+//    public void testOnExceptionThrowable() {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onException(new Exception());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @since
+//     */
+//    @Test
+//    public void testOnExceptionThrowableWithCallback() {
+//        final AtomicInteger isCallback = new AtomicInteger(0);
+//        final AtomicInteger isException = new AtomicInteger(0);
+//        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
+//
+//            @Override
+//            public void callback(final RestfulResponse response) {
+//                isCallback.set(1);
+//            }
+//
+//            @Override
+//            public void handleExcepion(final Throwable e) {
+//                isException.set(1);
+//            }
+//
+//        };
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onException(new Exception());
+//        assertEquals(0, isCallback.get());
+//        assertEquals(1, isException.get());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @since
+//     */
+//    @Test
+//    public void testOnConnectionFailedThrowable() {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onConnectionFailed(new Exception());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @since
+//     */
+//    @Test
+//    public void testOnConnectionFailedThrowableException() {
+//        final AtomicInteger isCallback = new AtomicInteger(0);
+//        final AtomicInteger isException = new AtomicInteger(0);
+//        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
+//
+//            @Override
+//            public void callback(final RestfulResponse response) {
+//                isCallback.set(1);
+//            }
+//
+//            @Override
+//            public void handleExcepion(final Throwable e) {
+//                isException.set(1);
+//            }
+//
+//        };
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.onConnectionFailed(new Exception());
+//        assertEquals(0, isCallback.get());
+//        assertEquals(1, isException.get());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @since
+//     */
+//    @Test
+//    public void testExpireHttpDestination() {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.expire(mockedDest);
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testExpireHttpDestinationException() throws Exception {
+//        final AtomicInteger isCallback = new AtomicInteger(0);
+//        final AtomicInteger isException = new AtomicInteger(0);
+//        final List<Throwable> thrSet = new ArrayList<Throwable>();
+//        final RestfulAsyncCallback callback = new RestfulAsyncCallback() {
+//
+//            @Override
+//            public void callback(final RestfulResponse response) {
+//                isCallback.set(1);
+//            }
+//
+//            @Override
+//            public void handleExcepion(final Throwable e) {
+//                isException.set(1);
+//                thrSet.add(e);
+//            }
+//
+//        };
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        exchange.expire(mockedDest);
+//        assertEquals(0, isCallback.get());
+//        assertEquals(1, isException.get());
+//        assertEquals(1, thrSet.size());
+//        final Throwable t = thrSet.get(0);
+//        assertEquals(ServiceException.class, t.getClass());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testIsGzip() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//
+//        final Buffer name = new ByteArrayBuffer("key");
+//        final Buffer value = new ByteArrayBuffer("value");
+//
+//        new MockUp<HttpHeaders>() {
+//
+//            @Mock
+//            public int getOrdinal(final Buffer buffer) {
+//                return HttpHeaders.CONTENT_ENCODING_ORDINAL;
+//            }
+//
+//        };
+//        exchange.onResponseHeader(name, value);
+//        assertFalse(exchange.isGzip());
+//
+//        new MockUp<StringUtil>() {
+//
+//            @Mock
+//            public String asciiToLowerCase(final String s) {
+//                return "gzip";
+//            }
+//
+//        };
+//        exchange.onResponseHeader(name, value);
+//        assertTrue(exchange.isGzip());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testGetResponse() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//
+//        final Field statusField = HttpExchange.class.getDeclaredField("_status");
+//        statusField.setAccessible(true);
+//        statusField.set(exchange, new AtomicInteger(200));
+//
+//        RestfulResponse response = exchange.getResponse();
+//        assertEquals(0, response.getStatus());
+//
+//        final HttpFields fields = new HttpFields();
+//        final Field headerFields = CachedExchange.class.getDeclaredField("_responseFields");
+//        headerFields.setAccessible(true);
+//        headerFields.set(exchange, fields);
+//        response = exchange.getResponse();
+//        assertEquals(0, response.getStatus());
+//        fields.add("Content-Type", "application/json");
+//        fields.add("Content-Encode", "UTF-8");
+//        response = exchange.getResponse();
+//        assertEquals(0, response.getStatus());
+//    }
+//
+//    /**
+//     * <br/>
+//     *
+//     * @throws Exception
+//     * @since
+//     */
+//    @Test
+//    public void testGetResponseGzip() throws Exception {
+//        final RestHttpContentExchange exchange = new RestHttpContentExchange(false, null);
+//        final HttpRequestListeners address = new HttpRequestListeners("localhost", 9999);
+//        exchange.setAddress(address);
+//        exchange.setRequestURI("/the/request/uri");
+//        new MockUp<RestHttpContentExchange>() {
+//
+//            @Mock
+//            public boolean isGzip() {
+//                return true;
+//            }
+//        };
+//        final Field statusField = HttpExchange.class.getDeclaredField("_status");
+//        statusField.setAccessible(true);
+//        statusField.set(exchange, new AtomicInteger(200));
+//
+//        final RestfulResponse response = exchange.getResponse();
+//        assertEquals(0, response.getStatus());
+//    }
 }