<?xml version="1.0"?>
<!--
/**
 * Copyright (c) 2017 ZTE Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and the Apache License 2.0 which both accompany this distribution,
 * and are available at http://www.eclipse.org/legal/epl-v10.html
 * and http://www.apache.org/licenses/LICENSE-2.0
 *
 * Contributors:
 *     ZTE - initial API and implementation and/or initial documentation
 */
-->
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <parent>
        <groupId>org.onap.sdc.sdc-workflow-designer</groupId>
        <artifactId>sdc-workflow-designer</artifactId>
        <version>1.1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.onap.sdc.sdc-workflow-designer</groupId>
    <artifactId>sdc-workflow-designer-ui</artifactId>
    <name>sdc-workflow-designer-ui</name>
    <packaging>jar</packaging>

    <properties>
        <frontend-maven-plugin-version>1.4</frontend-maven-plugin-version>
        <version.output>target/version</version.output>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <!-- Use the latest released version: https://repo1.maven.org/maven2/com/github/eirslett/frontend-maven-plugin/ -->
                <version>${frontend-maven-plugin-version}</version>

                <configuration>
                </configuration>

                <executions>
                    <execution>
                        <id>install node and npm</id>
                        <goals>
                            <goal>install-node-and-npm</goal>
                        </goals>
                        <configuration>
                            <!-- See https://nodejs.org/en/download/ for
                                latest node and npm (lts) versions -->
                            <nodeVersion>v8.2.1</nodeVersion>
                            <npmVersion>5.3.0</npmVersion>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm install</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>install</arguments>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm run build</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>run build</arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
        
        <resources>  
            <resource>
                <targetPath>workflow-modeler</targetPath>
                <directory>dist</directory>  
                <includes>  
                    <include>**/**</include>
                </includes>
                <filtering>false</filtering>  
            </resource>  
        </resources>
    </build>
</project>
