public enum A1ProtocolType {
UNKNOWN, //
- STD_V1, //
STD_V1_1, // version 1.1
OSC_V1, //
SDNC_OSC, //
}
A1Client createClient(Ric ric, A1ProtocolType version) {
- if (version == A1ProtocolType.STD_V1) {
+ if (version == A1ProtocolType.STD_V1_1) {
return new StdA1ClientVersion1(ric.getConfig());
- } else if (version == A1ProtocolType.STD_V1_1) {
- return new StdA1ClientVersion2(ric.getConfig());
} else if (version == A1ProtocolType.OSC_V1) {
return new OscA1Client(ric.getConfig());
} else if (version == A1ProtocolType.SDNC_OSC) {
private Mono<A1Client.A1ProtocolType> getProtocolVersion(Ric ric) {
if (ric.getProtocolVersion() == A1ProtocolType.UNKNOWN) {
- return fetchVersion(createClient(ric, A1ProtocolType.STD_V1)) //
- .onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.STD_V1_1))) //
+ return fetchVersion(createClient(ric, A1ProtocolType.STD_V1_1)) //
.onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.OSC_V1))) //
.onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.SDNC_OSC))) //
.onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.SDNC_ONAP))) //
package org.oransc.policyagent.clients;
import java.lang.invoke.MethodHandles;
+import java.util.Arrays;
import java.util.List;
import org.oransc.policyagent.configuration.RicConfig;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
+@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally
public class SdncOscA1Client implements A1Client {
- private static final String URL_PREFIX = "/A1-ADAPTER-API:";
+ private static final String URL_PREFIX = "/A1-ADAPTER-API:";
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
private final String a1ControllerUsername;
private final String a1ControllerPassword;
private final RicConfig ricConfig;
public SdncOscA1Client(RicConfig ricConfig, String baseUrl, String username, String password) {
this(ricConfig, username, password, new AsyncRestClient(baseUrl + "/restconf/operations"));
- if (logger.isDebugEnabled()) {
- logger.debug("SdncOscA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl);
- }
+ logger.debug("SdncOscA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl);
}
public SdncOscA1Client(RicConfig ricConfig, String username, String password, AsyncRestClient restClient) {
@Override
public Mono<List<String>> getPolicyTypeIdentities() {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(ricConfig.baseUrl()) //
- .build();
- String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST getPolicyTypeIdentities inputJsonString = {}", inputJsonString);
-
- return restClient
- .postWithAuthHeader(URL_PREFIX + "getPolicyTypeIdentities", inputJsonString, a1ControllerUsername,
- a1ControllerPassword) //
- .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type-id-list")) //
- .flatMapMany(JsonHelper::parseJsonArrayOfString) //
- .collectList();
+ return Mono.just(Arrays.asList(""));
}
@Override
@Override
public Mono<String> getPolicyTypeSchema(String policyTypeId) {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(ricConfig.baseUrl()) //
- .policyTypeId(policyTypeId) //
- .build();
- String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST getPolicyType inputJsonString = {}", inputJsonString);
-
- return restClient
- .postWithAuthHeader(URL_PREFIX + "getPolicyType", inputJsonString, a1ControllerUsername,
- a1ControllerPassword) //
- .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type")) //
- .flatMap(JsonHelper::extractPolicySchema);
+ return Mono.just("{}");
}
@Override
.policy(policy.json()) //
.build();
String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST putPolicy inputJsonString = {}", inputJsonString);
-
return restClient
.postWithAuthHeader(URL_PREFIX + "putPolicy", inputJsonString, a1ControllerUsername, a1ControllerPassword)
.flatMap(response -> JsonHelper.getValueFromResponse(response, "returned-policy")) //
@Override
public Mono<A1ProtocolType> getProtocolVersion() {
- return getPolicyTypeIdentities() //
+ return getPolicyIdentities() //
.flatMap(x -> Mono.just(A1ProtocolType.SDNC_OSC));
}
.nearRtRicUrl(ricConfig.baseUrl()) //
.build();
String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST getPolicyIdentities inputJsonString = {}", inputJsonString);
-
return restClient
.postWithAuthHeader(URL_PREFIX + "getPolicyIdentities", inputJsonString, a1ControllerUsername,
a1ControllerPassword) //
.build();
String inputJsonString = JsonHelper.createInputJsonString(inputParams);
- logger.debug("POST deletePolicy inputJsonString = {}", inputJsonString);
-
return restClient.postWithAuthHeader(URL_PREFIX + "deletePolicy", inputJsonString, a1ControllerUsername,
a1ControllerPassword);
}
package org.oransc.policyagent.clients;
+import java.util.Arrays;
import java.util.List;
import org.oransc.policyagent.configuration.RicConfig;
import reactor.core.publisher.Mono;
public class StdA1ClientVersion1 implements A1Client {
- private static final String URL_PREFIX = "/A1-P/v1";
-
- private static final String POLICY_TYPES_URI = "/policytypes";
- private static final String POLICY_TYPE_ID = "policyTypeId";
-
- private static final String POLICIES_URI = "/policies";
-
- private static final UriComponentsBuilder POLICY_TYPE_SCHEMA_URI =
- UriComponentsBuilder.fromPath("/policytypes/{policy-type-name}");
-
- private static final UriComponentsBuilder POLICY_URI =
- UriComponentsBuilder.fromPath("/policies/{policy-id}").queryParam(POLICY_TYPE_ID, "{policy-type-name}");
-
- private static final UriComponentsBuilder POLICY_DELETE_URI =
- UriComponentsBuilder.fromPath("/policies/{policy-id}");
-
- private static final UriComponentsBuilder POLICY_STATUS_URI =
- UriComponentsBuilder.fromPath("/policies/{policy-id}/status");
-
private final AsyncRestClient restClient;
public StdA1ClientVersion1(RicConfig ricConfig) {
- String baseUrl = ricConfig.baseUrl() + URL_PREFIX;
+ final String urlPrefix = "/A1-P/v1";
+ String baseUrl = ricConfig.baseUrl() + urlPrefix;
this.restClient = new AsyncRestClient(baseUrl);
}
@Override
public Mono<String> putPolicy(Policy policy) {
- String uri = POLICY_URI.buildAndExpand(policy.id(), policy.type().name()).toUriString();
+ final UriComponentsBuilder policyUri = UriComponentsBuilder.fromPath("/policies/{policy-id}");
+ final String uri = policyUri.buildAndExpand(policy.id()).toUriString();
return restClient.put(uri, policy.json()) //
.flatMap(JsonHelper::validateJson);
}
@Override
public Mono<List<String>> getPolicyTypeIdentities() {
- return restClient.get(POLICY_TYPES_URI) //
- .flatMapMany(JsonHelper::parseJsonArrayOfString) //
- .collectList();
+ return Mono.just(Arrays.asList(""));
}
@Override
public Mono<String> getPolicyTypeSchema(String policyTypeId) {
- String uri = POLICY_TYPE_SCHEMA_URI.buildAndExpand(policyTypeId).toUriString();
- return restClient.get(uri) //
- .flatMap(JsonHelper::extractPolicySchema);
+ return Mono.just("{}");
}
@Override
@Override
public Mono<A1ProtocolType> getProtocolVersion() {
return getPolicyTypeIdentities() //
- .flatMap(x -> Mono.just(A1ProtocolType.STD_V1));
+ .flatMap(x -> Mono.just(A1ProtocolType.STD_V1_1));
}
@Override
public Mono<String> getPolicyStatus(Policy policy) {
- String uri = POLICY_STATUS_URI.buildAndExpand(policy.id()).toUriString();
+ final UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/policies/{policy-id}/status");
+ String uri = builder.buildAndExpand(policy.id()).toUriString();
return restClient.get(uri);
}
private Flux<String> getPolicyIds() {
- return restClient.get(POLICIES_URI) //
+ final String uri = "/policies";
+ return restClient.get(uri) //
.flatMapMany(JsonHelper::parseJsonArrayOfString);
}
private Mono<String> deletePolicyById(String policyId) {
- String uri = POLICY_DELETE_URI.buildAndExpand(policyId).toUriString();
+ final UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/policies/{policy-id}");
+ String uri = builder.buildAndExpand(policyId).toUriString();
return restClient.delete(uri);
}
}
+++ /dev/null
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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.oransc.policyagent.clients;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.oransc.policyagent.configuration.RicConfig;
-import reactor.core.publisher.Mono;
-
-public class StdA1ClientVersion2 extends StdA1ClientVersion1 {
-
- public StdA1ClientVersion2(RicConfig ricConfig) {
- super(ricConfig);
- }
-
- public StdA1ClientVersion2(AsyncRestClient restClient) {
- super(restClient);
- }
-
- @Override
- public Mono<List<String>> getPolicyTypeIdentities() {
- return Mono.just(Arrays.asList(""));
- }
-
- @Override
- public Mono<String> getPolicyTypeSchema(String policyTypeId) {
- return Mono.just("{}");
- }
-
- @Override
- public Mono<A1ProtocolType> getProtocolVersion() {
- return getPolicyIdentities() //
- .flatMap(x -> Mono.just(A1ProtocolType.STD_V1_1));
- }
-}
@Mock
A1Client clientMock4;
- @Mock
- A1Client clientMock5;
-
private ImmutableRicConfig ricConfig =
ImmutableRicConfig.builder().name(RIC_NAME).baseUrl("baseUrl").managedElementIds(new Vector<>()).build();
private Ric ric = new Ric(ricConfig);
@Test
public void getProtocolVersion_ok() {
whenGetProtocolVersionThrowException(clientMock1);
- whenGetProtocolVersionReturn(clientMock2, A1ProtocolType.STD_V1);
+ whenGetProtocolVersionReturn(clientMock2, A1ProtocolType.STD_V1_1);
doReturn(clientMock1, clientMock2).when(factoryUnderTest).createClient(any(), any());
A1Client client = factoryUnderTest.createA1Client(ric).block();
assertEquals(clientMock2, client, "Not correct client returned");
- assertEquals(A1ProtocolType.STD_V1, ric.getProtocolVersion(), "Not correct protocol");
+ assertEquals(A1ProtocolType.STD_V1_1, ric.getProtocolVersion(), "Not correct protocol");
}
@Test
public void getProtocolVersion_ok_Last() {
- whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3, clientMock4);
- whenGetProtocolVersionReturn(clientMock5, A1ProtocolType.STD_V1_1);
- doReturn(clientMock1, clientMock2, clientMock3, clientMock4, clientMock5).when(factoryUnderTest)
- .createClient(any(), any());
+ whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3);
+ whenGetProtocolVersionReturn(clientMock4, A1ProtocolType.STD_V1_1);
+ doReturn(clientMock1, clientMock2, clientMock3, clientMock4).when(factoryUnderTest).createClient(any(), any());
A1Client client = factoryUnderTest.createA1Client(ric).block();
- assertEquals(clientMock5, client, "Not correct client returned");
+ assertEquals(clientMock4, client, "Not correct client returned");
assertEquals(A1ProtocolType.STD_V1_1, ric.getProtocolVersion(), "Not correct protocol");
}
@Test
public void getProtocolVersion_error() {
- whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3, clientMock4, clientMock5);
- doReturn(clientMock1, clientMock2, clientMock3, clientMock4, clientMock5).when(factoryUnderTest)
- .createClient(any(), any());
+ whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3, clientMock4);
+ doReturn(clientMock1, clientMock2, clientMock3, clientMock4).when(factoryUnderTest).createClient(any(), any());
StepVerifier.create(factoryUnderTest.createA1Client(ric)) //
.expectSubscription() //
@Test
public void create_check_types() {
- assertTrue(createClient(A1ProtocolType.STD_V1) instanceof StdA1ClientVersion1);
- assertTrue(createClient(A1ProtocolType.STD_V1_1) instanceof StdA1ClientVersion2);
+ assertTrue(createClient(A1ProtocolType.STD_V1_1) instanceof StdA1ClientVersion1);
assertTrue(createClient(A1ProtocolType.OSC_V1) instanceof OscA1Client);
assertTrue(createClient(A1ProtocolType.SDNC_ONAP) instanceof SdncOnapA1Client);
assertTrue(createClient(A1ProtocolType.SDNC_OSC) instanceof SdncOscA1Client);
private static final String CONTROLLER_USERNAME = "username";
private static final String CONTROLLER_PASSWORD = "password";
private static final String RIC_1_URL = "RicUrl";
- private static final String POLICY_TYPES_IDENTITIES_URL = "/A1-ADAPTER-API:getPolicyTypeIdentities";
private static final String POLICY_IDENTITIES_URL = "/A1-ADAPTER-API:getPolicyIdentities";
- private static final String POLICY_TYPES_URL = "/A1-ADAPTER-API:getPolicyType";
private static final String PUT_POLICY_URL = "/A1-ADAPTER-API:putPolicy";
private static final String DELETE_POLICY_URL = "/A1-ADAPTER-API:deletePolicy";
-
private static final String POLICY_TYPE_1_ID = "type1";
- private static final String POLICY_TYPE_2_ID = "type2";
- private static final String POLICY_TYPE_SCHEMA_VALID = "{\"type\":\"type1\"}";
- private static final String POLICY_TYPE_SCHEMA_INVALID = "\"type\":\"type1\"}";
private static final String POLICY_1_ID = "policy1";
private static final String POLICY_2_ID = "policy2";
private static final String POLICY_JSON_VALID = "{\"scope\":{\"ueId\":\"ue1\"}}";
@Test
public void testGetPolicyTypeIdentities() {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(RIC_1_URL) //
- .build();
- String inputJsonString = A1ClientHelper.createInputJsonString(inputParams);
-
- List<String> policyTypeIds = Arrays.asList(POLICY_TYPE_1_ID, POLICY_TYPE_2_ID);
- Mono<String> policyTypeIdsResp =
- A1ClientHelper.createOutputJsonResponse("policy-type-id-list", policyTypeIds.toString());
- whenAsyncPostThenReturn(policyTypeIdsResp);
-
- Mono<List<String>> returnedMono = clientUnderTest.getPolicyTypeIdentities();
-
- verify(asyncRestClientMock).postWithAuthHeader(POLICY_TYPES_IDENTITIES_URL, inputJsonString,
- CONTROLLER_USERNAME, CONTROLLER_PASSWORD);
- StepVerifier.create(returnedMono).expectNext(policyTypeIds).expectComplete().verify();
+ List<String> policyTypeIds = clientUnderTest.getPolicyTypeIdentities().block();
+ assertEquals(1, policyTypeIds.size(), "should hardcoded to one");
+ assertEquals("", policyTypeIds.get(0), "should hardcoded to empty");
}
@Test
@Test
public void testGetValidPolicyType() {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(RIC_1_URL) //
- .policyTypeId(POLICY_TYPE_1_ID) //
- .build();
- String inputJsonString = A1ClientHelper.createInputJsonString(inputParams);
-
- String policyType = "{\"policySchema\": " + POLICY_TYPE_SCHEMA_VALID + ", \"statusSchema\": {} }";
- Mono<String> policyTypeResp = A1ClientHelper.createOutputJsonResponse("policy-type", policyType);
- whenAsyncPostThenReturn(policyTypeResp);
-
- Mono<String> returnedMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_ID);
-
- verify(asyncRestClientMock).postWithAuthHeader(POLICY_TYPES_URL, inputJsonString, CONTROLLER_USERNAME,
- CONTROLLER_PASSWORD);
- StepVerifier.create(returnedMono).expectNext(POLICY_TYPE_SCHEMA_VALID).expectComplete().verify();
- }
-
- @Test
- public void testGetInvalidPolicyType() {
- SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
- .nearRtRicUrl(RIC_1_URL) //
- .policyTypeId(POLICY_TYPE_1_ID) //
- .build();
- String inputJsonString = A1ClientHelper.createInputJsonString(inputParams);
-
- String policyType = "{\"policySchema\": " + POLICY_TYPE_SCHEMA_INVALID + ", \"statusSchema\": {} }";
- Mono<String> policyTypeResp = A1ClientHelper.createOutputJsonResponse("policy-type", policyType);
- whenAsyncPostThenReturn(policyTypeResp);
-
- Mono<String> returnedMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_ID);
-
- verify(asyncRestClientMock).postWithAuthHeader(POLICY_TYPES_URL, inputJsonString, CONTROLLER_USERNAME,
- CONTROLLER_PASSWORD);
- StepVerifier.create(returnedMono).expectErrorMatches(throwable -> throwable instanceof JSONException).verify();
+ String policyType = clientUnderTest.getPolicyTypeSchema("").block();
+ assertEquals("{}", policyType, "");
}
@Test
package org.oransc.policyagent.clients;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Arrays;
+import java.util.List;
import org.json.JSONException;
import org.junit.jupiter.api.BeforeEach;
@ExtendWith(MockitoExtension.class)
public class StdA1ClientTest {
private static final String RIC_URL = "RicUrl";
- private static final String POLICY_TYPES_IDENTITIES_URL = "/policytypes";
private static final String POLICIES_IDENTITIES_URL = "/policies";
- private static final String POLICY_TYPES_URL = "/policytypes/";
private static final String POLICIES_URL = "/policies/";
-
private static final String POLICY_TYPE_1_NAME = "type1";
- private static final String POLICY_TYPE_2_NAME = "type2";
- private static final String POLICY_TYPE_SCHEMA_VALID = "{\"type\":\"type1\"}";
- private static final String POLICY_TYPE_SCHEMA_INVALID = "\"type\":\"type1\"}";
private static final String POLICY_1_ID = "policy1";
private static final String POLICY_2_ID = "policy2";
private static final String POLICY_JSON_VALID = "{\"policyId\":\"policy1\"}";
@Test
public void testGetPolicyTypeIdentities() {
- Mono<String> policyTypeIds = Mono.just(Arrays.asList(POLICY_TYPE_1_NAME, POLICY_TYPE_2_NAME).toString());
- when(asyncRestClientMock.get(anyString())).thenReturn(policyTypeIds);
-
- Mono<?> policyTypeIdsFlux = clientUnderTest.getPolicyTypeIdentities();
-
- verify(asyncRestClientMock).get(POLICY_TYPES_IDENTITIES_URL);
- StepVerifier.create(policyTypeIdsFlux).expectNextCount(1).expectComplete().verify();
+ List<String> policyTypeIds = clientUnderTest.getPolicyTypeIdentities().block();
+ assertEquals(1, policyTypeIds.size(), "should hardcoded to one");
+ assertEquals("", policyTypeIds.get(0), "should hardcoded to empty");
}
@Test
Mono<String> policyIds = Mono.just(Arrays.asList(POLICY_1_ID, POLICY_2_ID).toString());
when(asyncRestClientMock.get(anyString())).thenReturn(policyIds);
- Mono<?> policyIdsFlux = clientUnderTest.getPolicyIdentities();
+ List<String> result = clientUnderTest.getPolicyIdentities().block();
+ assertEquals(2, result.size(), "");
verify(asyncRestClientMock).get(POLICIES_IDENTITIES_URL);
- StepVerifier.create(policyIdsFlux).expectNextCount(1).expectComplete().verify();
}
@Test
public void testGetValidPolicyType() {
- Mono<String> policyTypeResp =
- Mono.just("{\"policySchema\": " + POLICY_TYPE_SCHEMA_VALID + ", \"statusSchema\": {} }");
-
- when(asyncRestClientMock.get(anyString())).thenReturn(policyTypeResp);
-
- Mono<String> policyTypeMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_NAME);
-
- verify(asyncRestClientMock).get(POLICY_TYPES_URL + POLICY_TYPE_1_NAME);
- StepVerifier.create(policyTypeMono).expectNext(POLICY_TYPE_SCHEMA_VALID).expectComplete().verify();
- }
-
- @Test
- public void testGetInvalidPolicyType() {
- when(asyncRestClientMock.get(anyString())).thenReturn(Mono.just(POLICY_TYPE_SCHEMA_INVALID));
-
- Mono<String> policyTypeMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_NAME);
-
- verify(asyncRestClientMock).get(POLICY_TYPES_URL + POLICY_TYPE_1_NAME);
- StepVerifier.create(policyTypeMono).expectErrorMatches(throwable -> throwable instanceof JSONException)
- .verify();
+ String policyType = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_NAME).block();
+ assertEquals("{}", policyType, "");
}
@Test
Mono<String> policyMono = clientUnderTest
.putPolicy(A1ClientHelper.createPolicy(RIC_URL, POLICY_1_ID, POLICY_JSON_VALID, POLICY_TYPE));
- verify(asyncRestClientMock).put(POLICIES_URL + POLICY_1_ID + "?policyTypeId=" + POLICY_TYPE, POLICY_JSON_VALID);
+ verify(asyncRestClientMock).put(POLICIES_URL + POLICY_1_ID, POLICY_JSON_VALID);
StepVerifier.create(policyMono).expectNext(POLICY_JSON_VALID).expectComplete().verify();
}
@Override
public Mono<A1ProtocolType> getProtocolVersion() {
- return Mono.just(A1ProtocolType.STD_V1);
+ return Mono.just(A1ProtocolType.STD_V1_1);
}
@Override
* @return the base url
*/
public String getBaseUrl(final String nearRtRicUrl) {
- String baseUrl = nearRtRicUrl + "/A1-P/v1";
- return UriComponentsBuilder.fromUriString(baseUrl).build().toString();
+ return nearRtRicUrl + "/A1-P/v1";
}
/**
* @return the policies url
*/
public String policiesUrl(final String nearRtRicUrl) {
- return UriComponentsBuilder.fromUriString(getBaseUrl(nearRtRicUrl)).pathSegment("policies").build().toString();
+ return getBaseUrl(nearRtRicUrl) + "/policies";
}
/**
* @return the putPolicy url
*/
public String putPolicyUrl(final String nearRtRicUrl, final String policyId, final String policyTypeId) {
- return UriComponentsBuilder.fromUriString(policiesUrl(nearRtRicUrl))
- .pathSegment(policyId + "?policyTypeId=" + policyTypeId).build().toString();
+ UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(policiesUrl(nearRtRicUrl)).pathSegment(policyId);
+
+ if (!policyTypeId.isEmpty()) {
+ builder.queryParam("policyTypeId", policyTypeId);
+ }
+ return builder.build().toString();
}
/**