FLEX-34318 - [Mavenizer] Refactor the Mavenizer in preparation of future 
mavenized releases of Flex
- Removed the dependency management section and added the version to the 
artifacts themselves
- Made the mavenizer generate the mx artifact to the main framework
- Added the generation of the asdoc template.zip
- Added a first version of a batch converter to convert a set of fdks


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

Branch: refs/heads/develop
Commit: fac7e6fb3cf937a3c69b91d2efc588e0eef936a5
Parents: 2e4279b
Author: Christofer Dutz <[email protected]>
Authored: Thu Jun 5 19:23:41 2014 +0200
Committer: Christofer Dutz <[email protected]>
Committed: Thu Jun 5 19:23:41 2014 +0200

----------------------------------------------------------------------
 .../flex/utilities/converter/BaseConverter.java | 15 ++--
 .../utilities/converter/flex/FlexConverter.java | 61 ++++++++++++--
 .../converter/core/BatchConverter.java          | 88 ++++++++++++++++++++
 3 files changed, 152 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/fac7e6fb/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java
----------------------------------------------------------------------
diff --git 
a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java
 
b/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java
index 6f67c6d..47466d1 100644
--- 
a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java
+++ 
b/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java
@@ -51,7 +51,7 @@ import java.util.zip.ZipOutputStream;
  */
 public abstract class BaseConverter {
 
-    protected static final Map<String, MavenArtifact> checksums = new 
HashMap<String, MavenArtifact>();
+    protected final Map<String, MavenArtifact> checksums = new HashMap<String, 
MavenArtifact>();
 
     protected static final String MAVEN_SCHEMA_URI = 
"http://maven.apache.org/POM/4.0.0";;
     protected static final String MAVEN_CENTRAL_SHA_1_QUERY_URL = 
"http://search.maven.org/solrsearch/select?rows=20&wt=json&q=1:";;
@@ -306,10 +306,10 @@ public abstract class BaseConverter {
             if((metadata.getDependencies() != null) && 
!metadata.getDependencies().isEmpty()) {
                 final Element dependencies = 
pom.createElementNS(MAVEN_SCHEMA_URI, "dependencies");
                 root.appendChild(dependencies);
-                final Element dependencyManagement = 
pom.createElementNS(MAVEN_SCHEMA_URI, "dependencyManagement");
+                /*final Element dependencyManagement = 
pom.createElementNS(MAVEN_SCHEMA_URI, "dependencyManagement");
                 final Element dependencyManagementDependencies = 
pom.createElementNS(MAVEN_SCHEMA_URI, "dependencies");
                 
dependencyManagement.appendChild(dependencyManagementDependencies);
-                root.appendChild(dependencyManagement);
+                root.appendChild(dependencyManagement);*/
 
                 final Map<String, MavenArtifact> dependencyIndex = new 
HashMap<String, MavenArtifact>();
                 for(final MavenArtifact dependencyMetadata : 
metadata.getDependencies()) {
@@ -323,6 +323,9 @@ public abstract class BaseConverter {
                     Element dependencyArtifactId = 
pom.createElementNS(MAVEN_SCHEMA_URI, "artifactId");
                     
dependencyArtifactId.setTextContent(dependencyMetadata.getArtifactId());
                     dependency.appendChild(dependencyArtifactId);
+                    Element dependencyVersion = 
pom.createElementNS(MAVEN_SCHEMA_URI, "version");
+                    
dependencyVersion.setTextContent(dependencyMetadata.getVersion());
+                    dependency.appendChild(dependencyVersion);
                     Element dependencyPackaging = 
pom.createElementNS(MAVEN_SCHEMA_URI, "type");
                     
dependencyPackaging.setTextContent(dependencyMetadata.getPackaging());
                     dependency.appendChild(dependencyPackaging);
@@ -333,20 +336,20 @@ public abstract class BaseConverter {
                     }
 
                     // Configure the dependency including version in the 
dependency management section of the pom.
-                    dependency = pom.createElementNS(MAVEN_SCHEMA_URI, 
"dependency");
+                    /*dependency = pom.createElementNS(MAVEN_SCHEMA_URI, 
"dependency");
                     dependencyGroupId = pom.createElementNS(MAVEN_SCHEMA_URI, 
"groupId");
                     
dependencyGroupId.setTextContent(dependencyMetadata.getGroupId());
                     dependency.appendChild(dependencyGroupId);
                     dependencyArtifactId = 
pom.createElementNS(MAVEN_SCHEMA_URI, "artifactId");
                     
dependencyArtifactId.setTextContent(dependencyMetadata.getArtifactId());
                     dependency.appendChild(dependencyArtifactId);
-                    Element dependencyVersion = 
pom.createElementNS(MAVEN_SCHEMA_URI, "version");
+                    dependencyVersion = pom.createElementNS(MAVEN_SCHEMA_URI, 
"version");
                     
dependencyVersion.setTextContent(dependencyMetadata.getVersion());
                     dependency.appendChild(dependencyVersion);
                     dependencyPackaging = 
pom.createElementNS(MAVEN_SCHEMA_URI, "type");
                     
dependencyPackaging.setTextContent(dependencyMetadata.getPackaging());
                     dependency.appendChild(dependencyPackaging);
-                    dependencyManagementDependencies.appendChild(dependency);
+                    dependencyManagementDependencies.appendChild(dependency);*/
 
                     dependencyIndex.put(dependencyMetadata.getArtifactId(), 
dependencyMetadata);
                 }

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/fac7e6fb/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 1d0709a..7d1c671 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
@@ -149,6 +149,14 @@ public class FlexConverter extends BaseConverter 
implements Converter {
                 framework.addDependency(artifact);
             }
         }
+
+        // Forcefully add the mx library to the rest of the framework.
+        if("libs".equals(directory.getName())) {
+            final File mxSwc = new File(directory, "mx/mx.swc");
+            final MavenArtifact artifact = resolveArtifact(mxSwc, 
artifactGroupId, flexSdkVersion);
+            framework.addDependency(artifact);
+        }
+
         // If we are in the "mobile" directory and the paren contains an 
"experimental_mobile.swc" file,
         // add this to the mobile package.
         if("mobile".equals(directory.getName())) {
@@ -166,7 +174,8 @@ public class FlexConverter extends BaseConverter implements 
Converter {
         children.addAll(Arrays.asList(directory.listFiles(new FileFilter() {
             @Override
             public boolean accept(File pathname) {
-                return pathname.isDirectory() && 
!"player".equals(pathname.getName());
+                return pathname.isDirectory() && 
!"player".equals(pathname.getName()) &&
+                        !"mx".equals(pathname.getName());
             }
         })));
         for(final File childDirectory : children) {
@@ -200,7 +209,7 @@ public class FlexConverter extends BaseConverter implements 
Converter {
     @Override
     protected void writeArtifact(MavenArtifact artifact) throws 
ConverterException {
         if(!"pom".equals(artifact.getPackaging())) {
-            // Copy the rsls too.
+            // Copy the rsls.
             final File rslSourceFile = getRsl(artifact.getArtifactId());
             if(rslSourceFile != null) {
                 final File rslTargetFile = new File(
@@ -209,7 +218,7 @@ public class FlexConverter extends BaseConverter implements 
Converter {
                 copyFile(rslSourceFile, rslTargetFile);
             }
 
-            // Copy the swzc too.
+            // Copy the swzc.
             final File signedRslSourceFile = 
getSignedRsl(artifact.getArtifactId());
             if(signedRslSourceFile != null) {
                 final File signedRslTargetFile = new File(
@@ -218,7 +227,7 @@ public class FlexConverter extends BaseConverter implements 
Converter {
                 copyFile(signedRslSourceFile, signedRslTargetFile);
             }
 
-            // Copy the language resources too.
+            // Copy the language resources.
             final Map<String, File> resourceBundles = 
getResourceBundles(artifact.getArtifactId());
             if(!resourceBundles.isEmpty() &&
                     artifact.getBinaryTargetFile(rootTargetDirectory, 
MavenArtifact.DEFAULT_CLASSIFIER) != null) {
@@ -248,7 +257,7 @@ public class FlexConverter extends BaseConverter implements 
Converter {
                 }
             }
 
-            // Add source zips ...
+            // Add source zips.
             final File sourceArtifactSourceFile = 
generateSourceArtifact(artifact.getArtifactId());
             if(sourceArtifactSourceFile != null) {
                 final File sourceArtifactTargetFile = new File(
@@ -256,6 +265,18 @@ public class FlexConverter extends BaseConverter 
implements Converter {
                         artifact.getArtifactId() + "-" + artifact.getVersion() 
+ "-sources.jar");
                 copyFile(sourceArtifactSourceFile, sourceArtifactTargetFile);
             }
+
+            // If this is the asdoc artifact, create the templates.zip for 
that.
+            if("asdoc".equals(artifact.getArtifactId())) {
+                final File asdocTemplatesZipSourceFile = 
generateAsdocTemplatesZip();
+                if (asdocTemplatesZipSourceFile != null) {
+                    final File asdocTemplatesZipTargetFile = new File(
+                            artifact.getBinaryTargetFile(
+                                    rootTargetDirectory, 
MavenArtifact.DEFAULT_CLASSIFIER).getParent(),
+                            artifact.getArtifactId() + "-" + 
artifact.getVersion() + "-template.zip");
+                    copyFile(asdocTemplatesZipSourceFile, 
asdocTemplatesZipTargetFile);
+                }
+            }
         }
 
         super.writeArtifact(artifact);
@@ -291,6 +312,34 @@ public class FlexConverter extends BaseConverter 
implements Converter {
         return null;
     }
 
+    protected File generateAsdocTemplatesZip() throws ConverterException {
+        final File templatesDirectory = new File(rootSourceDirectory, 
"asdoc/templates");
+
+        if (templatesDirectory.listFiles() != null) {
+            final File sourceFiles[] = templatesDirectory.listFiles();
+            if (sourceFiles != null) {
+                final File zipInputFiles[] = new File[sourceFiles.length + 1];
+                System.arraycopy(sourceFiles, 0, zipInputFiles, 0, 
sourceFiles.length);
+
+                try {
+                    // Create a temp file.
+                    final File targetFile = 
File.createTempFile("temp-asdoc-templates", "zip");
+
+                    JarOutputStream jar = new JarOutputStream(new 
FileOutputStream(targetFile));
+                    for (final File file : zipInputFiles) {
+                        addFileToZip(jar, file, templatesDirectory);
+                    }
+                    jar.close();
+
+                    return targetFile;
+                } catch(IOException e) {
+                    throw new ConverterException("Error creating 
asdoc-templates archive.", e);
+                }
+            }
+        }
+        return null;
+    }
+
     protected void generateFrameworkConfigurationArtifact() throws 
ConverterException {
         // ZIP up every file (not directory) in the framework directory and 
the entire themes directory.
         final File frameworksDirectory = new File(rootSourceDirectory, 
"frameworks");
@@ -326,7 +375,7 @@ public class FlexConverter extends BaseConverter implements 
Converter {
                     final String themeName = 
themeDirectory.getName().toLowerCase();
                     final File themeFile = new File(themeDirectory, themeName 
+ ".swc");
 
-                    File targetSwcFile = null;
+                    final File targetSwcFile;
                     if(themeFile.exists()) {
                         targetSwcFile = themeFile;
                     } else {

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/fac7e6fb/mavenizer/core/src/main/java/org/apache/flex/utilities/converter/core/BatchConverter.java
----------------------------------------------------------------------
diff --git 
a/mavenizer/core/src/main/java/org/apache/flex/utilities/converter/core/BatchConverter.java
 
b/mavenizer/core/src/main/java/org/apache/flex/utilities/converter/core/BatchConverter.java
new file mode 100644
index 0000000..e1ed2b1
--- /dev/null
+++ 
b/mavenizer/core/src/main/java/org/apache/flex/utilities/converter/core/BatchConverter.java
@@ -0,0 +1,88 @@
+/*
+ * 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.core;
+
+import org.apache.flex.utilities.converter.air.AirConverter;
+import org.apache.flex.utilities.converter.exceptions.ConverterException;
+import org.apache.flex.utilities.converter.flash.FlashConverter;
+import org.apache.flex.utilities.converter.flex.FlexConverter;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ * Created by cdutz on 30.05.2014.
+ */
+public class BatchConverter {
+
+    public static void main(String[] args) throws Exception {
+        if(args.length != 2) {
+            System.out.println("Usage: SDKConverter {source-directory} 
{target-directory}");
+            return;
+        }
+
+        final File sourceDirectory = new File(args[0]);
+        final File targetDirectory = new File(args[1]);
+
+        if(!sourceDirectory.exists()) {
+            throw new Exception("'source-directory' does not exist: " + 
sourceDirectory.getAbsolutePath());
+        }
+
+        if(!targetDirectory.exists()) {
+            if(!targetDirectory.mkdirs()) {
+                throw new Exception("Could not create 'target-directory': " + 
targetDirectory.getAbsolutePath());
+            }
+        }
+
+        for(final File batchDirectory : sourceDirectory.listFiles(new 
FileFilter() {
+            @Override
+            public boolean accept(File pathname) {
+                return pathname.isDirectory();
+            }
+        })) {
+            
System.out.println("-------------------------------------------------------------------------------------");
+            System.out.println("Processing directory: " + 
batchDirectory.getAbsolutePath());
+
+            try {
+                System.out.println("Generating FLEX SDK");
+                final FlexConverter flexConverter = new 
FlexConverter(batchDirectory, targetDirectory);
+                flexConverter.convert();
+            } catch(Exception e) {
+                System.out.println("Skipping generation of FLEX SDK");
+            }
+
+            try {
+                System.out.println("Generating AIR SDK");
+                final AirConverter airConverter = new 
AirConverter(batchDirectory, targetDirectory);
+                airConverter.convert();
+            } catch(Exception e) {
+                System.out.println("Skipping generation of AIR SDK");
+            }
+
+            try {
+                System.out.println("Generating Flash SDK");
+                final FlashConverter flashConverter = new 
FlashConverter(batchDirectory, targetDirectory);
+                flashConverter.convert();
+            } catch(Exception e) {
+                System.out.println("Skipping generation of Flash SDK");
+            }
+
+            System.out.println("Finished.");
+        }
+    }
+
+}

Reply via email to