Code clean up in cloud-utils project - Code formatting - Remove unused methods
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5fc953ed Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5fc953ed Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5fc953ed Branch: refs/heads/deploy-from-snapshot Commit: 5fc953eda2640d1bf69b7ed0f85110b8ac2a4087 Parents: 93b0989 Author: Miguel Ferreira <miguelferre...@me.com> Authored: Sat Aug 22 20:53:12 2015 +0200 Committer: Miguel Ferreira <miguelferre...@me.com> Committed: Tue Aug 25 17:36:11 2015 +0200 ---------------------------------------------------------------------- .../utils/rest/CloudstackRESTException.java | 8 +- .../cloud/utils/rest/RESTServiceConnector.java | 118 +++++++++---------- .../utils/rest/RESTValidationStrategy.java | 16 +-- .../utils/rest/RESTServiceConnectorTest.java | 21 ++-- 4 files changed, 73 insertions(+), 90 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5fc953ed/utils/src/main/java/com/cloud/utils/rest/CloudstackRESTException.java ---------------------------------------------------------------------- diff --git a/utils/src/main/java/com/cloud/utils/rest/CloudstackRESTException.java b/utils/src/main/java/com/cloud/utils/rest/CloudstackRESTException.java index 5985fa0..2078d57 100644 --- a/utils/src/main/java/com/cloud/utils/rest/CloudstackRESTException.java +++ b/utils/src/main/java/com/cloud/utils/rest/CloudstackRESTException.java @@ -19,19 +19,13 @@ package com.cloud.utils.rest; +@SuppressWarnings("serial") public class CloudstackRESTException extends Exception { - public CloudstackRESTException() { - } - public CloudstackRESTException(final String message) { super(message); } - public CloudstackRESTException(final Throwable cause) { - super(cause); - } - public CloudstackRESTException(final String message, final Throwable cause) { super(message, cause); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5fc953ed/utils/src/main/java/com/cloud/utils/rest/RESTServiceConnector.java ---------------------------------------------------------------------- diff --git a/utils/src/main/java/com/cloud/utils/rest/RESTServiceConnector.java b/utils/src/main/java/com/cloud/utils/rest/RESTServiceConnector.java index 6ededcb..01aca89 100644 --- a/utils/src/main/java/com/cloud/utils/rest/RESTServiceConnector.java +++ b/utils/src/main/java/com/cloud/utils/rest/RESTServiceConnector.java @@ -19,11 +19,29 @@ package com.cloud.utils.rest; -import com.google.gson.FieldNamingPolicy; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializer; -import com.google.gson.reflect.TypeToken; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Type; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.MalformedURLException; +import java.net.Socket; +import java.net.URL; +import java.net.UnknownHostException; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + import org.apache.cloudstack.utils.security.SSLUtils; import org.apache.cloudstack.utils.security.SecureSSLSocketFactory; import org.apache.commons.httpclient.ConnectTimeoutException; @@ -46,36 +64,18 @@ import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory; import org.apache.log4j.Logger; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocket; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Type; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.MalformedURLException; -import java.net.Socket; -import java.net.URL; -import java.net.UnknownHostException; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; +import com.google.gson.FieldNamingPolicy; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializer; +import com.google.gson.reflect.TypeToken; /** - * This abstraction encapsulates client side code for REST service communication. It encapsulates - * access in a delegate validation strategy. There may different implementations extending - * {@link RESTValidationStrategy}, and any of them should mention the needed data to work. + * This abstraction encapsulates client side code for REST service communication. It encapsulates access in a delegate validation strategy. There may different implementations + * extending {@link RESTValidationStrategy}, and any of them should mention the needed data to work. * - * This connector allows the use of {@link JsonDeserializer} for specific classes. You can provide - * in the constructor a list of classes and a list of deserializers for these classes. These should - * be a correlated so that Nth deserializer is correctly mapped to Nth class. + * This connector allows the use of {@link JsonDeserializer} for specific classes. You can provide in the constructor a list of classes and a list of deserializers for these + * classes. These should be a correlated so that Nth deserializer is correctly mapped to Nth class. */ public class RESTServiceConnector { private static final String HTTPS = "https"; @@ -101,7 +101,6 @@ public class RESTServiceConnector { private final Gson gson; - /** * Getter that may be needed only for test purpose * @@ -122,14 +121,14 @@ public class RESTServiceConnector { try { // Cast to ProtocolSocketFactory to avoid the deprecated constructor with the SecureProtocolSocketFactory parameter - Protocol.registerProtocol(HTTPS, new Protocol(HTTPS, (ProtocolSocketFactory)new TrustingProtocolSocketFactory(), HTTPS_PORT)); + Protocol.registerProtocol(HTTPS, new Protocol(HTTPS, (ProtocolSocketFactory) new TrustingProtocolSocketFactory(), HTTPS_PORT)); } catch (final IOException e) { s_logger.warn("Failed to register the TrustingProtocolSocketFactory, falling back to default SSLSocketFactory", e); } final GsonBuilder gsonBuilder = new GsonBuilder(); - if(classList != null && deserializerList != null) { - for(int i = 0; i < classList.size() && i < deserializerList.size(); i++) { + if (classList != null && deserializerList != null) { + for (int i = 0; i < classList.size() && i < deserializerList.size(); i++) { gsonBuilder.registerTypeAdapter(classList.get(i), deserializerList.get(i)); } } @@ -173,7 +172,7 @@ public class RESTServiceConnector { public <T> void executeUpdateObject(final T newObject, final String uri, final Map<String, String> parameters) throws CloudstackRESTException { - final PutMethod pm = (PutMethod)createMethod(PUT_METHOD_TYPE, uri); + final PutMethod pm = (PutMethod) createMethod(PUT_METHOD_TYPE, uri); pm.setRequestHeader(CONTENT_TYPE, JSON_CONTENT_TYPE); try { pm.setRequestEntity(new StringRequestEntity(gson.toJson(newObject), JSON_CONTENT_TYPE, null)); @@ -193,10 +192,9 @@ public class RESTServiceConnector { } @SuppressWarnings("unchecked") - public <T> T executeCreateObject(final T newObject, final Type returnObjectType, final String uri, final Map<String, String> parameters) - throws CloudstackRESTException { + public <T> T executeCreateObject(final T newObject, final Type returnObjectType, final String uri, final Map<String, String> parameters) throws CloudstackRESTException { - final PostMethod pm = (PostMethod)createMethod(POST_METHOD_TYPE, uri); + final PostMethod pm = (PostMethod) createMethod(POST_METHOD_TYPE, uri); pm.setRequestHeader(CONTENT_TYPE, JSON_CONTENT_TYPE); try { pm.setRequestEntity(new StringRequestEntity(gson.toJson(newObject), JSON_CONTENT_TYPE, null)); @@ -215,7 +213,7 @@ public class RESTServiceConnector { T result; try { - result = (T)gson.fromJson(pm.getResponseBodyAsString(), TypeToken.get(newObject.getClass()).getType()); + result = (T) gson.fromJson(pm.getResponseBodyAsString(), TypeToken.get(newObject.getClass()).getType()); } catch (final IOException e) { throw new CloudstackRESTException("Failed to decode json response body", e); } finally { @@ -226,7 +224,7 @@ public class RESTServiceConnector { } public void executeDeleteObject(final String uri) throws CloudstackRESTException { - final DeleteMethod dm = (DeleteMethod)createMethod(DELETE_METHOD_TYPE, uri); + final DeleteMethod dm = (DeleteMethod) createMethod(DELETE_METHOD_TYPE, uri); dm.setRequestHeader(CONTENT_TYPE, JSON_CONTENT_TYPE); executeMethod(dm); @@ -242,7 +240,7 @@ public class RESTServiceConnector { @SuppressWarnings("unchecked") public <T> T executeRetrieveObject(final Type returnObjectType, final String uri, final Map<String, String> parameters) throws CloudstackRESTException { - final GetMethod gm = (GetMethod)createMethod(GET_METHOD_TYPE, uri); + final GetMethod gm = (GetMethod) createMethod(GET_METHOD_TYPE, uri); gm.setRequestHeader(CONTENT_TYPE, JSON_CONTENT_TYPE); if (parameters != null && !parameters.isEmpty()) { final List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(parameters.size()); @@ -263,7 +261,7 @@ public class RESTServiceConnector { T returnValue; try { - returnValue = (T)gson.fromJson(gm.getResponseBodyAsString(), returnObjectType); + returnValue = (T) gson.fromJson(gm.getResponseBodyAsString(), returnObjectType); } catch (final IOException e) { s_logger.error("IOException while retrieving response body", e); throw new CloudstackRESTException(e); @@ -287,7 +285,7 @@ public class RESTServiceConnector { } } - private String responseToErrorMessage(final HttpMethodBase method) { + private static String responseToErrorMessage(final HttpMethodBase method) { assert method.isRequestSent() : "no use getting an error message unless the request is sent"; if (TEXT_HTML_CONTENT_TYPE.equals(method.getResponseHeader(CONTENT_TYPE).getValue())) { @@ -305,10 +303,8 @@ public class RESTServiceConnector { return method.getStatusText(); } - /* Some controllers use a self-signed certificate. The - * TrustingProtocolSocketFactory will accept any provided - * certificate when making an SSL connection to the SDN - * Manager + /* + * Some controllers use a self-signed certificate. The TrustingProtocolSocketFactory will accept any provided certificate when making an SSL connection to the SDN Manager */ private class TrustingProtocolSocketFactory implements SecureProtocolSocketFactory { @@ -316,7 +312,7 @@ public class RESTServiceConnector { public TrustingProtocolSocketFactory() throws IOException { // Create a trust manager that does not validate certificate chains - final TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() { + final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; @@ -331,7 +327,7 @@ public class RESTServiceConnector { public void checkServerTrusted(final X509Certificate[] certs, final String authType) { // Trust always } - }}; + } }; try { // Install the all-trusting trust manager @@ -347,43 +343,43 @@ public class RESTServiceConnector { @Override public Socket createSocket(final String host, final int port) throws IOException { - SSLSocket socket = (SSLSocket) ssf.createSocket(host, port); + final SSLSocket socket = (SSLSocket) ssf.createSocket(host, port); socket.setEnabledProtocols(SSLUtils.getSupportedProtocols(socket.getEnabledProtocols())); return socket; } @Override public Socket createSocket(final String address, final int port, final InetAddress localAddress, final int localPort) throws IOException, UnknownHostException { - Socket socket = ssf.createSocket(address, port, localAddress, localPort); + final Socket socket = ssf.createSocket(address, port, localAddress, localPort); if (socket instanceof SSLSocket) { - ((SSLSocket)socket).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket)socket).getEnabledProtocols())); + ((SSLSocket) socket).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket) socket).getEnabledProtocols())); } return socket; } @Override public Socket createSocket(final Socket socket, final String host, final int port, final boolean autoClose) throws IOException, UnknownHostException { - Socket s = ssf.createSocket(socket, host, port, autoClose); + final Socket s = ssf.createSocket(socket, host, port, autoClose); if (s instanceof SSLSocket) { - ((SSLSocket)s).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket)s).getEnabledProtocols())); + ((SSLSocket) s).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket) s).getEnabledProtocols())); } return s; } @Override - public Socket createSocket(final String host, final int port, final InetAddress localAddress, final int localPort, final HttpConnectionParams params) - throws IOException, UnknownHostException, ConnectTimeoutException { + public Socket createSocket(final String host, final int port, final InetAddress localAddress, final int localPort, final HttpConnectionParams params) throws IOException, + UnknownHostException, ConnectTimeoutException { final int timeout = params.getConnectionTimeout(); if (timeout == 0) { - Socket socket = createSocket(host, port, localAddress, localPort); + final Socket socket = createSocket(host, port, localAddress, localPort); if (socket instanceof SSLSocket) { - ((SSLSocket)socket).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket)socket).getEnabledProtocols())); + ((SSLSocket) socket).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket) socket).getEnabledProtocols())); } return socket; } else { final Socket s = ssf.createSocket(); if (s instanceof SSLSocket) { - ((SSLSocket)s).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket)s).getEnabledProtocols())); + ((SSLSocket) s).setEnabledProtocols(SSLUtils.getSupportedProtocols(((SSLSocket) s).getEnabledProtocols())); } s.bind(new InetSocketAddress(localAddress, localPort)); s.connect(new InetSocketAddress(host, port), timeout); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5fc953ed/utils/src/main/java/com/cloud/utils/rest/RESTValidationStrategy.java ---------------------------------------------------------------------- diff --git a/utils/src/main/java/com/cloud/utils/rest/RESTValidationStrategy.java b/utils/src/main/java/com/cloud/utils/rest/RESTValidationStrategy.java index 77ac8d0..8ec920a 100644 --- a/utils/src/main/java/com/cloud/utils/rest/RESTValidationStrategy.java +++ b/utils/src/main/java/com/cloud/utils/rest/RESTValidationStrategy.java @@ -33,9 +33,8 @@ import org.apache.log4j.Logger; /** * Basic authentication strategy. This strategy needs user and password for authentication. * - * A login URL is needed which will be used for login and getting the cookie to be - * used in next requests. If an executeMethod request fails due to authorization it will try - * to login, get the cookie and repeat the attempt to execute the method. + * A login URL is needed which will be used for login and getting the cookie to be used in next requests. If an executeMethod request fails due to authorization it will try to + * login, get the cookie and repeat the attempt to execute the method. */ public class RESTValidationStrategy { @@ -47,8 +46,7 @@ public class RESTValidationStrategy { protected String serverVersion; protected String loginUrl; - public RESTValidationStrategy(final String host, final String user, final String password, - final String serverVersion, final String loginUrl) { + public RESTValidationStrategy(final String host, final String user, final String password, final String serverVersion, final String loginUrl) { super(); this.host = host; this.user = user; @@ -96,9 +94,7 @@ public class RESTValidationStrategy { this.host = host; } - public void executeMethod(final HttpMethodBase method, final HttpClient client, - final String protocol) - throws CloudstackRESTException, HttpException, IOException { + public void executeMethod(final HttpMethodBase method, final HttpClient client, final String protocol) throws CloudstackRESTException, HttpException, IOException { if (host == null || host.isEmpty() || user == null || user.isEmpty() || password == null || password.isEmpty()) { throw new CloudstackRESTException("Hostname/credentials are null or empty"); } @@ -118,9 +114,7 @@ public class RESTValidationStrategy { * The method returns false if the login failed or the connection could not be made. * */ - protected void login(final String protocol, - final HttpClient client) - throws CloudstackRESTException { + protected void login(final String protocol, final HttpClient client) throws CloudstackRESTException { String url; if (host == null || host.isEmpty() || user == null || user.isEmpty() || password == null || password.isEmpty()) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5fc953ed/utils/src/test/java/com/cloud/utils/rest/RESTServiceConnectorTest.java ---------------------------------------------------------------------- diff --git a/utils/src/test/java/com/cloud/utils/rest/RESTServiceConnectorTest.java b/utils/src/test/java/com/cloud/utils/rest/RESTServiceConnectorTest.java index 6d58b5b..b177fe1 100644 --- a/utils/src/test/java/com/cloud/utils/rest/RESTServiceConnectorTest.java +++ b/utils/src/test/java/com/cloud/utils/rest/RESTServiceConnectorTest.java @@ -156,25 +156,24 @@ public class RESTServiceConnectorTest { @Test(expected = CloudstackRESTException.class) public void testExecuteMethodWithLogin() throws CloudstackRESTException, HttpException, IOException { final GetMethod gm = mock(GetMethod.class); - when(client.executeMethod((HttpMethod)any())).thenThrow(new HttpException()); + when(client.executeMethod((HttpMethod) any())).thenThrow(new HttpException()); when(gm.getStatusCode()).thenReturn(HttpStatus.SC_UNAUTHORIZED).thenReturn(HttpStatus.SC_UNAUTHORIZED); connector.executeMethod(gm); verify(gm, times(1)).getStatusCode(); } - /* Bit of a roundabout way to ensure that login is called after an un authorized result - * It not possible to properly mock login() + /* + * Bit of a roundabout way to ensure that login is called after an un authorized result It not possible to properly mock login() */ - public void testExecuteMethodWithLoginSucced2ndAttempt() throws CloudstackRESTException, HttpException, IOException { + public void testExecuteMethodWithLoginSucced2ndAttempt() throws CloudstackRESTException { // Prepare final GetMethod gm = mock(GetMethod.class); when(gm.getStatusCode()).thenReturn(HttpStatus.SC_UNAUTHORIZED).thenReturn(HttpStatus.SC_UNAUTHORIZED); final RESTValidationStrategy previousValidationStrategy = connector.validation; - connector.validation = new RESTValidationStrategy(){ + connector.validation = new RESTValidationStrategy() { @Override - protected void login(final String protocol, final HttpClient client) - throws CloudstackRESTException { + protected void login(final String protocol, final HttpClient client) throws CloudstackRESTException { // Do nothing } }; @@ -222,7 +221,7 @@ public class RESTServiceConnectorTest { @Test(expected = CloudstackRESTException.class) public void testExecuteCreateObjectException() throws CloudstackRESTException, IOException { JsonEntity ls = new JsonEntity(); - when(client.executeMethod((HttpMethod)any())).thenThrow(new HttpException()); + when(client.executeMethod((HttpMethod) any())).thenThrow(new HttpException()); method = mock(PostMethod.class); when(method.getStatusCode()).thenReturn(HttpStatus.SC_INTERNAL_SERVER_ERROR); final Header header = mock(Header.class); @@ -268,7 +267,7 @@ public class RESTServiceConnectorTest { final JsonEntity ls = new JsonEntity(); method = mock(PutMethod.class); when(method.getStatusCode()).thenReturn(HttpStatus.SC_OK); - when(client.executeMethod((HttpMethod)any())).thenThrow(new IOException()); + when(client.executeMethod((HttpMethod) any())).thenThrow(new IOException()); try { connector.executeUpdateObject(ls, "/", Collections.<String, String> emptyMap()); } finally { @@ -305,7 +304,7 @@ public class RESTServiceConnectorTest { public void testExecuteDeleteObjectException() throws CloudstackRESTException, IOException { method = mock(DeleteMethod.class); when(method.getStatusCode()).thenReturn(HttpStatus.SC_NO_CONTENT); - when(client.executeMethod((HttpMethod)any())).thenThrow(new HttpException()); + when(client.executeMethod((HttpMethod) any())).thenThrow(new HttpException()); try { connector.executeDeleteObject("/"); } finally { @@ -345,7 +344,7 @@ public class RESTServiceConnectorTest { method = mock(GetMethod.class); when(method.getStatusCode()).thenReturn(HttpStatus.SC_OK); when(method.getResponseBodyAsString()).thenReturn(UUID_JSON_RESPONSE); - when(client.executeMethod((HttpMethod)any())).thenThrow(new HttpException()); + when(client.executeMethod((HttpMethod) any())).thenThrow(new HttpException()); try { connector.executeRetrieveObject(JsonEntity.class, "/", Collections.<String, String> emptyMap()); } finally {