<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
	license agreements. See the NOTICE file distributed with this work for additional
	information regarding copyright ownership. The ASF licenses this file to
	You 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>
	<artifactId>wfmanager</artifactId>
	<groupId>org.apache.ambari.contrib.views</groupId>
	<version>0.1.0.0-SNAPSHOT</version>
	<name>WF Manager View</name>
	<parent>
		<groupId>org.apache.ambari.contrib.views</groupId>
		<artifactId>ambari-contrib-views</artifactId>
		<version>2.6.2.0.0</version>
	</parent>

	<dependencies>
		<dependency>
			<groupId>org.apache.ambari.contrib.views</groupId>
			<artifactId>ambari-views-utils</artifactId>
			<version>2.6.2.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.ambari</groupId>
			<artifactId>ambari-views</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.ambari.contrib.views</groupId>
			<artifactId>ambari-views-commons</artifactId>
			<version>2.6.2.0.0</version>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-core</artifactId>
		</dependency>
		<!-- <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId>
			<version>2.2.2</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-impl</artifactId> <version>2.1.2</version> </dependency> -->
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-client</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-json</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<version>1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-common</artifactId>
			<version>${hadoop.version}</version>
			<exclusions>
				<exclusion>
					<groupId>tomcat</groupId>
					<artifactId>jasper-runtime</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-hdfs</artifactId>
			<version>${hadoop.version}</version>
			<exclusions>
				<exclusion>
					<groupId>tomcat</groupId>
					<artifactId>jasper-runtime</artifactId>
				</exclusion>
			</exclusions>
		</dependency>


	</dependencies>
	<properties>
		<uicode.dir>../</uicode.dir>
		<checkstyle.skip>true</checkstyle.skip>
                <ambari.dir>${project.parent.parent.parent.basedir}</ambari.dir>
                <ui.directory>${basedir}/src/main/resources/ui</ui.directory>
	</properties>
	<build>
		<plugins>
	      <plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-clean-plugin</artifactId>
	        <version>2.5</version>
	        <configuration>
	          <filesets>
	            <fileset>
	              <directory>${ui.directory}</directory>
	              <followSymlinks>false</followSymlinks>
	              <includes>
	                <include>tmp/**</include>
	                <!--
	                <include>node_modules/**</include>
	                <include>bower_components/**</include>
	                -->
	                <include>node/**</include>
	              </includes>
	            </fileset>
	          </filesets>
	        </configuration>
	      </plugin>
			<plugin>
				<groupId>com.github.eirslett</groupId>
				<artifactId>frontend-maven-plugin</artifactId>
				<version>1.4</version>
				<configuration>
					<nodeVersion>v4.5.0</nodeVersion>
					<yarnVersion>v0.23.2</yarnVersion>
					<workingDirectory>src/main/resources/ui/</workingDirectory>
					<npmInheritsProxyConfigFromMaven>false</npmInheritsProxyConfigFromMaven>
                    <!-- setting npm_config_tmp environment variable is a workaround for 
                     https://github.com/Medium/phantomjs/issues/673 -->
                    <environmentVariables>
                      <npm_config_tmp>/tmp/npm_config_tmp</npm_config_tmp>
                    </environmentVariables>
				</configuration>
				<executions>
					<execution>
						<id>install node and yarn</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>install-node-and-yarn</goal>
						</goals>
					</execution>
					<execution>
						<id>yarn install --pure-lockfile</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>yarn</goal>
						</goals>
						<configuration>
							<arguments>install
								--python="${project.basedir}/../src/main/unix/ambari-python-wrap"
								--unsafe-perm</arguments>
							<arguments>--ignore-engines</arguments>
						</configuration>
					</execution>
				</executions>
				</plugin>
               <plugin>
                    <artifactId>exec-maven-plugin</artifactId>
                    <groupId>org.codehaus.mojo</groupId>
                    <version>1.3.2</version>
                    <executions>
					<execution>
						<id>Bower install</id>
						<phase>generate-sources</phase>
						<goals>
						  <goal>exec</goal>
						</goals>
						<configuration>
						  <workingDirectory>${ui.directory}</workingDirectory>
						  <executable>${ui.directory}/node/${node.executable}</executable>
						  <arguments>
							<argument>${ui.directory}/node_modules/bower/bin/bower</argument>
							<argument>install</argument>
							<argument>--allow-root</argument>
						  </arguments>
						</configuration>
					  </execution>
					<execution>
						<id>Files build</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration>
							<workingDirectory>${ui.directory}</workingDirectory>
							<executable>${ui.directory}/node/${node.executable}</executable>
							<arguments>
								<argument>${ui.directory}/node_modules/.bin/${ember.executable}</argument>
								<argument>build</argument>
								<argument>-prod</argument>
							</arguments>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<phase>generate-resources</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
							<includeScope>runtime</includeScope>
						</configuration>
					</execution>
					<execution>
						<id>copy-artifact</id>
						<phase>package</phase>
						<goals>
							<goal>copy</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>${project.groupId}</groupId>
									<artifactId>${project.artifactId}</artifactId>
									<version>${project.version}</version>
									<type>${project.packaging}</type>
								</artifactItem>
							</artifactItems>
							<outputDirectory>${views.jars.dir.rel}</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>false</filtering>
				<includes>
					<include>META-INF/**/*</include>
					<include>view.xml</include>
					<include>view.log4j.properties</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources/ui/dist</directory>
				<filtering>false</filtering>
			</resource>
			<!-- <resource> <directory>src/main/resources/ui/</directory> <filtering>false</filtering>
				</resource> -->
			<resource>
				<directory>${uicode.dir}/dist</directory>
				<filtering>false</filtering>
			</resource>
			<resource>
				<targetPath>WEB-INF/lib</targetPath>
				<filtering>false</filtering>
				<directory>target/lib</directory>
			</resource>
		</resources>
	</build>
    <profiles>
      <profile>
        <id>windows</id>
        <activation>
          <os>
            <family>win</family>
          </os>
        </activation>
        <properties>
          <node.executable>node.exe</node.executable>
          <ember.executable>ember.cmd</ember.executable>
          <skip.nodegyp.chmod>true</skip.nodegyp.chmod>
        </properties>
      </profile>
      <profile>
        <id>linux</id>
        <activation>
          <os>
            <family>unix</family>
          </os>
        </activation>
        <properties>
          <node.executable>node</node.executable>
          <ember.executable>ember</ember.executable>
          <skip.nodegyp.chmod>false</skip.nodegyp.chmod>
        </properties>
      </profile>
    </profiles>
</project>
