enable mso rest client send DELETE request with body 93/96493/1
authorEylon Malin <eylon.malin@intl.att.com>
Wed, 2 Oct 2019 07:55:06 +0000 (10:55 +0300)
committerEylon Malin <eylon.malin@intl.att.com>
Wed, 2 Oct 2019 07:55:06 +0000 (10:55 +0300)
config SUPPRESS_HTTP_COMPLIANCE_VALIDATION directly from
RestMsoImplementation, instead of relaying on the jersey client
configuration.
Also remove Delete method from RestMsoImplementation since it's not used
in production code.
Issue-ID: VID-657

Signed-off-by: Eylon Malin <eylon.malin@intl.att.com>
Change-Id: If30d60c6aca9b7d9ab3e6d07b13c1246ed3d67e3

vid-app-common/src/main/java/org/onap/vid/client/HttpBasicClient.java
vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java
vid-app-common/src/main/java/org/onap/vid/mso/rest/RestInterface.java
vid-app-common/src/test/java/org/onap/vid/mso/RestMsoImplementationTest.java

index 3c06198..5607018 100644 (file)
 package org.onap.vid.client;
 
 
-import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.client.ClientProperties;
-import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.springframework.beans.factory.annotation.Autowired;
-
 import javax.servlet.ServletContext;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  *  General HTTP client.
@@ -51,10 +48,8 @@ public class HttpBasicClient{
         */
        public static Client getClient() {
                
-               ClientConfig config = new ClientConfig();
-               config.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true);
-               
-               return ClientBuilder.newClient(config)
-                               .register(org.onap.vid.aai.util.CustomJacksonJaxBJsonProvider.class);
+               return ClientBuilder
+                       .newClient()
+                       .register(org.onap.vid.aai.util.CustomJacksonJaxBJsonProvider.class);
        }       
 }  
index ee1eb04..b07fe05 100644 (file)
@@ -38,6 +38,7 @@ import javax.ws.rs.core.Response;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.http.HttpException;
 import org.eclipse.jetty.util.security.Password;
+import org.glassfish.jersey.client.ClientProperties;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.onap.vid.aai.ExceptionWithRequestInfo;
 import org.onap.vid.aai.util.HttpClientMode;
@@ -211,64 +212,6 @@ public class RestMsoImplementation implements RestInterface {
         return restObject;
     }
 
