From: Claudio D. Gasparini Date: Mon, 24 May 2021 16:26:18 +0000 (+0200) Subject: Fix Sonar complains X-Git-Tag: 1.0.0~9 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=f121f2f8d97126ab1f4e15e616d3cb82ba02cc91;p=oam%2Fnf-oam-adopter.git Fix Sonar complains remove duplicate code Issue-ID: OAM-215 Signed-off-by: Claudio D. Gasparini Change-Id: I19caf11e350448d859ba86a9a1f0bbf11c89d7d9 --- diff --git a/ves-nf-oam-adopter/ves-nf-oam-adopter-api/pom.xml b/ves-nf-oam-adopter/ves-nf-oam-adopter-api/pom.xml index a75acbe..ce36d7a 100644 --- a/ves-nf-oam-adopter/ves-nf-oam-adopter-api/pom.xml +++ b/ves-nf-oam-adopter/ves-nf-oam-adopter-api/pom.xml @@ -53,6 +53,22 @@ io.reactivex.rxjava3 rxjava + + jakarta.annotation + jakarta.annotation-api + + + org.slf4j + slf4j-api + + + org.apache.commons + commons-configuration2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + diff --git a/ves-nf-oam-adopter/ves-nf-oam-adopter-api/src/main/java/org/o/ran/oam/nf/oam/adopter/spi/MapperConfigProvider.java b/ves-nf-oam-adopter/ves-nf-oam-adopter-api/src/main/java/org/o/ran/oam/nf/oam/adopter/spi/MapperConfigProvider.java new file mode 100644 index 0000000..d1cdbba --- /dev/null +++ b/ves-nf-oam-adopter/ves-nf-oam-adopter-api/src/main/java/org/o/ran/oam/nf/oam/adopter/spi/MapperConfigProvider.java @@ -0,0 +1,72 @@ +/* + * ============LICENSE_START======================================================= + * O-RAN-SC + * ================================================================================ + * Copyright © 2021 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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.o.ran.oam.nf.oam.adopter.spi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import java.io.IOException; +import java.io.StringWriter; +import java.nio.file.Paths; +import javax.annotation.PostConstruct; +import org.apache.commons.configuration2.YAMLConfiguration; +import org.apache.commons.configuration2.builder.ConfigurationBuilderEvent; +import org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder; +import org.apache.commons.configuration2.builder.fluent.Parameters; +import org.apache.commons.configuration2.ex.ConfigurationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public abstract class MapperConfigProvider { + + private static final Logger LOG = LoggerFactory.getLogger(MapperConfigProvider.class); + + private static final ObjectMapper YAML_READER = new ObjectMapper(new YAMLFactory()); + private ReloadingFileBasedConfigurationBuilder builder; + + /** + * Initialize Service. + */ + @PostConstruct + public final void init() throws IOException, ConfigurationException { + final var filePath = Paths.get(getMappingFilePath()).toUri(); + builder = new ReloadingFileBasedConfigurationBuilder<>(YAMLConfiguration.class) + .configure(new Parameters().hierarchical().setURL(filePath.toURL())); + builder.addEventListener(ConfigurationBuilderEvent.CONFIGURATION_REQUEST, event -> { + builder.getReloadingController().checkForReloading(null); + LOG.debug("Reloading {}", filePath); + }); + //Test initial configuration + builder.getConfiguration(); + } + + public abstract String getMappingFilePath(); + + /** + * Provide VES Mapping configuration. + */ + public final T getVesMappingConfiguration() throws ConfigurationException, IOException { + final YAMLConfiguration configuration = builder.getConfiguration(); + final var output = new StringWriter(); + configuration.write(output); + return YAML_READER.readValue(output.toString(), getClazz()); + } + + public abstract Class getClazz(); +} diff --git a/ves-nf-oam-adopter/ves-nf-oam-adopter-pm-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/pm/rest/manager/PerformanceManagementMapperConfigProvider.java b/ves-nf-oam-adopter/ves-nf-oam-adopter-pm-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/pm/rest/manager/PerformanceManagementMapperConfigProvider.java index 04b5067..65d2c63 100644 --- a/ves-nf-oam-adopter/ves-nf-oam-adopter-pm-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/pm/rest/manager/PerformanceManagementMapperConfigProvider.java +++ b/ves-nf-oam-adopter/ves-nf-oam-adopter-pm-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/pm/rest/manager/PerformanceManagementMapperConfigProvider.java @@ -19,59 +19,24 @@ package org.o.ran.oam.nf.oam.adopter.pm.rest.manager; -import static java.util.Objects.requireNonNull; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import java.io.IOException; -import java.io.StringWriter; -import java.nio.file.Paths; -import javax.annotation.PostConstruct; -import org.apache.commons.configuration2.YAMLConfiguration; -import org.apache.commons.configuration2.builder.ConfigurationBuilderEvent; -import org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder; -import org.apache.commons.configuration2.builder.fluent.Parameters; -import org.apache.commons.configuration2.ex.ConfigurationException; import org.o.ran.oam.nf.oam.adopter.pm.rest.manager.pojos.VesMappingConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.o.ran.oam.nf.oam.adopter.spi.MapperConfigProvider; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service -public class PerformanceManagementMapperConfigProvider { - - private static final Logger LOG = LoggerFactory.getLogger(PerformanceManagementMapperConfigProvider.class); +public class PerformanceManagementMapperConfigProvider extends MapperConfigProvider { - private static final ObjectMapper YAML_READER = new ObjectMapper(new YAMLFactory()); @Value("${pm-rest-manager.mapping-config-path:#{null}}") private String mappingFilePath; - private ReloadingFileBasedConfigurationBuilder builder; - /** - * Initialize Service. - */ - @PostConstruct - public void init() throws IOException, ConfigurationException { - requireNonNull(mappingFilePath); - final var filePath = Paths.get(mappingFilePath).toUri(); - builder = new ReloadingFileBasedConfigurationBuilder<>(YAMLConfiguration.class) - .configure(new Parameters().hierarchical().setURL(filePath.toURL())); - builder.addEventListener(ConfigurationBuilderEvent.CONFIGURATION_REQUEST, event -> { - builder.getReloadingController().checkForReloading(null); - LOG.debug("Reloading {}", filePath); - }); - //Test initial configuration - builder.getConfiguration(); + @Override + public String getMappingFilePath() { + return mappingFilePath; } - /** - * Provide VES Mapping configuration. - */ - public VesMappingConfiguration getVesMappingConfiguration() throws ConfigurationException, IOException { - final YAMLConfiguration configuration = builder.getConfiguration(); - final var output = new StringWriter(); - configuration.write(output); - return YAML_READER.readValue(output.toString(), VesMappingConfiguration.class); + @Override + public Class getClazz() { + return VesMappingConfiguration.class; } } diff --git a/ves-nf-oam-adopter/ves-nf-oam-adopter-snmp-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/snmp/manager/SnmpMappingConfigurationProvider.java b/ves-nf-oam-adopter/ves-nf-oam-adopter-snmp-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/snmp/manager/SnmpMappingConfigurationProvider.java index 1cd98be..54b92e8 100644 --- a/ves-nf-oam-adopter/ves-nf-oam-adopter-snmp-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/snmp/manager/SnmpMappingConfigurationProvider.java +++ b/ves-nf-oam-adopter/ves-nf-oam-adopter-snmp-manager/src/main/java/org/o/ran/oam/nf/oam/adopter/snmp/manager/SnmpMappingConfigurationProvider.java @@ -19,22 +19,8 @@ package org.o.ran.oam.nf.oam.adopter.snmp.manager; -import static java.util.Objects.requireNonNull; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import java.io.IOException; -import java.io.StringWriter; -import java.nio.file.Paths; -import javax.annotation.PostConstruct; -import org.apache.commons.configuration2.YAMLConfiguration; -import org.apache.commons.configuration2.builder.ConfigurationBuilderEvent; -import org.apache.commons.configuration2.builder.ReloadingFileBasedConfigurationBuilder; -import org.apache.commons.configuration2.builder.fluent.Parameters; -import org.apache.commons.configuration2.ex.ConfigurationException; import org.o.ran.oam.nf.oam.adopter.snmp.manager.pojos.VesMappingConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.o.ran.oam.nf.oam.adopter.spi.MapperConfigProvider; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -42,41 +28,18 @@ import org.springframework.stereotype.Service; * Reads and listens for changes on snmp mapping configuration. */ @Service -public class SnmpMappingConfigurationProvider { - private static final Logger LOG = LoggerFactory.getLogger(SnmpMappingConfigurationProvider.class); +public class SnmpMappingConfigurationProvider extends MapperConfigProvider { - private static final ObjectMapper YAML_READER = new ObjectMapper(new YAMLFactory()); @Value("${snmp-manager.mapping-config-path:#{null}}") private String mappingFilePath; - private ReloadingFileBasedConfigurationBuilder builder; - /** - * Initialize service. - * @throws IOException on error - */ - @PostConstruct - public void init() throws IOException, ConfigurationException { - requireNonNull(mappingFilePath); - final var filePath = Paths.get(mappingFilePath).toUri(); - builder = new ReloadingFileBasedConfigurationBuilder<>(YAMLConfiguration.class) - .configure(new Parameters().hierarchical().setURL(filePath.toURL())); - builder.addEventListener(ConfigurationBuilderEvent.CONFIGURATION_REQUEST, event -> { - builder.getReloadingController().checkForReloading(null); - LOG.info("Reloading {}", filePath); - }); - //Test initial configuration - builder.getConfiguration(); + @Override + public String getMappingFilePath() { + return mappingFilePath; } - /** - * Reads VesMappingConfiguration from yaml file. - * - * @return Ves Mapping Configuration - */ - public VesMappingConfiguration getVesMappingConfiguration() throws ConfigurationException, IOException { - final YAMLConfiguration configuration = builder.getConfiguration(); - final var output = new StringWriter(); - configuration.write(output); - return YAML_READER.readValue(output.toString(), VesMappingConfiguration.class); + @Override + public Class getClazz() { + return VesMappingConfiguration.class; } }