<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.flex.flexjs.externs</groupId>
    <artifactId>flexjs-externs</artifactId>
    <version>0.7.0-SNAPSHOT</version>
  </parent>

  <artifactId>flexjs-externs-jquery</artifactId>
  <version>0.7.0-SNAPSHOT</version>
  <packaging>swc</packaging>

  <name>Apache Flex - FlexJS: Externs: 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>
        <version>1.2.1</version>
        <executions>
          <execution>
            <id>get-createjs</id>
            <phase>validate</phase>
            <goals>
              <goal>wget</goal>
            </goals>
            <configuration>
              <url>https://raw.githubusercontent.com/google/closure-compiler/master/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.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.5.0</version>
        <configuration>
          <executable>${git.executable}</executable>
          <workingDirectory>${basedir}/../..</workingDirectory>
          <arguments>
            <argument>apply</argument>
            <argument>--ignore-whitespace</argument>
            <argument>--whitespace=nowarn</argument>
          </arguments>
        </configuration>
        <executions>
          <execution>
            <id>patch-jquery</id>
            <phase>validate</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <arguments combine.children="append">
                <argument>${basedir}/src/main/patch/jquery.patch</argument>
              </arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.flex.flexjs.compiler</groupId>
        <artifactId>flexjs-maven-plugin</artifactId>
        <version>0.7.0-SNAPSHOT</version>
        <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>
            </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>
        <dependencies>
          <dependency>
            <groupId>org.apache.flex.flexjs.compiler</groupId>
            <artifactId>compiler-jx</artifactId>
            <version>0.7.0-SNAPSHOT</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.flex.flexjs.externs</groupId>
      <artifactId>flexjs-externs-js</artifactId>
      <version>0.7.0-SNAPSHOT</version>
      <type>swc</type>
      <classifier>extern</classifier>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

</project>
