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 2015/04/17 11:32:11 UTC

git commit: [flex-utilities] [refs/heads/develop] - - Added a "framework" artifact to the flash converter - Made the Flex converter generate 3-digit versions - Added a "maven-extension" module that buids a maven extension that handles mavenization before

Repository: flex-utilities
Updated Branches:
  refs/heads/develop 6f2441dc1 -> 1edd30bd0


- Added a "framework" artifact to the flash converter
- Made the Flex converter generate 3-digit versions
- Added a "maven-extension" module that buids a maven extension that handles mavenization before maven starts to build.


Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/1edd30bd
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/1edd30bd
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/1edd30bd

Branch: refs/heads/develop
Commit: 1edd30bd04f1d693b9f5a9d0d8ce255fd57495e8
Parents: 6f2441d
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Fri Apr 17 11:32:00 2015 +0200
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Fri Apr 17 11:32:00 2015 +0200

----------------------------------------------------------------------
 .../converter/flash/FlashConverter.java         |  11 +
 .../utilities/converter/flex/FlexConverter.java |   2 +-
 .../mavenextension/FlexSdkInitializer.java      | 231 +++++++++++++++++++
 mavenizer/pom.xml                               |   1 +
 .../converter/retrievers/types/SdkType.java     |   2 +-
 5 files changed, 245 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1edd30bd/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java
