Yair Zaslavsky has uploaded a new change for review.

Change subject: core: remove ConnectionWrapper
......................................................................

core: remove ConnectionWrapper

Change-Id: I41e385f266837c7b45b0d5d1c02402e8ee9eb155
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/host/provider/foreman/ForemanHostProviderProxy.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
2 files changed, 58 insertions(+), 91 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/35781/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/host/provider/foreman/ForemanHostProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/host/provider/foreman/ForemanHostProviderProxy.java
index 66fac72..97b0572 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/host/provider/foreman/ForemanHostProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/host/provider/foreman/ForemanHostProviderProxy.java
@@ -270,25 +270,14 @@
                 );
     }
 
-
-    protected ConnectionWrapper createWrapper(HttpURLConnection result) {
-        return new ConnectionWrapper(result) {
-
-            @Override
-            public void beforeReadResponse() throws Exception {
-
-            }
-
-            @Override
-            public void afterReadResponse() throws Exception {
-                if (connection.getResponseCode() != HttpURLConnection.HTTP_OK
-                        && connection.getResponseCode() != 
HttpURLConnection.HTTP_MOVED_TEMP) {
-                    ForemanErrorWrapper ferr = 
objectMapper.readValue(response, ForemanErrorWrapper.class);
-                    String err = 
StringUtils.join(ferr.getForemanError().getFull_messages(), ", ");
-                    throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE, 
err);
-                }
-            }
-        };
+    @Override
+    protected void afterReadResponse(HttpURLConnection connection, byte[] 
response) throws Exception {
+        if (connection.getResponseCode() != HttpURLConnection.HTTP_OK
+                && connection.getResponseCode() != 
HttpURLConnection.HTTP_MOVED_TEMP) {
+            ForemanErrorWrapper ferr = objectMapper.readValue(response, 
ForemanErrorWrapper.class);
+            String err = 
StringUtils.join(ferr.getForemanError().getFull_messages(), ", ");
+            throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE, err);
+        }
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
index 1a224a7..0d3b479 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/BaseProviderProxy.java
@@ -33,63 +33,8 @@
         void handle(final HttpURLConnection connection) throws IOException;
     }
 
-    public static class ConnectionWrapper {
-
-        protected HttpURLConnection connection;
-        protected byte[] response;
-
-        public ConnectionWrapper(final HttpURLConnection connection) {
-            this.connection = connection;
-        }
-
-        public byte[] getResponse() throws IOException {
-            if (response == null) {
-                ByteArrayOutputStream bytesOs = new ByteArrayOutputStream();
-                try (BufferedInputStream bis = new 
BufferedInputStream(connection.getInputStream())) {
-                    beforeReadResponse();
-                    byte[] buff = new byte[8196];
-                    while (true) {
-                        int read = bis.read(buff, 0, 8196);
-                        if (read > 0) {
-                            bytesOs.write(buff, 0, read);
-                        } else {
-                            break;
-                        }
-                    }
-                    afterReadResponse();
-                } catch (Exception ex) {
-                    log.error("Exception is {} ", ex.getMessage());
-                    log.debug("Exception: ", ex);
-                    if (ex instanceof VdcBLLException) {
-                        throw (VdcBLLException) ex;
-                    } else {
-                        throw new 
VdcBLLException(VdcBllErrors.PROVIDER_FAILURE, ex.getMessage());
-                    }
-                }
-                response = bytesOs.toByteArray();
-            }
-            return response;
-        }
-
-        protected void beforeReadResponse() throws Exception {
-            if (connection.getResponseCode() != HttpURLConnection.HTTP_OK
-                    && connection.getResponseCode() != 
HttpURLConnection.HTTP_MOVED_TEMP) {
-                throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE);
-            }
-        }
-
-        protected void afterReadResponse() throws Exception {
-        }
-
-        public HttpURLConnection getConnection() {
-            return connection;
-        }
-
-    }
-
     private URL url;
     private Provider<?> hostProvider;
-    private byte[] response;
 
     protected static enum HttpMethodType {
         GET,
@@ -130,7 +75,17 @@
         throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE, 
e.getMessage());
     }
 
