<?xml version="1.0" encoding="UTF-8"?>
<!--

  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="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>

  <parent>
    <groupId>org.apache.royale.framework</groupId>
    <artifactId>royale-framework-parent</artifactId>
    <version>0.9.8-SNAPSHOT</version>
  </parent>

  <groupId>org.apache.royale.examples</groupId>
  <artifactId>examples</artifactId>
  <version>0.9.8-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Royale: Examples</name>

  <properties>
    <compiler.output-dir>${basedir}/target/javascript/bin/js-debug</compiler.output-dir>
    <compiler.output-dir-debug>${basedir}/target/javascript/bin/js-debug</compiler.output-dir-debug>
    <!-- In Release mode we only want to copy assets folder content to assets destination folder, the rest is managed by compiler -->
    <compiler.output-dir-release>${basedir}/target/javascript/bin/js-release</compiler.output-dir-release>
    <royale.framework.version>0.9.7-SNAPSHOT</royale.framework.version>
  </properties>

  <modules>
    <module>express</module>
    <module>royale</module>
    <module>mxroyale</module>
    <module>blog</module>
    <module>native</module>
    <module>node</module>
    <module>amf</module>
    <module>crux</module>
    <module>jewel</module>
    <module>examples-tests</module>
  </modules>

  <build>
    <sourceDirectory>src/main/royale</sourceDirectory>
    <pluginManagement>
      <plugins>
        <!-- Copy the resources to the compiler output directory -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <executions>
            <execution>
              <id>copy-resources-debug</id>
              <phase>validate</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <outputDirectory>${compiler.output-dir-debug}</outputDirectory>
                <resources>
                  <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                  </resource>
                </resources>
              </configuration>
            </execution>
            <execution>
              <id>copy-resources-release</id>
              <phase>validate</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <!-- Copy the assets to the assets output directory -->
                <outputDirectory>${compiler.output-dir-release}/assets</outputDirectory>
                <resources>
                  <resource>
                    <directory>src/main/resources/assets</directory>
                    <filtering>true</filtering>
                  </resource>
                </resources>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.royale.compiler</groupId>
          <artifactId>royale-maven-plugin</artifactId>
          <extensions>true</extensions>
        </plugin>
        <plugin>
          <groupId>org.jboss.errai</groupId>
          <artifactId>cordova-maven-plugin</artifactId>
          <version>4.0.0.Beta3</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <!-- Makes it possible to run the example directly by running 'mvn tomcat7:run' -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <ignorePackaging>true</ignorePackaging>
          <port>8081</port>
          <warSourceDirectory>${project.build.directory}/${project.artifactId}-${project.version}</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!--
        When doing a build for release artifacts, tell the war plugin to package a different directory.
  -->
  <profiles>
    <profile>
      <id>apache-release</id>
      <properties>
        <compiler.output-dir>${basedir}/target/javascript/bin/js-release</compiler.output-dir>
      </properties>
    </profile>

    <profile>
      <id>with-ui-testsuite</id>
      <modules>
        <module>examples-integrationtests</module>
      </modules>
    </profile>

    <profile>
      <id>with-cordova</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.jboss.errai</groupId>
              <artifactId>cordova-maven-plugin</artifactId>
              <version>4.0.0.Beta3</version>
              <executions>
                <execution>
                  <id>build</id>
                  <phase>package</phase>
                  <goals>
                    <goal>build-project</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>

</project>
