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/05/04 13:41:06 UTC
[2/2] git commit: [flex-falcon] [refs/heads/develop] - - Added more
and more configuration options to the flexjs-maven-plugin
- Added more and more configuration options to the 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/ffd49309
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/ffd49309
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/ffd49309
Branch: refs/heads/develop
Commit: ffd49309b779d0e99f2bedb4a21de5f46409f6ae
Parents: e7f73a0
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Wed May 4 15:40:56 2016 +0200
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Wed May 4 15:40:56 2016 +0200
----------------------------------------------------------------------
.../org/apache/flex/maven/flexjs/BaseMojo.java | 27 +++++--
.../apache/flex/maven/flexjs/CompileASMojo.java | 17 +++-
.../flex/maven/flexjs/CompileExternMojo.java | 26 +++++-
.../apache/flex/maven/flexjs/CompileJSMojo.java | 41 +++++++++-
.../org/apache/flex/maven/flexjs/Namespace.java | 27 +++++++
.../main/resources/config/compile-as-config.xml | 74 ++++++++---------
.../resources/config/compile-extern-config.xml | 38 ++++++++-
.../main/resources/config/compile-js-config.xml | 85 ++++++++------------
8 files changed, 230 insertions(+), 105 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
index a77c0a1..962ef19 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/BaseMojo.java
@@ -20,10 +20,7 @@ import org.eclipse.aether.RepositorySystemSession;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
/**
* Created by christoferdutz on 22.04.16.
@@ -39,6 +36,12 @@ public abstract class BaseMojo
protected File outputDirectory;
@Parameter
+ private Namespace[] namespaces;
+
+ @Parameter
+ private String[] includeClasses;
+
+ @Parameter
private String targetPlayer = "11.1";
@Parameter
@@ -68,6 +71,8 @@ public abstract class BaseMojo
context.put("libraries", libraries);
context.put("externalLibraries", externalLibraries);
context.put("sourcePaths", sourcePaths);
+ context.put("namespaces", namespaces);
+ context.put("includeClasses", includeClasses);
context.put("targetPlayer", targetPlayer);
context.put("debug", debug);
context.put("output", getOutput());
@@ -93,6 +98,8 @@ public abstract class BaseMojo
protected List<String> getCompilerArgs(File configFile) {
List<String> args = new LinkedList<String>();
args.add("-load-config=" + configFile.getPath());
+// args.add("+playerglobal.version=20.0");
+// args.add("+env.AIR_HOME=20.0");
return args;
}
@@ -137,13 +144,15 @@ public abstract class BaseMojo
// Get an instance of the compiler and run the build.
FlexTool tool = toolGroup.getFlexTool(getFlexTool());
- tool.execute(getCompilerArgs(configFile).toArray(new String[0]));
+ String[] args = getCompilerArgs(configFile).toArray(new String[0]);
+ getLog().info("Executing " + getFlexTool() + " in tool group " + getToolGroupName() + " with args: " + Arrays.toString(args));
+ tool.execute(args);
}
protected List<Artifact> getLibraries(List<Artifact> artifacts) {
List<Artifact> libraries = new LinkedList<Artifact>();
for(Artifact artifact : artifacts) {
- if(!"external".equalsIgnoreCase(artifact.getScope())) {
+ if(!"external".equalsIgnoreCase(artifact.getScope()) && includeLibrary(artifact)) {
libraries.add(artifact);
}
}
@@ -153,7 +162,7 @@ public abstract class BaseMojo
protected List<Artifact> getExternalLibraries(List<Artifact> artifacts) {
List<Artifact> externalLibraries = new LinkedList<Artifact>();
for(Artifact artifact : artifacts) {
- if("external".equalsIgnoreCase(artifact.getScope())) {
+ if("external".equalsIgnoreCase(artifact.getScope()) && includeLibrary(artifact)) {
externalLibraries.add(artifact);
}
}
@@ -180,4 +189,8 @@ public abstract class BaseMojo
return artifacts;
}
+ protected boolean includeLibrary(Artifact library) {
+ return true;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
index aec0e7d..52db4bb 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileASMojo.java
@@ -17,12 +17,14 @@
package org.apache.flex.maven.flexjs;
import org.apache.flex.tools.FlexTool;
+import org.apache.maven.artifact.Artifact;
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;
+import java.util.List;
/**
* goal which compiles a project into a flexjs swc library.
@@ -57,7 +59,15 @@ public class CompileASMojo
@Override
protected boolean skip() {
- return true;
+ return false;
+ }
+
+ @Override
+ protected List<String> getCompilerArgs(File configFile) {
+ List<String> args = super.getCompilerArgs(configFile);
+ args.add("-define=COMPILE::AS3,true");
+ args.add("-define=COMPILE::JS,false");
+ return args;
}
@Override
@@ -70,4 +80,9 @@ public class CompileASMojo
}
}
+ @Override
+ protected boolean includeLibrary(Artifact library) {
+ return !"extern".equalsIgnoreCase(library.getClassifier());
+ }
+
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileExternMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileExternMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileExternMojo.java
index 6ad8669..60f3411 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileExternMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileExternMojo.java
@@ -17,6 +17,7 @@
package org.apache.flex.maven.flexjs;
import org.apache.flex.tools.FlexTool;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -25,6 +26,7 @@ import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProjectHelper;
import java.io.File;
+import java.util.List;
/**
* goal which compiles a project into a flexjs swc library.
@@ -60,12 +62,32 @@ public class CompileExternMojo
}
@Override
+ protected boolean skip() {
+ return false;
+ }
+
+ @Override
+ protected List<String> getCompilerArgs(File configFile) {
+ List<String> args = super.getCompilerArgs(configFile);
+ args.add("-define=COMPILE::AS3,false");
+ args.add("-define=COMPILE::JS,true");
+ return args;
+ }
+
+ @Override
public void execute() throws MojoExecutionException
{
super.execute();
- // Add the extern to the artifact.
- projectHelper.attachArtifact(project, getOutput(), "extern");
+ if(getOutput().exists()) {
+ // Add the extern to the artifact.
+ projectHelper.attachArtifact(project, getOutput(), "extern");
+ }
+ }
+
+ @Override
+ protected boolean includeLibrary(Artifact library) {
+ return "extern".equalsIgnoreCase(library.getClassifier());
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
index 89b66c9..3e0bcc9 100644
--- a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/CompileJSMojo.java
@@ -17,11 +17,15 @@
package org.apache.flex.maven.flexjs;
import org.apache.flex.tools.FlexTool;
+import org.apache.maven.artifact.Artifact;
+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;
+import java.util.LinkedList;
+import java.util.List;
/**
* goal which compiles a project into a flexjs swc library.
@@ -31,9 +35,12 @@ public class CompileJSMojo
extends BaseMojo
{
- @Parameter(defaultValue = "${project.artifactId}-${project.version}")
+ @Parameter(defaultValue = "generated-sources/flexjs")
private String outputDirectoryName;
+ @Parameter(defaultValue = "false")
+ private boolean skipSwc;
+
@Override
protected String getToolGroupName() {
return "FlexJS";
@@ -56,6 +63,36 @@ public class CompileJSMojo
@Override
protected boolean skip() {
- return true;
+ return false;
+ }
+
+ @Override
+ protected List<String> getCompilerArgs(File configFile) {
+ List<String> args = super.getCompilerArgs(configFile);
+ //args.add("+flexlib=/Users/christoferdutz/Devtools/Apache/apache-flex-4.15.0/frameworks");
+ //args.add("+flexlib=/Users/christoferdutz/Projects/Apache/Flex/flex-asjs/frameworks");
+ args.add("-js-output-type=FLEXJS");
+ args.add("-define=COMPILE::AS3,false");
+ args.add("-define=COMPILE::JS,true");
+ //args.add("-keep-asdoc");
+ return args;
+ }
+
+ @Override
+ public void execute() throws MojoExecutionException {
+ File outputDirectory = getOutput();
+ if(!outputDirectory.exists()) {
+ if(!outputDirectory.mkdirs()) {
+ throw new MojoExecutionException("Could not create output directory " + outputDirectory.getPath());
+ }
+ }
+
+ super.execute();
+ }
+
+ @Override
+ protected boolean includeLibrary(Artifact library) {
+ return "extern".equalsIgnoreCase(library.getClassifier());
}
+
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/Namespace.java
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/Namespace.java b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/Namespace.java
new file mode 100644
index 0000000..e748863
--- /dev/null
+++ b/flexjs-maven-plugin/src/main/java/org/apache/flex/maven/flexjs/Namespace.java
@@ -0,0 +1,27 @@
+package org.apache.flex.maven.flexjs;
+
+/**
+ * Created by christoferdutz on 01.05.16.
+ */
+public class Namespace {
+
+ private String uri;
+ private String manifest;
+
+ public String getUri() {
+ return uri;
+ }
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+ public String getManifest() {
+ return manifest;
+ }
+
+ public void setManifest(String manifest) {
+ this.manifest = manifest;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/resources/config/compile-as-config.xml
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/resources/config/compile-as-config.xml b/flexjs-maven-plugin/src/main/resources/config/compile-as-config.xml
index 7c5bedb..de28c26 100644
--- a/flexjs-maven-plugin/src/main/resources/config/compile-as-config.xml
+++ b/flexjs-maven-plugin/src/main/resources/config/compile-as-config.xml
@@ -23,39 +23,46 @@
<accessible>true</accessible>
<library-path>
- #foreach($artifact in $libraries)<path-element>$artifact.file</path-element>#end
+#foreach($artifact in $libraries) <path-element>$artifact.file</path-element>
+#end
</library-path>
<external-library-path>
- #foreach($artifact in $externalLibraries)<path-element>$artifact.file</path-element>#end
+#foreach($artifact in $externalLibraries) <path-element>$artifact.file</path-element>
+#end
</external-library-path>
+ <source-path>
+#foreach($sourcePath in $sourcePaths) <path-element>$sourcePath</path-element>
+#end
+ </source-path>
+
<namespaces>
- <namespace>
- <uri>library://ns.adobe.com/flex/spark</uri>
- <manifest>manifest.xml</manifest>
+#foreach($namespace in $namespaces) <namespace>
+ <uri>$namespace.uri</uri>
+ <manifest>$namespace.manifest</manifest>
</namespace>
+#end
</namespaces>
<keep-as3-metadata>
- <name>SkinPart</name>
+ <name>Bindable</name>
+ <name>Managed</name>
+ <name>ChangeEvent</name>
+ <name>NonCommittingChangeEvent</name>
+ <name>Transient</name>
</keep-as3-metadata>
<mxml>
- <minimum-supported-version>4.0.0</minimum-supported-version>
+ <children-as-data>true</children-as-data>
</mxml>
- <locale/>
+ <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+ <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+ <binding-value-change-event-type>valueChange</binding-value-change-event-type>
- <source-path>
- <path-element>../src/main/flex</path-element>
- <path-element>generated-sources/externc/classes</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/constants</path-element>
- <path-element>generated-sources/externc/functions</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/typedefs</path-element>
- </source-path>
+ <locale>
+ </locale>
<warn-no-constructor>false</warn-no-constructor>
@@ -70,35 +77,20 @@
</compiler>
<include-sources>
- <!--path-element>../src/main/flex</path-element>
- <path-element>generated-sources/externc/classes</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/constants</path-element>
- <path-element>generated-sources/externc/functions</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/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-classes>
+#foreach($includeClass in $includeClasses) <class>$includeClass</class>
+#end
+ </include-classes>
<include-namespaces>
- <uri>library://ns.adobe.com/flex/spark</uri>
+#foreach($namespace in $namespaces) <uri>$namespace.uri</uri>
+#end
</include-namespaces>
- <resource-bundle-list>bundles.properties</resource-bundle-list>
+ <target-player>${targetPlayer}</target-player>
+
+ <output>${output}</output>
- <target-player>${playerglobal.version}</target-player>
- -->
</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/resources/config/compile-extern-config.xml
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/resources/config/compile-extern-config.xml b/flexjs-maven-plugin/src/main/resources/config/compile-extern-config.xml
index abd46df..60346a1 100644
--- a/flexjs-maven-plugin/src/main/resources/config/compile-extern-config.xml
+++ b/flexjs-maven-plugin/src/main/resources/config/compile-extern-config.xml
@@ -20,7 +20,7 @@
<compiler>
- <accessible>true</accessible>
+ <accessible>false</accessible>
<library-path>
#foreach($artifact in $libraries) <path-element>$artifact.file</path-element>
@@ -37,8 +37,32 @@
#end
</source-path>
+ <namespaces>
+#foreach($namespace in $namespaces) <namespace>
+ <uri>$namespace.uri</uri>
+ <manifest>$namespace.manifest</manifest>
+ </namespace>
+#end
+ </namespaces>
+
<warn-no-constructor>false</warn-no-constructor>
+ <keep-as3-metadata>
+ <name>Bindable</name>
+ <name>Managed</name>
+ <name>ChangeEvent</name>
+ <name>NonCommittingChangeEvent</name>
+ <name>Transient</name>
+ </keep-as3-metadata>
+
+ <mxml>
+ <children-as-data>true</children-as-data>
+ </mxml>
+
+ <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+ <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+ <binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
<define append="true">
<name>COMPILE::JS</name>
<value>true</value>
@@ -50,10 +74,20 @@
</compiler>
<include-sources>
-#foreach($sourcePath in $sourcePaths) <path-element>$sourcePath</path-element>
+#foreach($sourcePath in $sourcePaths) <path-element>$sourcePath</path-element>
#end
</include-sources>
+ <include-namespaces>
+#foreach($namespace in $namespaces) <uri>$namespace.uri</uri>
+#end
+ </include-namespaces>
+
+ <include-classes>
+#foreach($includeClass in $includeClasses) <class>$includeClass</class>
+#end
+ </include-classes>
+
<output>${output}</output>
</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ffd49309/flexjs-maven-plugin/src/main/resources/config/compile-js-config.xml
----------------------------------------------------------------------
diff --git a/flexjs-maven-plugin/src/main/resources/config/compile-js-config.xml b/flexjs-maven-plugin/src/main/resources/config/compile-js-config.xml
index 8674369..60346a1 100644
--- a/flexjs-maven-plugin/src/main/resources/config/compile-js-config.xml
+++ b/flexjs-maven-plugin/src/main/resources/config/compile-js-config.xml
@@ -20,44 +20,48 @@
<compiler>
- <accessible>true</accessible>
+ <accessible>false</accessible>
<library-path>
- #foreach($artifact in $libraries)<path-element>$artifact.file</path-element>#end
+#foreach($artifact in $libraries) <path-element>$artifact.file</path-element>
+#end
</library-path>
<external-library-path>
- #foreach($artifact in $externalLibraries)<path-element>$artifact.file</path-element>#end
+#foreach($artifact in $externalLibraries) <path-element>$artifact.file</path-element>
+#end
</external-library-path>
+ <source-path>
+#foreach($sourcePath in $sourcePaths) <path-element>$sourcePath</path-element>
+#end
+ </source-path>
+
<namespaces>
- <namespace>
- <uri>library://ns.adobe.com/flex/spark</uri>
- <manifest>manifest.xml</manifest>
+#foreach($namespace in $namespaces) <namespace>
+ <uri>$namespace.uri</uri>
+ <manifest>$namespace.manifest</manifest>
</namespace>
+#end
</namespaces>
+ <warn-no-constructor>false</warn-no-constructor>
+
<keep-as3-metadata>
- <name>SkinPart</name>
+ <name>Bindable</name>
+ <name>Managed</name>
+ <name>ChangeEvent</name>
+ <name>NonCommittingChangeEvent</name>
+ <name>Transient</name>
</keep-as3-metadata>
<mxml>
- <minimum-supported-version>4.0.0</minimum-supported-version>
+ <children-as-data>true</children-as-data>
</mxml>
- <locale/>
-
- <source-path>
- <path-element>../src/main/flex</path-element>
- <path-element>generated-sources/externc/classes</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/constants</path-element>
- <path-element>generated-sources/externc/functions</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/typedefs</path-element>
- </source-path>
-
- <warn-no-constructor>false</warn-no-constructor>
+ <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+ <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+ <binding-value-change-event-type>valueChange</binding-value-change-event-type>
<define append="true">
<name>COMPILE::JS</name>
@@ -67,42 +71,23 @@
<name>COMPILE::AS3</name>
<value>false</value>
</define>
-
- <js-output-type>FLEXJS</js-output-type>
-
- <keep-asdoc>true</keep-asdoc>
</compiler>
<include-sources>
- <!--path-element>../src/main/flex</path-element>
- <path-element>generated-sources/externc/classes</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/constants</path-element>
- <path-element>generated-sources/externc/functions</path-element>
- <path-element>generated-sources/externc/interfaces</path-element>
- <path-element>generated-sources/externc/typedefs</path-element-->
+#foreach($sourcePath in $sourcePaths) <path-element>$sourcePath</path-element>
+#end
</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>
+#foreach($namespace in $namespaces) <uri>$namespace.uri</uri>
+#end
</include-namespaces>
- <resource-bundle-list>bundles.properties</resource-bundle-list>
+ <include-classes>
+#foreach($includeClass in $includeClasses) <class>$includeClass</class>
+#end
+ </include-classes>
+
+ <output>${output}</output>
- <target-player>${playerglobal.version}</target-player>
- -->
</flex-config>