<!--
  ~ Copyright © 2016-2018 European Support Limited
  ~ Copyright © 2020-2021 Nokia
  ~
  ~ 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.
  -->

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://maven.apache.org/POM/4.0.0"
  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>

  <name>openecomp-sdc-validation-impl</name>
  <artifactId>openecomp-sdc-validation-impl</artifactId>


  <parent>
    <groupId>org.openecomp.sdc</groupId>
    <artifactId>openecomp-sdc-validation-lib</artifactId>
    <version>1.9.0-SNAPSHOT</version>
  </parent>

  <dependencies>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc</groupId>
      <artifactId>openecomp-sdc-logging-core</artifactId>
      <version>${project.version}</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc</groupId>
      <artifactId>openecomp-sdc-logging-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc.core</groupId>
      <artifactId>openecomp-utilities-lib</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc</groupId>
      <artifactId>openecomp-sdc-validation-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc.core</groupId>
      <artifactId>openecomp-common-lib</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc.core</groupId>
      <artifactId>openecomp-heat-lib</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${commons.io.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.openecomp.sdc</groupId>
      <artifactId>openecomp-sdc-validation-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.vnfsdk.validation</groupId>
      <artifactId>validation-pmdictionary</artifactId>
      <version>${onap.vnfsdk.validation.pmdictionary.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-slf4j-impl</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.vavr</groupId>
      <artifactId>vavr</artifactId>
      <version>${io.vavr.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpmime</artifactId>
      <version>${httpclient.version}</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

</project>
