aboutsummaryrefslogtreecommitdiffstats
path: root/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'common/src')
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java5
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/AdditionalProperties.java3
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java2
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java2
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java6
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java10
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java12
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/ConnectionLink.java24
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/CustomerInfo.java45
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/EndPoint.java17
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/NssInstance.java (renamed from common/src/main/java/org/onap/so/beans/nsmf/NSSI.java)40
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java18
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/NssmfRequest.java4
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/OperationType.java59
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/OrchestrationStatusEnum.java36
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllc.java103
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java5
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/QuerySubnetCapability.java26
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java2
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java5
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java6
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java88
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/SliceTaskInfo.java2
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java9
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/TransportSliceNetwork.java1
-rw-r--r--common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java5
-rw-r--r--common/src/main/java/org/onap/so/client/AddCacheHeaders.java28
-rw-r--r--common/src/main/java/org/onap/so/client/CacheFactory.java25
-rw-r--r--common/src/main/java/org/onap/so/client/CacheProperties.java13
-rw-r--r--common/src/main/java/org/onap/so/client/HttpClient.java9
-rw-r--r--common/src/main/java/org/onap/so/client/RestClient.java53
-rw-r--r--common/src/main/java/org/onap/so/client/RestClientSSL.java2
-rw-r--r--common/src/main/java/org/onap/so/client/RestProperties.java33
-rw-r--r--common/src/main/java/org/onap/so/client/RestPropertiesLoader.java4
-rw-r--r--common/src/main/java/org/onap/so/client/RestRequest.java12
-rw-r--r--common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java11
-rw-r--r--common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java11
-rw-r--r--common/src/main/java/org/onap/so/client/grm/GRMRestClient.java7
-rw-r--r--common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java13
-rw-r--r--common/src/main/java/org/onap/so/security/SoCadiFilter.java3
-rw-r--r--common/src/test/java/org/onap/so/client/RestClientTest.java70
-rw-r--r--common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java20
-rw-r--r--common/src/test/java/org/onap/so/client/dmaap/rest/DMaaPRestClientTest.java22
-rw-r--r--common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java23
-rw-r--r--common/src/test/resources/logback-test.xml91
45 files changed, 654 insertions, 331 deletions
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java
index ed82500210..b14cf7e94d 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java
@@ -20,16 +20,19 @@
package org.onap.so.beans.nsmf;
+import java.io.Serializable;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ActDeActNssi {
+public class ActDeActNssi implements Serializable {
public final static String ACT_URL = "/api/rest/provMns/v1/NSS/%s" + "/activation";
public final static String DE_ACT_URL = "/api/rest/provMns/v1/NSS/%s" + "/deactivation";
+ private static final long serialVersionUID = 7597630091910711349L;
+
private String nsiId;
private String nssiId;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AdditionalProperties.java b/common/src/main/java/org/onap/so/beans/nsmf/AdditionalProperties.java
index 5b070bb00f..3b542faf7f 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/AdditionalProperties.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/AdditionalProperties.java
@@ -26,11 +26,12 @@ import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
+@Deprecated
public class AdditionalProperties implements Serializable {
private static final long serialVersionUID = -4020397418955518175L;
- private SliceProfile sliceProfile;
+ private TnSliceProfile sliceProfile;
private List<EndPoint> endPoints;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java
index dc8e69121e..f966098b18 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java
@@ -47,5 +47,5 @@ public class AllocateAnNssi implements Serializable {
private NsiInfo nsiInfo;
- private Map<String, Object> endPoint;
+ private EndPoint endPoint;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java
index f5b926f627..fdbff2fd42 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java
@@ -49,5 +49,5 @@ public class AllocateCnNssi implements Serializable {
private NsiInfo nsiInfo;
- private Map<String, Object> endPoint;
+ private EndPoint endPoint;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java
index f85cb0cd85..1b0986ca0d 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java
@@ -30,7 +30,13 @@ public class AllocateTnNssi implements Serializable {
private static final long serialVersionUID = -7069801712339914746L;
+ private TnSliceProfile sliceProfile;
+
private List<NetworkSliceInfo> networkSliceInfos;
private List<TransportSliceNetwork> transportSliceNetworks;
+
+ private NsiInfo nsiInfo;
+
+ private String scriptName;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java
index 14918c7873..3d0f70805c 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java
@@ -32,7 +32,7 @@ import java.util.List;
@ToString
public class AnSliceProfile implements Serializable {
/*
- * Reference 3GPP TS 28.541 V16.5.0, Section 6.3.4.
+ * Reference 3GPP TS 28.541 V16.5.0.
*/
private static final long serialVersionUID = -3057342171549542794L;
@@ -40,10 +40,10 @@ public class AnSliceProfile implements Serializable {
@JsonProperty(value = "sliceProfileId", required = true)
private String sliceProfileId;
- @JsonProperty(value = "sNSSAIList", required = true)
+ @JsonProperty(value = "snssaiList", required = true)
private List<String> sNSSAIList;
- @JsonProperty(value = "pLMNIdList", required = true)
+ @JsonProperty(value = "plmnIdList", required = true)
private List<String> pLMNIdList;
@JsonProperty(value = "perfReq", required = true)
@@ -51,7 +51,7 @@ public class AnSliceProfile implements Serializable {
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
@JsonProperty(value = "maxNumberofUEs")
- private long maxNumberofUEs;
+ private int maxNumberOfUEs;
@JsonProperty(value = "coverageAreaTAList")
private List<Integer> coverageAreaTAList;
@@ -61,7 +61,7 @@ public class AnSliceProfile implements Serializable {
private int latency;
@JsonProperty(value = "uEMobilityLevel")
- private UeMobilityLevel uEMobilityLevel;
+ private UeMobilityLevel ueMobilityLevel;
@JsonProperty(value = "resourceSharingLevel")
private ResourceSharingLevel resourceSharingLevel;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java
index 1fa84eee59..efb447bc00 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java
@@ -32,19 +32,19 @@ public class CnSliceProfile implements Serializable {
private static final long serialVersionUID = 6627071735572539536L;
- @JsonProperty(value = "sNSSAIList", required = true)
+ @JsonProperty(value = "snssaiList", required = true)
private List<String> snssaiList;
private String sliceProfileId;
- @JsonProperty(value = "pLMNIdList", required = true)
- private List<String> plmnIdList;
+ @JsonProperty(value = "plmnIdList", required = true)
+ private List<String> pLMNIdList;
@JsonProperty(value = "perfReq", required = true)
private PerfReq perfReq;
@JsonProperty(value = "maxNumberofUEs")
- private int maxNumberofUEs;
+ private int maxNumberOfUEs;
@JsonProperty(value = "coverageAreaTAList")
private List<String> coverageAreaTAList;
@@ -57,4 +57,8 @@ public class CnSliceProfile implements Serializable {
@JsonProperty(value = "resourceSharingLevel")
private ResourceSharingLevel resourceSharingLevel;
+
+ @JsonProperty(value = "maxNumberofPDUSession")
+ private int maxNumberOfPDUSession;
+
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ConnectionLink.java b/common/src/main/java/org/onap/so/beans/nsmf/ConnectionLink.java
index 99a8525974..3bf2ffb8eb 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/ConnectionLink.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/ConnectionLink.java
@@ -20,33 +20,15 @@
package org.onap.so.beans.nsmf;
+import lombok.Data;
import java.io.Serializable;
-
+@Data
public class ConnectionLink implements Serializable {
+
private static final long serialVersionUID = -1834584960407180427L;
private String transportEndpointA;
private String transportEndpointB;
-
- public static long getSerialVersionUID() {
- return serialVersionUID;
- }
-
- public String getTransportEndpointA() {
- return transportEndpointA;
- }
-
- public void setTransportEndpointA(String transportEndpointA) {
- this.transportEndpointA = transportEndpointA;
- }
-
- public String getTransportEndpointB() {
- return transportEndpointB;
- }
-
- public void setTransportEndpointB(String transportEndpointB) {
- this.transportEndpointB = transportEndpointB;
- }
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/CustomerInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/CustomerInfo.java
new file mode 100644
index 0000000000..6381d5b6e2
--- /dev/null
+++ b/common/src/main/java/org/onap/so/beans/nsmf/CustomerInfo.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ # Copyright (c) 2020, CMCC Technologies Co., Ltd.
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License")
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ # http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.beans.nsmf;
+
+import lombok.Builder;
+import lombok.Data;
+import java.io.Serializable;
+
+@Data
+@Builder
+public class CustomerInfo implements Serializable {
+ private static final long serialVersionUID = -8749985097619384358L;
+
+ private String globalSubscriberId;
+
+ private String serviceInstanceId;
+
+ private String subscriptionServiceType;
+
+ private String operationId;
+
+ private OperationType operationType;
+
+ private String nsiId;
+
+ private String snssai;
+
+}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/EndPoint.java b/common/src/main/java/org/onap/so/beans/nsmf/EndPoint.java
index dab9b3a990..90bfc0eae0 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/EndPoint.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/EndPoint.java
@@ -20,17 +20,28 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
import java.io.Serializable;
-import java.util.Map;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
public class EndPoint implements Serializable {
private static final long serialVersionUID = 2479795890807020491L;
- private String nodeId;
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
- private Map<String, Object> additionalInfo;
+ @JsonProperty(value = "logicInterfaceId")
+ private String logicInterfaceId;
+
+ @JsonProperty(value = "nextHopInfo")
+ private String nextHopInfo;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NSSI.java b/common/src/main/java/org/onap/so/beans/nsmf/NssInstance.java
index a57458f2cf..396e8fce45 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/NSSI.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/NssInstance.java
@@ -20,7 +20,15 @@
package org.onap.so.beans.nsmf;
-public class NSSI {
+import lombok.Builder;
+import lombok.Data;
+import java.io.Serializable;
+
+@Data
+@Builder
+public class NssInstance implements Serializable {
+
+ private static final long serialVersionUID = -153484249182203537L;
private String nssiId;
@@ -28,33 +36,11 @@ public class NSSI {
private String modelVersionId;
- public NSSI(String nssiId, String modelInvariantId, String modelVersionId) {
- this.nssiId = nssiId;
- this.modelInvariantId = modelInvariantId;
- this.modelVersionId = modelVersionId;
- }
-
- public String getNssiId() {
- return nssiId;
- }
-
- public void setNssiId(String nssiId) {
- this.nssiId = nssiId;
- }
-
- public String getModelInvariantId() {
- return modelInvariantId;
- }
+ private NetworkType networkType;
- public void setModelInvariantId(String modelInvariantId) {
- this.modelInvariantId = modelInvariantId;
- }
+ private OperationType operationType;
- public String getModelVersionId() {
- return modelVersionId;
- }
+ private String snssai;
- public void setModelVersionId(String modelVersionId) {
- this.modelVersionId = modelVersionId;
- }
+ private String serviceType;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java
index 92acdaa90d..270a55e349 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java
@@ -21,9 +21,11 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
+@Data
public class NssiResponse implements Serializable {
private static final long serialVersionUID = 2723440188640857903L;
@@ -32,19 +34,5 @@ public class NssiResponse implements Serializable {
private String jobId;
- public String getNssiId() {
- return nssiId;
- }
-
- public void setNssiId(String nssiId) {
- this.nssiId = nssiId;
- }
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
+ private String status;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssmfRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssmfRequest.java
index 3292730f29..356c1cb4de 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/NssmfRequest.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/NssmfRequest.java
@@ -37,7 +37,7 @@ public class NssmfRequest implements Serializable {
private String globalSubscriberId;
- private String serviceInstanceId;
+ private String serviceInstanceID;
private String subscriptionServiceType;
@@ -54,7 +54,7 @@ public class NssmfRequest implements Serializable {
this.subscriptionServiceType = serviceInfo.getSubscriptionServiceType();
this.networkType = networkType;
this.additionalProperties = additionalProperties;
- this.serviceInstanceId = serviceInfo.getNssiId();
+ this.serviceInstanceID = serviceInfo.getNssiId();
this.name = serviceInfo.getNssiName();
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/OperationType.java b/common/src/main/java/org/onap/so/beans/nsmf/OperationType.java
new file mode 100644
index 0000000000..1ee56b5ca0
--- /dev/null
+++ b/common/src/main/java/org/onap/so/beans/nsmf/OperationType.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ # Copyright (c) 2020, CMCC Technologies Co., Ltd.
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License")
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ # http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.beans.nsmf;
+
+import lombok.Getter;
+import lombok.ToString;
+
+@Getter
+@ToString
+public enum OperationType {
+ /**
+ * allocate
+ */
+ ALLOCATE("allocate"),
+
+ DEALLOCATE("deallocate"),
+
+ CREATE("create"),
+
+ TERMINATE("terminate"),
+
+ ACTIVATE("activation"),
+
+ DEACTIVATE("deactivation");
+
+ private String type;
+
+
+ OperationType(String type) {
+ this.type = type;
+ }
+
+ public static OperationType getOperationType(String value) {
+ for (OperationType operationType : OperationType.values()) {
+ if (operationType.type.equalsIgnoreCase(value)) {
+ return operationType;
+ }
+ }
+ return null;
+ }
+}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/OrchestrationStatusEnum.java b/common/src/main/java/org/onap/so/beans/nsmf/OrchestrationStatusEnum.java
new file mode 100644
index 0000000000..572a312265
--- /dev/null
+++ b/common/src/main/java/org/onap/so/beans/nsmf/OrchestrationStatusEnum.java
@@ -0,0 +1,36 @@
+package org.onap.so.beans.nsmf;
+
+import lombok.Getter;
+import lombok.ToString;
+
+@Getter
+@ToString
+public enum OrchestrationStatusEnum {
+ /**
+ * activated
+ */
+ ACTIVATED("activated"),
+
+ /**
+ * deactivated
+ */
+ DEACTIVATED("deactivated"),
+
+ ;
+
+ private String value;
+
+
+ OrchestrationStatusEnum(String value) {
+ this.value = value;
+ }
+
+ public static OrchestrationStatusEnum getStatus(String value) {
+ for (OrchestrationStatusEnum orchestrationStatus : OrchestrationStatusEnum.values()) {
+ if (orchestrationStatus.value.equalsIgnoreCase(value)) {
+ return orchestrationStatus;
+ }
+ }
+ return null;
+ }
+}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllc.java b/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllc.java
index 9e4b4edce3..06f97a8484 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllc.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllc.java
@@ -21,118 +21,31 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
+@Data
public class PerfReqUrllc implements Serializable {
private static final long serialVersionUID = 3133479142915485943L;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private int e2eLatency;
+ private String survivalTime;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private int jitter;
-
- @JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private int survivalTime;
-
- @JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private float csAvailability;
+ private int expDataRate;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private float reliability;
+ private String transferIntervalTarget;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private int expDataRate;
-
- private String payloadSize;
+ private String msgSizeByte;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private int trafficDensity;
+ private String csReliabilityMeanTime;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
- private int connDensity;
-
- private String serviceAreaDimension;
-
- public int getE2eLatency() {
- return e2eLatency;
- }
-
- public void setE2eLatency(int e2eLatency) {
- this.e2eLatency = e2eLatency;
- }
-
- public int getJitter() {
- return jitter;
- }
-
- public void setJitter(int jitter) {
- this.jitter = jitter;
- }
-
- public int getSurvivalTime() {
- return survivalTime;
- }
-
- public void setSurvivalTime(int survivalTime) {
- this.survivalTime = survivalTime;
- }
-
- public float getReliability() {
- return reliability;
- }
-
- public void setReliability(float reliability) {
- this.reliability = reliability;
- }
-
- public int getExpDataRate() {
- return expDataRate;
- }
-
- public void setExpDataRate(int expDataRate) {
- this.expDataRate = expDataRate;
- }
-
- public String getPayloadSize() {
- return payloadSize;
- }
-
- public void setPayloadSize(String payloadSize) {
- this.payloadSize = payloadSize;
- }
-
- public int getTrafficDensity() {
- return trafficDensity;
- }
-
- public void setTrafficDensity(int trafficDensity) {
- this.trafficDensity = trafficDensity;
- }
-
- public int getConnDensity() {
- return connDensity;
- }
-
- public void setConnDensity(int connDensity) {
- this.connDensity = connDensity;
- }
-
- public String getServiceAreaDimension() {
- return serviceAreaDimension;
- }
-
- public void setServiceAreaDimension(String serviceAreaDimension) {
- this.serviceAreaDimension = serviceAreaDimension;
- }
-
- public float getCsAvailability() {
- return csAvailability;
- }
+ private float csAvailabilityTarget;
- public void setCsAvailability(float csAvailability) {
- this.csAvailability = csAvailability;
- }
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java b/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java
index 66bfbdcea9..4fc593268a 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java
@@ -21,9 +21,12 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PnfErrorList {
+public class PnfErrorList implements Serializable {
+
+ private static final long serialVersionUID = 1506455363755909867L;
private String pnfId;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/QuerySubnetCapability.java b/common/src/main/java/org/onap/so/beans/nsmf/QuerySubnetCapability.java
index 7485b387d8..6b30af9339 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/QuerySubnetCapability.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/QuerySubnetCapability.java
@@ -2,19 +2,19 @@
* ============LICENSE_START=======================================================
* ONAP - SO
* ================================================================================
- * Copyright (C) 2020 Wipro Limited.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ # Copyright (c) 2020, CMCC Technologies Co., Ltd.
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License")
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ # http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
* ============LICENSE_END=========================================================
*/
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java b/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java
index 2456d540ce..ab9399eec9 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java
@@ -31,7 +31,6 @@ public class ResponseDescriptor implements Serializable {
private static final long serialVersionUID = 6330527958947215910L;
- @JsonInclude(JsonInclude.Include.NON_DEFAULT)
private int progress;
private String status;
@@ -50,5 +49,4 @@ public class ResponseDescriptor implements Serializable {
private String nssiId;
- private String endPointId;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java b/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java
index c71441a80a..ee027bca13 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java
@@ -21,10 +21,13 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ResponseHistory {
+public class ResponseHistory implements Serializable {
+
+ private static final long serialVersionUID = -1005342539496792450L;
private int progress;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java
index f9848fca31..5146685058 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/ServiceInfo.java
@@ -20,11 +20,17 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
public class ServiceInfo implements Serializable {
private static final long serialVersionUID = 7895110339097615695L;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java b/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
index 9b6df0fa9e..90cee2794a 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
@@ -25,7 +25,9 @@ import lombok.Data;
import lombok.ToString;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
@Data
@ToString
@@ -43,7 +45,7 @@ public class SliceProfileAdapter implements Serializable {
private String pLMNIdList = "";
@JsonProperty(value = "maxNumberofUEs")
- private long maxNumberofUEs;
+ private int maxNumberOfUEs;
@JsonProperty(value = "coverageAreaTAList")
private String coverageAreaTAList = "";
@@ -52,23 +54,68 @@ public class SliceProfileAdapter implements Serializable {
private int latency;
@JsonProperty(value = "uEMobilityLevel")
- private String uEMobilityLevel;
+ private String ueMobilityLevel;
@JsonProperty(value = "resourceSharingLevel")
private String resourceSharingLevel;
@JsonProperty(value = "maxBandwidth")
- private String bandwidth;
+ private int maxBandwidth;
@JsonProperty(value = "sST")
private String sST;
@JsonProperty(value = "activityFactor")
- private String activityFactor;
+ private int activityFactor;
@JsonProperty(value = "survivalTime")
private String survivalTime;
+ @JsonProperty(value = "expDataRateUL")
+ private int expDataRateUL;
+
+ @JsonProperty(value = "expDataRateDL")
+ private int expDataRateDL;
+
+ @JsonProperty(value = "areaTrafficCapUL")
+ private int areaTrafficCapUL;
+
+ @JsonProperty(value = "areaTrafficCapDL")
+ private int areaTrafficCapDL;
+
+ @JsonProperty(value = "jitter")
+ private int jitter;
+
+ @JsonProperty(value = "csAvailabilityTarget")
+ private float csAvailabilityTarget;
+
+ @JsonProperty(value = "expDataRate")
+ private int expDataRate;
+
+ @JsonProperty(value = "maxNumberofPDUSession")
+ private int maxNumberOfPDUSession;
+
+ @JsonProperty(value = "overallUserDensity")
+ private int overallUserDensity;
+
+ @JsonProperty(value = "cSReliabilityMeanTime")
+ private String csReliabilityMeanTime;
+
+ @JsonProperty(value = "msgSizeByte")
+ private String msgSizeByte;
+
+ @JsonProperty(value = "transferIntervalTarget")
+ private String transferIntervalTarget;
+
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ @JsonProperty(value = "logicInterfaceId")
+ private String logicInterfaceId;
+
+ @JsonProperty(value = "nextHopInfo")
+ private String nextHopInfo;
+
public AnSliceProfile trans2AnProfile() {
AnSliceProfile anSliceProfile = new AnSliceProfile();
BeanUtils.copyProperties(this, anSliceProfile);
@@ -81,11 +128,11 @@ public class SliceProfileAdapter implements Serializable {
areasRes[i] = str2Code(areas[i]);
}
anSliceProfile.setCoverageAreaTAList(Arrays.asList(areasRes));
- anSliceProfile.setUEMobilityLevel(UeMobilityLevel.fromString(this.uEMobilityLevel));
+
+ anSliceProfile.setUeMobilityLevel(UeMobilityLevel.fromString(this.ueMobilityLevel));
anSliceProfile.setResourceSharingLevel(ResourceSharingLevel.fromString(this.resourceSharingLevel));
- PerfReq perfReq = new PerfReq();
- // todo
- anSliceProfile.setPerfReq(perfReq);
+ anSliceProfile.setPerfReq(generatePerfReq());
+
return anSliceProfile;
}
@@ -98,14 +145,31 @@ public class SliceProfileAdapter implements Serializable {
BeanUtils.copyProperties(this, cnSliceProfile);
cnSliceProfile.setSnssaiList(Arrays.asList(this.sNSSAIList.split("\\|")));
cnSliceProfile.setCoverageAreaTAList(Arrays.asList(this.coverageAreaTAList.split("\\|")));
- cnSliceProfile.setPlmnIdList(Arrays.asList(this.pLMNIdList.split("\\|")));
+ cnSliceProfile.setPLMNIdList(Arrays.asList(this.pLMNIdList.split("\\|")));
cnSliceProfile.setResourceSharingLevel(ResourceSharingLevel.fromString(this.resourceSharingLevel));
- PerfReq perfReq = new PerfReq();
- // todo
- cnSliceProfile.setPerfReq(perfReq);
+
+ cnSliceProfile.setPerfReq(generatePerfReq());
return cnSliceProfile;
}
+ private PerfReq generatePerfReq() {
+ PerfReq perfReq = new PerfReq();
+ if ("embb".equalsIgnoreCase(sST)) {
+ List<PerfReqEmbb> perfReqEmbbs = new ArrayList<>();
+ PerfReqEmbb perfReqEmbb = new PerfReqEmbb();
+ BeanUtils.copyProperties(this, perfReqEmbb);
+ perfReqEmbbs.add(perfReqEmbb);
+ perfReq.setPerfReqEmbbList(perfReqEmbbs);
+ } else if ("ullc".equalsIgnoreCase(sST)) {
+ List<PerfReqUrllc> perfReqUrllcs = new ArrayList<>();
+ PerfReqUrllc perfReqUrllc = new PerfReqUrllc();
+ BeanUtils.copyProperties(this, perfReqUrllc);
+ perfReqUrllcs.add(perfReqUrllc);
+ perfReq.setPerfReqUrllcList(perfReqUrllcs);
+ }
+ return perfReq;
+ }
+
public TnSliceProfile trans2TnProfile() {
TnSliceProfile tnSliceProfile = new TnSliceProfile();
BeanUtils.copyProperties(this, tnSliceProfile);
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskInfo.java
index 9b6406d57f..18d6007176 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskInfo.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/SliceTaskInfo.java
@@ -52,4 +52,6 @@ public class SliceTaskInfo<T> implements Serializable {
private SubnetType subnetType;
+ private String endPointId;
+
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java
index 3f0da1bf21..f904e1c466 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java
@@ -35,14 +35,17 @@ public class TnSliceProfile implements Serializable {
private String sliceProfileId;
@JsonProperty(value = "maxBandwidth")
- private String bandwidth;
+ private int maxBandwidth;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
private int latency;
- @JsonProperty(value = "sNSSAIList", required = true)
+ @JsonProperty(value = "snssaiList", required = true)
private List<String> sNSSAIList;
- @JsonProperty(value = "pLMNIdList", required = true)
+ @JsonProperty(value = "plmnIdList", required = true)
private List<String> pLMNIdList;
+
+ @JsonProperty(value = "jitter")
+ private int jitter;
}
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/TransportSliceNetwork.java b/common/src/main/java/org/onap/so/beans/nsmf/TransportSliceNetwork.java
index aa2579edf8..c0dd4250b8 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/TransportSliceNetwork.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/TransportSliceNetwork.java
@@ -25,6 +25,7 @@ import java.util.List;
@Data
public class TransportSliceNetwork implements Serializable {
+
private static final long serialVersionUID = 809947462399806990L;
private List<ConnectionLink> connectionLinks;
diff --git a/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java b/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java
index 6388ca6106..a3330e67b4 100644
--- a/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java
+++ b/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java
@@ -21,9 +21,12 @@
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class VnfErrorList {
+public class VnfErrorList implements Serializable {
+
+ private static final long serialVersionUID = -2907819676875489281L;
private String vnfInstanceId;
diff --git a/common/src/main/java/org/onap/so/client/AddCacheHeaders.java b/common/src/main/java/org/onap/so/client/AddCacheHeaders.java
new file mode 100644
index 0000000000..1a41be1233
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/AddCacheHeaders.java
@@ -0,0 +1,28 @@
+package org.onap.so.client;
+
+import java.io.IOException;
+import java.util.Collections;
+import javax.annotation.Priority;
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.client.ClientResponseContext;
+import javax.ws.rs.client.ClientResponseFilter;
+import javax.ws.rs.ext.Provider;
+
+@Provider
+@Priority(1)
+public class AddCacheHeaders implements ClientResponseFilter {
+
+ private final CacheProperties props;
+
+ public AddCacheHeaders(CacheProperties props) {
+ this.props = props;
+ }
+
+ public void filter(ClientRequestContext request, ClientResponseContext response) throws IOException {
+ if (request.getMethod().equalsIgnoreCase("GET")) {
+ response.getHeaders().putIfAbsent("Cache-Control",
+ Collections.singletonList("public, max-age=" + (props.getMaxAge() / 1000)));
+ }
+
+ }
+}
diff --git a/common/src/main/java/org/onap/so/client/CacheFactory.java b/common/src/main/java/org/onap/so/client/CacheFactory.java
new file mode 100644
index 0000000000..6bc4858463
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/CacheFactory.java
@@ -0,0 +1,25 @@
+package org.onap.so.client;
+
+
+import java.util.concurrent.TimeUnit;
+import javax.cache.configuration.Factory;
+import javax.cache.expiry.Duration;
+import javax.cache.expiry.ExpiryPolicy;
+import javax.cache.expiry.TouchedExpiryPolicy;
+
+public class CacheFactory implements Factory<ExpiryPolicy> {
+
+ private static final long serialVersionUID = 8948728679233836929L;
+
+ private final CacheProperties props;
+
+ public CacheFactory(CacheProperties props) {
+ this.props = props;
+ }
+
+ @Override
+ public ExpiryPolicy create() {
+ return TouchedExpiryPolicy.factoryOf(new Duration(TimeUnit.MILLISECONDS, props.getMaxAge())).create();
+ }
+
+}
diff --git a/common/src/main/java/org/onap/so/client/CacheProperties.java b/common/src/main/java/org/onap/so/client/CacheProperties.java
new file mode 100644
index 0000000000..4fb2a87a5b
--- /dev/null
+++ b/common/src/main/java/org/onap/so/client/CacheProperties.java
@@ -0,0 +1,13 @@
+package org.onap.so.client;
+
+public interface CacheProperties {
+
+
+ default Long getMaxAge() {
+ return 60000L;
+ }
+
+ default String getCacheName() {
+ return "default-http-cache";
+ }
+}
diff --git a/common/src/main/java/org/onap/so/client/HttpClient.java b/common/src/main/java/org/onap/so/client/HttpClient.java
index eaeb0ab6c6..0420ab2373 100644
--- a/common/src/main/java/org/onap/so/client/HttpClient.java
+++ b/common/src/main/java/org/onap/so/client/HttpClient.java
@@ -20,10 +20,11 @@
package org.onap.so.client;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.net.URL;
-import java.util.Map;
import java.util.Optional;
-import static org.apache.commons.lang3.StringUtils.*;
+import javax.ws.rs.core.MultivaluedMap;
+import org.javatuples.Pair;
import org.onap.logging.filter.base.ONAPComponentsList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,7 +50,7 @@ public class HttpClient extends RestClient {
}
@Override
- protected void initializeHeaderMap(Map<String, String> headerMap) {}
+ protected void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap) {}
@Override
protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() {
@@ -79,7 +80,7 @@ public class HttpClient extends RestClient {
public void addAdditionalHeader(String name, String value) {
try {
if (isNotBlank(name) && isNotBlank(value)) {
- headerMap.put(name, value);
+ headerMap.add("ALL", Pair.with(name, value));
} else {
log.warn("Not adding " + name + " to headers.");
}
diff --git a/common/src/main/java/org/onap/so/client/RestClient.java b/common/src/main/java/org/onap/so/client/RestClient.java
index ece1333f83..d1b4c2b900 100644
--- a/common/src/main/java/org/onap/so/client/RestClient.java
+++ b/common/src/main/java/org/onap/so/client/RestClient.java
@@ -29,21 +29,23 @@ import java.security.GeneralSecurityException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Base64;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import java.util.Optional;
+import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation.Builder;
+import javax.ws.rs.client.ResponseProcessingException;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.UriBuilder;
+import org.javatuples.Pair;
import org.onap.logging.filter.base.MDCSetup;
import org.onap.logging.filter.base.ONAPComponentsList;
import org.onap.logging.filter.base.PayloadLoggingClientFilter;
@@ -65,7 +67,7 @@ public abstract class RestClient {
private static final int MAX_PAYLOAD_SIZE = 1024 * 1024;
private WebTarget webTarget;
- protected final Map<String, String> headerMap;
+ protected final MultivaluedMap<String, Pair<String, String>> headerMap;
protected final Logger logger = LoggerFactory.getLogger(RestClient.class);
protected URL host;
protected Optional<URI> path;
@@ -78,7 +80,7 @@ public abstract class RestClient {
protected RestClient(RestProperties props, Optional<URI> path) {
- headerMap = new HashMap<>();
+ headerMap = new MultivaluedHashMap<>();
try {
host = props.getEndpoint();
} catch (MalformedURLException e) {
@@ -97,7 +99,7 @@ public abstract class RestClient {
}
protected RestClient(URL host, String contentType) {
- headerMap = new HashMap<>();
+ headerMap = new MultivaluedHashMap<>();
this.path = Optional.empty();
this.host = host;
this.contentType = contentType;
@@ -105,7 +107,7 @@ public abstract class RestClient {
}
protected RestClient(URL host, String acceptType, String contentType) {
- headerMap = new HashMap<>();
+ headerMap = new MultivaluedHashMap<>();
this.path = Optional.empty();
this.host = host;
this.accept = acceptType;
@@ -131,15 +133,23 @@ public abstract class RestClient {
return MAX_PAYLOAD_SIZE;
}
- protected Builder getBuilder() {
+ protected Builder getBuilder(String method) {
if (webTarget == null) {
initializeClient(getClient());
}
Builder builder = webTarget.request();
initializeHeaderMap(headerMap);
- for (Entry<String, String> entry : headerMap.entrySet()) {
- builder.header(entry.getKey(), entry.getValue());
+ if (headerMap.containsKey("ALL")) {
+ for (Pair<String, String> pair : headerMap.get("ALL")) {
+ builder.header(pair.getValue0(), pair.getValue1());
+ }
+ }
+
+ if (headerMap.containsKey(method)) {
+ for (Pair<String, String> pair : headerMap.get(method)) {
+ builder.header(pair.getValue0(), pair.getValue1());
+ }
}
return builder;
}
@@ -148,7 +158,7 @@ public abstract class RestClient {
return this.webTarget;
}
- protected abstract void initializeHeaderMap(Map<String, String> headerMap);
+ protected abstract void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap);
protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() {
return Optional.of(new ResponseExceptionMapperImpl());
@@ -168,7 +178,7 @@ public abstract class RestClient {
try {
byte[] decryptedAuth = CryptoUtils.decrypt(auth, key).getBytes();
String authHeaderValue = "Basic " + Base64.getEncoder().encodeToString(decryptedAuth);
- headerMap.put("Authorization", authHeaderValue);
+ headerMap.add("ALL", Pair.with("Authorization", authHeaderValue));
} catch (GeneralSecurityException e) {
logger.error(e.getMessage(), e);
}
@@ -186,8 +196,21 @@ public abstract class RestClient {
return APPLICATION_MERGE_PATCH_JSON;
}
+ protected ClientBuilder getClientBuilder() {
+ ClientBuilder builder = ClientBuilder.newBuilder();
+ if (props.isCachingEnabled()) {
+ enableCaching(builder);
+ }
+ return builder.connectTimeout(props.getConnectionTimeout(), TimeUnit.MILLISECONDS)
+ .readTimeout(props.getReadTimeout(), TimeUnit.MILLISECONDS);
+ }
+
+ protected ClientBuilder enableCaching(ClientBuilder builder) {
+ return builder;
+ }
+
protected Client getClient() {
- return ClientBuilder.newBuilder().build();
+ return getClientBuilder().build();
}
protected abstract ONAPComponentsList getTargetEntity();
@@ -201,7 +224,6 @@ public abstract class RestClient {
metricLogClientFilter = new SOMetricLogClientFilter();
mdcSetup.setTargetEntity(getTargetEntity());
client.register(metricLogClientFilter);
-
if (!path.isPresent()) {
webTarget = client.target(host.toString());
} else {
@@ -225,6 +247,9 @@ public abstract class RestClient {
result.add(e -> {
return e.getCause() instanceof ConnectException;
});
+ result.add(e -> {
+ return e.getCause() instanceof ResponseProcessingException;
+ });
return result;
}
diff --git a/common/src/main/java/org/onap/so/client/RestClientSSL.java b/common/src/main/java/org/onap/so/client/RestClientSSL.java
index 1e8953892e..c6252e4652 100644
--- a/common/src/main/java/org/onap/so/client/RestClientSSL.java
+++ b/common/src/main/java/org/onap/so/client/RestClientSSL.java
@@ -56,7 +56,7 @@ public abstract class RestClientSSL extends RestClient {
}
}
// Use default SSL context
- client = ClientBuilder.newBuilder().sslContext(SSLContext.getDefault()).build();
+ client = getClientBuilder().sslContext(SSLContext.getDefault()).build();
logger.info("RestClientSSL using default SSL context!");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
diff --git a/common/src/main/java/org/onap/so/client/RestProperties.java b/common/src/main/java/org/onap/so/client/RestProperties.java
index 9e4e99cb4e..d1cf77b047 100644
--- a/common/src/main/java/org/onap/so/client/RestProperties.java
+++ b/common/src/main/java/org/onap/so/client/RestProperties.java
@@ -22,6 +22,9 @@ package org.onap.so.client;
import java.net.MalformedURLException;
import java.net.URL;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.javatuples.Pair;
public interface RestProperties {
@@ -40,4 +43,34 @@ public interface RestProperties {
public default boolean mapNotFoundToEmpty() {
return false;
}
+
+ /**
+ * Time in milliseconds
+ *
+ * @return
+ */
+ public default Long getReadTimeout() {
+ return Long.valueOf(60000);
+ }
+
+ /**
+ * Time in milliseconds
+ *
+ * @return
+ */
+ public default Long getConnectionTimeout() {
+ return Long.valueOf(60000);
+ }
+
+ public default boolean isCachingEnabled() {
+ return false;
+ }
+
+ public default CacheProperties getCacheProperties() {
+ return new CacheProperties() {};
+ }
+
+ public default MultivaluedMap<String, Pair<String, String>> additionalHeaders() {
+ return new MultivaluedHashMap<>();
+ }
}
diff --git a/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java
index efb50cf04b..952c8de7de 100644
--- a/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java
+++ b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java
@@ -62,9 +62,9 @@ public class RestPropertiesLoader {
if (clazz.isAssignableFrom(item.getClass())) {
try {
if (forceNewInstance) {
- result = (T) item.getClass().newInstance();
+ return (T) item.getClass().newInstance();
} else {
- result = (T) item;
+ return (T) item;
}
} catch (InstantiationException | IllegalAccessException e) {
/*
diff --git a/common/src/main/java/org/onap/so/client/RestRequest.java b/common/src/main/java/org/onap/so/client/RestRequest.java
index 9e6e818171..0a1be758c9 100644
--- a/common/src/main/java/org/onap/so/client/RestRequest.java
+++ b/common/src/main/java/org/onap/so/client/RestRequest.java
@@ -49,23 +49,23 @@ public class RestRequest implements CheckedSupplier<Response> {
public Response get() throws Exception {
final Response response;
if ("GET".equals(method)) {
- response = this.client.getBuilder().accept(this.client.getAccept()).get();
+ response = this.client.getBuilder(method).accept(this.client.getAccept()).get();
} else if ("POST".equals(method)) {
- response = this.client.getBuilder().accept(this.client.getAccept())
+ response = this.client.getBuilder(method).accept(this.client.getAccept())
.post(Entity.entity(entity, this.client.getContentType()));
} else if ("PATCH".equals(method)) {
- response = this.client.getBuilder().header("X-HTTP-Method-Override", "PATCH")
+ response = this.client.getBuilder(method).header("X-HTTP-Method-Override", "PATCH")
.accept(this.client.getAccept()).post(Entity.entity(entity, this.client.getMergeContentType()));
} else if ("DELETE".equals(method)) {
if (entity == null) {
- response = this.client.getBuilder().accept(this.client.getAccept()).delete();
+ response = this.client.getBuilder(method).accept(this.client.getAccept()).delete();
} else {
- response = this.client.getBuilder().accept(this.client.getAccept())
+ response = this.client.getBuilder(method).accept(this.client.getAccept())
.build(HttpMethod.DELETE, Entity.entity(entity, this.client.getContentType())).invoke();
}
} else if ("PUT".equals(method)) {
- response = this.client.getBuilder().accept(this.client.getAccept())
+ response = this.client.getBuilder(method).accept(this.client.getAccept())
.put(Entity.entity(entity, this.client.getContentType()));
} else {
response = Response.serverError().entity(method + " not valid").build();
diff --git a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
index 88899a7097..3bac3dc210 100644
--- a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
+++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
@@ -22,14 +22,15 @@ package org.onap.so.client.adapter.rest;
import java.net.URI;
import java.security.GeneralSecurityException;
-import java.util.Map;
import java.util.Optional;
+import javax.ws.rs.core.MultivaluedMap;
import org.apache.commons.codec.binary.Base64;
+import org.javatuples.Pair;
+import org.onap.logging.filter.base.ONAPComponents;
import org.onap.so.client.RestClient;
import org.onap.so.client.policy.CommonObjectMapperProvider;
import org.onap.so.client.policy.JettisonStyleMapperProvider;
import org.onap.so.utils.CryptoUtils;
-import org.onap.logging.filter.base.ONAPComponents;
public class AdapterRestClient extends RestClient {
@@ -51,9 +52,9 @@ public class AdapterRestClient extends RestClient {
}
@Override
- protected void initializeHeaderMap(Map<String, String> headerMap) {
- headerMap.put("Authorization",
- this.getBasicAuth(adapterRestProperties.getAuth(), adapterRestProperties.getKey()));
+ protected void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap) {
+ headerMap.add("ALL", Pair.with("Authorization",
+ this.getBasicAuth(adapterRestProperties.getAuth(), adapterRestProperties.getKey())));
}
@Override
diff --git a/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
index e0c8d4ba80..85417e09d4 100644
--- a/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
+++ b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java
@@ -21,8 +21,10 @@
package org.onap.so.client.dmaap.rest;
import java.net.URL;
-import java.util.Map;
import java.util.UUID;
+import javax.ws.rs.core.MultivaluedMap;
+import org.javatuples.Pair;
+import org.onap.logging.filter.base.ONAPComponents;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.client.RestClient;
import org.onap.logging.filter.base.ONAPComponents;
@@ -46,14 +48,15 @@ public class DMaaPRestClient extends RestClient {
}
@Override
- protected void initializeHeaderMap(Map<String, String> headerMap) {
+ protected void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap) {
if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) {
addBasicAuthHeader(auth, key);
}
String onapRequestId = UUID.randomUUID().toString();
- headerMap.put(ONAPLogConstants.Headers.REQUEST_ID, onapRequestId);
+ headerMap.add("ALL", Pair.with(ONAPLogConstants.Headers.REQUEST_ID, onapRequestId));
if (MDC.get(ONAPLogConstants.MDCs.REQUEST_ID) != null) {
- headerMap.put(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+ headerMap.add("ALL",
+ Pair.with(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.REQUEST_ID)));
}
}
}
diff --git a/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
index 147f688ea8..cf73a57535 100644
--- a/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
+++ b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java
@@ -22,10 +22,11 @@ package org.onap.so.client.grm;
import java.net.URI;
-import java.util.Map;
import java.util.Optional;
-import org.onap.so.client.RestClient;
+import javax.ws.rs.core.MultivaluedMap;
+import org.javatuples.Pair;
import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.so.client.RestClient;
public class GRMRestClient extends RestClient {
@@ -42,7 +43,7 @@ public class GRMRestClient extends RestClient {
}
@Override
- protected void initializeHeaderMap(Map<String, String> headerMap) {
+ protected void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap) {
String auth = properties.getAuth();
String key = properties.getKey();
diff --git a/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
index 33ece07e3d..f657c17c68 100644
--- a/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
+++ b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java
@@ -21,12 +21,13 @@
package org.onap.so.client.policy;
-import java.util.Map;
import java.util.Optional;
+import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriBuilder;
+import org.javatuples.Pair;
+import org.onap.logging.filter.base.ONAPComponents;
import org.onap.so.client.RestClient;
import org.onap.so.client.policy.entities.PolicyServiceType;
-import org.onap.logging.filter.base.ONAPComponents;
public class PolicyRestClient extends RestClient {
@@ -43,10 +44,10 @@ public class PolicyRestClient extends RestClient {
}
@Override
- protected void initializeHeaderMap(Map<String, String> headerMap) {
- headerMap.put("ClientAuth", properties.getClientAuth());
- headerMap.put("Authorization", properties.getAuth());
- headerMap.put("Environment", properties.getEnvironment());
+ protected void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap) {
+ headerMap.add("ALL", Pair.with("ClientAuth", properties.getClientAuth()));
+ headerMap.add("ALL", Pair.with("Authorization", properties.getAuth()));
+ headerMap.add("ALL", Pair.with("Environment", properties.getEnvironment()));
}
}
diff --git a/common/src/main/java/org/onap/so/security/SoCadiFilter.java b/common/src/main/java/org/onap/so/security/SoCadiFilter.java
index 2763d6ee15..1660220dc1 100644
--- a/common/src/main/java/org/onap/so/security/SoCadiFilter.java
+++ b/common/src/main/java/org/onap/so/security/SoCadiFilter.java
@@ -22,6 +22,7 @@
*/
package org.onap.so.security;
+import javax.annotation.Priority;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import org.onap.aaf.cadi.config.Config;
@@ -34,6 +35,8 @@ import org.springframework.stereotype.Component;
@Component
@Profile("!test & aaf")
+// Run right before default priority of 0 to block requests
+@Priority(-1)
public class SoCadiFilter extends CadiFilter {
protected final Logger logger = LoggerFactory.getLogger(SoCadiFilter.class);
diff --git a/common/src/test/java/org/onap/so/client/RestClientTest.java b/common/src/test/java/org/onap/so/client/RestClientTest.java
index cd00a9e4de..3bf4ccf127 100644
--- a/common/src/test/java/org/onap/so/client/RestClientTest.java
+++ b/common/src/test/java/org/onap/so/client/RestClientTest.java
@@ -21,6 +21,8 @@
package org.onap.so.client;
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.spy;
@@ -28,30 +30,42 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Optional;
import javax.ws.rs.NotFoundException;
+import javax.ws.rs.ProcessingException;
import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriBuilderException;
+import org.javatuples.Pair;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.mockito.ArgumentMatchers;
-import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
+import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer;
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
@RunWith(MockitoJUnitRunner.class)
public class RestClientTest {
private final HttpClientFactory httpClientFactory = new HttpClientFactory();
- @Mock
- private RestProperties props;
@Rule
public ExpectedException thrown = ExpectedException.none();
+ @Rule
+ public WireMockRule wireMockRule = new WireMockRule(
+ WireMockConfiguration.options().dynamicPort().extensions(new ResponseTemplateTransformer(false)));
+
@Test
public void retries() throws Exception {
RestClient spy = buildSpy();
@@ -80,6 +94,56 @@ public class RestClientTest {
}
+ @Test
+ public void timeoutTest() throws URISyntaxException {
+ wireMockRule.stubFor(get("/chunked/delayed")
+ .willReturn(aResponse().withStatus(200).withBody("Hello world!").withChunkedDribbleDelay(2, 300)));
+
+
+ RestProperties props = new RestProperties() {
+
+
+ @Override
+ public Integer getRetries() {
+ return Integer.valueOf(0);
+ }
+
+ @Override
+ public URL getEndpoint() throws MalformedURLException {
+ return new URL(String.format("http://localhost:%s", wireMockRule.port()));
+ }
+
+ @Override
+ public String getSystemName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Long getReadTimeout() {
+ return Long.valueOf(100);
+ }
+ };
+ RestClient client = new RestClient(props, Optional.of(new URI("/chunked/delayed"))) {
+
+ @Override
+ protected void initializeHeaderMap(MultivaluedMap<String, Pair<String, String>> headerMap) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ protected ONAPComponentsList getTargetEntity() {
+ return ONAPComponents.EXTERNAL;
+ }
+
+ };
+
+ thrown.expect(ProcessingException.class);
+ client.get();
+
+ }
+
private RestClient buildSpy() throws MalformedURLException, IllegalArgumentException, UriBuilderException {
RestClient client = httpClientFactory.newJsonClient(UriBuilder.fromUri("http://localhost/test").build().toURL(),
ONAPComponents.BPMN);
diff --git a/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java b/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java
index 5075da3b7a..964707ab8f 100644
--- a/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java
+++ b/common/src/test/java/org/onap/so/client/adapter/rest/AdapterRestClientTest.java
@@ -21,32 +21,33 @@
package org.onap.so.client.adapter.rest;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.entry;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.GeneralSecurityException;
-import java.util.HashMap;
-import java.util.Map;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
import org.apache.commons.codec.binary.Base64;
+import org.javatuples.Pair;
import org.junit.Before;
import org.junit.Test;
+import org.onap.logging.filter.base.ONAPComponents;
import org.onap.so.client.policy.JettisonStyleMapperProvider;
import org.onap.so.utils.CryptoUtils;
-import org.onap.logging.filter.base.ONAPComponents;
public class AdapterRestClientTest {
private static final String CRYPTO_KEY = "546573746F736973546573746F736973";
private static final String INVALID_CRYPTO_KEY = "1234";
- private Map<String, String> headerMap;
+ private MultivaluedMap<String, Pair<String, String>> headerMap;
private AdapterRestProperties adapterRestPropertiesMock;
@Before
public void setup() {
- headerMap = new HashMap<>();
+ headerMap = new MultivaluedHashMap<>();
+
adapterRestPropertiesMock = mock(AdapterRestProperties.class);
}
@@ -60,7 +61,8 @@ public class AdapterRestClientTest {
// when
testedObject.initializeHeaderMap(headerMap);
// then
- assertThat(headerMap).containsOnly(entry("Authorization", getExpectedEncodedString(encyptedMessage)));
+ assertThat(headerMap.get("ALL"))
+ .containsOnly(Pair.with("Authorization", getExpectedEncodedString(encyptedMessage)));
}
@Test
@@ -70,7 +72,7 @@ public class AdapterRestClientTest {
// when
testedObject.initializeHeaderMap(headerMap);
// then
- assertThat(headerMap).containsOnly(entry("Authorization", null));
+ assertThat(headerMap.get("ALL")).containsOnly(Pair.with("Authorization", null));
}
@Test
@@ -84,7 +86,7 @@ public class AdapterRestClientTest {
// when
testedObject.initializeHeaderMap(headerMap);
// then
- assertThat(headerMap).containsOnly(entry("Authorization", null));
+ assertThat(headerMap.get("ALL")).containsOnly(Pair.with("Authorization", null));
}
@Test
diff --git a/common/src/test/java/org/onap/so/client/dmaap/rest/DMaaPRestClientTest.java b/common/src/test/java/org/onap/so/client/dmaap/rest/DMaaPRestClientTest.java
index ca5b5da2da..4f00b9db96 100644
--- a/common/src/test/java/org/onap/so/client/dmaap/rest/DMaaPRestClientTest.java
+++ b/common/src/test/java/org/onap/so/client/dmaap/rest/DMaaPRestClientTest.java
@@ -24,8 +24,9 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.net.MalformedURLException;
import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.javatuples.Pair;
import org.junit.Test;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.slf4j.MDC;
@@ -48,11 +49,12 @@ public class DMaaPRestClientTest {
throw new RuntimeException(e);
}
DMaaPRestClient client = new DMaaPRestClient(url, contentType, auth, key);
- Map<String, String> map = new HashMap<>();
+ MultivaluedMap<String, Pair<String, String>> map = new MultivaluedHashMap<>();
client.initializeHeaderMap(map);
- map.put(ONAPLogConstants.MDCs.REQUEST_ID, "1234");
+ map.add("ALL", Pair.with(ONAPLogConstants.MDCs.REQUEST_ID, "1234"));
assertNotNull(map);
- assertEquals("Found expected RequesttId", "1234", map.get(ONAPLogConstants.MDCs.REQUEST_ID));
+ assertEquals("Found expected RequestId", true,
+ map.get("ALL").contains(Pair.with(ONAPLogConstants.MDCs.REQUEST_ID, "1234")));
}
@@ -67,11 +69,12 @@ public class DMaaPRestClientTest {
}
MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, "1234");
DMaaPRestClient client = new DMaaPRestClient(url, contentType, auth, key);
- Map<String, String> map = new HashMap<>();
+ MultivaluedMap<String, Pair<String, String>> map = new MultivaluedHashMap<>();
client.initializeHeaderMap(map);
assertNotNull(map);
- assertEquals("Found expected RequestId", "1234", map.get(ONAPLogConstants.Headers.INVOCATION_ID));
+ assertEquals("Found expected RequestId", true,
+ map.get("ALL").contains(Pair.with(ONAPLogConstants.Headers.INVOCATION_ID, "1234")));
}
@@ -87,11 +90,12 @@ public class DMaaPRestClientTest {
MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, null);
DMaaPRestClient client = new DMaaPRestClient(url, contentType, auth, key);
- Map<String, String> map = new HashMap<>();
+ MultivaluedMap<String, Pair<String, String>> map = new MultivaluedHashMap<>();
client.initializeHeaderMap(map);
assertNotNull(map);
- assertEquals("header not found as expected", null, map.get(ONAPLogConstants.Headers.INVOCATION_ID));
+ assertEquals("header not found as expected", false,
+ map.get("ALL").contains(Pair.with(ONAPLogConstants.Headers.INVOCATION_ID, "1234")));
}
}
diff --git a/common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java b/common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java
index 3323fd8409..f9547cb3db 100644
--- a/common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java
+++ b/common/src/test/java/org/onap/so/client/policy/PolicyClientImplTest.java
@@ -23,21 +23,22 @@
package org.onap.so.client.policy;
import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
-import static org.junit.Assert.assertEquals;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.doReturn;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.javatuples.Pair;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
@@ -56,10 +57,10 @@ import org.onap.so.client.policy.entities.PolicyConfig;
import org.onap.so.client.policy.entities.PolicyDecision;
import org.onap.so.client.policy.entities.PolicyDecisionRequest;
import org.onap.so.client.policy.entities.PolicyServiceType;
+import org.onap.so.client.policy.entities.Workstep;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
-import org.onap.so.client.policy.entities.Workstep;
public class PolicyClientImplTest {
@@ -79,11 +80,13 @@ public class PolicyClientImplTest {
@Test
public void successReadProperties() {
PolicyRestClient client = new PolicyRestClient(new PolicyRestPropertiesImpl(), PolicyServiceType.GET_DECISION);
- Map<String, String> map = new HashMap<>();
+ MultivaluedMap<String, Pair<String, String>> map = new MultivaluedHashMap<>();
client.initializeHeaderMap(map);
- assertEquals("Found expected Client Auth", "Basic bTAzNzQzOnBvbGljeVIwY2sk", map.get("ClientAuth"));
- assertEquals("Found expected Authorization", "Basic dGVzdHBkcDphbHBoYTEyMw==", map.get("Authorization"));
- assertEquals("Found expected Environment", "TEST", map.get("Environment"));
+ assertTrue("Found expected Client Auth",
+ map.get("ALL").contains(Pair.with("ClientAuth", "Basic bTAzNzQzOnBvbGljeVIwY2sk")));
+ assertTrue("Found expected Authorization",
+ map.get("ALL").contains(Pair.with("Authorization", "Basic dGVzdHBkcDphbHBoYTEyMw==")));
+ assertTrue("Found expected Environment", map.get("ALL").contains(Pair.with("Environment", "TEST")));
}
@Test
diff --git a/common/src/test/resources/logback-test.xml b/common/src/test/resources/logback-test.xml
index b52e6be022..3c5f259817 100644
--- a/common/src/test/resources/logback-test.xml
+++ b/common/src/test/resources/logback-test.xml
@@ -19,61 +19,60 @@
-->
<configuration>
- <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
- <property name="p_lvl" value="%level"/>
- <property name="p_log" value="%logger"/>
- <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
- <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_thr" value="%thread"/>
- <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+ <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}" />
+ <property name="p_lvl" value="%level" />
+ <property name="p_log" value="%logger" />
+ <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}" />
+ <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}" />
+ <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}" />
+ <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}" />
+ <property name="p_thr" value="%thread" />
+ <property name="pattern"
+ value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" />
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
- <appender name="test"
- class="org.onap.so.utils.TestAppender" />
+ <appender name="test" class="org.onap.so.utils.TestAppender" />
- <logger name="com.att.ecomp.audit" level="info" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
+ <logger name="com.att.ecomp.audit" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
- <logger name="com.att.eelf.metrics" level="info" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
- <logger name="com.att.eelf.error" level="WARN" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
+ <logger name="com.att.eelf.error" level="WARN" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
- <logger name="org.onap" level="${so.log.level:-DEBUG}" additivity="false">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="test" />
- </logger>
-
- <logger name="org.flywaydb" level="DEBUG" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
-
+ <logger name="org.onap" level="${so.log.level:-DEBUG}" additivity="false">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="test" />
+ </logger>
- <logger name="ch.vorburger" level="WARN" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
-
- <logger name="org.reflections" level="ERROR" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
-
+ <logger name="org.flywaydb" level="DEBUG" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
- <root level="WARN">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="test" />
- </root>
+
+ <logger name="ch.vorburger" level="WARN" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="org.reflections" level="ERROR" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <root level="WARN">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="test" />
+ </root>
</configuration> \ No newline at end of file