<?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.typedefs</groupId>
    <artifactId>royale-typedefs-parent</artifactId>
    <version>0.9.9-SNAPSHOT</version>
  </parent>

  <artifactId>royale-typedefs-jquery</artifactId>
  <version>0.9.9-SNAPSHOT</version>
  <packaging>swc</packaging>

  <name>Apache Royale: TypeDefs: JQuery</name>

  <properties>
    <jquery.version>1.9</jquery.version>
  </properties>

  <build>
    <plugins>
      <!-- Download JavaScript form GitHub -->
      <plugin>
        <groupId>com.googlecode.maven-download-plugin</groupId>
        <artifactId>download-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>get-createjs</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/royale-extras/closure-compiler/royale/contrib/externs/jquery-${jquery.version}.js</url>
              <outputFileName>jquery-${jquery.version}.js</outputFileName>
              <outputDirectory>${project.build.directory}/downloads</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <includeSources>true</includeSources>
          <externcInput>
            <fileSet>
              <directory>${project.basedir}/target/downloads</directory>
              <includes>
                <include>**/*.js</include>
              </includes>
            </fileSet>
          </externcInput>
          <externcConfig>
            <!-- JQuery -->
            <!--class-to-function><class>$</class></class-to-function-->

            <class-excludes>
              <class-exclude>
                <className>Deferred</className>
              </class-exclude>
              <class-exclude>
                <className>jQuery.deferred</className>
              </class-exclude>
              <class-exclude>
                <className>jQuery.Event</className>
              </class-exclude>
              <class-exclude>
                <className>jQuery.Deferred</className>
              </class-exclude>
              <class-exclude>
                <className>$.Event</className>
              </class-exclude>
              <class-exclude>
                <className>$.Deferred</className>
              </class-exclude>
              <class-exclude>
                <className>$.deferred</className>
              </class-exclude>
            </class-excludes>

            <excludes>
              <exclude>
                <className>jQuery</className>
                <name>is</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>promise</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>getJSON</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>ajax</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>when</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>post</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>getScript</name>
              </exclude>
              <exclude>
                <className>jQuery</className>
                <name>Callbacks</name>
              </exclude>
              <exclude>
                <className>jQuery.jqXHR</className>
                <name>onreadystatechange</name>
              </exclude>
            </excludes>
          </externcConfig>
          <includeFiles>
            <include-file>
              <name>externs/jquery-1.9.js</name>
              <path>downloads/jquery-1.9.js</path>
            </include-file>
          </includeFiles>
          <skipSwc>true</skipSwc>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.royale.typedefs</groupId>
      <artifactId>royale-typedefs-js</artifactId>
      <version>0.9.9-SNAPSHOT</version>
      <type>swc</type>
      <classifier>typedefs</classifier>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
