From 67ef2af341cbe8530437f67bbffdc7721f4e5587 Mon Sep 17 00:00:00 2001 From: GuangrongFu Date: Fri, 31 Aug 2018 08:51:17 +0800 Subject: [PATCH] Fixed HTTP PATCH Failures Change-Id: I0f71aeb78e31e0b66fea0d6c3bb941ef702277e5 Issue-ID: HOLMES-160 Signed-off-by: GuangrongFu --- holmes-actions/pom.xml | 5 ++++- .../main/java/org/onap/holmes/common/aai/AaiQuery4Ccvpn.java | 4 +++- .../java/org/onap/holmes/common/aai/AaiQuery4CcvpnTest.java | 11 ++++++++--- pom.xml | 7 +++++-- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/holmes-actions/pom.xml b/holmes-actions/pom.xml index d5f5d59..d9d2fc3 100644 --- a/holmes-actions/pom.xml +++ b/holmes-actions/pom.xml @@ -140,12 +140,15 @@ org.glassfish.jersey.containers jersey-container-servlet-core - ${jersey.version} org.glassfish.jersey.core jersey-common + + org.glassfish.jersey.core + jersey-client + org.apache.httpcomponents httpclient diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery4Ccvpn.java b/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery4Ccvpn.java index 75b1bfc..0e444c1 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery4Ccvpn.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery4Ccvpn.java @@ -28,6 +28,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.HttpUrlConnectorProvider; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -237,7 +238,8 @@ public class AaiQuery4Ccvpn { private Response patch(String host, String path, Map body) { Client client = ClientBuilder.newClient(); WebTarget target = client.target(host).path(path); - return target.request().headers(getAaiHeaders()).method("PATCH", Entity.json(body)); + return target.request().headers(getAaiHeaders()).build("PATCH", Entity.json(body)) + .property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true).invoke(); } private JSONObject getInfo(String response, String pField, String field) { diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQuery4CcvpnTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQuery4CcvpnTest.java index ef12982..43cb517 100644 --- a/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQuery4CcvpnTest.java +++ b/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQuery4CcvpnTest.java @@ -17,6 +17,7 @@ package org.onap.holmes.common.aai; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.easymock.EasyMock; +import org.glassfish.jersey.client.HttpUrlConnectorProvider; import org.junit.*; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; @@ -36,6 +37,7 @@ import java.io.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; +import java.util.Map; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; @@ -235,7 +237,7 @@ public class AaiQuery4CcvpnTest { PowerMock.replayAll(); - JSONArray instances = (JSONArray)Whitebox.invokeMethod(aai, "getServiceInstances", + JSONArray instances = (JSONArray) Whitebox.invokeMethod(aai, "getServiceInstances", "custom-1", "service-type-1"); PowerMock.verifyAll(); @@ -255,7 +257,7 @@ public class AaiQuery4CcvpnTest { PowerMock.replayAll(); - JSONArray instances = (JSONArray)Whitebox.invokeMethod(aai, "getServiceInstances", + JSONArray instances = (JSONArray) Whitebox.invokeMethod(aai, "getServiceInstances", "custom-1", "service-type-1"); PowerMock.verifyAll(); @@ -325,7 +327,10 @@ public class AaiQuery4CcvpnTest { private void mockPatchMethod() { initCommonMock(); - EasyMock.expect(builder.method(EasyMock.anyObject(String.class), EasyMock.anyObject(Entity.class))).andReturn(response); + Invocation invocation = PowerMock.createMock(Invocation.class); + EasyMock.expect(builder.build(EasyMock.anyObject(String.class), EasyMock.anyObject(Entity.class))).andReturn(invocation); + EasyMock.expect(invocation.property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true)).andReturn(invocation); + EasyMock.expect(invocation.invoke()).andReturn(response); } private void initCommonMock() { diff --git a/pom.xml b/pom.xml index bacc2c9..e342997 100644 --- a/pom.xml +++ b/pom.xml @@ -53,17 +53,20 @@ msb-java-sdk 1.1.1 + + org.glassfish.jersey.containers + jersey-container-servlet-core + ${jersey.version} + org.glassfish.jersey.core jersey-common ${jersey.version} - test org.glassfish.jersey.core jersey-client ${jersey.version} - test io.dropwizard -- 2.16.6