-    @Override
-    public <T> void Delete(T t, Object r, String path, RestObject<T> restObject) {
-
-        String methodName = "Delete";
-        String url="";
-        Response cres;
-
-        logger.debug(EELFLoggerDelegate.debugLogger,"<== " +  methodName + START_LOG);
-
-        try {
-            MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
-
-            url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
-            loggingService.logRequest(outgoingRequestsLogger, HttpMethod.DELETE, url, r);
-            cres = client.target(url)
-                    .request()
-
-                    .accept(APPLICATION_JSON)
-                    .headers(commonHeaders)
-                    //.entity(r)
-                    .build("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON))
-                    .invoke();
-            loggingService.logResponse(outgoingRequestsLogger, HttpMethod.DELETE, url, cres);
-            int status = cres.getStatus();
-            restObject.setStatusCode (status);
-
-            if (status == 404) { // resource not found
-                String msg = "Resource does not exist...: " + cres.getStatus();
-                logger.debug(EELFLoggerDelegate.debugLogger,"<== " + msg);
-            } else if (status == 200  || status == 204){
-                logger.debug(EELFLoggerDelegate.debugLogger,"<== " + "Resource " + url + " deleted");
-            } else if (status == 202) {
-                String      msg = "Delete in progress: " + status;
-                logger.debug(EELFLoggerDelegate.debugLogger,"<== " + msg);
-            }
-            else {
-                String msg = "Deleting Resource failed: " + status;
-                logger.debug(EELFLoggerDelegate.debugLogger,"<== " + msg);
-            }
-
-            try {
-                t = (T) cres.readEntity(t.getClass());
-                restObject.set(t);
-            }
-            catch ( Exception e ) {
-                logger.debug(EELFLoggerDelegate.debugLogger,"<== " + methodName + NO_RESPONSE_ENTITY_LOG
-                        + e.getMessage());
-                throw e;
-            }
-
-        }
-        catch (Exception e)
-        {
-            logger.debug(EELFLoggerDelegate.debugLogger,"<== " + methodName + WITH_URL_LOG +url+ EXCEPTION_LOG + e.toString());
-            throw e;
-        }
-    }
-
     public <T> RestObject<T> PostForObject(Object requestDetails, String path, Class<T> clazz) {
         logger.debug(EELFLoggerDelegate.debugLogger, REST_MSG_TEMPLATE, getMethodCallerName(), getMethodName(), requestDetails, path, clazz);
         return restCall(HttpMethod.POST, clazz, requestDetails, path);
@@ -320,7 +263,9 @@ public class RestMsoImplementation implements RestInterface {
             final Invocation.Builder restBuilder = client.target(url)
                     .request()
                     .accept(APPLICATION_JSON)
-                    .headers(commonHeaders);
+                    .headers(commonHeaders)
+                    .property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true)
+                ;
 
             Invocation restInvocation = payload==null ?
                     restBuilder.build(httpMethod.name()) :
index 3a0d8fd..2cc8e67 100644 (file)
@@ -41,18 +41,6 @@ public interface RestInterface {
      */
     <T> RestObjectWithRequestInfo<T> Get(T t, String path, RestObject<T> restObject, boolean warpException);
 
-    /**
-     * Delete.
-     *
-     * @param <T> the generic type
-     * @param t the t
-     * @param r the r
-     * @param path the path
-     * @param restObject the rest object
-     * @throws Exception the exception
-     */
-    <T> void Delete(T t, Object r, String path, RestObject<T> restObject);
-
     /**
      * Post.
      *
index e1b7874..ea83fde 100644 (file)
@@ -37,6 +37,7 @@ import javax.ws.rs.client.WebTarget;
 import javax.ws.rs.core.MultivaluedHashMap;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
+import org.glassfish.jersey.client.ClientProperties;
 import org.glassfish.jersey.client.JerseyInvocation;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
@@ -171,79 +172,6 @@ public class RestMsoImplementationTest  {
         assertThat(response.getRaw()).isEqualTo(rawData);
     }
 
-    @Test()
-    public void shouldProperlyDeleteRestObjectWithStatusHttpAccepted() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.ACCEPTED.value());
-    }
-
-    @Test()
-    public void shouldProperlyDeleteRestObjectWithStatusOK() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData,HttpStatus.OK.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.OK.value());
-    }
-
-    @Test()
-    public void shouldProperlyReturnFromDeleteWithStatusBadRequest() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData,HttpStatus.BAD_REQUEST.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST.value());
-    }
-
-    @Test()
-    public void shouldProperlyReturnFromDeleteWithStatusOtherThenAbove() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-        prepareMocks(rawData,HttpStatus.NOT_EXTENDED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.NOT_EXTENDED.value());
-    }
-
-    @Test( expectedExceptions = MsoTestException.class)
-    public void shouldThrowExceptionWhenCallsDeleteWithWrongParameters() {
-        //  given
-        when(mockClient.target(any(String.class))).thenThrow(new MsoTestException("testDeleteException"));
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", "", null);
-    }
-
-    @Test( expectedExceptions = NullPointerException.class)
-    public void shouldThrowExceptionWhenCallsDeleteWithWrongObjectType() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(null, "testObject", path, restObject);
-    }
 
     @Test
     public void shouldProperlyPostForObject() {
@@ -411,6 +339,7 @@ public class RestMsoImplementationTest  {
 
         when(builder.accept(any(String.class))).thenReturn(builder);
         when(builder.headers(any(MultivaluedMap.class))).thenReturn(builder);
+        when(builder.property(eq(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION), eq(true))).thenReturn(builder);
         when(builder.get()).thenReturn(response);
 
         when(builder.build( eq(httpMethod), any(Entity.class))).thenReturn(jerseyInvocation);