<?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.11-SNAPSHOT</version>
  </parent>

  <artifactId>royale-maven-archetypes</artifactId>
  <version>0.9.11-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Royale: Framework: Archetypes</name>
  <description>Maven archetypes for creating royale maven projects</description>

  <properties>
    <royale.framework.version>0.9.10-SNAPSHOT</royale.framework.version>
  </properties>
  
  <modules>
    <module>royale-simple-application-archetype</module>
    <module>royale-jewel-application-archetype</module>
    <module>royale-jewel-library-archetype</module>
    <module>royale-jewel-module-application-archetype</module>
    <module>royale-simple-application-pure-js-archetype</module>
    <module>royale-simple-application-pure-swf-archetype</module>
    <module>royale-simple-library-archetype</module>
    <module>royale-simple-typedef-archetype</module>
  </modules>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/pom.xml</include>
          <include>**/descriptor.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
        <excludes>
          <exclude>**/pom.xml</exclude>
          <exclude>**/descriptor.xml</exclude>
        </excludes>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <escapeString>\</escapeString>
          <nonFilteredFileExtensions>
            <nonFilteredFileExtension>p12</nonFilteredFileExtension>
          </nonFilteredFileExtensions>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
