From 9714961d2950d00ae66be01e20c1ebb8552a82e9 Mon Sep 17 00:00:00 2001 From: vasraz Date: Mon, 19 Oct 2020 16:33:00 +0100 Subject: [PATCH] Remove sdc-tosca-parser dependency Change-Id: I762b7a1098505312486d690902f2f10108a601ff Signed-off-by: Vasyl Razinkov Issue-ID: SDC-3317 --- common-be/pom.xml | 5 - .../sdc/be/config/NonManoConfigurationManager.java | 19 ++- integration-tests/pom.xml | 11 +- .../services/impl/etsi/ETSIServiceImplTest.java | 21 ++- openecomp-be/lib/openecomp-tosca-lib/pom.xml | 5 - .../sdc/tosca/services/ToscaValidationService.java | 31 ---- .../services/impl/ToscaValidationServiceImpl.java | 162 --------------------- .../impl/ToscaValidationServiceImplTest.java | 46 ------ pom.xml | 3 - 9 files changed, 39 insertions(+), 264 deletions(-) delete mode 100644 openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java delete mode 100644 openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java delete mode 100644 openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java diff --git a/common-be/pom.xml b/common-be/pom.xml index 248edb30f9..f45c25f37b 100644 --- a/common-be/pom.xml +++ b/common-be/pom.xml @@ -108,11 +108,6 @@ - - org.onap.sdc.sdc-tosca - sdc-tosca - ${sdc-tosca-parser.version} - org.projectlombok lombok diff --git a/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java b/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java index 12813f231d..640c95bf65 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java @@ -19,13 +19,12 @@ package org.openecomp.sdc.be.config; -import org.apache.commons.io.IOUtils; -import org.onap.sdc.tosca.parser.utils.YamlToObjectConverter; -import org.openecomp.sdc.be.config.exception.LoadConfigurationException; - import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import org.apache.commons.io.IOUtils; +import org.openecomp.sdc.be.config.exception.LoadConfigurationException; +import org.yaml.snakeyaml.Yaml; /** * Singleton that loads and stores the Non Mano configuration @@ -52,7 +51,7 @@ public class NonManoConfigurationManager { } catch (final IOException e) { throw new LoadConfigurationException("Could not parse non-mano configuration file 'config/nonManoConfig.yaml' to string", e); } - nonManoConfiguration = new YamlToObjectConverter().convertFromString(data, NonManoConfiguration.class); + nonManoConfiguration = convertFromString(data, NonManoConfiguration.class); } public static NonManoConfigurationManager getInstance() { @@ -66,4 +65,14 @@ public class NonManoConfigurationManager { public NonManoConfiguration getNonManoConfiguration() { return nonManoConfiguration; } + + private T convertFromString(final String yamlContents, final Class className) { + try { + return (new Yaml()).loadAs(yamlContents, className); + } catch (final Exception e) { + throw new + LoadConfigurationException(String.format("Failed to convert YAML %s to object.", yamlContents), e); + } + } + } diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 9d646721c2..8b5e614b65 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -24,7 +24,6 @@ limitations under the License. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.openecomp.sdc sdc-integration-tests jar sdc-integration-tests @@ -52,6 +51,8 @@ limitations under the License. latest 2.53.1 + + 1.6.5 @@ -182,6 +183,12 @@ limitations under the License. + + org.onap.sdc.sdc-tosca + sdc-tosca + ${sdc-tosca-parser.version} + + org.seleniumhq.selenium @@ -281,7 +288,7 @@ limitations under the License. ../catalog-be-plugins/etsi-nfv-nsd-csar-plugin/target false - etsi-nfv-nsd-csar-plugin-${version}.jar + etsi-nfv-nsd-csar-plugin-${project.version}.jar diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java index f03d561375..f5570ae4e1 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/etsi/ETSIServiceImplTest.java @@ -31,9 +31,11 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -48,12 +50,12 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; -import org.onap.sdc.tosca.parser.utils.YamlToObjectConverter; -import org.openecomp.sdc.be.config.NonManoConfiguration; import org.onap.sdc.tosca.services.YamlUtil; import org.openecomp.core.utilities.file.FileContentHandler; +import org.openecomp.sdc.be.config.NonManoConfiguration; import org.openecomp.sdc.tosca.csar.Manifest; import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; +import org.yaml.snakeyaml.Yaml; public class ETSIServiceImplTest { @@ -73,9 +75,8 @@ public class ETSIServiceImplTest { @Before public void setUp() throws IOException { - YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter(); - NonManoConfiguration configuration = yamlToObjectConverter.convert("src/test/resources", - NonManoConfiguration.class, "nonManoConfig.yaml"); + final String fullFileName = Paths.get("src", "test", "resources", "nonManoConfig.yaml").toString(); + final NonManoConfiguration configuration = convert(fullFileName, NonManoConfiguration.class); etsiService = Mockito.spy(new ETSIServiceImpl(configuration)); } @@ -290,4 +291,14 @@ public class ETSIServiceImplTest { containsString(file2Path.toString())); } + private T convert(final String fullFileName, final Class className) throws IOException { + assertTrue((new File(fullFileName)).exists()); + + try (final InputStream in = Files.newInputStream(Paths.get(fullFileName));) { + return (new Yaml()).loadAs(in, className); + } catch (final IOException e) { + throw new IOException(e); + } + } + } diff --git a/openecomp-be/lib/openecomp-tosca-lib/pom.xml b/openecomp-be/lib/openecomp-tosca-lib/pom.xml index 1d23ac4e4d..48d513dba5 100644 --- a/openecomp-be/lib/openecomp-tosca-lib/pom.xml +++ b/openecomp-be/lib/openecomp-tosca-lib/pom.xml @@ -89,11 +89,6 @@ onap-configuration-management-api ${project.version} - - org.onap.sdc.sdc-tosca - sdc-tosca - ${sdc-tosca-parser.version} - org.projectlombok lombok diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java deleted file mode 100644 index 59d7acccd4..0000000000 --- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright © 2016-2018 European Support 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. - */ - -package org.openecomp.sdc.tosca.services; - -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.sdc.datatypes.error.ErrorMessage; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -public interface ToscaValidationService { - - public Map> validate(FileContentHandler fileContentHandler) - throws IOException; - -} diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java deleted file mode 100644 index 9f3dd0790f..0000000000 --- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright © 2016-2018 European Support 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. - */ - -package org.openecomp.sdc.tosca.services.impl; - -import org.apache.commons.io.FilenameUtils; -import org.onap.sdc.tosca.parser.config.ConfigurationManager; -import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; -import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; -import org.onap.sdc.toscaparser.api.common.JToscaValidationIssue; -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.file.FileUtils; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.core.validation.ErrorMessageCode; -import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder; -import org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum; -import org.openecomp.sdc.datatypes.error.ErrorLevel; -import org.openecomp.sdc.datatypes.error.ErrorMessage; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.tosca.services.ToscaValidationService; -import org.yaml.snakeyaml.Yaml; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; - - -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - - -public class ToscaValidationServiceImpl implements ToscaValidationService { - - private static final Logger LOGGER = LoggerFactory.getLogger(ToscaValidationServiceImpl.class); - private static final String SDCPARSER_JTOSCA_VALIDATIONISSUE_CONFIG = - "SDCParser_jtosca-validation-issue-configuration.yaml"; - private static final String SDCPARSER_ERROR_CONFIG = "SDCParser_error-configuration.yaml"; - - static { - // Override default SDC Parser configuration - ConfigurationManager configurationManager = ConfigurationManager.getInstance(); - configurationManager.setJtoscaValidationIssueConfiguration(SDCPARSER_JTOSCA_VALIDATIONISSUE_CONFIG); - configurationManager.setErrorConfiguration(SDCPARSER_ERROR_CONFIG); - SdcToscaParserFactory.setConfigurationManager(configurationManager); - } - - @Override - public Map> validate(FileContentHandler fileContentHandler) - throws IOException { - - Path dir = - Files.createTempDirectory(OnboardingTypesEnum.CSAR + "_" + System.currentTimeMillis()); - try { - // Write temporary files and folders to File System - Map filePaths = FileUtils.writeFilesFromFileContentHandler - (fileContentHandler, dir); - // Process Tosca Yaml validation - return processToscaYamls(filePaths); - } finally { - // Cleanup temporary files and folders from file system - org.apache.commons.io.FileUtils.deleteDirectory(dir.toFile()); - } - } - - private Map> processToscaYamls(Map filePaths) { - Map validFilePaths = getValidFilePaths(filePaths); - Map> validationIssues = new HashMap<>(); - - // Process Yaml Files - for (Map.Entry fileEntry : validFilePaths.entrySet()) { - try { - SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); - factory.getSdcCsarHelper(fileEntry.getValue()); - processValidationIssues(fileEntry.getKey(), factory, validationIssues); - } catch (SdcToscaParserException stpe) { - LOGGER.error("SDC Parser Exception from SDC Parser Library : " + stpe); - ErrorMessage.ErrorMessageUtil.addMessage(fileEntry.getKey(), validationIssues).add( - new ErrorMessage(ErrorLevel.ERROR, ErrorMessagesFormatBuilder - .getErrorWithParameters(new ErrorMessageCode("JE000"), "Unexpected Error " - + "occurred"))); - } - catch (RuntimeException rte) { - LOGGER.error("Runtime Exception from SDC Parser Library : " + rte); - ErrorMessage.ErrorMessageUtil.addMessage(fileEntry.getKey(), validationIssues).add( - new ErrorMessage(ErrorLevel.ERROR, ErrorMessagesFormatBuilder - .getErrorWithParameters(new ErrorMessageCode("JE000"), "Unexpected Error " - + "occurred"))); - } - } - return validationIssues; - } - - private Map getValidFilePaths(Map filePaths) { - return filePaths.entrySet() - .stream() - .filter(map -> FileUtils.isValidYamlExtension(FilenameUtils.getExtension(map.getKey())) - && isToscaYaml(map.getValue())) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - } - - private boolean isToscaYaml(final String filePath) { - boolean retValue = false; - - try (final InputStream input = new BufferedInputStream(new FileInputStream(new File(filePath)));) { - final Yaml yaml = new Yaml(); - final LinkedHashMap data = (LinkedHashMap) yaml.load(input); - if(data.get(ToscaTagNamesEnum.TOSCA_VERSION.getElementName()) != null) { - retValue = true; - } - } - catch(final Exception e){ - LOGGER.info("Ignore the exception as the input file may not be a Tosca Yaml; let the " + - "default value return", e); - } - return retValue; - } - - private void processValidationIssues(String fileName, SdcToscaParserFactory factory, Map> validationIssues) { - - List criticalsReport = factory.getCriticalExceptions(); - criticalsReport.stream().forEach(err -> - ErrorMessage.ErrorMessageUtil.addMessage(fileName, validationIssues).add( - new ErrorMessage(ErrorLevel.ERROR, ErrorMessagesFormatBuilder - .getErrorWithParameters(new ErrorMessageCode(err.getCode()), err.getMessage())))); - - List warningsReport = factory.getWarningExceptions(); - warningsReport.stream().forEach(err -> - ErrorMessage.ErrorMessageUtil.addMessage(fileName, validationIssues).add( - new ErrorMessage(ErrorLevel.WARNING, ErrorMessagesFormatBuilder - .getErrorWithParameters(new ErrorMessageCode(err.getCode()), err.getMessage())))); - - List notAnalyzedReport = factory.getNotAnalyzadExceptions(); - notAnalyzedReport.stream().forEach(err -> - ErrorMessage.ErrorMessageUtil.addMessage(fileName, validationIssues).add( - new ErrorMessage(ErrorLevel.WARNING, ErrorMessagesFormatBuilder - .getErrorWithParameters(new ErrorMessageCode(err.getCode()), err.getMessage())))); - - } - -} diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java deleted file mode 100644 index c9ceb363a4..0000000000 --- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright © 2016-2018 European Support 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. - */ - -package org.openecomp.sdc.tosca.services.impl; - -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.openecomp.core.utilities.file.FileContentHandler; -import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum; -import org.openecomp.sdc.common.utils.CommonUtil; -import org.openecomp.sdc.datatypes.error.ErrorMessage; -import org.openecomp.sdc.tosca.services.ToscaValidationService; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.assertFalse; - -public class ToscaValidationServiceImplTest { - - @Test - public void validateCSARContentErrorHandling() throws IOException { - String resName = "/mock/validationService/csar/resource-Spgw-csar-ZTE.csar"; - byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(resName)); - FileContentHandler contentMap = - CommonUtil.validateAndUploadFileContent(OnboardingTypesEnum.CSAR, uploadedFileData); - ToscaValidationService handler = new ToscaValidationServiceImpl(); - Map> errors = handler.validate(contentMap); - assertFalse(errors.isEmpty()); - } - -} diff --git a/pom.xml b/pom.xml index 836d11a625..436dcf0fa8 100644 --- a/pom.xml +++ b/pom.xml @@ -125,9 +125,6 @@ Modifications copyright (c) 2018-2019 Nokia 2.22.2 2.4 - - 1.6.5 - ${project.version} ${project.basedir}/node/node -- 2.16.6