----------------------------------------------------------------------
diff --git a/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java b/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java
index a2c1831..776e0c6 100644
--- a/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java
+++ b/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java
@@ -244,6 +244,17 @@ public class FlashConverter extends BaseConverter implements Converter {
                 playerglobal.setPackaging("swc");
                 playerglobal.addDefaultBinaryArtifact(playerglobalSwc);
                 writeArtifact(playerglobal);
+
+                // Create a dummy pom artifact that references the playerglobal
+                // in order to consequently have a framework artifact for every
+                // part of flex.
+                final MavenArtifact framework = new MavenArtifact();
+                framework.setGroupId("com.adobe.flash");
+                framework.setArtifactId("framework");
+                framework.setVersion(version);
+                framework.setPackaging("pom");
+                framework.addDependency(playerglobal);
+                writePomArtifact(framework);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1edd30bd/mavenizer/converters/flex/src/main/java/org/apache/flex/utilities/converter/flex/FlexConverter.java
----------------------------------------------------------------------
diff --git a/mavenizer/converters/flex/src/main/java/org/apache/flex/utilities/converter/flex/FlexConverter.java b/mavenizer/converters/flex/src/main/java/org/apache/flex/utilities/converter/flex/FlexConverter.java
index be8c000..4600b76 100644
--- a/mavenizer/converters/flex/src/main/java/org/apache/flex/utilities/converter/flex/FlexConverter.java
+++ b/mavenizer/converters/flex/src/main/java/org/apache/flex/utilities/converter/flex/FlexConverter.java
@@ -582,7 +582,7 @@ public class FlexConverter extends BaseConverter implements Converter {
             final String build = root.getElementsByTagName("build").item(0).getTextContent();
 
             // In general the version consists of the content of the version element with an appended build-number.
-            return (build.equals("0")) ? version + "-SNAPSHOT" : version + "." + build;
+            return (build.equals("0")) ? version + "-SNAPSHOT" : version;
         } catch (ParserConfigurationException pce) {
             throw new RuntimeException(pce);
         } catch (SAXException se) {

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1edd30bd/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexSdkInitializer.java
----------------------------------------------------------------------
diff --git a/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexSdkInitializer.java b/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexSdkInitializer.java
new file mode 100644
index 0000000..fecac35
--- /dev/null
+++ b/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexSdkInitializer.java
@@ -0,0 +1,231 @@
+/*
+ * 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 org.apache.flex.utilities.converter.mavenextension;
+
+import org.apache.flex.utilities.converter.air.AirConverter;
+import org.apache.flex.utilities.converter.flash.FlashConverter;
+import org.apache.flex.utilities.converter.flex.FlexConverter;
+import org.apache.flex.utilities.converter.fontkit.FontkitConverter;
+import org.apache.flex.utilities.converter.retrievers.download.DownloadRetriever;
+import org.apache.flex.utilities.converter.retrievers.types.SdkType;
+import org.apache.maven.AbstractMavenLifecycleParticipant;
+import org.apache.maven.MavenExecutionException;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.Logger;
+
+import java.io.File;
+
+/**
+ * Created by christoferdutz on 16.04.15.
+ */
+@Component(role = AbstractMavenLifecycleParticipant.class, hint = "flex-sdk-initializer")
+public class FlexSdkInitializer extends AbstractMavenLifecycleParticipant {
+
+    public static final String AIR_GROUP_ID = "com.adobe.air";
+    public static final String FLASH_GROUP_ID = "com.adobe.flash";
+    public static final String FLEX_GROUP_ID = "org.apache.flex";
+    public static final String FONTKIT_GROUP_ID = "com.adobe";
+
+    public static final String FRAMEWORK = "framework";
+    public static final String COMPILER = "compiler";
+    public static final String FONTKIT = "fontkit";
+
+    public static final String POM = "pom";
+    public static final String JAR = "jar";
+
+    @Requirement
+    protected Logger logger;
+
+    @Requirement
+    private RepositorySystem repositorySystem;
+
+    @Override
+    public void afterProjectsRead(MavenSession session) throws MavenExecutionException {
+        super.afterProjectsRead(session);
+
+        // Get the maven local repo directory.
+        File mavenLocalRepoDir = new File(session.getLocalRepository().getBasedir());
+
+        logger.info("                                                                   \n" +
+                "                                      `,;':,                :';;;  \n" +
+                "                                     `:;''';'             `++'';;, \n" +
+                "                                     :;'''++;'           .+'+''';;;\n" +
+                "                          :          ;'''++++''         ,';+++''';'\n" +
+                "              ,. `,  ,. ..: , `,    `'''+++##;'',      ;;'+#+++''''\n" +
+                "             ; ; ; ;; ;`: :,: ; ;    ;'+++;  #;;;;;:::;;;;+  +++'':\n" +
+                "             ; ; : ;; ;., : : ;.     ;;++#    ';;;;;;;;;;+   .+++; \n" +
+                "             `;: :; `;: :;: , :;`     +;+#    ,;;;:::::;:    ;#+', \n" +
+                "  ;++++:'++      :                ;+,; ++;#    +;::::::;    ,+;;:  \n" +
+                " ++++++,'++                  `++'       +'''`   ;::::::,   +:;;:   \n" +
+                "`+++.   '++    ++++++  +++   +++         '''''   ;:::::   :;;;;    \n" +
+                "+++`    '++   ++++++++ +++` `++:         :'';;;   ;::`   :::::     \n" +
+                "+++     '++  +++'  :++: +++ +++           ;;;;;'        ::::::     \n" +
+                "+++     '++  +++    ++' `+++++`           ;;;;;;:      .:::::`     \n" +
+                "+++++++ '++  +++:::+++.  +++++            ;;;;;;;      ,:::::      \n" +
+                "+++++++ '++  +++++++++   :+++'            ;;;;;;;      ,:::::      \n" +
+                "+++'''  '++  +++;;;:`    +++++            ;;;;;;`      ::::::.     \n" +
+                "+++     '++  +++        +++ +++           ;;;;;:        ::::::     \n" +
+                "+++     :++. ++++   `  :++, ,++;         ''';;.   `..:   ::::;`    \n" +
+                "+++      ++'  +++++++  +++   +++        :''';    ,,,,,:   ;;;;;    \n" +
+                ";++`     +++   ++++++ +++     +++      .+';+    :,,,,,,:   `';;;   \n" +
+                " ++'                                  `+'''    ::,,,,,:::    ';;'  \n" +
+                " :++                                  #;''    +:::,,,::::    .'':; \n" +
+                "                                     ';;''   ::::::::::::'   ,';;:.\n" +
+                "                                     ;;;;''`;+;;::`  .::;;'.,';;;;:\n" +
+                "                                    `::;;;''':;;       `;;;'';;;;;;\n" +
+                "                                     :::;;;'';:          ;;';;;;;:;\n" +
+                "                                     ,:::;;;',            ',;;;;::`\n" +
+                "                                      .:::;:.              ;:;;::: \n" +
+                "                                       ::;,                 `,;;`  \n");
+
+        logger.info("-------------------------------------------------------------------");
+        logger.info("- Intializing Apache Flex related resources");
+        logger.info("-------------------------------------------------------------------");
+        String flexVersion = session.getCurrentProject().getProperties().getProperty("flex.sdk.version", null);
+        String flashVersion = session.getCurrentProject().getProperties().getProperty("flash.sdk.version", null);
+        String airVersion = session.getCurrentProject().getProperties().getProperty("air.sdk.version", null);
+        boolean useFontkit = Boolean.valueOf(
+                session.getCurrentProject().getProperties().getProperty("flex.fontkit", "false"));
+
+        if (flexVersion != null) {
+            logger.info("flex.sdk.version = " + flexVersion);
+            Artifact flexFramework = resolve(FLEX_GROUP_ID, FRAMEWORK, flexVersion, POM, session);;
+            Artifact flexCompiler = resolve(FLEX_GROUP_ID, COMPILER, flexVersion, POM, session);
+
+            if (flexFramework == null || flexCompiler == null) {
+                logger.info(" - Installing");
+                // Use the Mavenizer to download and install the fex artifacts.
+                try {
+                    DownloadRetriever downloadRetriever = new DownloadRetriever();
+                    File flexSdkRoot = downloadRetriever.retrieve(SdkType.FLEX, flexVersion);
+                    FlexConverter flexConverter = new FlexConverter(flexSdkRoot, mavenLocalRepoDir);
+                    flexConverter.convert();
+                } catch (Exception ce) {
+                    throw new MavenExecutionException(
+                            "Caught exception while downloading and converting artifact.", ce);
+                }
+            } else {
+                logger.info(" - OK");
+            }
+        } else {
+            logger.info("flex.sdk.version = not set");
+        }
+
+        logger.info("-------------------------------------------------------------------");
+
+        if (flashVersion != null) {
+            logger.info("flash.sdk.version = " + flashVersion);
+            Artifact flashFramework = resolve(FLASH_GROUP_ID, FRAMEWORK, flashVersion, POM, session);
+
+            if (flashFramework == null) {
+                logger.info(" - Installing");
+                // Use the Mavenizer to download and install the playerglobal artifact.
+                try {
+                    DownloadRetriever downloadRetriever = new DownloadRetriever();
+                    File flashSdkRoot = downloadRetriever.retrieve(SdkType.FLASH, flashVersion);
+                    FlashConverter flashConverter = new FlashConverter(flashSdkRoot, mavenLocalRepoDir);
+                    flashConverter.convert();
+                } catch (Exception ce) {
+                    throw new MavenExecutionException(
+                            "Caught exception while downloading and converting artifact.", ce);
+                }
+            } else {
+                logger.info(" - OK");
+            }
+        } else {
+            logger.info("flash.sdk.version = not set");
+        }
+
+        logger.info("-------------------------------------------------------------------");
+
+        if (airVersion != null) {
+            logger.info("air.sdk.version = " + airVersion);
+            Artifact airFramework = resolve(AIR_GROUP_ID, FRAMEWORK, flexVersion, POM, session);
+            Artifact airCompiler = resolve(AIR_GROUP_ID, COMPILER, flexVersion, POM, session);
+
+            if (airFramework == null || airCompiler == null) {
+                logger.info(" - Installing");
+                // Use the Mavenizer to download and install the airglobal artifact.
+                try {
+                    DownloadRetriever downloadRetriever = new DownloadRetriever();
+                    File airSdkRoot = downloadRetriever.retrieve(SdkType.AIR, airVersion);
+                    AirConverter airConverter = new AirConverter(airSdkRoot, mavenLocalRepoDir);
+                    airConverter.convert();
+                } catch (Exception ce) {
+                    throw new MavenExecutionException(
+                            "Caught exception while downloading and converting artifact.", ce);
+                }
+            } else {
+                logger.info(" - OK");
+            }
+        } else {
+            logger.info("air.sdk.version = not set");
+        }
+
+        logger.info("-------------------------------------------------------------------");
+
+        if (useFontkit) {
+            logger.info("flex.fontkit = true");
+            Artifact fontkit = resolve(FONTKIT_GROUP_ID, FONTKIT, "1.0", JAR, session);
+
+            if (fontkit == null) {
+                logger.info(" - Installing");
+                // Use the Mavenizer to download and install the airglobal artifact.
+                try {
+                    DownloadRetriever downloadRetriever = new DownloadRetriever();
+                    File fontkitRoot = downloadRetriever.retrieve(SdkType.FONTKIT);
+                    FontkitConverter fontkitConverter = new FontkitConverter(fontkitRoot, mavenLocalRepoDir);
+                    fontkitConverter.convert();
+                } catch (Exception ce) {
+                    throw new MavenExecutionException(
+                            "Caught exception while downloading and converting artifact.", ce);
+                }
+            } else {
+                logger.info(" - OK");
+            }
+        } else {
+            logger.info("flex.fontkit = not set or set to 'false'");
+        }
+
+        logger.info("-------------------------------------------------------------------");
+        logger.info("- Finished initializing Apache Flex related resources");
+        logger.info("-------------------------------------------------------------------");
+    }
+
+    public Artifact resolve(String groupId, String artifactId, String version, String type, MavenSession session) {
+        Artifact artifact =
+                repositorySystem.createArtifact(groupId, artifactId, version, type);
+        if (!artifact.isResolved()) {
+            ArtifactResolutionRequest req = new ArtifactResolutionRequest();
+            req.setArtifact(artifact);
+            req.setLocalRepository(session.getLocalRepository());
+            req.setRemoteRepositories(session.getRequest().getRemoteRepositories());
+            ArtifactResolutionResult res = repositorySystem.resolve(req);
+            if (!res.isSuccess()) {
+                return null;
+            }
+        }
+        return artifact;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1edd30bd/mavenizer/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/pom.xml b/mavenizer/pom.xml
index e781a91..285bb78 100644
--- a/mavenizer/pom.xml
+++ b/mavenizer/pom.xml
@@ -61,6 +61,7 @@
         <module>converters</module>
         <module>deployers</module>
         <module>cli</module>
+        <module>maven-extension</module>
     </modules>
 
     <build>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1edd30bd/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
index c6c1986..5ea0ba8 100644
--- a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
@@ -21,9 +21,9 @@ package org.apache.flex.utilities.converter.retrievers.types;
  */
 public enum SdkType {
 
+    FLEX,
     FLASH,
     AIR,
-    FLEX,
     FONTKIT
 
 }