Remove sdc-tosca-parser dependency 71/113971/4
authorvasraz <vasyl.razinkov@est.tech>
Mon, 19 Oct 2020 15:33:00 +0000 (16:33 +0100)
committerS�bastien Determe <sebastien.determe@intl.att.com>
Fri, 23 Oct 2020 14:26:12 +0000 (14:26 +0000)
Change-Id: I762b7a1098505312486d690902f2f10108a601ff
Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech>
Issue-ID: SDC-3317

common-be/pom.xml
common-be/src/main/java/org/openecomp/sdc/be/config/NonManoConfigurationManager.java
integration-tests/pom.xml
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
openecomp-be/lib/openecomp-tosca-lib/pom.xml
openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/ToscaValidationService.java [deleted file]
openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImpl.java [deleted file]
openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaValidationServiceImplTest.java [deleted file]
pom.xml

index 248edb3..f45c25f 100644 (file)
         </exclusion>
       </exclusions>
     </dependency>
-    <dependency>
-      <groupId>org.onap.sdc.sdc-tosca</groupId>
-      <artifactId>sdc-tosca</artifactId>
-      <version>${sdc-tosca-parser.version}</version>
-    </dependency>
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
index 12813f2..640c95b 100644 (file)
 
 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> T convertFromString(final String yamlContents, final Class<T> 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);
+        }
+    }
+
 }
index 9d64672..8b5e614 100644 (file)
@@ -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">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.openecomp.sdc</groupId>
     <artifactId>sdc-integration-tests</artifactId>
     <packaging>jar</packaging>
     <name>sdc-integration-tests</name>
@@ -52,6 +51,8 @@ limitations under the License.
         <it.docker.version>latest</it.docker.version>
         <it.ui.firefox.version>2.53.1</it.ui.firefox.version>
 
+        <!-- parser-->
+        <sdc-tosca-parser.version>1.6.5</sdc-tosca-parser.version>
     </properties>
 
     <dependencies>
@@ -182,6 +183,12 @@ limitations under the License.
             </exclusions>
         </dependency>
 
+        <dependency>
+            <groupId>org.onap.sdc.sdc-tosca</groupId>
+            <artifactId>sdc-tosca</artifactId>
+            <version>${sdc-tosca-parser.version}</version>
+        </dependency>
+
         <!--FOR the Frontend -->
         <dependency>
             <groupId>org.seleniumhq.selenium</groupId>
@@ -281,7 +288,7 @@ limitations under the License.
                                     <directory>../catalog-be-plugins/etsi-nfv-nsd-csar-plugin/target</directory>
                                     <filtering>false</filtering>
                                     <includes>
-                                        <include>etsi-nfv-nsd-csar-plugin-${version}.jar</include>
+                                        <include>etsi-nfv-nsd-csar-plugin-${project.version}.jar</include>
                                     </includes>
                                 </resource>
                             </resources>
index f03d561..f5570ae 100644 (file)
@@ -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> T convert(final String fullFileName, final Class<T> 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);
+        }
+    }
+
 }
index 1d23ac4..48d513d 100644 (file)
       <artifactId>onap-configuration-management-api</artifactId>
       <version>${project.version}</version>
     </dependency>
-    <dependency>
-      <groupId>org.onap.sdc.sdc-tosca</groupId>
-      <artifactId>sdc-tosca</artifactId>
-      <version>${sdc-tosca-parser.version}</version>
-    </dependency>
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
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 (file)
index 59d7acc..0000000
+++ /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<String, List<ErrorMessage>> 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 (file)
index 9f3dd07..0000000
+++ /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<String, List<ErrorMessage>> validate(FileContentHandler fileContentHandler)
-      throws IOException {
-
-    Path dir =
-        Files.createTempDirectory(OnboardingTypesEnum.CSAR + "_" + System.currentTimeMillis());
-    try {
-      // Write temporary files and folders to File System
-      Map<String, String> 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<String, List<ErrorMessage>> processToscaYamls(Map<String, String> filePaths) {
-    Map<String, String> validFilePaths = getValidFilePaths(filePaths);
-    Map<String, List<ErrorMessage>> validationIssues = new HashMap<>();
-
-    // Process Yaml Files
-    for (Map.Entry<String, String> 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<String, String> getValidFilePaths(Map<String, String> 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<String,Object> 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<String,
-      List<ErrorMessage>> validationIssues) {
-
-    List<JToscaValidationIssue> 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<JToscaValidationIssue> 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<JToscaValidationIssue> 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 (file)
index c9ceb36..0000000
+++ /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<String, List<ErrorMessage>> errors = handler.validate(contentMap);
-    assertFalse(errors.isEmpty());
-  }
-
-}
diff --git a/pom.xml b/pom.xml
index 836d11a..436dcf0 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -125,9 +125,6 @@ Modifications copyright (c) 2018-2019 Nokia
         <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
         <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
 
-        <!-- parser-->
-        <sdc-tosca-parser.version>1.6.5</sdc-tosca-parser.version>
-
         <!-- sonar -->
         <sonar.projectVersion>${project.version}</sonar.projectVersion>
         <sonar.nodejs.executable>${project.basedir}/node/node</sonar.nodejs.executable>