-    protected ConnectionWrapper createConnection(String relativePath) {
+    protected void afterReadResponse(HttpURLConnection connection, byte[] 
response) throws Exception {
+    }
+
+    protected void beforeReadResponse(HttpURLConnection connection) throws 
Exception {
+        if (connection.getResponseCode() != HttpURLConnection.HTTP_OK
+                && connection.getResponseCode() != 
HttpURLConnection.HTTP_MOVED_TEMP) {
+            throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE);
+        }
+    }
+
+    protected HttpURLConnection createConnection(String relativePath) {
 
         URL hostUrl = getUrl();
         HttpURLConnectionBuilder builder = null;
@@ -151,11 +106,36 @@
             throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE);
         }
 
-        return createWrapper(result);
+        return result;
+
     }
 
-    protected ConnectionWrapper createWrapper(HttpURLConnection result) {
-        return new ConnectionWrapper(result);
+    public byte[] getResponse(HttpURLConnection connection) throws IOException 
{
+        byte[] response = null;
+        ByteArrayOutputStream bytesOs = new ByteArrayOutputStream();
+        try (BufferedInputStream bis = new 
BufferedInputStream(connection.getInputStream())) {
+            beforeReadResponse(connection);
+            byte[] buff = new byte[8196];
+            while (true) {
+                int read = bis.read(buff, 0, 8196);
+                if (read > 0) {
+                    bytesOs.write(buff, 0, read);
+                } else {
+                    break;
+                }
+            }
+            response = bytesOs.toByteArray();
+            afterReadResponse(connection, response);
+        } catch (Exception ex) {
+            log.error("Exception is {} ", ex.getMessage());
+            log.debug("Exception: ", ex);
+            if (ex instanceof VdcBLLException) {
+                throw (VdcBLLException) ex;
+            } else {
+                throw new VdcBLLException(VdcBllErrors.PROVIDER_FAILURE, 
ex.getMessage());
+            }
+        }
+        return response;
     }
 
 
@@ -176,38 +156,36 @@
             String contentType,
             String relativeUrl,
             String body) {
-        ConnectionWrapper wrapper = createConnection(relativeUrl);
-        return runHttpMethod(httpMethod, contentType, relativeUrl, body, 
wrapper);
+        return runHttpMethod(httpMethod, contentType, relativeUrl, body, 
createConnection(relativeUrl));
     }
 
     protected byte[] runHttpMethod(HttpMethodType httpMethod,
             String contentType,
             String relativeUrl,
-            String body, ConnectionWrapper wrapper) {
+            String body, HttpURLConnection connection) {
         byte[] result = null;
         try {
-            response = null;
-            wrapper.getConnection().setRequestProperty("Content-Type", 
contentType);
-            wrapper.getConnection().setDoInput(true);
-            wrapper.getConnection().setDoOutput(httpMethod != 
HttpMethodType.GET);
-            wrapper.getConnection().setRequestMethod(httpMethod.toString());
+            connection.setRequestProperty("Content-Type", contentType);
+            connection.setDoInput(true);
+            connection.setDoOutput(httpMethod != HttpMethodType.GET);
+            connection.setRequestMethod(httpMethod.toString());
             if (body != null) {
                 byte[] bytes = body.getBytes(Charset.forName("UTF-8"));
-                wrapper.getConnection().setRequestProperty("Content-Length",
+                connection.setRequestProperty("Content-Length",
                         new StringBuilder().append(bytes.length).toString());
 
-                try (OutputStream outputStream = 
wrapper.getConnection().getOutputStream()) {
+                try (OutputStream outputStream = connection.getOutputStream()) 
{
                     outputStream.write(bytes);
                 }
             }
-            result = wrapper.getResponse();
+            result = getResponse(connection);
         } catch (SSLException e) {
             throw new VdcBLLException(VdcBllErrors.PROVIDER_SSL_FAILURE, 
e.getMessage());
         } catch (IOException e) {
             handleException(e);
         } finally {
-            if (wrapper != null) {
-                wrapper.getConnection().disconnect();
+            if (connection != null) {
+                connection.disconnect();
             }
         }
         return result;


-- 
To view, visit http://gerrit.ovirt.org/35781
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I41e385f266837c7b45b0d5d1c02402e8ee9eb155
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to