<?xml version="1.0" encoding="UTF-8"?>
<!--/*-
        * ============LICENSE_START=======================================================
        * OSAM Core
        * ================================================================================
        * Copyright (C) 2018 AT&T
        * ================================================================================
        * 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=========================================================
        */-->

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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.onap.osam</groupId>
    <artifactId>osam-core-ext-services-simulator</artifactId>
    <version>1.0.0</version>
    <name>OSAM Core Simulator</name>
    <packaging>war</packaging>
    <description>OSAM Core Simulator for mocking external peers</description>

    <properties>
        <encoding>UTF-8</encoding>
        <epsdk.version>1.3.0</epsdk.version>
        <springframework.version>4.2.0.RELEASE</springframework.version>
        <hibernate.version>4.3.11.Final</hibernate.version>
        <!-- Skip assembling the zip by default -->
        <skipassembly>true</skipassembly>
        <!-- Tests usually require some setup that maven cannot do, so skip. -->
        <skiptests>true</skiptests>
        <!-- this should be commented for local debugging -->
        <!-- <deployenv>local</deployenv> -->
        <nexusproxy>https://nexus.onap.org</nexusproxy>
        <stagingNexusPath>content/repositories/staging/</stagingNexusPath>
        <snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
        <releaseNexusPath>content/repositories/releases/</releaseNexusPath>

        <!-- "none" will skip cobertura by default; enable the profile "cobertura" to enable it -->
        <coberturaBuildPhase>none</coberturaBuildPhase>
    </properties>


    <!--distributionManagement>
        <repository>
            <id>vid-releases</id>
            <name>VID Release Repository</name>
            <url>https://162.242.254.138:8443/repository/maven-releases</url>
        </repository>

        <snapshotRepository>
            <id>vid-snapshots</id>
            <name>VID Snapshot Repository</name>
            <url>https://162.242.254.138:8443/repository/maven-snapshots</url>
        </snapshotRepository>
    </distributionManagement-->


    <profiles>

        <profile>
            <id>onap</id>

            <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
                <epsdk.version>1.1.0-SNAPSHOT</epsdk.version>
                <nexusproxy>https://nexus.onap.org</nexusproxy>
                <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
                <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
                <stagingNexusPath>/content/repositories/staging/</stagingNexusPath>
                <sitePath>/content/sites/site/org/openecomp/vid/${project.version}</sitePath>
            </properties>

            <repositories>
                <repository>
                    <id>oss-snapshots</id>
                    <name>oss Central - Snapshots</name>
                    <url>https://oss.sonatype.org/service/local/repositories/releases/content/</url>
                </repository>
            </repositories>
        </profile>

        <profile>
            <id>default</id>


        </profile>

        <!-- disable doclint, a new feature in Java 8, when generating javadoc -->
        <profile>
            <id>doclint-java8-disable</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.4</version>
                        <configuration>
                            <additionalparam>-Xdoclint:none</additionalparam>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>cobertura</id>
            <properties>
                <coberturaBuildPhase>package</coberturaBuildPhase>
            </properties>
        </profile>
    </profiles>

    <dependencies>
        <!-- mockserver -->
        <dependency>
            <groupId>org.mock-server</groupId>
            <artifactId>mockserver-netty</artifactId>
            <version>3.11</version>
        </dependency>
         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.4.RELEASE</version>
        </dependency>
         <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.7</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2.11</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>simulator</finalName>
        <plugins>
             <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>1.16</version>
                <configuration>
                    <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
                    <processStartTag>============LICENSE_START=======================================================</processStartTag>
                    <processEndTag>============LICENSE_END=========================================================</processEndTag>
                    <sectionDelimiter>================================================================================</sectionDelimiter>
                    <licenseName>apache_v2</licenseName>
                    <inceptionYear>2018</inceptionYear>
                    <organizationName>AT&amp;T</organizationName>
                    <projectName>OSAM</projectName>
                    <canUpdateCopyright>true</canUpdateCopyright>
                    <canUpdateDescription>true</canUpdateDescription>
                    <canUpdateLicense>true</canUpdateLicense>
                    <emptyLineAfterHeader>true</emptyLineAfterHeader>
                    <verbose>false</verbose>
                    <includes>
                        <include>**/*.java</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <id>first</id>
                        <goals>
                            <goal>update-file-header</goal>
                        </goals>
                        <phase>process-sources</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>