diff options
author | 2024-08-29 12:45:10 +0100 | |
---|---|---|
committer | 2024-08-30 10:35:16 +0000 | |
commit | 05b965436624e2f44873bc11e8ab534220c68e2a (patch) | |
tree | cdfa46fcb3d4e9e538139e3a52135fdc2280be02 /a1-policy-management/src/main | |
parent | 8458aa547f5bc3415b4f337935410a5ff19299e8 (diff) |
Update newdelhi branch HEAD
Select&squash recent updates & fixes from master branch, adapted for new-delhi branch. Including:
https://gerrit.onap.org/r/c/ccsdk/oran/+/138693
Set serviceId in v2 policy_info to optional and blank by default - master
https://gerrit.onap.org/r/c/ccsdk/oran/+/138734
new onap logo
https://gerrit.onap.org/r/c/ccsdk/oran/+/138762
Improving code-coverage for the Handle non transient policy deletion bug fix - master
https://gerrit.onap.org/r/c/ccsdk/oran/+/138788
Enable springboot test for AsyncRestClientTest
https://gerrit.onap.org/r/c/ccsdk/oran/+/138787
Re-arrange application properties
*PARTIAL
https://gerrit.onap.org/r/c/ccsdk/oran/+/138772
Improve tests/issues found in Sonar report - A1 Oslo-Part2
https://gerrit.onap.org/r/c/ccsdk/oran/+/138827
Dependecy update in a1pms using spring parent 3.3.2
https://gerrit.onap.org/r/c/ccsdk/oran/+/138862
Improve tests/issues found in Sonar report - A1 Oslo/NewDelhi/Montreal/London-Part3-master
Issue-ID: CCSDK-3968
Change-Id: I40f7585e9416f03c8bec2b00d57dadb05bc624ca
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
Diffstat (limited to 'a1-policy-management/src/main')
25 files changed, 126 insertions, 214 deletions
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java index 714fd2e4..1791222f 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java @@ -25,7 +25,6 @@ import java.lang.invoke.MethodHandles; import org.onap.ccsdk.oran.a1policymanagementservice.tasks.RefreshConfigTask; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1AdapterJsonHelper.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1AdapterJsonHelper.java index ab93ea3e..66d32110 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1AdapterJsonHelper.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1AdapterJsonHelper.java @@ -92,26 +92,4 @@ class A1AdapterJsonHelper { return Mono.error(ex); } } - - public static Mono<String> getValueFromResponse(String response, String key) { - return getOutput(response) // - .map(responseParams -> { - if (!responseParams.has(key)) { - return ""; - } - return responseParams.get(key).toString(); - }); - } - - public static Mono<String> extractPolicySchema(String inputString) { - try { - JSONObject jsonObject = new JSONObject(inputString); - JSONObject schemaObject = jsonObject.getJSONObject("policySchema"); - String schemaString = schemaObject.toString(); - return Mono.just(schemaString); - } catch (Exception ex) { // invalid json - logger.debug("Invalid json {}", ex.getMessage()); - return Mono.error(ex); - } - } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java index b5c10bf6..947c50db 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java @@ -21,20 +21,18 @@ package org.onap.ccsdk.oran.a1policymanagementservice.clients; -import java.lang.invoke.MethodHandles; -import java.lang.reflect.Constructor; - import org.onap.ccsdk.oran.a1policymanagementservice.clients.A1Client.A1ProtocolType; import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfig; -import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ControllerConfig; import org.onap.ccsdk.oran.a1policymanagementservice.configuration.RicConfig; import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Ric; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import reactor.core.publisher.Mono; +import java.lang.invoke.MethodHandles; +import java.lang.reflect.Constructor; + /** * Factory for A1 clients that supports four different protocol versions of the * A1 api. @@ -43,12 +41,9 @@ public class A1ClientFactory { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private final ApplicationConfig appConfig; - private final AsyncRestClientFactory restClientFactory; public A1ClientFactory(ApplicationConfig appConfig, SecurityContext securityContext) { - this.appConfig = appConfig; this.restClientFactory = new AsyncRestClientFactory(appConfig.getWebClientConfig(), securityContext); } @@ -95,28 +90,19 @@ public class A1ClientFactory { } } - private ControllerConfig getControllerConfig(Ric ric) throws ServiceException { - ControllerConfig controllerConfig = ric.getConfig().getControllerConfig(); - if (controllerConfig == null) { - ric.setProtocolVersion(A1ProtocolType.UNKNOWN); - throw new ServiceException("No controller configured for Near-RT RIC: " + ric.id()); - } - return controllerConfig; - } - private A1Client createCustomAdapter(Ric ric) throws ServiceException { try { if (ric.getConfig().getCustomAdapterClass() != null && !ric.getConfig().getCustomAdapterClass().isEmpty()) { Class<?> clazz = Class.forName(ric.getConfig().getCustomAdapterClass()); if (A1Client.class.isAssignableFrom(clazz)) { Constructor<?> constructor = clazz.getConstructor(RicConfig.class, AsyncRestClientFactory.class); - logger.debug("A1Client (" + clazz.getTypeName() + ") being created for ric: {}", - ric.getConfig().getRicId()); + logger.debug("A1Client \"{}\" being created for ric: {}", + clazz.getTypeName(), ric.getConfig().getRicId()); return (A1Client) constructor.newInstance(ric.getConfig(), this.restClientFactory); } else if (A1Client.Factory.class.isAssignableFrom(clazz)) { A1Client.Factory factory = (A1Client.Factory) clazz.getDeclaredConstructor().newInstance(); - logger.debug("A1Client (" + clazz.getTypeName() + ") factory creating client for ric: {}", - ric.getConfig().getRicId()); + logger.debug("A1Client \"{}\" factory creating client for ric: {}", + clazz.getTypeName(), ric.getConfig().getRicId()); return factory.create(ric.getConfig(), this.restClientFactory); } else { throw new ServiceException("The custom class must either implement A1Client.Factory or A1Client"); diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/CcsdkA1AdapterClient.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/CcsdkA1AdapterClient.java index 04ecf045..f62d0807 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/CcsdkA1AdapterClient.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/CcsdkA1AdapterClient.java @@ -100,7 +100,6 @@ public class CcsdkA1AdapterClient implements A1Client { * CCSDK_A1_ADAPTER_STD_V2_0_0 with * @param ricConfig the configuration of the Near-RT RIC to communicate * with - * @param controllerConfig the configuration of the CCSDK A1 Adapter to use * * @throws IllegalArgumentException when the protocolType is wrong. */ @@ -119,7 +118,6 @@ public class CcsdkA1AdapterClient implements A1Client { * CCSDK_A1_ADAPTER_STD_V2_0_0 with * @param ricConfig the configuration of the Near-RT RIC to communicate * with - * @param controllerConfig the configuration of the CCSDK A1 Adapter to use * @param restClient the REST client to use * * @throws IllegalArgumentException when the protocolType is illegal. @@ -131,8 +129,8 @@ public class CcsdkA1AdapterClient implements A1Client { this.restClient = restClient; this.ricConfig = ricConfig; this.protocolType = protocolType; - logger.debug("A1Client (" + getClass().getTypeName() + ") created for ric: {}, a1Controller: {}", - ricConfig.getRicId(), ricConfig.getControllerConfig()); + logger.debug("A1Client \"{}\" created for ric: {}, a1Controller: {}", + getClass().getTypeName(), ricConfig.getRicId(), ricConfig.getControllerConfig()); } else { logger.error("Not supported protocoltype: {}", protocolType); diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/OscA1Client.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/OscA1Client.java index 17681cb6..f536076b 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/OscA1Client.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/OscA1Client.java @@ -143,7 +143,7 @@ public class OscA1Client implements A1Client { public OscA1Client(RicConfig ricConfig, AsyncRestClient restClient) { this.restClient = restClient; uri = new UriBuilder(ricConfig); - logger.debug("A1Client (" + getClass().getTypeName() + ") created for ric: {}", ricConfig.getRicId()); + logger.debug("A1Client \"{}\" created for ric: {}", getClass().getTypeName(), ricConfig.getRicId()); } public static Mono<String> extractCreateSchema(String policyTypeResponse, String policyTypeId) { diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion1.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion1.java index 2f06b6a6..b033aeaa 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion1.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion1.java @@ -109,7 +109,7 @@ public class StdA1ClientVersion1 implements A1Client { public StdA1ClientVersion1(AsyncRestClient restClient, RicConfig ricConfig) { this.restClient = restClient; this.uri = new UriBuilder(ricConfig); - logger.debug("A1Client (" + getClass().getTypeName() + ") created for ric: {}", ricConfig.getRicId()); + logger.debug("A1Client \"{}\" created for ric: {}", getClass().getTypeName(), ricConfig.getRicId()); } @Override diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion2.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion2.java index 6f907539..3362b790 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion2.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/StdA1ClientVersion2.java @@ -138,7 +138,7 @@ public class StdA1ClientVersion2 implements A1Client { public StdA1ClientVersion2(RicConfig ricConfig, AsyncRestClient restClient) { this.restClient = restClient; uriBuiler = new OranV2UriBuilder(ricConfig); - logger.debug("A1Client (" + getClass().getTypeName() + ") created for ric: {}", ricConfig.getRicId()); + logger.debug("A1Client \"{}\" created for ric: {}", getClass().getTypeName(), ricConfig.getRicId()); } public static Mono<String> extractPolicySchema(String policyTypeResponse, String policyTypeId) { diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java index 45305f84..f5f0f7e7 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java @@ -84,7 +84,7 @@ public class ApplicationConfigParser { Map<String, ControllerConfig> controllerConfigs = parseControllerConfigs(pmsConfigJson); List<RicConfig> ricConfigs = parseRics(pmsConfigJson, controllerConfigs); - checkConfigurationConsistency(ricConfigs, controllerConfigs); + checkConfigurationConsistency(ricConfigs); return ConfigParserResult.builder() // .ricConfigs(ricConfigs) // @@ -123,8 +123,7 @@ public class ApplicationConfigParser { return CharStreams.toString(new InputStreamReader(in, StandardCharsets.UTF_8)); } - private void checkConfigurationConsistency(List<RicConfig> ricConfigs, - Map<String, ControllerConfig> controllerConfigs) throws ServiceException { + private void checkConfigurationConsistency(List<RicConfig> ricConfigs) throws ServiceException { Set<String> ricUrls = new HashSet<>(); Set<String> ricNames = new HashSet<>(); for (RicConfig ric : ricConfigs) { @@ -218,8 +217,4 @@ public class ApplicationConfigParser { private JsonArray getAsJsonArray(JsonObject obj, String memberName) throws ServiceException { return get(obj, memberName).getAsJsonArray(); } - - private static String getAsString(JsonObject obj, String memberName) throws ServiceException { - return get(obj, memberName).getAsString(); - } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationResult.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationResult.java index 796c44e9..dc717d38 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationResult.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationResult.java @@ -32,7 +32,7 @@ import lombok.Getter; @Builder public class AuthorizationResult { - @Schema(name = "result", description = "If true, the access is granted", required = true) + @Schema(name = "result", description = "If true, the access is granted", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty(value = "result", required = true) @SerializedName("result") @Getter diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/PolicyAuthorizationRequest.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/PolicyAuthorizationRequest.java index 8dd4e7bb..cb93006a 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/PolicyAuthorizationRequest.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/PolicyAuthorizationRequest.java @@ -51,25 +51,25 @@ public class PolicyAuthorizationRequest { READ, WRITE, DELETE } - @Schema(name = "access_type", description = "Access type", required = true) + @Schema(name = "access_type", description = "Access type", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty(value = "access_type", required = true) @SerializedName("access_type") @Getter private AccessType accessType; - @Schema(name = "policy_type_id", description = "Policy type identifier", required = true) + @Schema(name = "policy_type_id", description = "Policy type identifier", requiredMode = Schema.RequiredMode.REQUIRED) @SerializedName("policy_type_id") @JsonProperty(value = "policy_type_id", required = true) private String policyTypeId; - @Schema(name = "auth_token", description = "Authorization token", required = true) + @Schema(name = "auth_token", description = "Authorization token", requiredMode = Schema.RequiredMode.REQUIRED) @SerializedName("auth_token") @JsonProperty(value = "auth_token", required = true) private String authToken; } - @Schema(name = "input", description = "Input", required = true) + @Schema(name = "input", description = "Input", requiredMode = Schema.RequiredMode.REQUIRED) @JsonProperty(value = "input", required = true) @SerializedName("input") private Input input; diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java index 4b0d6b58..51ac59bc 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java @@ -39,7 +39,7 @@ import reactor.core.publisher.Mono; import java.io.IOException; import java.util.Optional; -@RestController("ConfigurationControllerV2") +@RestController("configurationControllerV2") @Tag( // name = ConfigurationController.API_NAME, // description = ConfigurationController.API_DESCRIPTION // diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java index 630be491..9299ffeb 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java @@ -36,6 +36,7 @@ import java.util.List; import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.clients.A1ClientFactory; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2.A1PolicyManagementApi; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.AuthorizationCheck; @@ -51,7 +52,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v2.PolicyStatusInfo; import org.onap.ccsdk.oran.a1policymanagementservice.repository.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; @@ -62,7 +62,8 @@ import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -@RestController("PolicyControllerV2") +@RestController("policyControllerV2") +@RequiredArgsConstructor @Tag(// name = PolicyController.API_NAME, // description = PolicyController.API_DESCRIPTION // @@ -71,7 +72,6 @@ public class PolicyController implements A1PolicyManagementApi { public static final String API_NAME = "A1 Policy Management"; public static final String API_DESCRIPTION = ""; - public static class RejectionException extends Exception { private static final long serialVersionUID = 1L; @@ -84,24 +84,16 @@ public class PolicyController implements A1PolicyManagementApi { } } - @Autowired - private Rics rics; - @Autowired - private PolicyTypes policyTypes; - @Autowired - private Policies policies; - @Autowired - private A1ClientFactory a1ClientFactory; - @Autowired - private Services services; - @Autowired - private ObjectMapper objectMapper; - @Autowired - private AuthorizationCheck authorization; + private final Rics rics; + private final PolicyTypes policyTypes; + private final Policies policies; + private final A1ClientFactory a1ClientFactory; + private final Services services; + private final ObjectMapper objectMapper; + private final AuthorizationCheck authorization; private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private static Gson gson = new GsonBuilder() // - .create(); // + private static final Gson gson = new GsonBuilder().create(); @Override public Mono<ResponseEntity<PolicyTypeDefinition>> getPolicyTypeDefinition(String policyTypeId, ServerWebExchange exchange) diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java index 8907774b..f7872a38 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java @@ -24,6 +24,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2.NearRtRicRepositoryApi; import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.EntityNotFoundException; import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.InvalidRequestException; @@ -32,7 +33,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v2.RicInfoList; import org.onap.ccsdk.oran.a1policymanagementservice.repository.PolicyTypes; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Ric; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Rics; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; @@ -42,7 +42,8 @@ import reactor.core.publisher.Mono; import java.util.ArrayList; import java.util.List; -@RestController("RicRepositoryControllerV2") +@RestController("ricRepositoryControllerV2") +@RequiredArgsConstructor @Tag( // name = RicRepositoryController.API_NAME, // description = RicRepositoryController.API_DESCRIPTION // @@ -52,17 +53,11 @@ public class RicRepositoryController implements NearRtRicRepositoryApi { public static final String API_NAME = "NearRT-RIC Repository"; public static final String API_DESCRIPTION = ""; - @Autowired - private Rics rics; + private final Rics rics; + final PolicyTypes types; + final ObjectMapper objectMapper; - @Autowired - PolicyTypes types; - - @Autowired - ObjectMapper objectMapper; - - private static Gson gson = new GsonBuilder() // - .create(); // + private static final Gson gson = new GsonBuilder().create(); private static final String GET_RIC_BRIEF = "Returns info for one Near-RT RIC"; private static final String GET_RIC_DETAILS = diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java index 09dfe446..4da11a9d 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java @@ -21,6 +21,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2.ServiceRegistryAndSupervisionApi; import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException; import org.onap.ccsdk.oran.a1policymanagementservice.models.v2.ServiceRegistrationInfo; @@ -32,7 +33,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.Service; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; @@ -48,7 +48,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -@RestController("ServiceControllerV2") +@RestController("serviceControllerV2") +@RequiredArgsConstructor @Tag( // name = ServiceController.API_NAME, // description = ServiceController.API_DESCRIPTION // @@ -64,13 +65,7 @@ public class ServiceController implements ServiceRegistryAndSupervisionApi { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - @Autowired - private PolicyController policyController; - - ServiceController(Services services, Policies policies) { - this.services = services; - this.policies = policies; - } + private final PolicyController policyController; private static final String GET_SERVICE_DETAILS = "Either information about a registered service with given identity or all registered services are returned."; @@ -138,7 +133,7 @@ public class ServiceController implements ServiceRegistryAndSupervisionApi { Service service = removeService(serviceId); removePolicies(service, exchange); return Mono.just(new ResponseEntity<>(HttpStatus.NO_CONTENT)); - } catch (ServiceException | NullPointerException e) { + } catch (ServiceException e) { logger.warn("Exception caught during service deletion while deleting service {}: {}", serviceId, e.getMessage()); return ErrorResponse.createMono(e, HttpStatus.NOT_FOUND); diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java index 4ec3652d..b2cb69ce 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java @@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; -@RestController("StatusControllerV2") +@RestController("statusControllerV2") @Tag( name = StatusController.API_NAME, description = StatusController.API_DESCRIPTION ) diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java index 42e777b8..40f84647 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java @@ -19,17 +19,18 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.ConfigurationApi; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.ConfigurationController; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; -@RestController("ConfigurationControllerV3") +@RestController("configurationControllerV3") +@RequiredArgsConstructor @Tag( // name = ConfigurationControllerV3.API_NAME, // description = ConfigurationControllerV3.API_DESCRIPTION // @@ -39,9 +40,7 @@ public class ConfigurationControllerV3 implements ConfigurationApi { public static final String API_NAME = "Management of configuration"; public static final String API_DESCRIPTION = "API used to create or fetch the application configuration"; - - @Autowired - private ConfigurationController configurationController; + private final ConfigurationController configurationController; @Override public Mono<ResponseEntity<String>> getConfiguration(ServerWebExchange exchange) throws Exception { diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java index 4d9f3277..08aa7c7b 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java @@ -21,6 +21,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.A1PolicyManagementApi; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.PolicyController; @@ -29,15 +30,14 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyObjectInfor import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyTypeInformation; import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService; import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.PolicyService; -import org.onap.ccsdk.oran.a1policymanagementservice.util.v3.Helper; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -@RestController("PolicyControllerV3") +@RestController("policyControllerV3") +@RequiredArgsConstructor @Tag(// name = PolicyController.API_NAME, // description = PolicyController.API_DESCRIPTION // @@ -46,54 +46,49 @@ import reactor.core.publisher.Mono; public class PolicyControllerV3 implements A1PolicyManagementApi { public static final String API_NAME = "A1 Policy Management"; public static final String API_DESCRIPTION = "API to create,update and get policies or policy definitions"; - @Autowired - private PolicyService policyService; - @Autowired - private Helper helper; - - @Autowired - private ErrorHandlingService errorHandlingService; + private final PolicyService policyService; + private final ErrorHandlingService errorHandlingService; @Override public Mono<ResponseEntity<PolicyObjectInformation>> createPolicy(Mono<PolicyObjectInformation> policyObjectInformation, ServerWebExchange exchange) { return policyObjectInformation.flatMap(policyObjectInfo -> policyService.createPolicyService(policyObjectInfo, exchange) - .doOnError(error -> errorHandlingService.handleError(error))); + .doOnError(errorHandlingService::handleError)); } @Override public Mono<ResponseEntity<Void>> deletePolicy(String policyId, String accept, ServerWebExchange exchange) throws Exception { return policyService.deletePolicyService(policyId, exchange) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override public Mono<ResponseEntity<Object>> getPolicy(String policyId, String accept, ServerWebExchange exchange) throws Exception { return policyService.getPolicyService(policyId, exchange) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override - public Mono<ResponseEntity<Flux<PolicyInformation>>> getPolicyIds(String policyTypeId, String nearRtRicId, String serviceId, String typeName, String accept, ServerWebExchange exchange) throws Exception { + public Mono<ResponseEntity<Flux<PolicyInformation>>> getAllPolicies(String policyTypeId, String nearRtRicId, String serviceId, String typeName, String accept, ServerWebExchange exchange) throws Exception { return policyService.getPolicyIdsService(policyTypeId, nearRtRicId, serviceId, typeName, exchange) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override public Mono<ResponseEntity<Object>> getPolicyTypeDefinition(String policyTypeId, String accept, ServerWebExchange exchange) throws Exception { return policyService.getPolicyTypeDefinitionService(policyTypeId) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override public Mono<ResponseEntity<Flux<PolicyTypeInformation>>> getPolicyTypes(String nearRtRicId, String typeName, String compatibleWithVersion, String accept, ServerWebExchange exchange) throws Exception { return policyService.getPolicyTypesService(nearRtRicId, typeName, compatibleWithVersion, exchange) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override public Mono<ResponseEntity<Object>> putPolicy(String policyId, Mono<Object> body, ServerWebExchange exchange) throws Exception { return body.flatMap(payload -> policyService.putPolicyService(policyId, payload, exchange)) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java index 6254a15e..89d47d7f 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java @@ -21,6 +21,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.NearRtRicRepositoryApi; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; import org.onap.ccsdk.oran.a1policymanagementservice.mappers.v3.RicRepositoryMapper; @@ -28,14 +29,14 @@ import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.RicRepositor import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.RicInfo; import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.RicInfoList; import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; -@RestController("RicRepositoryControllerV3") +@RestController("ricRepositoryControllerV3") +@RequiredArgsConstructor @Tag( name = RicRepositoryControllerV3.API_NAME, description = RicRepositoryControllerV3.API_DESCRIPTION @@ -45,26 +46,24 @@ public class RicRepositoryControllerV3 implements NearRtRicRepositoryApi { public static final String API_NAME = "NearRT-RIC Repository V3"; public static final String API_DESCRIPTION = "API used to get the NearRT-RIC for the managed element"; - @Autowired - private RicRepositoryController ricRepositoryController; - @Autowired - private RicRepositoryMapper ricRepositoryMapper; + private final RicRepositoryController ricRepositoryController; - @Autowired - ErrorHandlingService errorHandlingService; + private final RicRepositoryMapper ricRepositoryMapper; + + private final ErrorHandlingService errorHandlingService; @Override public Mono<ResponseEntity<RicInfo>> getRic(String managedElementId, String ricId, String accept, ServerWebExchange exchange) throws Exception { return ricRepositoryController.getRic(managedElementId, ricId, exchange) .map(responseEntity -> new ResponseEntity<>(ricRepositoryMapper.toRicInfoV3(responseEntity.getBody()), responseEntity.getStatusCode())) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override public Mono<ResponseEntity<RicInfoList>> getRics(String policyTypeId, String accept, ServerWebExchange exchange) throws Exception { return ricRepositoryController.getRics(policyTypeId, exchange) .map(responseEntity -> new ResponseEntity<>(ricRepositoryMapper.toRicInfoListV3(responseEntity.getBody()), responseEntity.getStatusCode())) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java index a0ffeed3..d29e37a6 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java @@ -21,6 +21,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.ServiceRegistryAndSupervisionApi; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.ServiceController; @@ -28,14 +29,14 @@ import org.onap.ccsdk.oran.a1policymanagementservice.mappers.v3.ServiceControlle import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.ServiceRegistrationInfo; import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.ServiceStatusList; import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; -@RestController("ServiceControllerV3") +@RestController("serviceControllerV3") +@RequiredArgsConstructor @Tag( // name = ServiceControllerV3.API_NAME, // description = ServiceControllerV3.API_DESCRIPTION // @@ -46,14 +47,11 @@ public class ServiceControllerV3 implements ServiceRegistryAndSupervisionApi { public static final String API_NAME = "Service Registry and Supervision"; public static final String API_DESCRIPTION = "API used to keep the service Alive with in the timeout period"; - @Autowired - private ServiceController serviceController; + private final ServiceController serviceController; - @Autowired - private ServiceControllerMapper serviceControllerMapper; + private final ServiceControllerMapper serviceControllerMapper; - @Autowired - ErrorHandlingService errorHandlingService; + private final ErrorHandlingService errorHandlingService; @Override public Mono<ResponseEntity<Object>> deleteService(String serviceId, String accept, ServerWebExchange exchange) throws Exception { @@ -65,7 +63,7 @@ public class ServiceControllerV3 implements ServiceRegistryAndSupervisionApi { return serviceController.getServices(serviceId, exchange) .map(responseEntity -> new ResponseEntity<>(serviceControllerMapper.toServiceStatusListV3( responseEntity.getBody()), responseEntity.getStatusCode())) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } @Override @@ -75,8 +73,7 @@ public class ServiceControllerV3 implements ServiceRegistryAndSupervisionApi { @Override public Mono<ResponseEntity<Object>> putService(Mono<ServiceRegistrationInfo> serviceRegistrationInfo, ServerWebExchange exchange) throws Exception { - return serviceController.putService(serviceRegistrationInfo.map(serviceRegistrationInfoV2 -> - serviceControllerMapper.toServiceRegistrationInfoV2(serviceRegistrationInfoV2)), exchange) - .doOnError(error -> errorHandlingService.handleError(error)); + return serviceController.putService(serviceRegistrationInfo.map(serviceControllerMapper::toServiceRegistrationInfoV2), exchange) + .doOnError(errorHandlingService::handleError); } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java index dbbb2fc0..5ef32901 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java @@ -21,21 +21,21 @@ package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.HealthCheckApi; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; -import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.RicRepositoryController; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.StatusController; import org.onap.ccsdk.oran.a1policymanagementservice.mappers.v3.StatusControllerMapper; import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.StatusInfo; import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; -@RestController("StatusControllerV3") +@RestController("statusControllerV3") +@RequiredArgsConstructor @Tag( // name = StatusControllerV3.API_NAME, // description = StatusControllerV3.API_DESCRIPTION // @@ -46,20 +46,18 @@ public class StatusControllerV3 implements HealthCheckApi { public static final String API_NAME = "Health Check"; public static final String API_DESCRIPTION = "API used to get the health status and statistics of this service"; - @Autowired - private StatusController statusController; - @Autowired - private StatusControllerMapper statusControllerMapper; + private final StatusController statusController; - @Autowired - ErrorHandlingService errorHandlingService; + private final StatusControllerMapper statusControllerMapper; + + private final ErrorHandlingService errorHandlingService; @Override public Mono<ResponseEntity<StatusInfo>> getStatus(ServerWebExchange exchange) throws Exception { return statusController.getStatus(exchange) .map(statusInfoResponseEntity -> new ResponseEntity<>(statusControllerMapper.toStatusInfoV3 (statusInfoResponseEntity.getBody()), statusInfoResponseEntity.getStatusCode())) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/S3ObjectStore.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/S3ObjectStore.java index 1c67ff7d..d014ad53 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/S3ObjectStore.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/S3ObjectStore.java @@ -141,7 +141,7 @@ class S3ObjectStore implements DataStore { return Mono.fromFuture(future) // .map(f -> s3Bucket) // .doOnError(t -> logger.debug("Could not create S3 bucket: {}", t.getMessage())) - .onErrorResume(t -> Mono.just(s3Bucket)); + .onErrorResume(t -> Mono.just("Not Created")); } @Override diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java index ac4320a1..af6f0abe 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java @@ -21,19 +21,19 @@ package org.onap.ccsdk.oran.a1policymanagementservice.service.v3; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.AuthorizationCheck; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.PolicyAuthorizationRequest.Input.AccessType; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policy; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; @Service +@RequiredArgsConstructor public class AuthorizationService { - @Autowired - private AuthorizationCheck authorization; + private final AuthorizationCheck authorization; public Mono<Policy> authCheck (ServerWebExchange serverWebExchange, Policy policy, AccessType accessType){ return authorization.doAccessControl(serverWebExchange.getRequest().getHeaders().toSingleValueMap(), diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/ErrorHandlingService.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/ErrorHandlingService.java index 693ae513..b445150a 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/ErrorHandlingService.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/ErrorHandlingService.java @@ -20,7 +20,6 @@ package org.onap.ccsdk.oran.a1policymanagementservice.service.v3; -import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.PolicyController; import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException; import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.ProblemDetails; import org.slf4j.Logger; diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java index a892bfa3..868a336f 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java @@ -21,6 +21,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.service.v3; import com.google.gson.Gson; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.clients.A1ClientFactory; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.PolicyAuthorizationRequest.Input.AccessType; import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts; @@ -33,7 +34,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.*; import org.onap.ccsdk.oran.a1policymanagementservice.util.v3.Helper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -47,32 +47,18 @@ import java.util.Collection; import java.util.Map; @Service +@RequiredArgsConstructor public class PolicyService { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - @Autowired - private Helper helper; - - @Autowired - private Rics rics; - - @Autowired - private PolicyTypes policyTypes; - - @Autowired - private Policies policies; - - @Autowired - private AuthorizationService authorizationService; - - @Autowired - private A1ClientFactory a1ClientFactory; - - @Autowired - private ErrorHandlingService errorHandlingService; - - @Autowired - private Gson gson; + private final Helper helper; + private final Rics rics; + private final PolicyTypes policyTypes; + private final Policies policies; + private final AuthorizationService authorizationService; + private final A1ClientFactory a1ClientFactory; + private final ErrorHandlingService errorHandlingService; + private final Gson gson; public Mono<ResponseEntity<PolicyObjectInformation>> createPolicyService (PolicyObjectInformation policyObjectInfo, ServerWebExchange serverWebExchange) { @@ -83,15 +69,15 @@ public class PolicyService { PolicyType policyType = policyTypes.getType(policyObjectInfo.getPolicyTypeId()); Policy policy = helper.buildPolicy(policyObjectInfo, policyType, ric, helper.policyIdGeneration(policyObjectInfo)); return helper.isPolicyAlreadyCreated(policy,policies) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(policyBuilt -> authorizationService.authCheck(serverWebExchange, policy, AccessType.WRITE) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(policyNotUsed -> ric.getLock().lock(Lock.LockType.SHARED, "createPolicy")) .flatMap(grant -> postPolicy(policy, grant)) .map(locationHeaderValue -> new ResponseEntity<PolicyObjectInformation>(policyObjectInfo,helper.createHttpHeaders( "location",helper.buildURI(policy.getId(), serverWebExchange)), HttpStatus.CREATED)) - .doOnError(error -> errorHandlingService.handleError(error))); + .doOnError(errorHandlingService::handleError)); } catch (Exception ex) { return Mono.error(ex); } @@ -100,15 +86,15 @@ public class PolicyService { private Mono<String> postPolicy(Policy policy, Lock.Grant grant) { return helper.checkRicStateIdle(policy.getRic()) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(ric -> helper.checkSupportedType(ric, policy.getType())) - .doOnError(error -> errorHandlingService.handleError(error)) - .flatMap(ric -> a1ClientFactory.createA1Client(ric)) + .doOnError(errorHandlingService::handleError) + .flatMap(a1ClientFactory::createA1Client) .flatMap(a1Client -> a1Client.putPolicy(policy)) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .doOnNext(policyString -> policies.put(policy)) .doFinally(releaseLock -> grant.unlockBlocking()) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } public Mono<ResponseEntity<Object>> putPolicyService(String policyId, Object body, ServerWebExchange exchange) { @@ -119,12 +105,12 @@ public class PolicyService { Policy updatedPolicy = helper.buildPolicy(pos, existingPolicy.getType(), existingPolicy.getRic(), policyId); Ric ric = existingPolicy.getRic(); return authorizationService.authCheck(exchange, updatedPolicy, AccessType.WRITE) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(policy -> ric.getLock().lock(Lock.LockType.SHARED, "updatePolicy")) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(grant -> postPolicy(updatedPolicy, grant)) .map(header -> new ResponseEntity<Object>(policies.get(updatedPolicy.getId()).getJson(), HttpStatus.OK)) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } catch(Exception ex) { return Mono.error(ex); } @@ -178,7 +164,7 @@ public class PolicyService { Policy policy = policies.getPolicy(policyId); return authorizationService.authCheck(serverWebExchange, policy, AccessType.READ) .map(x -> new ResponseEntity<Object>(policy.getJson(), HttpStatus.OK)) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } public Mono<ResponseEntity<Object>> getPolicyTypeDefinitionService(String policyTypeId) @@ -193,24 +179,24 @@ public class PolicyService { throws EntityNotFoundException { Policy singlePolicy = policies.getPolicy(policyId); return authorizationService.authCheck(serverWebExchange, singlePolicy, AccessType.WRITE) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(policy -> policy.getRic().getLock().lock(Lock.LockType.SHARED, "deletePolicy")) .flatMap(grant -> deletePolicy(singlePolicy, grant)) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } private Mono<ResponseEntity<Void>> deletePolicy(Policy policy, Lock.Grant grant) { return helper.checkRicStateIdle(policy.getRic()) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .flatMap(ric -> helper.checkSupportedType(ric, policy.getType())) - .doOnError(error -> errorHandlingService.handleError(error)) - .flatMap(ric -> a1ClientFactory.createA1Client(ric)) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) + .flatMap(a1ClientFactory::createA1Client) + .doOnError(errorHandlingService::handleError) .flatMap(a1Client -> a1Client.deletePolicy(policy)) - .doOnError(error -> errorHandlingService.handleError(error)) + .doOnError(errorHandlingService::handleError) .doOnNext(policyString -> policies.remove(policy)) .doFinally(releaseLock -> grant.unlockBlocking()) .map(successResponse -> new ResponseEntity<Void>(HttpStatus.NO_CONTENT)) - .doOnError(error -> errorHandlingService.handleError(error)); + .doOnError(errorHandlingService::handleError); } } diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java index 638d9504..0cb91353 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java @@ -22,6 +22,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.util.v3; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import lombok.RequiredArgsConstructor; import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException; import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyInformation; import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyObjectInformation; @@ -29,7 +30,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyTypeInforma import org.onap.ccsdk.oran.a1policymanagementservice.repository.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; @@ -45,14 +45,15 @@ import java.util.UUID; import java.util.stream.Collectors; @Component +@RequiredArgsConstructor public class Helper { - @Autowired - private Services services; + private final Services services; private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private static Gson gson = new GsonBuilder().create(); + private static final Gson gson = new GsonBuilder().create(); + public void keepServiceAlive(String name) { Service s = this.services.get(name); if (s != null) { |