<?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</groupId>
    <artifactId>apache</artifactId>
    <version>18</version>
    <relativePath />
  </parent>

  <groupId>org.apache.royale.framework</groupId>
  <artifactId>royale-framework-parent</artifactId>
  <version>0.9.7-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Royale: Framework: Parent</name>
  <description>The Apache Royale Project</description>

  <!--
        This build builds only the framework libraries per default.
        - In order to build the examples, activate the "build-examples" profile
        - In order to assemble a distribution, activate the "build-distribution" profile.
  -->

  <scm>
    <connection>scm:git:https://github.com/apache/royale-asjs.git</connection>
    <developerConnection>scm:git:https://github.com/apache/royale-asjs.git</developerConnection>
    <url>scm:git:https://github.com/apache/royale-asjs.git</url>
    <tag>HEAD</tag>
  </scm>

  <properties>
    <java.version>1.6</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
    <maven.version>3.5.4</maven.version>

    <royale.compiler.version>0.9.6-SNAPSHOT</royale.compiler.version>
    <royale.typedefs.version>0.9.6-SNAPSHOT</royale.typedefs.version>
    <royale.build-tools.version>1.0.0</royale.build-tools.version>
    <royale.swc-date>2/10/19 9:06 -0800</royale.swc-date>

    <royale.example.targets>JSRoyale</royale.example.targets>
    
    <royale.skipAS>true</royale.skipAS>
    <royale.debug>true</royale.debug>
    <repo.compiler.options />
    
    <flex.version>4.15.0</flex.version>
    <flash.version>20.0</flash.version>
    <air.version>20.0</air.version>
    <!-- For SWF versions see: http://www.adobe.com/devnet/articles/flashplayer-air-feature-list.html -->
    <swf.version>31</swf.version>
    <source.map>true</source.map>
    
    <selenium.version>3.4.0</selenium.version>
    <junit.version>4.12</junit.version>
    <skipgpg>false</skipgpg>

    <!-- URL of the ASF SonarQube server -->
    <sonar.host.url>https://builds.apache.org/analysis</sonar.host.url>
    <!-- Exclude all generated code -->
    <sonar.exclusions>file:**/generated-sources/**</sonar.exclusions>
  </properties>

  <!-- Only configure the site distribution as the rest is handled by the apache parent -->
  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>scm:git:https://git-wip-us.apache.org/repos/asf/royale-asjs.git</url>
    </site>
  </distributionManagement>

  <issueManagement>
    <system>Jira</system>
    <url>https://github.com/apache/royale-asjs/issues</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>Apache Royale User List</name>
      <subscribe>users-subscribe@royale.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@royale.apache.org</unsubscribe>
      <post>users@royale.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/royale-users/</archive>
    </mailingList>
    <mailingList>
      <name>Apache Royale Developer List</name>
      <subscribe>dev-subscribe@royale.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@royale.apache.org</unsubscribe>
      <post>dev@royale.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/royale-dev/</archive>
    </mailingList>
  </mailingLists>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <configuration>
            <skip>${skipgpg}</skip><!--true to skip gpg if building release on CI server -->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.royale.compiler</groupId>
          <artifactId>royale-maven-plugin</artifactId>
          <version>${royale.compiler.version}</version>
          <extensions>true</extensions>
          <configuration>
            <targetPlayer>${flash.version}</targetPlayer>
            <debug>${royale.debug}</debug>
            <keepAs3Metadata>
              <name>Bindable</name>
              <name>Managed</name>
              <name>ChangeEvent</name>
              <name>NonCommittingChangeEvent</name>
              <name>Transient</name>
              <name>Mixin</name>
            </keepAs3Metadata>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.royale.compiler</groupId>
              <artifactId>compiler-jx</artifactId>
              <version>${royale.compiler.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>

        <plugin>
          <groupId>nl.geodienstencentrum.maven</groupId>
          <artifactId>sass-maven-plugin</artifactId>
          <version>3.6.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>3.0.0-SNAPSHOT</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-plugin</artifactId>
          <version>1.10.0</version>
        </plugin>
<!--
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>3.2</version>
        </plugin>-->
      </plugins>
    </pluginManagement>
    <plugins>
      <!-- Check if all source files have the required apache license headers -->
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.12</version>
        <executions>
          <execution>
            <id>license-check</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <!-- JSON files can't contain comments -->
            <exclude>**/*.json</exclude>
            <!-- This is appended to the LICENSE file for binary packages-->
            <exclude>LICENSE.bin</exclude>
            <!-- READMEs don't have headers -->
            <exclude>README.md</exclude>
            <exclude>npm/README.md</exclude>
            <!-- RELEASE_NOTES don't have headers either -->
            <exclude>**/RELEASE_NOTES.md</exclude>

            <!-- Stuff that needs to be removed -->
            <exclude>fxg2svg/**</exclude>
            <exclude>vf2js/**</exclude>
            <!-- Should probably also be removed -->
            <exclude>js/*jshint*</exclude>
            <!-- FlashBuilder settings. frameworks/fb.properties contains Alex' path entries and should be removed -->
            <exclude>fb.properties</exclude>
            <!-- FlashBuilder / Eclipse settings. If checked in, they should have apache headers -->
            <exclude>**/.settings/**</exclude>
            <!-- Ignore IntelliJ IDEA project files -->
            <exclude>**/*.iml</exclude>
            <exclude>**/.idea/**</exclude>
            <!-- SASS cc.map generated files by sass-maven-plugin-->
            <exclude>**/*.css.map</exclude>
            <!-- swfobject.js is MIT License-->
            <exclude>**/swfobject.js</exclude>
            <!-- audio file doesn't have rat-able license-->
            <exclude>**/ping.mp3</exclude>
            <!--
                Exclude any eventually existing content of target directories.
                Some times when building with a bigger maven reactor and then
                with a smaller one, RAT will complain about stuff still in the
                target directories. We don't want that.
            -->
            <exclude>**/target/**</exclude>

            <exclude>**/src/test/royale/out/**</exclude>
            <exclude>lib/external/*.html</exclude>
          </excludes>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-core</artifactId>
            <version>1.6</version>
            <exclusions>
              <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
        </dependencies>
      </plugin>

      <!-- Configure the Site generation -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <!-- Downgraded to 3.4 as 3.5 and 3.5.1 seem to have issues with the velocity tools -->
        <version>3.7.1</version>
        <configuration>
          <generateReports>true</generateReports>
          <generateSitemap>true</generateSitemap>
          <relativizeDecorationLinks>false</relativizeDecorationLinks>
          <locales>en</locales>
          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
          <outputEncoding>${project.reporting.outputencoding}</outputEncoding>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
          </dependency>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-core</artifactId>
            <version>1.8</version>
          </dependency>
          <!-- All dependencies needed by the reflow skin -->
          <dependency>
            <groupId>lt.velykis.maven.skins</groupId>
            <artifactId>reflow-velocity-tools</artifactId>
            <version>1.1.1</version>
          </dependency>
          <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
          </dependency>
        </dependencies>
      </plugin>

      <!--
        Make the maven-site-plugin stage the output in the "asf-site" branch
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase>
            <!-- deploy site with maven-scm-publish-plugin -->
            <goals>
              <goal>publish-scm</goal>
            </goals>
            <configuration>
              <!-- mono-module doesn't require site:stage -->
              <content>${project.build.directory}/site</content>
              <!-- branch where to deploy -->
              <scmBranch>asf-site</scmBranch>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
              <providerImplementations>
                  <git>jgit</git>
              </providerImplementations>
          </configuration>
          <dependencies>
              <dependency>
                  <groupId>org.apache.maven.scm</groupId>
                  <artifactId>maven-scm-provider-jgit</artifactId>
                  <version>1.11.2-SNAPSHOT</version>
              </dependency>
              <dependency>
                  <groupId>org.apache.maven.scm</groupId>
                  <artifactId>maven-scm-api</artifactId>
                  <version>1.11.2-SNAPSHOT</version>
              </dependency>
          </dependencies>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>main</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
          <module>frameworks</module>
          <module>archetypes</module>
      </modules>
    </profile>
    <profile>
      <id>release</id>
      <properties>
        <royale.debug>false</royale.debug>
      </properties>
    </profile>

    <profile>
      <id>build-examples</id>
      <modules>
        <module>examples</module>
      </modules>
    </profile>

    <profile>
      <id>build-distribution</id>
      <modules>
        <module>distribution</module>
      </modules>
    </profile>

    <profile>
      <id>build-manualtests</id>
      <modules>
        <module>manualtests</module>
      </modules>
    </profile>

    <profile>
      <id>run-testsuite</id>
      <modules>
        <module>testsuite</module>
      </modules>
    </profile>
    <profile>
        <id>upload-release-to-staging</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <modules><!-- only run on top-level, not for each module -->
        </modules>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>wagon-maven-plugin</artifactId>
                    <version>2.0.0</version>
                    <configuration>
                        <serverId>apache.releases.https</serverId>
                        <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    
    <profile>
        <id>generate-swf</id>
        <properties>
            <royale.example.targets>SWF,JSRoyale</royale.example.targets>
        </properties>
        <dependencies>
            <dependency>
                <groupId>com.adobe.flash.framework</groupId>
                <artifactId>playerglobal</artifactId>
                <version>${flash.version}</version>
                <type>swc</type>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    </profile>
    
    <profile>
      <id>generate-swcs-for-swf</id>
      <properties>
          <royale.skipAS>false</royale.skipAS>
      </properties>
      <dependencies>
          <dependency>
              <groupId>com.adobe.air.framework</groupId>
              <artifactId>airglobal</artifactId>
              <version>${air.version}</version>
              <type>swc</type>
              <scope>runtime</scope>
          </dependency>
      </dependencies>
    </profile>
    
    <profile>
        <id>release-swcs</id>
        <properties>
            <repo.compiler.options>-metadata.date="${royale.swc-date}";-metadata.dateFormat="MM/dd/yy HH:mm Z";-swf-debugfile-alias=/org/apache/royale/0.9.6;</repo.compiler.options>
            <source.map>false</source.map>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.royale.compiler</groupId>
                    <artifactId>royale-maven-plugin</artifactId>
                    <version>${royale.compiler.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <additionalCompilerOptions>${repo.compiler.options}</additionalCompilerOptions>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
  </profiles>

  <repositories>
    <repository>
      <id>apache-release</id>
      <url>https://repository.apache.org/content/repositories/releases</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>apache-snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>apache-plugins-release</id>
      <url>https://repository.apache.org/content/repositories/releases</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>apache-plugins-snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

</project>
