You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2016/03/19 12:53:28 UTC
[1/3] git commit: [flex-falcon] [refs/heads/feature/maven-migration]
- - Updated the migration script - Updated the closure compiler version to
v20151015 - Updated guava version to 18.0 - Added some more build-tool goals
needed to patch, copy, cut and ot
Repository: flex-falcon
Updated Branches:
refs/heads/feature/maven-migration 508897783 -> dec07727a
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileMojo.java
new file mode 100644
index 0000000..0846ecd
--- /dev/null
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileMojo.java
@@ -0,0 +1,59 @@
+package org.apache.flex.maven.flexjs;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.flex.tools.FlexTool;
+import org.apache.flex.tools.FlexToolGroup;
+import org.apache.flex.tools.FlexToolRegistry;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+
+import java.io.File;
+
+/**
+ * goal which compiles a project into a flexjs swc library.
+ */
+@Mojo(name="compile",defaultPhase = LifecyclePhase.PROCESS_SOURCES)
+public class CompileMojo
+ extends AbstractMojo
+{
+
+ @Parameter(defaultValue="${basedir}/src/main/config/compile-config.xml")
+ private File configFile;
+
+ @Parameter(defaultValue="${project.build.directory}")
+ private File outputDirectory;
+
+ @Parameter(defaultValue = "${project.artifactId}-${project.version}.swc")
+ private String outputFileName;
+
+ public void execute()
+ throws MojoExecutionException
+ {
+ FlexToolRegistry toolRegistry = new FlexToolRegistry();
+ FlexToolGroup toolGroup = toolRegistry.getToolGroup("Falcon");
+ FlexTool compc = toolGroup.getFlexTool(FlexTool.FLEX_TOOL_COMPC);
+ File outputFile = new File(outputDirectory, outputFileName);
+ String[] args = {"+flexlib=externs", "-debug", "-load-config=" + configFile.getPath(),
+ "-output=" + outputFile.getPath()};
+ compc.execute(args);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/ExterncMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/ExterncMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/ExterncMojo.java
new file mode 100644
index 0000000..555fde6
--- /dev/null
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/ExterncMojo.java
@@ -0,0 +1,52 @@
+package org.apache.flex.maven.flexjs;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.flex.tools.FlexTool;
+import org.apache.flex.tools.FlexToolGroup;
+import org.apache.flex.tools.FlexToolRegistry;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+
+import java.io.File;
+
+/**
+ * goal which generates actionscript code from javascript.
+ */
+@Mojo(name="generate",defaultPhase = LifecyclePhase.PROCESS_SOURCES)
+public class ExterncMojo
+ extends AbstractMojo
+{
+
+ @Parameter(defaultValue="${basedir}/src/main/config/generate-config.xml")
+ private File configFile;
+
+ public void execute()
+ throws MojoExecutionException
+ {
+ FlexToolRegistry toolRegistry = new FlexToolRegistry();
+ FlexToolGroup toolGroup = toolRegistry.getToolGroup("FlexJS");
+ // TODO: Change this to a flex-tool-api constant ...
+ FlexTool compc = toolGroup.getFlexTool("EXTERNC");
+ String[] args = {"+flexlib=externs", "-debug", "-load-config=" + configFile.getPath()};
+ compc.execute(args);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/maven/falcon-jx-compiler.pom
----------------------------------------------------------------------
diff --git a/maven/falcon-jx-compiler.pom b/maven/falcon-jx-compiler.pom
index 752dbd9..2703356 100644
--- a/maven/falcon-jx-compiler.pom
+++ b/maven/falcon-jx-compiler.pom
@@ -52,7 +52,7 @@
<dependency>
<groupId>com.google.javascript</groupId>
<artifactId>closure-compiler</artifactId>
- <version>v20150609</version>
+ <version>v20151015</version>
</dependency>
<dependency>
<groupId>org.clojure</groupId>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/migrate-to-maven.sh
----------------------------------------------------------------------
diff --git a/migrate-to-maven.sh b/migrate-to-maven.sh
index ebe4fad..3eb42e3 100755
--- a/migrate-to-maven.sh
+++ b/migrate-to-maven.sh
@@ -98,3 +98,43 @@ git rm -r compiler.jx.tests/src/org compiler.jx/src/test/java/org/apache/flex/ut
mkdir -p compiler.jx/src/test/resources
git mv compiler.jx.tests/test-files/* compiler.jx/src/test/resources
+#############################################
+## Convert the externs
+#############################################
+
+# asdocs
+
+# cordova
+mkdir -p externs/cordova/src/main/javascript
+git mv externs/cordova/externs/* externs/cordova/src/main/javascript
+rm -r externs/cordova/externs
+
+#createjs
+mkdir -p externs/createjs/src/main/javascript
+git mv externs/createjs/missing.js externs/createjs/src/main/javascript
+
+# GCL
+mkdir -p externs/GCL/src/main/flex
+git mv externs/GCL/src/goog externs/GCL/src/main/flex/goog
+git rm -r externs/GCL/externs
+rm -r externs/GCL/out
+
+# google_maps
+
+# jasmine
+
+# jquery
+
+# js
+mkdir -p externs/js/src/main/flex/__AS3__/vec
+git mv externs/js/src/AS3.as externs/js/src/main/flex/AS3.as
+git mv externs/js/src/Vector.as externs/js/src/main/flex/__AS3__/vec/Vector.as
+git rm externs/js/src/Vector-template.as
+mkdir -p externs/js/src/main/javascript
+git mv externs/js/missing.js externs/js/src/main/javascript
+
+# node
+mkdir -p externs/node/src/main/javascript
+git mv externs/node/externs/* externs/node/src/main/javascript
+rm -r externs/node/externs
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3c0df3b..2c4d4e8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,6 +58,7 @@
<module>compiler</module>
<module>compiler.jx</module>
<module>flex-compiler-oem</module>
+ <module>externs</module>
</modules>
</profile>
@@ -66,6 +67,7 @@
<modules>
<module>compiler-build-tools</module>
<module>compiler-jburg-types</module>
+ <module>flexjs-maven-plugin</module>
</modules>
</profile>
</profiles>
[2/3] git commit: [flex-falcon] [refs/heads/feature/maven-migration]
- - Updated the migration script - Updated the closure compiler version to
v20151015 - Updated guava version to 18.0 - Added some more build-tool goals
needed to patch, copy, cut and ot
Posted by cd...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/createjs/pom.xml
----------------------------------------------------------------------
diff --git a/externs/createjs/pom.xml b/externs/createjs/pom.xml
new file mode 100644
index 0000000..c9cc721
--- /dev/null
+++ b/externs/createjs/pom.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-createjs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: CreateJS</name>
+
+ <properties>
+ <createjs.version>0.8.0</createjs.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <!-- Download easejs/createjs form GitHub and unpack it into the target directory -->
+ <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>generate-resources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <url>https://github.com/CreateJS/EaselJS/archive/${createjs.version}.zip</url>
+ <unpack>true</unpack>
+ <outputFileName>createjs-${createjs.version}.zip</outputFileName>
+ <outputDirectory>${project.build.directory}</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>compiler-build-tools</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <id>pre-process-sources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <operations>
+ <replace-regexp-operation><match>this\.createjs = this\.createjs(\s)*\|\|(\s)*\{\};</match><replace/></replace-regexp-operation>
+ <!-- Remove the opening brackets at the beginning -->
+ <replace-regexp-operation><match>(\n|\r){1,2}\(function(\s)*\(\)(\s)*\{(\s)*(\n|\r)*</match><replace/></replace-regexp-operation>
+ <!-- Remove the "use strict" output -->
+ <replace-regexp-operation><match>\s*"use strict";(\n\r)*</match><replace/></replace-regexp-operation>
+ <!-- Rewrite the way the functions are declared -->
+ <replace-regexp-operation><match>function §{file.base}\(</match><replace>createjs.§{file.base} = function(</replace></replace-regexp-operation>
+ <!-- Replace the way the type is referenced -->
+ <replace-regexp-operation><match>var p = §{file.base}\.prototype;</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>\sp\.</match><replace>_createjs.§{file.base}.prototype.</replace></replace-regexp-operation>
+ <replace-regexp-operation><match>(?<!createjs\.)§{file.base}\.</match><replace>createjs.§{file.base}.</replace></replace-regexp-operation>
+ <replace-regexp-operation><match>var p = createjs\.extend\(§{file.base}, createjs\..*\);</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>createjs\.§{file.base} = createjs\.promote\(§{file.base}, ".*"\);</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>createjs\.§{file.base} = §{file.base};</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>\s@extends\s(.*)</match><replace>_@extends createjs.$1</replace></replace-regexp-operation>
+ <!-- Add the package to the JavaScript Doc types that are not naive JavaScript -->
+ <replace-regexp-operation><match>\s@(param|type|return)\s\{(Sprite|SpriteSheet|DisplayObject|Container|Shadow|Rectangle|Matrix2D|Stage|Point|DisplayProps|Graphics|MovieClip|ColorMatrix|Filter)(\}|\s)</match><replace>_@$1 {createjs.$2$3</replace></replace-regexp-operation>
+ <!-- Remove the "[time]" that sometimes accompanies Number parameters and place it after the type -->
+ <replace-regexp-operation><match>@param \[time\] \{Number\}</match><replace>@param {Number} time</replace></replace-regexp-operation>
+ <!--
+ Replace the try-catch
+ (Had to limit the number of chars as other wise I get Stack Overflows)
+ -->
+ <replace-regexp-operation><match>\stry \{\s*Object\.defineProperties\(p, \{\s*(.*): \{\s(.|\n|\r){0,200} *\} catch \(e\) \{\}</match><replace>createjs.§{file.base}.prototype.$1;</replace></replace-regexp-operation>
+ <!-- In MouseEvent and MovieClip the try-cach was completely removed -->
+ <replace-regexp-operation><match>createjs.MouseEvent.prototype.localX; // TODO: use Log</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>createjs.MovieClip.prototype.labels;</match><replace/></replace-regexp-operation>
+ <!-- Remove the closing brackets at the end -->
+ <replace-regexp-operation><match>\}(\)\(|\(\))\);</match><replace/></replace-regexp-operation>
+ </operations>
+ </configuration>
+ </execution>
+ <execution>
+ <id>pre-process-sources-ticker</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <includes>
+ <include>createjs/utils/Ticker.js</include>
+ </includes>
+ <operations>
+ <cut-operation>
+ <start-cutting-line>355</start-cutting-line>
+ <stop-cutting-line>378</stop-cutting-line>
+ </cut-operation>
+ </operations>
+ </configuration>
+ </execution>
+ <!-- Cut off the end of Graphics.js -->
+ <execution>
+ <id>pre-process-sources-graphics</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <includes>
+ <include>easeljs/display/Graphics.js</include>
+ </includes>
+ <operations>
+ <cut-operation>
+ <start-cutting-line>1560</start-cutting-line>
+ <stop-cutting-line>2163</stop-cutting-line>
+ </cut-operation>
+ </operations>
+ </configuration>
+ </execution>
+ <!-- It seems that excluding the files doesn't work, so we have to delete them -->
+ <execution>
+ <id>pre-process-delete-unused</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <includes>
+ <include>easeljs/version.js</include>
+ <include>easeljs/version_movieclip.js</include>
+ </includes>
+ <operations>
+ <delete-file-operation/>
+ </operations>
+ </configuration>
+ </execution>
+ <!-- Generate the ActionScript interface -->
+ <execution>
+ <id>generate</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <!-- Take the JavaScript from the previously downloaded and unpacked distribution -->
+ <downloadesSourceDirectory>${project.build.directory}/EaselJS-${createjs.version}/src</downloadesSourceDirectory>
+ <includes>
+ <include>**/*.js</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/createjs/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/createjs/src/main/config/compile-config.xml b/externs/createjs/src/main/config/compile-config.xml
new file mode 100644
index 0000000..ffcf29b
--- /dev/null
+++ b/externs/createjs/src/main/config/compile-config.xml
@@ -0,0 +1,102 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <external-library-path>
+ <path-element>../js/out/bin/js.swc</path-element>
+ </external-library-path>
+
+ <source-path>
+ <path-element>out/as/classes</path-element>
+ <!--
+ <path-element>out/as/constants</path-element>
+ <path-element>out/as/functions</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/typedefs</path-element>
+ -->
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>out/as/classes</path-element>
+ <!--
+ <path-element>out/as/constants</path-element>
+ <path-element>out/as/functions</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/typedefs</path-element>
+ -->
+ </include-sources>
+
+ <include-file>
+ <name>externs/*</name>
+ <path>out/externs/*</path>
+ </include-file>
+ <!--
+ <include-file>
+ <name>assets/ErrorIndicator.png</name>
+ <path>assets/ErrorIndicator.png</path>
+ </include-file>
+ <include-file>
+ <name>assets/RequiredIndicator.png</name>
+ <path>assets/RequiredIndicator.png</path>
+ </include-file>
+
+ <include-namespaces>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ </include-namespaces>
+
+ <resource-bundle-list>bundles.properties</resource-bundle-list>
+
+ <target-player>${playerglobal.version}</target-player>
+ -->
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/createjs/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/createjs/src/main/config/generate-config.xml b/externs/createjs/src/main/config/generate-config.xml
new file mode 100644
index 0000000..199ee96
--- /dev/null
+++ b/externs/createjs/src/main/config/generate-config.xml
@@ -0,0 +1,130 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+ -->
+
+ <locale/>
+
+ <library-path/>
+
+ <!--
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <source-path>
+ <path-element>../javascript</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ <path-element>../../../target/EaselJS-0.8.0/src/createjs/events/Event.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/createjs/events/EventDispatcher.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/createjs/utils/extend.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/createjs/utils/indexof.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/createjs/utils/promote.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/createjs/utils/Ticker.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Bitmap.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/BitmapText.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Container.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/DisplayObject.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/DOMElement.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Graphics.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/MovieClip.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Shadow.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Shape.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Sprite.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/SpriteContainer.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/SpriteSheet.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/SpriteStage.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Stage.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/display/Text.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/events/MouseEvent.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/AlphaMapFilter.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/AlphaMaskFilter.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/BlurFilter.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/ColorFilter.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/ColorMatrix.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/ColorMatrixFilter.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/filters/Filter.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/geom/DisplayProps.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/geom/Matrix2D.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/geom/Point.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/geom/Rectangle.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/ui/ButtonHelper.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/ui/Touch.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/utils/SpriteSheetBuilder.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/utils/SpriteSheetUtils.js</path-element>
+ <path-element>../../../target/EaselJS-0.8.0/src/easeljs/utils/UID.js</path-element>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+ <class-exclude>
+ <class>MovieClipPlugin</class>
+ </class-exclude>
+ <class-exclude>
+ <class>createjs.Text.V_OFFSETS</class>
+ </class-exclude>
+ <class-exclude>
+ <class>createjs.Text.H_OFFSETS</class>
+ </class-exclude>
+ <class-exclude>
+ <class>createjs.Graphics.BASE_64</class>
+ </class-exclude>
+
+ <!--
+ <field-exclude>
+ <class>Window</class>
+ <field>focus</field>
+ </field-exclude>
+
+ <exclude>
+ <class>Array</class>
+ <name>toSource</name>
+ </exclude>
+ -->
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/google_maps/pom.xml
----------------------------------------------------------------------
diff --git a/externs/google_maps/pom.xml b/externs/google_maps/pom.xml
new file mode 100644
index 0000000..fe23c37
--- /dev/null
+++ b/externs/google_maps/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-goolemaps</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: GoogleMaps</name>
+
+ <properties>
+ <googlemaps.version>v3_11</googlemaps.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>generate-resources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <url>https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/maps/google_maps_api_${googlemaps.version}.js</url>
+ <outputFileName>google_maps_api_${googlemaps.version}.js</outputFileName>
+ <outputDirectory>${project.build.directory}/downloads</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>compiler-build-tools</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <id>pre-process-sources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <operations>
+ <replace-regexp-operation><match>\/\/ Namespace</match><replace>/** @const */</replace></replace-regexp-operation>
+ <replace-regexp-operation><match>google\.maps = \{\};</match><replace><![CDATA[
+/** @const */
+var google = {};
+
+/** @const */
+google.maps = {};]]></replace></replace-regexp-operation>
+ </operations>
+ </configuration>
+ </execution>
+ <!-- Generate the ActionScript interface -->
+ <execution>
+ <id>generate</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <includes>
+ <include>**/*.js</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/google_maps/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/google_maps/src/main/config/compile-config.xml b/externs/google_maps/src/main/config/compile-config.xml
new file mode 100644
index 0000000..ff0d4fc
--- /dev/null
+++ b/externs/google_maps/src/main/config/compile-config.xml
@@ -0,0 +1,97 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <external-library-path>
+ <path-element>../js/out/bin/js.swc</path-element>
+ </external-library-path>
+
+ <source-path>
+ <path-element>out/as/classes</path-element>
+ <path-element>out/as/interfaces</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>out/as/classes</path-element>
+ <path-element>out/as/interfaces</path-element>
+ </include-sources>
+
+ <include-file>
+ <name>externs/google_maps_api_v3_11.js</name>
+ <path>externs/google_maps_api_v3_11.js</path>
+ </include-file>
+
+ <!--
+ <include-file>
+ <name>defaults.css</name>
+ <path>defaults.css</path>
+ </include-file>
+ <include-file>
+ <name>assets/ErrorIndicator.png</name>
+ <path>assets/ErrorIndicator.png</path>
+ </include-file>
+ <include-file>
+ <name>assets/RequiredIndicator.png</name>
+ <path>assets/RequiredIndicator.png</path>
+ </include-file>
+
+ <include-namespaces>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ </include-namespaces>
+
+ <resource-bundle-list>bundles.properties</resource-bundle-list>
+
+ <target-player>${playerglobal.version}</target-player>
+ -->
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/google_maps/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/google_maps/src/main/config/generate-config.xml b/externs/google_maps/src/main/config/generate-config.xml
new file mode 100644
index 0000000..c728055
--- /dev/null
+++ b/externs/google_maps/src/main/config/generate-config.xml
@@ -0,0 +1,39 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <locale/>
+
+ <source-path>
+ <path-element>../javascript</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ <path-element>../../../target/downloads/google_maps_api_v3_11.js</path-element>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/jasmine/pom.xml
----------------------------------------------------------------------
diff --git a/externs/jasmine/pom.xml b/externs/jasmine/pom.xml
new file mode 100644
index 0000000..e4e732d
--- /dev/null
+++ b/externs/jasmine/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-jasmine</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: Jasmine</name>
+
+ <properties>
+ <jasmine.version>2.0</jasmine.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>generate-resources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <url>https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jasmine-${jasmine.version}.js</url>
+ <outputFileName>jasmine-${jasmine.version}.js</outputFileName>
+ <outputDirectory>${project.build.directory}/downloads</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>externc-maven-plugin</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <!-- Generate the ActionScript interface -->
+ <execution>
+ <id>generate</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/jasmine/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/jasmine/src/main/config/compile-config.xml b/externs/jasmine/src/main/config/compile-config.xml
new file mode 100644
index 0000000..2af1e2a
--- /dev/null
+++ b/externs/jasmine/src/main/config/compile-config.xml
@@ -0,0 +1,97 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <external-library-path>
+ <path-element>../js/out/bin/js.swc</path-element>
+ </external-library-path>
+
+ <source-path>
+ <path-element>out/as/classes</path-element>
+ <path-element>out/as/functions</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>out/as/classes</path-element>
+ <path-element>out/as/functions</path-element>
+ </include-sources>
+
+ <include-file>
+ <name>externs/jasmine-2.0.js</name>
+ <path>externs/jasmine-2.0.js</path>
+ </include-file>
+
+ <!--
+ <include-file>
+ <name>defaults.css</name>
+ <path>defaults.css</path>
+ </include-file>
+ <include-file>
+ <name>assets/ErrorIndicator.png</name>
+ <path>assets/ErrorIndicator.png</path>
+ </include-file>
+ <include-file>
+ <name>assets/RequiredIndicator.png</name>
+ <path>assets/RequiredIndicator.png</path>
+ </include-file>
+
+ <include-namespaces>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ </include-namespaces>
+
+ <resource-bundle-list>bundles.properties</resource-bundle-list>
+
+ <target-player>${playerglobal.version}</target-player>
+ -->
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/jasmine/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/jasmine/src/main/config/generate-config.xml b/externs/jasmine/src/main/config/generate-config.xml
new file mode 100644
index 0000000..e5474ba
--- /dev/null
+++ b/externs/jasmine/src/main/config/generate-config.xml
@@ -0,0 +1,45 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <locale/>
+
+ <source-path>
+ <path-element>../javascript</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ <path-element>../../../target/downloads/jasmine-2.0.js</path-element>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+ <field-exclude>
+ <class>jasmine.Spec</class>
+ <field>$injector</field>
+ </field-exclude>
+ <exclude><class>jasmine.Matchers</class><name>actual</name></exclude><!-- TODO returns T -->
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/jquery/pom.xml
----------------------------------------------------------------------
diff --git a/externs/jquery/pom.xml b/externs/jquery/pom.xml
new file mode 100644
index 0000000..cb289b5
--- /dev/null
+++ b/externs/jquery/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-jquery</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: 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>generate-resources</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.apache.flex.flexjs.compiler</groupId>
+ <artifactId>externc-maven-plugin</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <!-- Generate the ActionScript interface -->
+ <execution>
+ <id>generate</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/jquery/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/jquery/src/main/config/compile-config.xml b/externs/jquery/src/main/config/compile-config.xml
new file mode 100644
index 0000000..c290bdf
--- /dev/null
+++ b/externs/jquery/src/main/config/compile-config.xml
@@ -0,0 +1,101 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <external-library-path>
+ <path-element>../js/out/bin/js.swc</path-element>
+ </external-library-path>
+
+ <source-path>
+ <path-element>out/as/classes</path-element>
+ <path-element>out/as/constants</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/typedefs</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>out/as/classes</path-element>
+ <path-element>out/as/constants</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/typedefs</path-element>
+ </include-sources>
+
+ <include-file>
+ <name>externs/jquery-1.9.js</name>
+ <path>externs/jquery-1.9.js</path>
+ </include-file>
+
+ <!--
+ <include-file>
+ <name>defaults.css</name>
+ <path>defaults.css</path>
+ </include-file>
+ <include-file>
+ <name>assets/ErrorIndicator.png</name>
+ <path>assets/ErrorIndicator.png</path>
+ </include-file>
+ <include-file>
+ <name>assets/RequiredIndicator.png</name>
+ <path>assets/RequiredIndicator.png</path>
+ </include-file>
+
+ <include-namespaces>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ </include-namespaces>
+
+ <resource-bundle-list>bundles.properties</resource-bundle-list>
+
+ <target-player>${playerglobal.version}</target-player>
+ -->
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/jquery/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/jquery/src/main/config/generate-config.xml b/externs/jquery/src/main/config/generate-config.xml
new file mode 100644
index 0000000..5728fe5
--- /dev/null
+++ b/externs/jquery/src/main/config/generate-config.xml
@@ -0,0 +1,59 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <locale/>
+
+ <source-path>
+ <path-element>../javascript</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ <path-element>../../../target/downloads/jquery-1.9.js</path-element>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+ <!-- JQuery -->
+ <class-to-function><class>$</class></class-to-function>
+
+ <exclude><class>jQuery</class><name>is</name></exclude>
+ <exclude><class>jQuery</class><name>promise</name></exclude>
+ <exclude><class>jQuery</class><name>getJSON</name></exclude>
+ <exclude><class>jQuery</class><name>ajax</name></exclude>
+ <exclude><class>jQuery</class><name>when</name></exclude>
+ <exclude><class>jQuery</class><name>post</name></exclude>
+ <exclude><class>jQuery</class><name>getScript</name></exclude>
+ <exclude><class>jQuery</class><name>Callbacks</name></exclude>
+
+ <class-exclude><class>Deferred</class></class-exclude>
+ <class-exclude><class>jQuery.deferred</class></class-exclude>
+ <class-exclude><class>jQuery.Event</class></class-exclude>
+ <class-exclude><class>jQuery.Deferred</class></class-exclude>
+ <class-exclude><class>$.Event</class></class-exclude>
+ <class-exclude><class>$.Deferred</class></class-exclude>
+ <class-exclude><class>$.deferred</class></class-exclude>
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/js/pom.xml
----------------------------------------------------------------------
diff --git a/externs/js/pom.xml b/externs/js/pom.xml
new file mode 100644
index 0000000..96f95b8
--- /dev/null
+++ b/externs/js/pom.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-js</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: JS</name>
+
+ <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>generate-sources</phase>
+ <goals>
+ <goal>wget</goal>
+ </goals>
+ <configuration>
+ <url>https://closureidl.googlecode.com/files/svg.js</url>
+ <outputFileName>svg.js</outputFileName>
+ <outputDirectory>${project.build.directory}/downloads</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>compiler-build-tools</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <id>unpack-closure-externs</id>
+ <goals>
+ <goal>unpack-resources</goal>
+ </goals>
+ <configuration>
+ <resource>externs.zip</resource>
+ </configuration>
+ </execution>
+ <execution>
+ <id>pre-process-javascript-sources-svg</id>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <operations>
+ <replace-regexp-operation><match>@type \{function\(new:.*</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>Window\.prototype\..*</match><replace/></replace-regexp-operation>
+ <replace-regexp-operation><match>EventListener\|\(function\(Event\)</match><replace>EventListener|(function(!Event)</replace></replace-regexp-operation>
+ </operations>
+ <includes>
+ <include>svg.js</include>
+ </includes>
+ </configuration>
+ </execution>
+ <execution>
+ <id>pre-process-javascript-sources-es3</id>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <operations>
+ <replace-regexp-operation><match>(The constructor of the current object\.\n.*)@type\s\{Function\}</match><replace>$1@type {Class}</replace></replace-regexp-operation>
+ <replace-regexp-operation><match>Object\.prototype\.constructor\s=\sfunction\(\)\s\{\};</match><replace>Object.prototype.constructor;</replace></replace-regexp-operation>
+ <replace-regexp-operation><match>(Transposes the elements of an array in place.*\n.*\n.*)(\n.*\s@this)</match><replace>$1 @return {!Array<?>}$2</replace></replace-regexp-operation>
+ </operations>
+ <includes>
+ <include>es3.js</include>
+ </includes>
+ </configuration>
+ </execution>
+ <!-- Generate the ActionScript interface -->
+ <execution>
+ <id>generate</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>pre-process-actionscript-sources</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>pre-process-sources</goal>
+ </goals>
+ <configuration>
+ <operations>
+ <replace-regexp-operation><match>base\:Number\)</match><replace>base:Number = 10)</replace></replace-regexp-operation>
+ </operations>
+ <downloadesSourceDirectory>target/generated-sources/externc</downloadesSourceDirectory>
+ <includes>
+ <include>functions/parseInt.as</include>
+ </includes>
+ </configuration>
+ </execution>
+ <execution>
+ <id>compile</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ <!--
+ Dependency to the closure compiler externs artifact so
+ the "unpack-resources" goal can find the externs.zip
+ -->
+ <dependencies>
+ <dependency>
+ <groupId>com.google.javascript</groupId>
+ <artifactId>closure-compiler-externs</artifactId>
+ <version>v20151015</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/js/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/js/src/main/config/compile-config.xml b/externs/js/src/main/config/compile-config.xml
new file mode 100644
index 0000000..15c9d59
--- /dev/null
+++ b/externs/js/src/main/config/compile-config.xml
@@ -0,0 +1,93 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+ <source-path>
+ <path-element>../../../target/generated-sources/externc/classes</path-element>
+ <path-element>../../../target/generated-sources/externc/constants</path-element>
+ <path-element>../../../target/generated-sources/externc/functions</path-element>
+ <path-element>../../../target/generated-sources/externc/interfaces</path-element>
+ <path-element>../../../target/generated-sources/externc/typedefs</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>../../../target/generated-sources/externc/classes</path-element>
+ <path-element>../../../target/generated-sources/externc/constants</path-element>
+ <path-element>../../../target/generated-sources/externc/functions</path-element>
+ <path-element>../../../target/generated-sources/externc/interfaces</path-element>
+ <path-element>../../../target/generated-sources/externc/typedefs</path-element>
+ </include-sources>
+
+ <include-file>
+ <name>externs/svg.js</name>
+ <path>../../../target/downloads/svg.js</path>
+ </include-file>
+ <!--
+ <include-file>
+ <name>assets/ErrorIndicator.png</name>
+ <path>assets/ErrorIndicator.png</path>
+ </include-file>
+ <include-file>
+ <name>assets/RequiredIndicator.png</name>
+ <path>assets/RequiredIndicator.png</path>
+ </include-file>
+
+ <include-namespaces>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ </include-namespaces>
+
+ <resource-bundle-list>bundles.properties</resource-bundle-list>
+
+ <target-player>${playerglobal.version}</target-player>
+ -->
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/js/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/js/src/main/config/generate-config.xml b/externs/js/src/main/config/generate-config.xml
new file mode 100644
index 0000000..f4a3b20
--- /dev/null
+++ b/externs/js/src/main/config/generate-config.xml
@@ -0,0 +1,173 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+ -->
+
+ <locale/>
+
+ <library-path/>
+
+ <!--
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <source-path>
+ <path-element>src</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ <path-element>../javascript/missing.js</path-element>
+ <path-element>../../../target/downloads/es3.js</path-element>
+ <path-element>../../../target/downloads/es5.js</path-element>
+ <path-element>../../../target/downloads/es6.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_anim_timing.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_audio.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_batterystatus.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_css.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_css3d.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_device_sensor_event.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_dom1.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_dom2.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_dom3.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_elementtraversal.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_encoding.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_event.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_event3.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_geolocation.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_indexeddb.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_navigation_timing.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_range.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_rtc.js</path-element>
+ <path-element>../../../target/downloads/browser/w3c_selectors.js</path-element>
+ <!-- path-element>../../../target/downloads/browser/w3c_serviceworker.js</path-element> -->
+ <!-- path-element>../../../target/downloads/browser/w3c_webcrypto.js</path-element> -->
+ <path-element>../../../target/downloads/browser/w3c_xml.js</path-element>
+
+ <!-- path-element>externs/fetchapi</path-element> -->
+
+ <path-element>../../../target/downloads/browser/window.js</path-element>
+
+ <path-element>../../../target/downloads/browser/ie_dom.js</path-element>
+ <path-element>../../../target/downloads/browser/gecko_dom.js</path-element>
+ <path-element>../../../target/downloads/browser/gecko_xml.js</path-element>
+ <path-element>../../../target/downloads/browser/gecko_event.js</path-element>
+
+ <path-element>../../../target/downloads/browser/webkit_css.js</path-element>
+ <path-element>../../../target/downloads/browser/webkit_dom.js</path-element>
+ <path-element>../../../target/downloads/browser/webkit_event.js</path-element>
+ <!-- path-element>externs/webkit_notifications.js</path-element> -->
+
+ <path-element>../../../target/downloads/browser/iphone.js</path-element>
+ <path-element>../../../target/downloads/browser/chrome.js</path-element>
+ <path-element>../../../target/downloads/browser/flash.js</path-element>
+
+ <path-element>../../../target/downloads/browser/page_visibility.js</path-element>
+ <path-element>../../../target/downloads/browser/fileapi.js</path-element>
+ <path-element>../../../target/downloads/browser/html5.js</path-element>
+
+ <path-element>../../../target/downloads/browser/webgl.js</path-element>
+ <path-element>../../../target/downloads/browser/webstorage.js</path-element>
+
+ <path-element>../../../target/downloads/svg.js</path-element>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+ <field-exclude>
+ <class>Window</class>
+ <field>focus</field>
+ </field-exclude>
+
+ <class-exclude>
+ <class>controlRange</class>
+ </class-exclude>
+
+ <exclude>
+ <class>Array</class>
+ <name>toSource</name>
+ </exclude>
+ <exclude>
+ <class>Date</class>
+ <name>valueOf</name>
+ </exclude>
+ <exclude>
+ <class>String</class>
+ <name>valueOf</name>
+ </exclude>
+ <exclude><class>FontFaceSet</class><name>delete</name></exclude>
+
+ <exclude><class>CSSStyleDeclaration</class><name>cssText</name></exclude>
+ <exclude><class>CSSStyleRule</class><name>style</name></exclude>
+ <exclude><class>CSSFontFaceRule</class><name>style</name></exclude>
+ <exclude><class>CSSPageRule</class><name>style</name></exclude>
+
+ <exclude><class>Generator</class><name>throw</name></exclude>
+ <exclude><class>Generator</class><name>return</name></exclude>
+ <exclude><class>HTMLMenuItemElement</class><name>default</name></exclude>
+ <exclude><class>MessageEvent</class><name>data</name></exclude><!-- TODO returns T -->
+ <exclude><class>MessageEvent</class><name>initMessageEventNS</name></exclude> <!-- TODO param T -->
+ <exclude><class>MessageEvent</class><name>initMessageEvent</name></exclude> <!-- TODO param T -->
+ <exclude><class>MessageEvent</class><name>default</name></exclude>
+ <exclude><class>Object</class><name>is</name></exclude>
+ <exclude><class>Promise</class><name>catch</name></exclude>
+
+ <exclude><class>IDBCursor</class><name>continue</name></exclude>
+ <exclude><class>IDBCursor</class><name>delete</name></exclude>
+ <exclude><class>IDBObjectStore</class><name>delete</name></exclude>
+
+ <!-- TODO method treated like field -->
+ <field-exclude><class>Iterator</class><field>next</field></field-exclude>
+ <exclude><class>Generator</class><name>next</name></exclude>
+ <exclude><class>LinkStyle</class><name>sheet</name></exclude>
+
+ <!-- SVG -->
+ <exclude><class>SVGStylable</class><name>className</name></exclude>
+ <exclude><class>SVGStylable</class><name>style</name></exclude>
+ <exclude><class>SVGLocatable</class><name>farthestViewportElement</name></exclude>
+ <exclude><class>SVGLocatable</class><name>nearestViewportElement</name></exclude>
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/js/src/main/flex/__AS3__/vec/Vector$int.as
----------------------------------------------------------------------
diff --git a/externs/js/src/main/flex/__AS3__/vec/Vector$int.as b/externs/js/src/main/flex/__AS3__/vec/Vector$int.as
new file mode 100644
index 0000000..37681cb
--- /dev/null
+++ b/externs/js/src/main/flex/__AS3__/vec/Vector$int.as
@@ -0,0 +1,81 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package __AS3__.vec
+{
+
+/**
+ * The compiler appears to expect these internal implementations
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+internal class Vector$int
+{
+ public function Vector$int(length:uint = 0, fixed:Boolean = false) {}
+
+ public var fixed:Boolean;
+
+ public var length:uint;
+
+ public function concat(...args):Vector$int { return null }
+
+ public function every(callback:Function, thisObject:Object):Boolean { return false }
+
+ public function filter(callback:Function, thisObject:Object = null):Vector$int { return null }
+
+ public function forEach(callback:Function, thisObject:Object = null):void {}
+
+ public function indexOf(searchElement:int, fromIndex:int = 0):int { return -1 }
+
+ public function insertAt(index:int, element:int):void {}
+
+ public function join(sep:String = ","):String { return null }
+
+ public function lastIndexOf(searchElement:int, fromIndex:int = 0x7fffffff):int { return -1 }
+
+ public function map(callback:Function, thisObject:Object = null):Vector$int { return null }
+
+ public function pop():int { return null }
+
+ public function push(... args):uint { return 0 }
+
+ public function removeAt(index:int):int { return null }
+
+ public function reverse():Vector$int { return null }
+
+ public function shift():int { return null }
+
+ public function slice(startIndex:int = 0, endIndex:int = 16777215):Vector$int { return null }
+
+ public function some(callback:Function, thisObject:Object = null):Boolean { return false }
+
+ public function sort(sortBehavior:Object):Vector$int { return null }
+
+ public function splice(startIndex:int, deleteCount:uint = 4294967295, ... items):Vector$int { return null }
+
+ override public function toLocaleString():String { return null }
+
+ public function toString():String { return null }
+
+ public function unshift(... args):uint { return 0 }
+}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/js/src/main/flex/__AS3__/vec/Vector$object.as
----------------------------------------------------------------------
diff --git a/externs/js/src/main/flex/__AS3__/vec/Vector$object.as b/externs/js/src/main/flex/__AS3__/vec/Vector$object.as
new file mode 100644
index 0000000..7ae7703
--- /dev/null
+++ b/externs/js/src/main/flex/__AS3__/vec/Vector$object.as
@@ -0,0 +1,81 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package __AS3__.vec
+{
+
+/**
+ * The compiler appears to expect these internal implementations
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+internal class Vector$object
+{
+ public function Vector$object(length:uint = 0, fixed:Boolean = false) {}
+
+ public var fixed:Boolean;
+
+ public var length:uint;
+
+ public function concat(...args):Vector$object { return null }
+
+ public function every(callback:Function, thisObject:Object):Boolean { return false }
+
+ public function filter(callback:Function, thisObject:Object = null):Vector$object { return null }
+
+ public function forEach(callback:Function, thisObject:Object = null):void {}
+
+ public function indexOf(searchElement:Object, fromIndex:int = 0):int { return -1 }
+
+ public function insertAt(index:int, element:Object):void {}
+
+ public function join(sep:String = ","):String { return null }
+
+ public function lastIndexOf(searchElement:Object, fromIndex:int = 0x7fffffff):int { return -1 }
+
+ public function map(callback:Function, thisObject:Object = null):Vector$object { return null }
+
+ public function pop():Object { return null }
+
+ public function push(... args):uint { return 0 }
+
+ public function removeAt(index:int):Object { return null }
+
+ public function reverse():Vector$object { return null }
+
+ public function shift():Object { return null }
+
+ public function slice(startIndex:int = 0, endIndex:int = 16777215):Vector$object { return null }
+
+ public function some(callback:Function, thisObject:Object = null):Boolean { return false }
+
+ public function sort(sortBehavior:Object):Vector$object { return null }
+
+ public function splice(startIndex:int, deleteCount:uint = 4294967295, ... items):Vector$object { return null }
+
+ override public function toLocaleString():String { return null }
+
+ public function toString():String { return null }
+
+ public function unshift(... args):uint { return 0 }
+}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/js/src/main/flex/__AS3__/vec/Vector$uint.as
----------------------------------------------------------------------
diff --git a/externs/js/src/main/flex/__AS3__/vec/Vector$uint.as b/externs/js/src/main/flex/__AS3__/vec/Vector$uint.as
new file mode 100644
index 0000000..6540728
--- /dev/null
+++ b/externs/js/src/main/flex/__AS3__/vec/Vector$uint.as
@@ -0,0 +1,81 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package __AS3__.vec
+{
+
+/**
+ * The compiler appears to expect these internal implementations
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+internal class Vector$unit
+{
+ public function Vector$unit(length:uint = 0, fixed:Boolean = false) {}
+
+ public var fixed:Boolean;
+
+ public var length:uint;
+
+ public function concat(...args):Vector$unit { return null }
+
+ public function every(callback:Function, thisObject:Object):Boolean { return false }
+
+ public function filter(callback:Function, thisObject:Object = null):Vector$unit { return null }
+
+ public function forEach(callback:Function, thisObject:Object = null):void {}
+
+ public function indexOf(searchElement:unit, fromIndex:int = 0):int { return -1 }
+
+ public function insertAt(index:int, element:unit):void {}
+
+ public function join(sep:String = ","):String { return null }
+
+ public function lastIndexOf(searchElement:unit, fromIndex:int = 0x7fffffff):int { return -1 }
+
+ public function map(callback:Function, thisObject:Object = null):Vector$unit { return null }
+
+ public function pop():unit { return null }
+
+ public function push(... args):uint { return 0 }
+
+ public function removeAt(index:int):unit { return null }
+
+ public function reverse():Vector$unit { return null }
+
+ public function shift():unit { return null }
+
+ public function slice(startIndex:int = 0, endIndex:int = 16777215):Vector$unit { return null }
+
+ public function some(callback:Function, thisObject:Object = null):Boolean { return false }
+
+ public function sort(sortBehavior:Object):Vector$unit { return null }
+
+ public function splice(startIndex:int, deleteCount:uint = 4294967295, ... items):Vector$unit { return null }
+
+ override public function toLocaleString():String { return null }
+
+ public function toString():String { return null }
+
+ public function unshift(... args):uint { return 0 }
+}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/node/pom.xml
----------------------------------------------------------------------
diff --git a/externs/node/pom.xml b/externs/node/pom.xml
new file mode 100644
index 0000000..9765bcf
--- /dev/null
+++ b/externs/node/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-node</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: Node</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>externc-maven-plugin</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <!-- Generate the ActionScript interface -->
+ <execution>
+ <id>generate</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/node/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/node/src/main/config/compile-config.xml b/externs/node/src/main/config/compile-config.xml
new file mode 100644
index 0000000..66ae820
--- /dev/null
+++ b/externs/node/src/main/config/compile-config.xml
@@ -0,0 +1,43 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <external-library-path>
+ <path-element>../js/out/bin/js.swc</path-element>
+ </external-library-path>
+
+ <source-path>
+ <path-element>out/as/functions</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>out/as/functions</path-element>
+ </include-sources>
+
+ <include-file>
+ <name>externs/node.js</name>
+ <path>externs/node.js</path>
+ </include-file>
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/node/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/node/src/main/config/generate-config.xml b/externs/node/src/main/config/generate-config.xml
new file mode 100644
index 0000000..c09741b
--- /dev/null
+++ b/externs/node/src/main/config/generate-config.xml
@@ -0,0 +1,38 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <locale/>
+
+ <source-path>
+ <path-element>../javascript</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/pom.xml
----------------------------------------------------------------------
diff --git a/externs/pom.xml b/externs/pom.xml
new file mode 100644
index 0000000..ecd084f
--- /dev/null
+++ b/externs/pom.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>compiler-parent</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs</name>
+
+ <modules>
+ <module>cordova</module>
+ <module>createjs</module>
+ <module>GCL</module>
+ <module>google_maps</module>
+ <module>jasmine</module>
+ <!--module>jquery</module-->
+ <module>js</module>
+ <module>node</module>
+ </modules>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/flexjs-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/pom.xml b/flexjs-maven-plugin/pom.xml
new file mode 100644
index 0000000..321d8e1
--- /dev/null
+++ b/flexjs-maven-plugin/pom.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.flex.flexjs.compiler</groupId>
+ <artifactId>compiler-parent</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flexjs-maven-plugin</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>maven-plugin</packaging>
+
+ <name>Apache Flex: FlexJS Maven Plugin</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>3.0.4</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.sonatype.sisu</groupId>
+ <artifactId>sisu-guava</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-compiler-api</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-annotations</artifactId>
+ <version>3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>3.0.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>compiler</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flex.compiler</groupId>
+ <artifactId>flex-tool-api</artifactId>
+ <version>4.15.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.10</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <goalPrefix>externc</goalPrefix>
+ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+ </configuration>
+ <executions>
+ <execution>
+ <id>mojo-descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>help-goal</id>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
[3/3] git commit: [flex-falcon] [refs/heads/feature/maven-migration]
- - Updated the migration script - Updated the closure compiler version to
v20151015 - Updated guava version to 18.0 - Added some more build-tool goals
needed to patch, copy, cut and ot
Posted by cd...@apache.org.
- Updated the migration script
- Updated the closure compiler version to v20151015
- Updated guava version to 18.0
- Added some more build-tool goals needed to patch, copy, cut and otherwise update stuff in the externs modules
- Extern modules
-- Added poms
-- Added config files for generation and compilation
- Added a new flexjs-maven-plugin
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/dec07727
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/dec07727
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/dec07727
Branch: refs/heads/feature/maven-migration
Commit: dec07727ac4e0b7869cafd7154cdacbb0bc2f2fa
Parents: 5088977
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Sat Mar 19 12:53:21 2016 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Sat Mar 19 12:53:21 2016 +0100
----------------------------------------------------------------------
compiler-build-tools/pom.xml | 5 +
.../compiler/tools/AnnotateClassesMojo.java | 135 ---------------
.../tools/BaseProblemGeneratorMojo.java | 127 --------------
.../tools/ProblemEnumGeneratorMojo.java | 152 ----------------
.../ProblemResourceBundleGeneratorMojo.java | 101 -----------
.../tools/annotate/AnnotateClassesMojo.java | 135 +++++++++++++++
.../tools/patchfiles/CopyFileOperation.java | 31 ++++
.../compiler/tools/patchfiles/CutOperation.java | 54 ++++++
.../tools/patchfiles/DeleteFileOperation.java | 23 +++
.../compiler/tools/patchfiles/Operation.java | 13 ++
.../tools/patchfiles/PreProcessSourcesMojo.java | 86 +++++++++
.../tools/patchfiles/ReplaceOperation.java | 46 +++++
.../patchfiles/ReplaceRegexpOperation.java | 68 ++++++++
.../problems/BaseProblemGeneratorMojo.java | 127 ++++++++++++++
.../problems/ProblemEnumGeneratorMojo.java | 152 ++++++++++++++++
.../ProblemResourceBundleGeneratorMojo.java | 101 +++++++++++
.../tools/unpack/UnpackResourceMojo.java | 100 +++++++++++
compiler.jx/pom.xml | 2 +-
compiler/pom.xml | 2 +-
externs/GCL/pom.xml | 23 +++
externs/GCL/src/main/config/compile-config.xml | 103 +++++++++++
externs/cordova/pom.xml | 49 ++++++
.../cordova/src/main/config/compile-config.xml | 44 +++++
.../cordova/src/main/config/generate-config.xml | 39 +++++
externs/createjs/pom.xml | 167 ++++++++++++++++++
.../createjs/src/main/config/compile-config.xml | 102 +++++++++++
.../src/main/config/generate-config.xml | 130 ++++++++++++++
externs/google_maps/pom.xml | 88 ++++++++++
.../src/main/config/compile-config.xml | 97 +++++++++++
.../src/main/config/generate-config.xml | 39 +++++
externs/jasmine/pom.xml | 62 +++++++
.../jasmine/src/main/config/compile-config.xml | 97 +++++++++++
.../jasmine/src/main/config/generate-config.xml | 45 +++++
externs/jquery/pom.xml | 62 +++++++
.../jquery/src/main/config/compile-config.xml | 101 +++++++++++
.../jquery/src/main/config/generate-config.xml | 59 +++++++
externs/js/pom.xml | 131 ++++++++++++++
externs/js/src/main/config/compile-config.xml | 93 ++++++++++
externs/js/src/main/config/generate-config.xml | 173 +++++++++++++++++++
.../js/src/main/flex/__AS3__/vec/Vector$int.as | 81 +++++++++
.../src/main/flex/__AS3__/vec/Vector$object.as | 81 +++++++++
.../js/src/main/flex/__AS3__/vec/Vector$uint.as | 81 +++++++++
externs/node/pom.xml | 38 ++++
externs/node/src/main/config/compile-config.xml | 43 +++++
.../node/src/main/config/generate-config.xml | 38 ++++
externs/pom.xml | 29 ++++
flexjs-maven-plugin/pom.xml | 100 +++++++++++
.../apache/flex/maven/flexjs/CompileMojo.java | 59 +++++++
.../apache/flex/maven/flexjs/ExterncMojo.java | 52 ++++++
maven/falcon-jx-compiler.pom | 2 +-
migrate-to-maven.sh | 40 +++++
pom.xml | 2 +
52 files changed, 3292 insertions(+), 518 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/pom.xml
----------------------------------------------------------------------
diff --git a/compiler-build-tools/pom.xml b/compiler-build-tools/pom.xml
index d773ee7..4f9e05f 100644
--- a/compiler-build-tools/pom.xml
+++ b/compiler-build-tools/pom.xml
@@ -46,6 +46,11 @@
<version>3.0.3</version>
</dependency>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.10</version>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/AnnotateClassesMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/AnnotateClassesMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/AnnotateClassesMojo.java
deleted file mode 100644
index cae1ad7..0000000
--- a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/AnnotateClassesMojo.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.apache.flex.compiler.tools;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
-import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
-import org.codehaus.plexus.compiler.util.scan.mapping.SuffixMapping;
-
-import java.io.*;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Goal which adds annotations to generated classes.
- */
-@Mojo(name="add-class-annotation",defaultPhase = LifecyclePhase.PROCESS_SOURCES)
-public class AnnotateClassesMojo
- extends AbstractMojo
-{
- @Parameter
- protected Set<String> includes = new HashSet<String>();
-
- @Parameter
- protected Set<String> excludes = new HashSet<String>();
-
- @Parameter(defaultValue="${project.build.directory}/generated-sources")
- private File directory;
-
- @Parameter(property="annotation", required=true)
- private String annotation;
-
- public void execute()
- throws MojoExecutionException
- {
- SuffixMapping mapping = new SuffixMapping("jbg", Collections.<String>emptySet());
- SimpleSourceInclusionScanner scan = new SimpleSourceInclusionScanner(includes, excludes);
- scan.addSourceMapping(mapping);
-
- try {
- Set<File> candidates = scan.getIncludedSources(directory, null);
- for(File candidate : candidates) {
- processFile(candidate);
- }
- } catch (InclusionScanException e) {
- throw new MojoExecutionException("Error scanning filed to be processed.", e);
- }
- }
-
- private void processFile(File file) {
- if(!file.exists()) {
- System.out.println("Missing file: " + file.getPath());
- return;
- }
- System.out.println("Adding " + annotation + " to class: " + file.getPath());
- try
- {
- // Prepare to read the file.
- FileInputStream fileInputStream = new FileInputStream(file);
- InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
- BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
-
- File tmpOutputFile = new File(file.getParentFile(), file.getName() + ".tmp");
- FileOutputStream fileOutputStream = new FileOutputStream(tmpOutputFile);
- PrintStream outputStream = new PrintStream(fileOutputStream);
- try
- {
- // Read it line-by-line.
- String line;
- while ((line = bufferedReader.readLine()) != null)
- {
- // If the line starts with "public class", output the annotation on the previous line.
- if (line.startsWith("public class") || line.startsWith("public interface")) {
- outputStream.println(annotation);
- }
- outputStream.println(line);
- }
- }
- finally
- {
- try {
- bufferedReader.close();
- } catch(Exception e) {
- // Ignore.
- }
- try {
- outputStream.close();
- } catch(Exception e) {
- // Ignore.
- }
- try {
- fileOutputStream.close();
- } catch(Exception e) {
- // Ignore.
- }
- }
-
- // Remove the original file.
- if(!file.delete()) {
- throw new MojoExecutionException("Error deleting original file at: " + file.getPath());
- }
-
- // Rename the temp file to the name of the original file.
- if(!tmpOutputFile.renameTo(file)) {
- throw new MojoExecutionException("Error renaming the temp file from: " + tmpOutputFile.getPath() +
- " to: " + file.getPath());
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/BaseProblemGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/BaseProblemGeneratorMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/BaseProblemGeneratorMojo.java
deleted file mode 100644
index 3845be9..0000000
--- a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/BaseProblemGeneratorMojo.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.apache.flex.compiler.tools;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.io.Files;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.nio.charset.Charset;
-import java.util.Collection;
-import java.util.Iterator;
-
-/**
- * Created by christoferdutz on 20.02.16.
- */
-public abstract class BaseProblemGeneratorMojo extends AbstractMojo
-{
-
- private ImmutableSet<String> nonProblemClassesToFilter =
- new ImmutableSet.Builder<String>()
- .add("DefaultSeverity.java")
- .add("CompositeProblemFilter.java")
- .add("FilteredIterator.java")
- .add("CompilerProblemSeverity.java")
- .build();
-
- abstract protected File getInputDirectory();
- abstract protected File getOutputDirectory();
- abstract protected String getOutputFile();
-
- public void execute() throws MojoExecutionException
- {
- File generatedFile = new File(getOutputDirectory(), getOutputFile());
-
- if(!generatedFile.getParentFile().exists()) {
- if(!generatedFile.getParentFile().mkdirs()) {
- throw new MojoExecutionException("Could not create output directory: " + generatedFile.getParentFile());
- }
- }
-
- try {
- PrintWriter writer = new PrintWriter(new FileWriter(generatedFile, true));
- try {
- printHeader(writer);
-
- Collection<File> problemClassSourceFiles = getProblemClassSourceFiles(getInputDirectory());
- Iterator<File> problemClassSourceFileIterator = problemClassSourceFiles.iterator();
- while (problemClassSourceFileIterator.hasNext()) {
- File problemClassSourceFile = problemClassSourceFileIterator.next();
- printEntry(writer, problemClassSourceFile, !problemClassSourceFileIterator.hasNext());
- }
-
- printFooter(writer);
- } finally {
- writer.close();
- }
- } catch (IOException e) {
- throw new MojoExecutionException("Caught Exception while trying to create output file: " + generatedFile);
- }
- }
-
-
- protected void printHeader(PrintWriter writer) {
- // Optional.
- }
-
- abstract protected void printEntry(PrintWriter writer, File source, boolean last);
-
- protected void printFooter(PrintWriter writer) {
- // Optional.
- }
-
- /**
- * Recursively search a directory and its sub-directories for .class files.
- * Use the file name to determine what equivalent class name should be
- * available to the current classloader.
- *
- * @param dir - the directory to search
- * @return list of source files found
- */
- protected Collection<File> getProblemClassSourceFiles(File dir)
- {
- Collection<File> problemFiles = FileUtils.listFiles(dir, new String[] { "java" }, true);
- return Collections2.filter(problemFiles,
- new Predicate<File>() {
- @Override
- public boolean apply(File input)
- {
- return isProblemClass(input);
- }
- });
- }
-
- private boolean isProblemClass(File javaFile)
- {
- if (nonProblemClassesToFilter.contains(javaFile.getName()))
- return false;
- final String javaClassName = FilenameUtils.getBaseName(javaFile.getAbsolutePath());
- try
- {
- Collection<String> lines = Files.readLines(javaFile, Charset.forName("UTF8"));
- for (String line : lines)
- {
- if (line.matches("^\\s*public\\s+final\\s+class\\s+" + javaClassName + "\\s+extends\\s+.*"))
- return true;
- if (line.matches("^\\s*final\\s+public\\s+class\\s+" + javaClassName + "\\s+extends\\s+.*"))
- return true;
- if (line.matches("^\\s*public\\s+class\\s+" + javaClassName + "\\s+extends\\s+.*"))
- return true;
- }
- return false;
- }
- catch (IOException e)
- {
- return false;
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemEnumGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemEnumGeneratorMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemEnumGeneratorMojo.java
deleted file mode 100644
index 54b621b..0000000
--- a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemEnumGeneratorMojo.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package org.apache.flex.compiler.tools;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-
-import java.io.File;
-import java.io.PrintWriter;
-
-/**
- * Goal which touches a timestamp file.
- */
-@Mojo(name="generate-problems-enum",defaultPhase = LifecyclePhase.GENERATE_SOURCES)
-public class ProblemEnumGeneratorMojo
- extends BaseProblemGeneratorMojo
-{
- @Parameter(defaultValue="${project.basedir}/src/main/java/org/apache/flex/compiler/problems",
- property="inputDir", required=true)
- private File inputDirectory;
-
- @Parameter(defaultValue="${project.build.directory}/generated-sources/build-tools",
- property="outputDir", required=true)
- private File outputDirectory;
-
- @Parameter(defaultValue="org/apache/flex/compiler/problems/ProblemID.java",
- property="outputFile", required=true)
- private String outputFile;
-
- @Parameter(defaultValue="${project}")
- private MavenProject project;
-
- @Override
- protected File getInputDirectory() {
- return inputDirectory;
- }
-
- @Override
- protected File getOutputDirectory() {
- return outputDirectory;
- }
-
- @Override
- protected String getOutputFile() {
- return outputFile;
- }
-
- @Override
- public void execute() throws MojoExecutionException {
- super.execute();
-
- // Add the output directory to the source path.
- project.addCompileSourceRoot(outputDirectory.getPath());
- }
-
- @Override
- protected void printHeader(PrintWriter writer) {
- writer.println("/*");
- writer.println(" * Licensed to the Apache Software Foundation (ASF) under one or more");
- writer.println(" * contributor license agreements. See the NOTICE file distributed with");
- writer.println(" * this work for additional information regarding copyright ownership.");
- writer.println(" * The ASF licenses this file to You under the Apache License, Version 2.0");
- writer.println(" * (the \"License\"); you may not use this file except in compliance with");
- writer.println(" * the License. You may obtain a copy of the License at");
- writer.println();
- writer.println(" * http://www.apache.org/licenses/LICENSE-2.0");
- writer.println();
- writer.println(" * Unless required by applicable law or agreed to in writing, software");
- writer.println(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
- writer.println(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
- writer.println(" * See the License for the specific language governing permissions and");
- writer.println(" * limitations under the License.");
- writer.println(" */");
- writer.println();
- writer.println("package org.apache.flex.compiler.problems;");
- writer.println();
- writer.println("import java.util.EnumSet;");
- writer.println("import com.google.common.collect.ImmutableMap;");
- writer.println();
- writer.println("public enum ProblemID");
- writer.println("{");
- }
-
- @Override
- protected void printEntry(PrintWriter writer, File source, boolean last) {
- writer.println(" " + getProblemEnumEntry(source.getName()) + (last ? ";" : ","));
- }
-
- @Override
- protected void printFooter(PrintWriter writer) {
- writer.println();
- writer.println(" private ProblemID(Class<? extends CompilerProblem> problemClass)");
- writer.println(" {");
- writer.println(" this.problemClass = problemClass;");
- writer.println(" }");
- writer.println();
- writer.println(" private final Class<? extends CompilerProblem> problemClass;");
- writer.println(" public final Class<? extends CompilerProblem> getProblemClass()");
- writer.println(" {");
- writer.println(" return problemClass;");
- writer.println(" }");
- writer.println();
- writer.println(" public static final ProblemID getID(ICompilerProblem problem)");
- writer.println(" {");
- writer.println(" final CompilerProblem problemImpl = (CompilerProblem)problem;");
- writer.println(" return classToIDMap.get(problemImpl.getClass());");
- writer.println(" }");
- writer.println();
- writer.println(" public static final ProblemID getID(Class<?> problemClass)");
- writer.println(" {");
- writer.println(" return classToIDMap.get(problemClass);");
- writer.println(" }");
- writer.println();
- writer.println(" private static final ImmutableMap<Class<? extends CompilerProblem>, ProblemID> classToIDMap = createClassToIDMap();");
- writer.println(" private static ImmutableMap<Class<? extends CompilerProblem>, ProblemID> createClassToIDMap()");
- writer.println(" {");
- writer.println(" final ImmutableMap.Builder<Class<? extends CompilerProblem>, ProblemID> builder = new ImmutableMap.Builder<Class<? extends CompilerProblem>, ProblemID>();");
- writer.println(" for (ProblemID id : EnumSet.allOf(ProblemID.class))");
- writer.println(" builder.put(id.getProblemClass(), id);");
- writer.println(" return builder.build();");
- writer.println(" }");
- writer.println("}");
- }
-
- private static String getProblemEnumEntry(String problemClassName) {
- String problemTypeName = problemClassName.substring(0, problemClassName.length() - "class".length());
- String enumConstantName = getEnumName(problemTypeName.replaceAll("Problem$", ""));
- return enumConstantName + "(" + problemTypeName + ".class" + ")";
- }
-
- private static String getEnumName(String problemTypeName) {
- return "PROBLEM_" + problemTypeName;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemResourceBundleGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemResourceBundleGeneratorMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemResourceBundleGeneratorMojo.java
deleted file mode 100644
index dcbedce..0000000
--- a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/ProblemResourceBundleGeneratorMojo.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.apache.flex.compiler.tools;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-
-import java.io.*;
-
-/**
- * Goal which touches a timestamp file.
- */
-@Mojo(name="generate-problems-resource-bundle",defaultPhase = LifecyclePhase.PROCESS_RESOURCES)
-public class ProblemResourceBundleGeneratorMojo
- extends BaseProblemGeneratorMojo
-{
- @Parameter(defaultValue="${project.basedir}/src/main/java/org/apache/flex/compiler/problems",
- property="inputDir", required=true)
- private File inputDirectory;
-
- @Parameter(defaultValue="${project.build.directory}/classes/org/apache/flex/compiler",
- property="outputDir", required=true)
- private File outputDirectory;
-
- @Parameter(defaultValue="messages_en.properties",
- property="outputFile", required=true)
- private String outputFile;
-
- @Parameter(defaultValue="${project}")
- private MavenProject project;
-
- @Override
- protected File getInputDirectory() {
- return inputDirectory;
- }
-
- @Override
- protected File getOutputDirectory() {
- return outputDirectory;
- }
-
- @Override
- protected String getOutputFile() {
- return outputFile;
- }
-
- @Override
- protected void printEntry(PrintWriter writer, File source, boolean last) {
- writer.println(getProblemName(source) + "=" + getProblemDescription(source));
- }
-
- private String getProblemName(File sourceFile) {
- String fileName = sourceFile.getName();
- return fileName.substring(0, fileName.length() - "class".length());
- }
-
- private String getProblemDescription(File sourceFile) {
- try {
- BufferedReader sourceFileReader = new BufferedReader(new FileReader(sourceFile));
- String line;
- StringBuilder sb = null;
- while((line = sourceFileReader.readLine()) != null) {
- if(line.contains("DESCRIPTION")) {
- sb = new StringBuilder();
- }
- if(sb != null) {
- sb.append(line);
- if(line.trim().endsWith(";")) {
- break;
- }
- }
- }
- if(sb != null) {
- line = sb.toString();
- return line.substring(line.indexOf("\"") + 1, line.lastIndexOf("\""));
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return "";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/annotate/AnnotateClassesMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/annotate/AnnotateClassesMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/annotate/AnnotateClassesMojo.java
new file mode 100644
index 0000000..82712da
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/annotate/AnnotateClassesMojo.java
@@ -0,0 +1,135 @@
+package org.apache.flex.compiler.tools.annotate;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
+import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
+import org.codehaus.plexus.compiler.util.scan.mapping.SuffixMapping;
+
+import java.io.*;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Goal which adds annotations to generated classes.
+ */
+@Mojo(name="add-class-annotation",defaultPhase = LifecyclePhase.PROCESS_SOURCES)
+public class AnnotateClassesMojo
+ extends AbstractMojo
+{
+ @Parameter
+ protected Set<String> includes = new HashSet<String>();
+
+ @Parameter
+ protected Set<String> excludes = new HashSet<String>();
+
+ @Parameter(defaultValue="${project.build.directory}/generated-sources")
+ private File directory;
+
+ @Parameter(property="annotation", required=true)
+ private String annotation;
+
+ public void execute()
+ throws MojoExecutionException
+ {
+ SuffixMapping mapping = new SuffixMapping("jbg", Collections.<String>emptySet());
+ SimpleSourceInclusionScanner scan = new SimpleSourceInclusionScanner(includes, excludes);
+ scan.addSourceMapping(mapping);
+
+ try {
+ Set<File> candidates = scan.getIncludedSources(directory, null);
+ for(File candidate : candidates) {
+ processFile(candidate);
+ }
+ } catch (InclusionScanException e) {
+ throw new MojoExecutionException("Error scanning files to be processed.", e);
+ }
+ }
+
+ private void processFile(File file) {
+ if(!file.exists()) {
+ System.out.println("Missing file: " + file.getPath());
+ return;
+ }
+ System.out.println("Adding " + annotation + " to class: " + file.getPath());
+ try
+ {
+ // Prepare to read the file.
+ FileInputStream fileInputStream = new FileInputStream(file);
+ InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
+ BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+
+ File tmpOutputFile = new File(file.getParentFile(), file.getName() + ".tmp");
+ FileOutputStream fileOutputStream = new FileOutputStream(tmpOutputFile);
+ PrintStream outputStream = new PrintStream(fileOutputStream);
+ try
+ {
+ // Read it line-by-line.
+ String line;
+ while ((line = bufferedReader.readLine()) != null)
+ {
+ // If the line starts with "public class", output the annotation on the previous line.
+ if (line.startsWith("public class") || line.startsWith("public interface")) {
+ outputStream.println(annotation);
+ }
+ outputStream.println(line);
+ }
+ }
+ finally
+ {
+ try {
+ bufferedReader.close();
+ } catch(Exception e) {
+ // Ignore.
+ }
+ try {
+ outputStream.close();
+ } catch(Exception e) {
+ // Ignore.
+ }
+ try {
+ fileOutputStream.close();
+ } catch(Exception e) {
+ // Ignore.
+ }
+ }
+
+ // Remove the original file.
+ if(!file.delete()) {
+ throw new MojoExecutionException("Error deleting original file at: " + file.getPath());
+ }
+
+ // Rename the temp file to the name of the original file.
+ if(!tmpOutputFile.renameTo(file)) {
+ throw new MojoExecutionException("Error renaming the temp file from: " + tmpOutputFile.getPath() +
+ " to: " + file.getPath());
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CopyFileOperation.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CopyFileOperation.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CopyFileOperation.java
new file mode 100644
index 0000000..188d946
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CopyFileOperation.java
@@ -0,0 +1,31 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Created by christoferdutz on 16.03.16.
+ */
+public class CopyFileOperation extends Operation {
+
+ private File targetDirectory;
+
+ public CopyFileOperation() {
+ }
+
+ public File getTargetDirectory() {
+ return targetDirectory;
+ }
+
+ public void setTargetDirectory(File targetDirectory) {
+ this.targetDirectory = targetDirectory;
+ }
+
+ @Override
+ public void perform(File file) throws IOException {
+ FileUtils.copyFile(file, new File(targetDirectory, file.getName()));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CutOperation.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CutOperation.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CutOperation.java
new file mode 100644
index 0000000..2834704
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/CutOperation.java
@@ -0,0 +1,54 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+import org.apache.commons.io.IOUtils;
+
+import java.io.*;
+
+/**
+ * Created by christoferdutz on 16.03.16.
+ */
+public class CutOperation extends Operation {
+
+ private Integer startCuttingLine = -1;
+ private Integer stopCuttingLine = -1;
+
+ public CutOperation() {
+ }
+
+ public Integer getStartCuttingLine() {
+ return startCuttingLine;
+ }
+
+ public void setStartCuttingLine(Integer startCuttingLine) {
+ this.startCuttingLine = startCuttingLine;
+ }
+
+ public Integer getStopCuttingLine() {
+ return stopCuttingLine;
+ }
+
+ public void setStopCuttingLine(Integer stopCuttingLine) {
+ this.stopCuttingLine = stopCuttingLine;
+ }
+
+ @Override
+ public void perform(File file) throws IOException {
+ StringBuilder sb = new StringBuilder();
+ BufferedReader reader = null;
+ try {
+ reader = new BufferedReader(new FileReader(file));
+ String line;
+ for (int lineNumber = 1; (line = reader.readLine()) != null; lineNumber++) {
+ if((startCuttingLine > lineNumber) || (lineNumber > stopCuttingLine)) {
+ sb.append(line).append("\n");
+ }
+ }
+ } finally {
+ if(reader != null) {
+ reader.close();
+ }
+ }
+ IOUtils.write(sb.toString(), new FileOutputStream(file), "UTF-8");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/DeleteFileOperation.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/DeleteFileOperation.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/DeleteFileOperation.java
new file mode 100644
index 0000000..ab225cb
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/DeleteFileOperation.java
@@ -0,0 +1,23 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Created by christoferdutz on 16.03.16.
+ */
+public class DeleteFileOperation extends Operation {
+
+ public DeleteFileOperation() {
+ }
+
+ @Override
+ public void perform(File file) throws IOException {
+ if(file.exists()) {
+ if(!file.delete()) {
+ throw new IOException("Could not delete file " + file.getPath());
+ }
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/Operation.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/Operation.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/Operation.java
new file mode 100644
index 0000000..3c387d3
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/Operation.java
@@ -0,0 +1,13 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Created by christoferdutz on 16.03.16.
+ */
+public abstract class Operation {
+
+ public abstract void perform(File file) throws IOException;
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/PreProcessSourcesMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/PreProcessSourcesMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/PreProcessSourcesMojo.java
new file mode 100644
index 0000000..facd686
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/PreProcessSourcesMojo.java
@@ -0,0 +1,86 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
+import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
+import org.codehaus.plexus.compiler.util.scan.mapping.SuffixMapping;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Goal which pre-processes the JavaScript input files so they can be processed by EXTERNC.
+ */
+@Mojo(name="pre-process-sources",defaultPhase = LifecyclePhase.GENERATE_SOURCES)
+public class PreProcessSourcesMojo
+ extends AbstractMojo
+{
+
+ @Parameter
+ private Set<String> includes = new HashSet<String>();
+
+ @Parameter
+ private Set<String> excludes = new HashSet<String>();
+
+ @Parameter(defaultValue="${project.build.directory}/downloads")
+ private File downloadesSourceDirectory;
+
+ @Parameter
+ private List<Operation> operations;
+
+ @Parameter(defaultValue="${project}")
+ private MavenProject project;
+
+ public void execute()
+ throws MojoExecutionException
+ {
+ SuffixMapping mapping = new SuffixMapping("js", Collections.<String>emptySet());
+ SimpleSourceInclusionScanner scan = new SimpleSourceInclusionScanner(includes, excludes);
+ scan.addSourceMapping(mapping);
+ try {
+ Set<File> candidates = scan.getIncludedSources(downloadesSourceDirectory, null);
+ for(File candidate : candidates) {
+ if(operations != null) {
+ for (Operation operation : operations) {
+ try {
+ operation.perform(candidate);
+ } catch (IOException e) {
+ throw new MojoExecutionException("Error performing pre-processing operation " +
+ operation + " on file " + candidate.getPath(), e);
+ }
+ }
+ }
+ }
+ } catch (InclusionScanException e) {
+ throw new MojoExecutionException("Error scanning files to be processed.", e);
+ }
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceOperation.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceOperation.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceOperation.java
new file mode 100644
index 0000000..ef85301
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceOperation.java
@@ -0,0 +1,46 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+import org.apache.commons.io.IOUtils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Created by christoferdutz on 16.03.16.
+ */
+public class ReplaceOperation extends Operation {
+
+ private String token;
+ private String value;
+
+ public ReplaceOperation() {
+ }
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ @Override
+ public void perform(File file) throws IOException {
+ String content = IOUtils.toString(new FileInputStream(file), "UTF-8");
+ content = content.replaceAll(Pattern.quote(token), Matcher.quoteReplacement((value == null) ? "" : value));
+ IOUtils.write(content, new FileOutputStream(file), "UTF-8");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceRegexpOperation.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceRegexpOperation.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceRegexpOperation.java
new file mode 100644
index 0000000..e76fc84
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/patchfiles/ReplaceRegexpOperation.java
@@ -0,0 +1,68 @@
+package org.apache.flex.compiler.tools.patchfiles;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+/**
+ * Created by christoferdutz on 16.03.16.
+ */
+public class ReplaceRegexpOperation extends Operation {
+
+ private String match;
+ private String replace;
+ private String flags;
+
+ public ReplaceRegexpOperation() {
+ }
+
+ public String getMatch() {
+ return match;
+ }
+
+ public void setMatch(String match) {
+ this.match = match;
+ }
+
+ public String getReplace() {
+ return replace;
+ }
+
+ public void setReplace(String replace) {
+ this.replace = replace;
+ }
+
+ public String getFlags() {
+ return flags;
+ }
+
+ public void setFlags(String flags) {
+ this.flags = flags;
+ }
+
+ @Override
+ public void perform(File file) throws IOException {
+ String content = IOUtils.toString(new FileInputStream(file), "UTF-8");
+ // TODO: Add the "flags" support
+ String matchExpression = match;
+ if(matchExpression.contains("§{file.base}")) {
+ matchExpression = matchExpression.replaceAll("§\\{file.base\\}", FilenameUtils.getBaseName(file.getName()));
+ }
+ String replaceExpression = (replace == null) ? "" : replace;
+ if(replaceExpression.contains("§{file.base}")) {
+ replaceExpression = replaceExpression.replaceAll("§\\{file.base\\}", FilenameUtils.getBaseName(file.getName()));
+ }
+ if(replaceExpression.contains("_")) {
+ replaceExpression = replaceExpression.replaceAll("_", " ");
+ }
+
+ //content = Pattern.compile(matchExpression, Pattern.DOTALL).matcher(content).replaceAll(replaceExpression);
+ content = content.replaceAll(matchExpression, replaceExpression);
+ IOUtils.write(content, new FileOutputStream(file), "UTF-8");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/BaseProblemGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/BaseProblemGeneratorMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/BaseProblemGeneratorMojo.java
new file mode 100644
index 0000000..24f2560
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/BaseProblemGeneratorMojo.java
@@ -0,0 +1,127 @@
+package org.apache.flex.compiler.tools.problems;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.io.Files;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.nio.charset.Charset;
+import java.util.Collection;
+import java.util.Iterator;
+
+/**
+ * Created by christoferdutz on 20.02.16.
+ */
+public abstract class BaseProblemGeneratorMojo extends AbstractMojo
+{
+
+ private ImmutableSet<String> nonProblemClassesToFilter =
+ new ImmutableSet.Builder<String>()
+ .add("DefaultSeverity.java")
+ .add("CompositeProblemFilter.java")
+ .add("FilteredIterator.java")
+ .add("CompilerProblemSeverity.java")
+ .build();
+
+ abstract protected File getInputDirectory();
+ abstract protected File getOutputDirectory();
+ abstract protected String getOutputFile();
+
+ public void execute() throws MojoExecutionException
+ {
+ File generatedFile = new File(getOutputDirectory(), getOutputFile());
+
+ if(!generatedFile.getParentFile().exists()) {
+ if(!generatedFile.getParentFile().mkdirs()) {
+ throw new MojoExecutionException("Could not create output directory: " + generatedFile.getParentFile());
+ }
+ }
+
+ try {
+ PrintWriter writer = new PrintWriter(new FileWriter(generatedFile, true));
+ try {
+ printHeader(writer);
+
+ Collection<File> problemClassSourceFiles = getProblemClassSourceFiles(getInputDirectory());
+ Iterator<File> problemClassSourceFileIterator = problemClassSourceFiles.iterator();
+ while (problemClassSourceFileIterator.hasNext()) {
+ File problemClassSourceFile = problemClassSourceFileIterator.next();
+ printEntry(writer, problemClassSourceFile, !problemClassSourceFileIterator.hasNext());
+ }
+
+ printFooter(writer);
+ } finally {
+ writer.close();
+ }
+ } catch (IOException e) {
+ throw new MojoExecutionException("Caught Exception while trying to create output file: " + generatedFile);
+ }
+ }
+
+
+ protected void printHeader(PrintWriter writer) {
+ // Optional.
+ }
+
+ abstract protected void printEntry(PrintWriter writer, File source, boolean last);
+
+ protected void printFooter(PrintWriter writer) {
+ // Optional.
+ }
+
+ /**
+ * Recursively search a directory and its sub-directories for .class files.
+ * Use the file name to determine what equivalent class name should be
+ * available to the current classloader.
+ *
+ * @param dir - the directory to search
+ * @return list of source files found
+ */
+ protected Collection<File> getProblemClassSourceFiles(File dir)
+ {
+ Collection<File> problemFiles = FileUtils.listFiles(dir, new String[] { "java" }, true);
+ return Collections2.filter(problemFiles,
+ new Predicate<File>() {
+ @Override
+ public boolean apply(File input)
+ {
+ return isProblemClass(input);
+ }
+ });
+ }
+
+ private boolean isProblemClass(File javaFile)
+ {
+ if (nonProblemClassesToFilter.contains(javaFile.getName()))
+ return false;
+ final String javaClassName = FilenameUtils.getBaseName(javaFile.getAbsolutePath());
+ try
+ {
+ Collection<String> lines = Files.readLines(javaFile, Charset.forName("UTF8"));
+ for (String line : lines)
+ {
+ if (line.matches("^\\s*public\\s+final\\s+class\\s+" + javaClassName + "\\s+extends\\s+.*"))
+ return true;
+ if (line.matches("^\\s*final\\s+public\\s+class\\s+" + javaClassName + "\\s+extends\\s+.*"))
+ return true;
+ if (line.matches("^\\s*public\\s+class\\s+" + javaClassName + "\\s+extends\\s+.*"))
+ return true;
+ }
+ return false;
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemEnumGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemEnumGeneratorMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemEnumGeneratorMojo.java
new file mode 100644
index 0000000..d3acb6a
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemEnumGeneratorMojo.java
@@ -0,0 +1,152 @@
+package org.apache.flex.compiler.tools.problems;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+
+import java.io.File;
+import java.io.PrintWriter;
+
+/**
+ * Goal which touches a timestamp file.
+ */
+@Mojo(name="generate-problems-enum",defaultPhase = LifecyclePhase.GENERATE_SOURCES)
+public class ProblemEnumGeneratorMojo
+ extends BaseProblemGeneratorMojo
+{
+ @Parameter(defaultValue="${project.basedir}/src/main/java/org/apache/flex/compiler/problems",
+ property="inputDir", required=true)
+ private File inputDirectory;
+
+ @Parameter(defaultValue="${project.build.directory}/generated-sources/build-tools",
+ property="outputDir", required=true)
+ private File outputDirectory;
+
+ @Parameter(defaultValue="org/apache/flex/compiler/problems/ProblemID.java",
+ property="outputFile", required=true)
+ private String outputFile;
+
+ @Parameter(defaultValue="${project}")
+ private MavenProject project;
+
+ @Override
+ protected File getInputDirectory() {
+ return inputDirectory;
+ }
+
+ @Override
+ protected File getOutputDirectory() {
+ return outputDirectory;
+ }
+
+ @Override
+ protected String getOutputFile() {
+ return outputFile;
+ }
+
+ @Override
+ public void execute() throws MojoExecutionException {
+ super.execute();
+
+ // Add the output directory to the source path.
+ project.addCompileSourceRoot(outputDirectory.getPath());
+ }
+
+ @Override
+ protected void printHeader(PrintWriter writer) {
+ writer.println("/*");
+ writer.println(" * Licensed to the Apache Software Foundation (ASF) under one or more");
+ writer.println(" * contributor license agreements. See the NOTICE file distributed with");
+ writer.println(" * this work for additional information regarding copyright ownership.");
+ writer.println(" * The ASF licenses this file to You under the Apache License, Version 2.0");
+ writer.println(" * (the \"License\"); you may not use this file except in compliance with");
+ writer.println(" * the License. You may obtain a copy of the License at");
+ writer.println();
+ writer.println(" * http://www.apache.org/licenses/LICENSE-2.0");
+ writer.println();
+ writer.println(" * Unless required by applicable law or agreed to in writing, software");
+ writer.println(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
+ writer.println(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ writer.println(" * See the License for the specific language governing permissions and");
+ writer.println(" * limitations under the License.");
+ writer.println(" */");
+ writer.println();
+ writer.println("package org.apache.flex.compiler.problems;");
+ writer.println();
+ writer.println("import java.util.EnumSet;");
+ writer.println("import com.google.common.collect.ImmutableMap;");
+ writer.println();
+ writer.println("public enum ProblemID");
+ writer.println("{");
+ }
+
+ @Override
+ protected void printEntry(PrintWriter writer, File source, boolean last) {
+ writer.println(" " + getProblemEnumEntry(source.getName()) + (last ? ";" : ","));
+ }
+
+ @Override
+ protected void printFooter(PrintWriter writer) {
+ writer.println();
+ writer.println(" private ProblemID(Class<? extends CompilerProblem> problemClass)");
+ writer.println(" {");
+ writer.println(" this.problemClass = problemClass;");
+ writer.println(" }");
+ writer.println();
+ writer.println(" private final Class<? extends CompilerProblem> problemClass;");
+ writer.println(" public final Class<? extends CompilerProblem> getProblemClass()");
+ writer.println(" {");
+ writer.println(" return problemClass;");
+ writer.println(" }");
+ writer.println();
+ writer.println(" public static final ProblemID getID(ICompilerProblem problem)");
+ writer.println(" {");
+ writer.println(" final CompilerProblem problemImpl = (CompilerProblem)problem;");
+ writer.println(" return classToIDMap.get(problemImpl.getClass());");
+ writer.println(" }");
+ writer.println();
+ writer.println(" public static final ProblemID getID(Class<?> problemClass)");
+ writer.println(" {");
+ writer.println(" return classToIDMap.get(problemClass);");
+ writer.println(" }");
+ writer.println();
+ writer.println(" private static final ImmutableMap<Class<? extends CompilerProblem>, ProblemID> classToIDMap = createClassToIDMap();");
+ writer.println(" private static ImmutableMap<Class<? extends CompilerProblem>, ProblemID> createClassToIDMap()");
+ writer.println(" {");
+ writer.println(" final ImmutableMap.Builder<Class<? extends CompilerProblem>, ProblemID> builder = new ImmutableMap.Builder<Class<? extends CompilerProblem>, ProblemID>();");
+ writer.println(" for (ProblemID id : EnumSet.allOf(ProblemID.class))");
+ writer.println(" builder.put(id.getProblemClass(), id);");
+ writer.println(" return builder.build();");
+ writer.println(" }");
+ writer.println("}");
+ }
+
+ private static String getProblemEnumEntry(String problemClassName) {
+ String problemTypeName = problemClassName.substring(0, problemClassName.length() - "class".length());
+ String enumConstantName = getEnumName(problemTypeName.replaceAll("Problem$", ""));
+ return enumConstantName + "(" + problemTypeName + ".class" + ")";
+ }
+
+ private static String getEnumName(String problemTypeName) {
+ return "PROBLEM_" + problemTypeName;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemResourceBundleGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemResourceBundleGeneratorMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemResourceBundleGeneratorMojo.java
new file mode 100644
index 0000000..be1b467
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/problems/ProblemResourceBundleGeneratorMojo.java
@@ -0,0 +1,101 @@
+package org.apache.flex.compiler.tools.problems;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+
+import java.io.*;
+
+/**
+ * Goal which touches a timestamp file.
+ */
+@Mojo(name="generate-problems-resource-bundle",defaultPhase = LifecyclePhase.PROCESS_RESOURCES)
+public class ProblemResourceBundleGeneratorMojo
+ extends BaseProblemGeneratorMojo
+{
+ @Parameter(defaultValue="${project.basedir}/src/main/java/org/apache/flex/compiler/problems",
+ property="inputDir", required=true)
+ private File inputDirectory;
+
+ @Parameter(defaultValue="${project.build.directory}/classes/org/apache/flex/compiler",
+ property="outputDir", required=true)
+ private File outputDirectory;
+
+ @Parameter(defaultValue="messages_en.properties",
+ property="outputFile", required=true)
+ private String outputFile;
+
+ @Parameter(defaultValue="${project}")
+ private MavenProject project;
+
+ @Override
+ protected File getInputDirectory() {
+ return inputDirectory;
+ }
+
+ @Override
+ protected File getOutputDirectory() {
+ return outputDirectory;
+ }
+
+ @Override
+ protected String getOutputFile() {
+ return outputFile;
+ }
+
+ @Override
+ protected void printEntry(PrintWriter writer, File source, boolean last) {
+ writer.println(getProblemName(source) + "=" + getProblemDescription(source));
+ }
+
+ private String getProblemName(File sourceFile) {
+ String fileName = sourceFile.getName();
+ return fileName.substring(0, fileName.length() - "class".length());
+ }
+
+ private String getProblemDescription(File sourceFile) {
+ try {
+ BufferedReader sourceFileReader = new BufferedReader(new FileReader(sourceFile));
+ String line;
+ StringBuilder sb = null;
+ while((line = sourceFileReader.readLine()) != null) {
+ if(line.contains("DESCRIPTION")) {
+ sb = new StringBuilder();
+ }
+ if(sb != null) {
+ sb.append(line);
+ if(line.trim().endsWith(";")) {
+ break;
+ }
+ }
+ }
+ if(sb != null) {
+ line = sb.toString();
+ return line.substring(line.indexOf("\"") + 1, line.lastIndexOf("\""));
+ }
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/unpack/UnpackResourceMojo.java
----------------------------------------------------------------------
diff --git a/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/unpack/UnpackResourceMojo.java b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/unpack/UnpackResourceMojo.java
new file mode 100644
index 0000000..aa5ac4f
--- /dev/null
+++ b/compiler-build-tools/src/main/java/org/apache/flex/compiler/tools/unpack/UnpackResourceMojo.java
@@ -0,0 +1,100 @@
+package org.apache.flex.compiler.tools.unpack;
+
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.ArchiveException;
+import org.apache.commons.compress.archivers.ArchiveInputStream;
+import org.apache.commons.compress.archivers.ArchiveStreamFactory;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+
+import java.io.*;
+
+/**
+ * Created by christoferdutz on 18.03.16.
+ */
+@Mojo(name="unpack-resources",defaultPhase = LifecyclePhase.GENERATE_SOURCES)
+public class UnpackResourceMojo
+ extends AbstractMojo {
+
+ private static final int KILOBYTE = 1024;
+ private static final int MEGABYTE = KILOBYTE * 1024;
+ private static final int BUFFER_MAX = MEGABYTE;
+
+ @Parameter(required = true)
+ private String resource;
+
+ @Parameter(defaultValue="${project.build.directory}/downloads")
+ private File targetDirectory;
+
+ @Override
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ InputStream is = getClass().getClassLoader().getResourceAsStream(resource);
+ if(is == null) {
+ throw new MojoExecutionException("Could not find resource " + resource);
+ }
+
+ if(!targetDirectory.exists() && !targetDirectory.mkdirs()) {
+ throw new MojoExecutionException("Could not create output directory " + targetDirectory.getPath());
+ }
+
+ final byte[] data = new byte[BUFFER_MAX];
+ ArchiveInputStream archiveInputStream = null;
+ ArchiveEntry entry;
+ try {
+ archiveInputStream = new ArchiveStreamFactory().createArchiveInputStream(
+ new BufferedInputStream(is));
+
+ while ((entry = archiveInputStream.getNextEntry()) != null) {
+ final File outputFile = new File(targetDirectory, entry.getName());
+
+ // Entry is a directory.
+ if (entry.isDirectory()) {
+ if (!outputFile.exists()) {
+ if(!outputFile.mkdirs()) {
+ throw new MojoExecutionException(
+ "Could not create output directory " + outputFile.getAbsolutePath());
+ }
+ }
+ }
+
+ // Entry is a file.
+ else {
+ final FileOutputStream fos = new FileOutputStream(outputFile);
+ BufferedOutputStream dest = null;
+ try {
+ dest = new BufferedOutputStream(fos, BUFFER_MAX);
+
+ int count;
+ while ((count = archiveInputStream.read(data, 0, BUFFER_MAX)) != -1) {
+ dest.write(data, 0, count);
+ }
+ } finally {
+ if(dest != null) {
+ dest.flush();
+ dest.close();
+ }
+ }
+ }
+ }
+ } catch (FileNotFoundException e) {
+ throw new MojoExecutionException("Error unpacking resources", e);
+ } catch (IOException e) {
+ throw new MojoExecutionException("Error unpacking resources", e);
+ } catch (ArchiveException e) {
+ throw new MojoExecutionException("Error unpacking resources", e);
+ } finally {
+ if(archiveInputStream != null) {
+ try {
+ archiveInputStream.close();
+ } catch(Exception e) {
+ // Ignore...
+ }
+ }
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler.jx/pom.xml
----------------------------------------------------------------------
diff --git a/compiler.jx/pom.xml b/compiler.jx/pom.xml
index 0b90a3c..e1f748e 100644
--- a/compiler.jx/pom.xml
+++ b/compiler.jx/pom.xml
@@ -94,7 +94,7 @@
<dependency>
<groupId>com.google.javascript</groupId>
<artifactId>closure-compiler</artifactId>
- <version>v20150609</version>
+ <version>v20151015</version>
</dependency>
<dependency>
<groupId>org.clojure</groupId>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/compiler/pom.xml
----------------------------------------------------------------------
diff --git a/compiler/pom.xml b/compiler/pom.xml
index a2ee9b6..84b6cab 100644
--- a/compiler/pom.xml
+++ b/compiler/pom.xml
@@ -408,7 +408,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>17.0</version>
+ <version>18.0</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jburg</groupId>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/GCL/pom.xml
----------------------------------------------------------------------
diff --git a/externs/GCL/pom.xml b/externs/GCL/pom.xml
new file mode 100644
index 0000000..6fae9b2
--- /dev/null
+++ b/externs/GCL/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-gcl</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: GCL</name>
+
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/GCL/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/GCL/src/main/config/compile-config.xml b/externs/GCL/src/main/config/compile-config.xml
new file mode 100644
index 0000000..715ef39
--- /dev/null
+++ b/externs/GCL/src/main/config/compile-config.xml
@@ -0,0 +1,103 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+
+ <accessible>true</accessible>
+
+ <!--
+ <external-library-path>
+ <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+ <path-element>../../libs/framework.swc</path-element>
+ <path-element>../../libs/mx/mx.swc</path-element>
+ <path-element>../../libs/osmf.swc</path-element>
+ <path-element>../../libs/textLayout.swc</path-element>
+ </external-library-path>
+
+ <keep-as3-metadata>
+ <name>SkinPart</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <minimum-supported-version>4.0.0</minimum-supported-version>
+ </mxml>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ <manifest>manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+ -->
+
+ <external-library-path>
+ <path-element>../js/out/bin/js.swc</path-element>
+ </external-library-path>
+
+ <source-path>
+ <path-element>src</path-element>
+ <!--<path-element>out/as/classes</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/constants</path-element>
+ <path-element>out/as/functions</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/typedefs</path-element>-->
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>src</path-element>
+ <!--<path-element>out/as/classes</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/constants</path-element>
+ <path-element>out/as/functions</path-element>
+ <path-element>out/as/interfaces</path-element>
+ <path-element>out/as/typedefs</path-element>-->
+ </include-sources>
+
+ <!--
+ <include-file>
+ <name>defaults.css</name>
+ <path>defaults.css</path>
+ </include-file>
+ <include-file>
+ <name>assets/ErrorIndicator.png</name>
+ <path>assets/ErrorIndicator.png</path>
+ </include-file>
+ <include-file>
+ <name>assets/RequiredIndicator.png</name>
+ <path>assets/RequiredIndicator.png</path>
+ </include-file>
+
+ <include-namespaces>
+ <uri>library://ns.adobe.com/flex/spark</uri>
+ </include-namespaces>
+
+ <resource-bundle-list>bundles.properties</resource-bundle-list>
+
+ <target-player>${playerglobal.version}</target-player>
+ -->
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/cordova/pom.xml
----------------------------------------------------------------------
diff --git a/externs/cordova/pom.xml b/externs/cordova/pom.xml
new file mode 100644
index 0000000..9ccad91
--- /dev/null
+++ b/externs/cordova/pom.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.compiler</groupId>
+ <artifactId>flex-compiler-externs</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>flex-compiler-externs-cordova</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>Apache Flex - FlexJS Compiler: Externs: Cordova</name>
+
+ <properties>
+ <cordova.version>4.11</cordova.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.flex.flexjs.compiler</groupId>
+ <artifactId>externc-maven-plugin</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <id>generate</id>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>compile</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/cordova/src/main/config/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/cordova/src/main/config/compile-config.xml b/externs/cordova/src/main/config/compile-config.xml
new file mode 100644
index 0000000..5499e36
--- /dev/null
+++ b/externs/cordova/src/main/config/compile-config.xml
@@ -0,0 +1,44 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <external-library-path>
+ <!--path-element>../js/out/bin/js.swc</path-element-->
+ </external-library-path>
+
+ <source-path>
+ <path-element>../../../target/generated-sources/externc/constants</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-sources>
+ <path-element>../../../target/generated-sources/externc/constants</path-element>
+ </include-sources>
+
+ <include-file>
+ <name>externs/cordova_file_plugin-4-11.js</name>
+ <path>../javascript/cordova_file_plugin-4-11.js</path>
+ </include-file>
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dec07727/externs/cordova/src/main/config/generate-config.xml
----------------------------------------------------------------------
diff --git a/externs/cordova/src/main/config/generate-config.xml b/externs/cordova/src/main/config/generate-config.xml
new file mode 100644
index 0000000..f10016a
--- /dev/null
+++ b/externs/cordova/src/main/config/generate-config.xml
@@ -0,0 +1,39 @@
+<!--
+
+ 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</name></exclude> 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>true</accessible>
+
+ <locale/>
+
+ <source-path>
+ <path-element>src/main/javascript</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <external>
+ <path-element>../javascript/cordova_file_plugin-4-11.js</path-element>
+ </external>
+
+ <as-root>../../../target/generated-sources/externc</as-root>
+
+</flex-config>