You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2015/06/15 08:31:19 UTC

[45/48] git commit: [flex-utilities] [refs/heads/develop] - move mavenizer under flex-maven-tools

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/flex-maven-tools/mavenizer/retrievers/base/src/test/java/org/apache/flex/utilities/converter/retrievers/types/PlatformTypeTest.java
----------------------------------------------------------------------
diff --git a/flex-maven-tools/mavenizer/retrievers/base/src/test/java/org/apache/flex/utilities/converter/retrievers/types/PlatformTypeTest.java b/flex-maven-tools/mavenizer/retrievers/base/src/test/java/org/apache/flex/utilities/converter/retrievers/types/PlatformTypeTest.java
new file mode 100644
index 0000000..eeb6a22
--- /dev/null
+++ b/flex-maven-tools/mavenizer/retrievers/base/src/test/java/org/apache/flex/utilities/converter/retrievers/types/PlatformTypeTest.java
@@ -0,0 +1,69 @@
+package org.apache.flex.utilities.converter.retrievers.types;
+
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
+import org.apache.commons.lang3.SystemUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.Arrays;
+import java.util.Collection;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author: Frederic Thomas
+ * Date: 12/05/2015
+ * Time: 01:34
+ */
+@RunWith(JUnitParamsRunner.class)
+public class PlatformTypeTest {
+
+	private Class<SystemUtils> systemUtilsClass;
+
+	public static Collection<Object[]> platformParameters() {
+		return Arrays.asList(new Object[][]{
+				{"IS_OS_WINDOWS", PlatformType.WINDOWS},
+				{"IS_OS_MAC", PlatformType.MAC},
+				{"IS_OS_MAC_OSX", PlatformType.MAC},
+				{"IS_OS_UNIX", PlatformType.LINUX}
+		});
+	}
+
+	@Before
+	public void setUp() throws Exception {
+		systemUtilsClass = SystemUtils.class;
+
+		setFinalStatic(systemUtilsClass.getField("IS_OS_WINDOWS"), false);
+		setFinalStatic(systemUtilsClass.getField("IS_OS_MAC"), false);
+		setFinalStatic(systemUtilsClass.getField("IS_OS_MAC_OSX"), false);
+		setFinalStatic(systemUtilsClass.getField("IS_OS_UNIX"), false);
+	}
+
+	@Test
+	@Parameters(method = "platformParameters")
+	public void it_detects_the_current_platform_type(String fieldName, PlatformType platformType) throws Exception {
+
+		setFinalStatic(systemUtilsClass.getField(fieldName), true);
+		assertEquals(platformType, PlatformType.getCurrent());
+	}
+
+	@Test(expected = Exception.class)
+	public void it_throws_an_exception_when_it_can_not_detect_the_current_platform_type() throws Exception {
+		PlatformType.getCurrent();
+	}
+
+	private static void setFinalStatic(Field field, Object newValue) throws Exception {
+		field.setAccessible(true);
+
+		// remove final modifier from field
+		Field modifiersField = Field.class.getDeclaredField("modifiers");
+		modifiersField.setAccessible(true);
+		modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+
+		field.set(null, newValue);
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/flex-maven-tools/mavenizer/retrievers/download/pom.xml
----------------------------------------------------------------------
diff --git a/flex-maven-tools/mavenizer/retrievers/download/pom.xml b/flex-maven-tools/mavenizer/retrievers/download/pom.xml
new file mode 100644
index 0000000..6ba5e08
--- /dev/null
+++ b/flex-maven-tools/mavenizer/retrievers/download/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project 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.utilities.converter</groupId>
+        <artifactId>retrievers</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>download-retriever</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.flex.utilities.converter</groupId>
+            <artifactId>base-retriever</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.2.3</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java
----------------------------------------------------------------------
diff --git a/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java b/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java
new file mode 100644
index 0000000..a6b0a1a
--- /dev/null
+++ b/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java
@@ -0,0 +1,459 @@
+/*
+ * 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.retrievers.download;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.flex.utilities.converter.retrievers.BaseRetriever;
+import org.apache.flex.utilities.converter.retrievers.exceptions.RetrieverException;
+import org.apache.flex.utilities.converter.retrievers.types.PlatformType;
+import org.apache.flex.utilities.converter.retrievers.types.SdkType;
+import org.apache.flex.utilities.converter.retrievers.utils.ProgressBar;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import java.io.*;
+import java.net.*;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.text.MessageFormat;
+import java.util.*;
+
+/**
+ * Created by cdutz on 18.05.2014.
+ */
+public class DownloadRetriever extends BaseRetriever {
+
+    public static final String FLEX_INSTALLER_CONFIG_URL =
+            "http://flex.apache.org/installer/sdk-installer-config-4.0.xml";
+
+    /**
+     * Wrapper to allow simple overriding of this property.
+     *
+     * @return URL from which the version information should be loaded.
+     */
+    protected String getFlexInstallerConfigUrl() {
+        return FLEX_INSTALLER_CONFIG_URL;
+    }
+
+    public File retrieve(SdkType type) throws RetrieverException {
+        return retrieve(type, null, null);
+    }
+
+    public File retrieve(SdkType type, String version) throws RetrieverException {
+        return retrieve(type, version, null);
+    }
+
+    public File retrieve(SdkType type, String version, PlatformType platformType) throws RetrieverException {
+        try {
+            if (type.equals(SdkType.FLASH) || type.equals(SdkType.AIR) || type.equals(SdkType.FONTKIT)) {
+                confirmLicenseAcceptance(type);
+            }
+
+            if(type.equals(SdkType.FONTKIT)) {
+                File tmpTargetFile = File.createTempFile(UUID.randomUUID().toString(), "");
+                String tempSuffix = tmpTargetFile.getName().substring(tmpTargetFile.getName().lastIndexOf("-"));
+                if(!(tmpTargetFile.delete()))
+                {
+                    throw new IOException("Could not delete temp file: " + tmpTargetFile.getAbsolutePath());
+                }
+
+                File targetRootDir = new File(tmpTargetFile.getParentFile(), type.toString() + tempSuffix);
+                File targetDir = new File(targetRootDir, "/lib/external/optional");
+                if(!(targetDir.mkdirs()))
+                {
+                    throw new IOException("Could not create temp directory: " + targetDir.getAbsolutePath());
+                }
+
+                final URI afeUri = new URI("http://sourceforge.net/adobe/flexsdk/code/HEAD/tree/trunk/lib/afe.jar?format=raw");
+                final File afeFile = new File(targetDir, "afe.jar");
+                performSafeDownload(afeUri, afeFile);
+
+                final URI aglj40Uri = new URI("http://sourceforge.net/adobe/flexsdk/code/HEAD/tree/trunk/lib/aglj40.jar?format=raw");
+                final File aglj40File = new File(targetDir, "aglj40.jar");
+                performSafeDownload(aglj40Uri, aglj40File);
+
+                final URI rideauUri = new URI("http://sourceforge.net/adobe/flexsdk/code/HEAD/tree/trunk/lib/rideau.jar?format=raw");
+                final File rideauFile = new File(targetDir, "rideau.jar");
+                performSafeDownload(rideauUri, rideauFile);
+
+                final URI flexFontkitUri = new URI("http://sourceforge.net/adobe/flexsdk/code/HEAD/tree/trunk/lib/flex-fontkit.jar?format=raw");
+                final File flexFontkitFile = new File(targetDir, "flex-fontkit.jar");
+                performSafeDownload(flexFontkitUri, flexFontkitFile);
+
+                return targetRootDir;
+            } else {
+                final URL sourceUrl = new URL(getBinaryUrl(type, version, platformType));
+                final File targetFile = File.createTempFile(type.toString() + "-" + version +
+                                ((platformType != null) ? "-" + platformType : "") + "-",
+                        sourceUrl.getFile().substring(sourceUrl.getFile().lastIndexOf(".")));
+                performFastDownload(sourceUrl, targetFile);
+
+                ////////////////////////////////////////////////////////////////////////////////
+                // Do the extracting.
+                ////////////////////////////////////////////////////////////////////////////////
+
+                if (type.equals(SdkType.FLASH)) {
+                    final File targetDirectory = new File(targetFile.getParent(),
+                            targetFile.getName().substring(0, targetFile.getName().lastIndexOf(".") - 1));
+                    final File libDestFile = new File(targetDirectory, "frameworks/libs/player/" + version + "/playerglobal.swc");
+                    if (!libDestFile.getParentFile().exists()) {
+                        libDestFile.getParentFile().mkdirs();
+                    }
+                    FileUtils.moveFile(targetFile, libDestFile);
+                    return targetDirectory;
+                } else {
+                    System.out.println("Extracting archive to temp directory.");
+                    File targetDirectory = new File(targetFile.getParent(),
+                            targetFile.getName().substring(0, targetFile.getName().lastIndexOf(".") - 1));
+                    if(type.equals(SdkType.SWFOBJECT)) {
+                        unpack(targetFile, new File(targetDirectory, "templates"));
+                    } else {
+                        unpack(targetFile, targetDirectory);
+                    }
+                    System.out.println();
+                    System.out.println("Finished extracting.");
+                    System.out.println("===========================================================");
+
+                    // In case of the swfobject, delete some stuff we don't want in there.
+                    if(type.equals(SdkType.SWFOBJECT)) {
+                        File delFile = new File(targetDirectory, "templates/swfobject/index_dynamic.html");
+                        FileUtils.deleteQuietly(delFile);
+                        delFile = new File(targetDirectory, "templates/swfobject/index.html");
+                        FileUtils.deleteQuietly(delFile);
+                        delFile = new File(targetDirectory, "templates/swfobject/test.swf");
+                        FileUtils.deleteQuietly(delFile);
+                        delFile = new File(targetDirectory, "templates/swfobject/src");
+                        FileUtils.deleteDirectory(delFile);
+                    }
+
+                    return targetDirectory;
+                }
+            }
+        } catch (MalformedURLException e) {
+            throw new RetrieverException("Error downloading archive.", e);
+        } catch (FileNotFoundException e) {
+            throw new RetrieverException("Error downloading archive.", e);
+        } catch (IOException e) {
+            throw new RetrieverException("Error downloading archive.", e);
+        } catch (URISyntaxException e) {
+            throw new RetrieverException("Error downloading archive.", e);
+        }
+    }
+
+    protected void performFastDownload(URL sourceUrl, File targetFile) throws IOException {
+        final URLConnection connection = sourceUrl.openConnection();
+        final ReadableByteChannel rbc = Channels.newChannel(connection.getInputStream());
+        final FileOutputStream fos = new FileOutputStream(targetFile);
+
+        ////////////////////////////////////////////////////////////////////////////////
+        // Do the downloading.
+        ////////////////////////////////////////////////////////////////////////////////
+
+        final long expectedSize = connection.getContentLength();
+        long transferedSize = 0L;
+
+        System.out.println("===========================================================");
+        System.out.println("Downloading " + sourceUrl.toString());
+        if(expectedSize > 1014 * 1024) {
+            System.out.println("Expected size: " + (expectedSize / 1024 / 1024) + "MB");
+        } else {
+            System.out.println("Expected size: " + (expectedSize / 1024 ) + "KB");
+        }
+        final ProgressBar progressBar = new ProgressBar(expectedSize);
+        while (transferedSize < expectedSize) {
+            transferedSize += fos.getChannel().transferFrom(rbc, transferedSize, 1 << 20);
+            progressBar.updateProgress(transferedSize);
+        }
+        fos.close();
+        System.out.println();
+        System.out.println("Finished downloading.");
+        System.out.println("===========================================================");
+    }
+
+    protected void performSafeDownload(URI sourceUri, File targetFile) throws IOException {
+        HttpGet httpget = new HttpGet(sourceUri);
+        HttpClient httpclient = new DefaultHttpClient();
+        HttpResponse response = httpclient.execute(httpget);
+
+        String reasonPhrase = response.getStatusLine().getReasonPhrase();
+        int statusCode = response.getStatusLine().getStatusCode();
+        System.out.println(String.format("statusCode: %d", statusCode));
+        System.out.println(String.format("reasonPhrase: %s", reasonPhrase));
+
+        HttpEntity entity = response.getEntity();
+        InputStream content = entity.getContent();
+
+        final ReadableByteChannel rbc = Channels.newChannel(content);
+        final FileOutputStream fos = new FileOutputStream(targetFile);
+
+        ////////////////////////////////////////////////////////////////////////////////
+        // Do the downloading.
+        ////////////////////////////////////////////////////////////////////////////////
+
+        final long expectedSize = entity.getContentLength();
+        System.out.println("===========================================================");
+        System.out.println("Downloading " + sourceUri.toString());
+        if(expectedSize < 0) {
+            try {
+                System.out.println("Unknown size.");
+                IOUtils.copy(content, fos);
+            } finally {
+                // close http network connection
+                content.close();
+            }
+        } else {
+            long transferedSize = 0L;
+            if (expectedSize > 1014 * 1024) {
+                System.out.println("Expected size: " + (expectedSize / 1024 / 1024) + "MB");
+            } else {
+                System.out.println("Expected size: " + (expectedSize / 1024) + "KB");
+            }
+            final ProgressBar progressBar = new ProgressBar(expectedSize);
+            while (transferedSize < expectedSize) {
+                transferedSize += fos.getChannel().transferFrom(rbc, transferedSize, 1 << 20);
+                progressBar.updateProgress(transferedSize);
+            }
+            fos.close();
+            System.out.println();
+        }
+        System.out.println("Finished downloading.");
+        System.out.println("===========================================================");
+    }
+
+    protected String getBinaryUrl(SdkType sdkType, String version, PlatformType platformType)
+            throws RetrieverException {
+        try {
+            final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+            final DocumentBuilder builder = factory.newDocumentBuilder();
+            final Document doc = builder.parse(getFlexInstallerConfigUrl());
+
+            //Evaluate XPath against Document itself
+            final String expression = getUrlXpath(sdkType, version, platformType);
+            final XPath xPath = XPathFactory.newInstance().newXPath();
+            final Element artifactElement = (Element) xPath.evaluate(
+                    expression, doc.getDocumentElement(), XPathConstants.NODE);
+            if(artifactElement == null) {
+                throw new RetrieverException("Could not find " + sdkType.toString() + " SDK with version " + version);
+            }
+
+            final StringBuilder stringBuilder = new StringBuilder();
+            if ((sdkType == SdkType.FLEX) || (sdkType == SdkType.SWFOBJECT)) {
+                final String path = artifactElement.getAttribute("path");
+                final String file = artifactElement.getAttribute("file");
+                if (!path.startsWith("http://")) {
+                    stringBuilder.append("http://archive.apache.org/dist/");
+                }
+                stringBuilder.append(path);
+                if(!path.endsWith("/")) {
+                    stringBuilder.append("/");
+                }
+                stringBuilder.append(file);
+                if(sdkType == SdkType.FLEX) {
+                    stringBuilder.append(".zip");
+                }
+            } else {
+                final NodeList pathElements = artifactElement.getElementsByTagName("path");
+                final NodeList fileElements = artifactElement.getElementsByTagName("file");
+                if ((pathElements.getLength() != 1) && (fileElements.getLength() != 1)) {
+                    throw new RetrieverException("Invalid document structure.");
+                }
+                final String path = pathElements.item(0).getTextContent();
+                stringBuilder.append(path);
+                if(!path.endsWith("/")) {
+                    stringBuilder.append("/");
+                }
+                stringBuilder.append(fileElements.item(0).getTextContent());
+            }
+
+            return stringBuilder.toString();
+        } catch (ParserConfigurationException e) {
+            throw new RetrieverException("Error parsing 'sdk-installer-config-4.0.xml'", e);
+        } catch (SAXException e) {
+            throw new RetrieverException("Error parsing 'sdk-installer-config-4.0.xml'", e);
+        } catch (XPathExpressionException e) {
+            throw new RetrieverException("Error parsing 'sdk-installer-config-4.0.xml'", e);
+        } catch (IOException e) {
+            throw new RetrieverException("Error parsing 'sdk-installer-config-4.0.xml'", e);
+        }
+    }
+
+    protected String getUrlXpath(SdkType sdkType, String version, PlatformType platformType)
+            throws RetrieverException {
+        final StringBuilder stringBuilder = new StringBuilder();
+        switch (sdkType) {
+            case FLEX:
+                stringBuilder.append("//*[@id='").append(version).append("']");
+                break;
+            case AIR:
+                stringBuilder.append("//*[@id='air.sdk.version.");
+                if (platformType == null) {
+                    throw new RetrieverException("You need to specify the platformType parameter for AIR SDKs.");
+                }
+                switch (platformType) {
+                    case WINDOWS:
+                        stringBuilder.append("windows");
+                        break;
+                    case MAC:
+                        stringBuilder.append("mac");
+                        break;
+                    case LINUX:
+                        stringBuilder.append("linux");
+                        break;
+
+                }
+                stringBuilder.append(".").append(version).append("']");
+                break;
+            case FLASH:
+                stringBuilder.append("//*[@id='flash.sdk.version.").append(version).append("']");
+                break;
+            case FONTKIT:
+                stringBuilder.append("//fontswf");
+                break;
+            case SWFOBJECT:
+                stringBuilder.append("//swfobject");
+                break;
+        }
+        return stringBuilder.toString();
+    }
+
+    protected void confirmLicenseAcceptance(SdkType type) throws RetrieverException {
+        final Properties questionProps = new Properties();
+        try {
+            questionProps.load(DownloadRetriever.class.getClassLoader().getResourceAsStream("message.properties"));
+        } catch (IOException e) {
+            throw new RetrieverException("Error reading message.properties file", e);
+        }
+
+        String property = "com.adobe.systemIdsForWhichTheTermsOfTheAdobeLicenseAgreementAreAccepted";
+
+        // Implement the accepting the license by providing a system-id as system-property.
+        String acceptedSystemIds = System.getProperty(property);
+        if(acceptedSystemIds != null) {
+            String systemId = SystemIdHelper.getSystemId();
+            if(systemId != null) {
+                for (String acceptedSystemId : acceptedSystemIds.split(",")) {
+                    if (systemId.equals(acceptedSystemId)) {
+                        System.out.println(questionProps.getProperty("ACCEPTED_USING_SYSTEM_ID"));
+                        return;
+                    }
+                }
+            }
+        }
+
+        final String question;
+        if(type.equals(SdkType.FLASH)) {
+            question = questionProps.getProperty("ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC");
+        } else if(type.equals(SdkType.AIR)) {
+            question = questionProps.getProperty("ASK_ADOBE_AIR_SDK");
+        } else if(type.equals(SdkType.FONTKIT)) {
+            question = questionProps.getProperty("ASK_ADOBE_FONTKIT");
+        } else {
+            throw new RetrieverException("Unknown SdkType");
+        }
+        final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+        try {
+            while (true) {
+                System.out.println(
+                        MessageFormat.format(questionProps.getProperty("SYSTEM_ID"), SystemIdHelper.getSystemId()));
+                System.out.println(question);
+                System.out.println(MessageFormat.format(questionProps.getProperty("ACCEPT_USING_SYSTEM_ID"),
+                        property, SystemIdHelper.getSystemId()));
+                System.out.print(questionProps.getProperty("DO_YOU_ACCEPT_QUESTION") + " ");
+                final String answer = reader.readLine();
+                if ("YES".equalsIgnoreCase(answer) || "Y".equalsIgnoreCase(answer)) {
+                    return;
+                }
+                if ("NO".equalsIgnoreCase(answer) || "N".equalsIgnoreCase(answer)) {
+                    System.out.println("You have to accept the license agreement in order to proceed.");
+                    throw new RetrieverException("You have to accept the license agreement in order to proceed.");
+                }
+            }
+        } catch(IOException e) {
+            throw new RetrieverException("Couldn't read from Stdin.");
+        }
+    }
+
+    public Map<DefaultArtifactVersion, Collection<PlatformType>> getAvailableVersions(SdkType type) {
+        Map<DefaultArtifactVersion, Collection<PlatformType>> result =
+                new HashMap<DefaultArtifactVersion, Collection<PlatformType>>();
+        try {
+            final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+            final DocumentBuilder builder = factory.newDocumentBuilder();
+            final Document doc = builder.parse(getFlexInstallerConfigUrl());
+            final XPath xPath = XPathFactory.newInstance().newXPath();
+
+            String expression;
+            NodeList nodes = null;
+            switch (type) {
+                case FLEX:
+                    expression = "/config/products/ApacheFlexSDK/versions/*";
+                    nodes = (NodeList) xPath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET);
+                    break;
+                case FLASH:
+                    expression = "/config/flashsdk/versions/*";
+                    nodes = (NodeList) xPath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET);
+                    break;
+                case AIR:
+                    expression = "/config/airsdk/*/versions/*";
+                    nodes = (NodeList) xPath.evaluate(expression, doc.getDocumentElement(), XPathConstants.NODESET);
+                    break;
+            }
+
+            if (nodes != null) {
+                for(int i = 0; i < nodes.getLength(); i++) {
+                    Element element = (Element) nodes.item(i);
+                    DefaultArtifactVersion version = new DefaultArtifactVersion(element.getAttribute("version"));
+                    if(type == SdkType.AIR) {
+                        PlatformType platformType = PlatformType.valueOf(
+                                element.getParentNode().getParentNode().getNodeName().toUpperCase());
+                        if(!result.containsKey(version)) {
+                            result.put(version, new ArrayList<PlatformType>());
+                        }
+                        result.get(version).add(platformType);
+                    } else {
+                        result.put(version, null);
+                    }
+                }
+            }
+        } catch (ParserConfigurationException e) {
+            e.printStackTrace();
+        } catch (SAXException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (XPathExpressionException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/SystemIdHelper.java
----------------------------------------------------------------------
diff --git a/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/SystemIdHelper.java b/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/SystemIdHelper.java
new file mode 100644
index 0000000..76d239e
--- /dev/null
+++ b/flex-maven-tools/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/SystemIdHelper.java
@@ -0,0 +1,35 @@
+package org.apache.flex.utilities.converter.retrievers.download;
+
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.util.Arrays;
+import java.util.Enumeration;
+
+/**
+ * Created by christoferdutz on 05.06.15.
+ */
+public abstract class SystemIdHelper {
+
+    public static String getSystemId() {
+        try {
+            Enumeration<NetworkInterface> nis = NetworkInterface.getNetworkInterfaces();
+            byte[] macSum = new byte[] { 0,0,0,0,0,0};
+            while (nis.hasMoreElements()) {
+                NetworkInterface ni = nis.nextElement();
+                byte[] mac = ni.getHardwareAddress();
+                if(mac != null) {
+                    macSum[0] = (byte) ((macSum[0] + mac[0]) % 256);
+                    macSum[1] = (byte) ((macSum[1] + mac[1]) % 256);
+                    macSum[2] = (byte) ((macSum[2] + mac[2]) % 256);
+                    macSum[3] = (byte) ((macSum[3] + mac[3]) % 256);
+                    macSum[4] = (byte) ((macSum[4] + mac[4]) % 256);
+                    macSum[5] = (byte) ((macSum[5] + mac[5]) % 256);
+                }
+            }
+            return Integer.toHexString(Arrays.hashCode(macSum));
+        } catch (SocketException e) {
+            return null;
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/flex-maven-tools/mavenizer/retrievers/download/src/main/resources/message.properties
----------------------------------------------------------------------
diff --git a/flex-maven-tools/mavenizer/retrievers/download/src/main/resources/message.properties b/flex-maven-tools/mavenizer/retrievers/download/src/main/resources/message.properties
new file mode 100644
index 0000000..d0b04cb
--- /dev/null
+++ b/flex-maven-tools/mavenizer/retrievers/download/src/main/resources/message.properties
@@ -0,0 +1,25 @@
+################################################################################
+##
+##  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.
+##
+################################################################################
+SYSTEM_ID=Your System-Id: {0}
+ACCEPT_USING_SYSTEM_ID=(In a non-interactive build such as a CI server build, alternatively to typing 'y' or 'yes' you can also set a system property containing your system which is interpreted as equivalent to accepting by typing 'y' or 'yes': -D{0}={1} )
+ACCEPTED_USING_SYSTEM_ID=The terms of the Adobe licence Agreements were accepted by providing a system property.
+ASK_ADOBE_AIR_SDK=The Adobe SDK license agreement applies to the Adobe AIR SDK. Do you want to install the Adobe AIR SDK? Adobe AIR SDK License: http://www.adobe.com/products/air/sdk-eula.html
+ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=The Adobe SDK license agreement applies to the Adobe Flash Player playerglobal.swc. Do you want to install the Adobe Flash Player playerglobal.swc?
+ASK_ADOBE_FONTKIT=Apache Flex can optionally integrate with Adobe's embedded font support. This feature requires a few font jars from the Adobe Flex SDK. The Adobe SDK license agreement for Adobe Flex 4.6 applies to these jars. This license is not compatible with the Apache V2 license. Do you want to install these jars from the Adobe Flex SDK?
+DO_YOU_ACCEPT_QUESTION=Do you accept (Yes/No) ?
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/flex-maven-tools/mavenizer/retrievers/pom.xml
----------------------------------------------------------------------
diff --git a/flex-maven-tools/mavenizer/retrievers/pom.xml b/flex-maven-tools/mavenizer/retrievers/pom.xml
new file mode 100644
index 0000000..a95bf41
--- /dev/null
+++ b/flex-maven-tools/mavenizer/retrievers/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project 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.utilities.converter</groupId>
+        <artifactId>apache-flex-sdk-converter</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>retrievers</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>base</module>
+        <module>download</module>
+    </modules>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/LICENSE
----------------------------------------------------------------------
diff --git a/mavenizer/LICENSE b/mavenizer/LICENSE
deleted file mode 100644
index 6b0b127..0000000
--- a/mavenizer/LICENSE
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
-

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/NOTICE
----------------------------------------------------------------------
diff --git a/mavenizer/NOTICE b/mavenizer/NOTICE
deleted file mode 100644
index d1becf0..0000000
--- a/mavenizer/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Flex Mavenizer
-Copyright 2015 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/README.txt
----------------------------------------------------------------------
diff --git a/mavenizer/README.txt b/mavenizer/README.txt
deleted file mode 100644
index 7f84e76..0000000
--- a/mavenizer/README.txt
+++ /dev/null
@@ -1,222 +0,0 @@
-Apache Flex SDK Converter
-=========================
-	The Mavenizer tool is used to convert the Apache and Adobe Flex SDKs and Air
-	SDKs into Maven artifacts. Automatically creating the Directories, pom-files,
-	copying and moving the resources to the correct destinations.
-
-	These artifacts can be used in Maven builds using the Flexmojos plugin
-	(Starting with version 6.x).
-
-	The Apache Flex SDK Converter comes with all the means to download, convert
-	and deploy a mavenized form of an Apache Flex SDK.
-
-    The Converter does not simply copy all java libraries to the destination; it checks
-    if the given artifact has already been deployed to maven central or by deploying an
-    other FDK previously. For this check you do need an internet connection to do the
-    conversion, otherwise it will probably take forever.
-
-    Internally it consists of 3 components:
-    - One Retriever
-    	- DownloadRetriever: For downloading binary artifacts
-    - Four Converters
-    	- One for producing the Apache Flex SDK artifacts
-    	- One for producing the Adobe Flash artifacts
-    	- One for producing the Adobe Air artifacts
-    	- One for producing the Adobe Fontkit artifacts
-    - Two Deployers
-    	- One using Aether with no requirement to Maven (Faster, but less configurable)
-    	- One using a local Maven installation (A lot slower, but fully configurable)
-
-
-
-Getting the latest sources via git
-==================================
-
-    Getting the source code is the recommended way to get the Apache Flex SDK
-    Converter.
-
-    You can always checkout the latest source via git using the following
-    command:
-
-	 git clone https://git-wip-us.apache.org/repos/asf/flex-utilities.git flex-utilities
-	 cd flex-utilities/mavenizer
-	 git checkout develop
-
-Building the Apache Flex SDK Converter
-======================================
-
-    The Apache Flex SDK Converter is a relatively simple project. It requires some
-    build tools which must be installed prior to building the compiler and it depends
-    on some external software which are downloaded as part of the build process.
-    Some of these have different licenses. See the Software Dependencies section
-    for more information on the external software dependencies.
-
-Install Prerequisites
----------------------
-
-    Before building the Apache Flex Compiler you must install the following software
-    and set the corresponding environment variables using absolute file paths.
-    Relative file paths will result in build errors.
-
-    ==================================================================================
-    SOFTWARE                                    ENVIRONMENT VARIABLE (absolute paths)
-    ==================================================================================
-
-    Java SDK 1.6 or greater (*1)                JAVA_HOME
-
-    Maven 3.1.0 or greater (*1)                 MAVEN_HOME
-
-    ==================================================================================
-
-    *1) The bin directories for MAVEN_HOME and JAVA_HOME should be added to your
-        PATH.
-
-        On Windows, set PATH to
-
-            PATH=%PATH%;%MAVEN_HOME%\bin;%JAVA_HOME%\bin
-
-        On the Mac (bash), set PATH to
-
-            export PATH="$PATH:$MAVEN_HOME/bin:$JAVA_HOME/bin"
-
-         On Linux make sure you path include MAVEN_HOME and JAVA_HOME.
-
-Software Dependencies
----------------------
-
-    The Apache Flex SDK Converter uses third-party code that will be downloaded as
-    part of the build.
-
-    The Apache Version 2.0 license is in the LICENSE file.
-
-    The following dependencies have licenses which are, or are compatible with,
-    the Apache Version 2.0 license.  You will not be prompted to acknowledge the
-    download.  Most of the jars are installed in your maven local repository and
-    are included in the assembly jars.
-
-TODO: Add them all here ...
-
-Building the Source in the Source Distribution
-----------------------------------------------
-
-    The project is built with Apache Maven so for a reference to Maven commands
-    please have a look at the Maven documentation.
-
-    When you have all the prerequisites in place and the environment variables
-    set (see Install Prerequisites above) use
-
-        cd <mavenizer.dir>
-        mvn install
-
-    to download the thirdparty dependencies and build the binary from the source.
-
-    To clean the build, of everything other than the downloaded third-party
-    dependencies use
-
-        mvn clean
-
-    The packages can be found in the "target" subdirectories.
-
-    The particularly interesting one is the Standalone Command Line Interface:
-    - cli/target/apache-flex-sdk-converter-1.0.0-SNAPSHOT.jar
-
-
-
-Using the Apache Flex SDK Converter
-===================================
-
-	The CLI (Command Line Interface) allows the Apache Flex SDK Converter
-	to be executed from the command-line. Assuming the Java executable is
-	available on the current systems path, it can be called using:
-
- 	cd <mavenizer.dir>/cli/target
-	java -jar apache-flex-sdk-converter-1.0.0-SNAPSHOT.jar
-
-	If executed without any command, it will output a list of commands and
-	available properties.
-
-	In general it is able to perform 4 different commands:
-
-	- help		Prints a list of all commands and options available.
-	- list     	Lists all versions and platforms available for download
-	- download  Downloads selected versions and assembles an FDK
-	- convert   Converts a previously installed (using the installer) or
-				assembled (using download command) FDK into a mavenized form.
-	- deploy    Uploads previously created maven artifacts to a remote repository.
-
-Some typical usage scenarios
-----------------------------
-
-	- Create a mavenized version of a previously installed FDK (Using the installer):
-	   	"... -fdkDir <FDK install dir> -mavenDir <maven local repo> convert"
-
-	- Download and create an FDK (Flex 4.14.1 with playerglobal 17.0 and 16.0
-		AIR SDK 17.0 for Windows and Mac and the fontkit libs):
-   		"... -fdkDir <FDK target dir> -flexVersion 4.14.1 -flashVersions 17.0,16.0 \
-   			-airVersion 17.0 -platform WINDOWS,MAC -fontkit download"
-
-	- Download and convert an FDK (FDK assembled in temp directory using Air for
-		current systems platform only):
-   		"... -flexVersion 4.14.1 -flashVersions 17.0 -airVersion 17.0 -fontkit \
-   			-mavenDir <maven local repo> download convert"
-
-	- Deploy a bunch of maven artifacts to a remote maven repository:
-   		"... -mavenDir <dir with maven artifacts> -repoUrl <url> \
-   			-repoUsername <username> -repoPassword <pasword> deploy"
-
-	- "The works": Download, Convert and Deploy using only temp directories:
-   		"... -flexVersion 4.14.1 -flashVersions 17.0 -airVersion 17.0 -fontkit \
-   			-repoUrl <url> -repoUsername <username> -repoPassword <pasword> \
-   			download convert deploy"
-
-
-Thanks for using Apache Flex.  Enjoy!
-
-                                          The Apache Flex Project
-                                          <http://flex.apache.org>
-
-
-
-
-
-/////////////////////////////////////////////////////////////////////////////////////////
-Some information (HOWTO) to go with the deployer artifacts
-/////////////////////////////////////////////////////////////////////////////////////////
-
-The deployers are separate modules. Currently two implementations exist.
-1. The Maven deployer (located in deployers/maven/target/maven-deployer-1.0.0-full.jar)
-2. The Aether deployer (located in deployers/aether/target/aether-deployer-1.0.0-full.jar)
-
-The Maven-Deployer expects Maven to be installed on your system and issues a set of
-commandline commands in order to deploy the artifacts. This is the safest approach if you
-haven any special settings that need to be handled in order to deploy the artifacts.
-
-The Aether-Deplyoer uses the Maven-Internal aether libraries to deploy the artifacts from
-within the running JVM. This makes this approach a lot faster than the Maven-Deployer.
-
-/////////////////////////////////////////
-Usage for the Maven Deployer:
-/////////////////////////////////////////
-
-java -cp {home}/deployers/maven/target/maven-deployer-1.0.0-full.jar "directory" "repositoryId" "url" "mvn"
-
-The Maven-Deployer needs 4 ordered parameters separated by spaces:
-    1- directory: The path to the directory to deploy.
-    2- repositoryId: Server Id to map on the <id> under <server> section of settings.xml.
-    3- url: URL where the artifacts will be deployed.
-    4- mvn: The path to the mvn.bat / mvn.sh.
-
-/////////////////////////////////////////
-Usage for the Maven Deployer:
-/////////////////////////////////////////
-
-java -cp {home}/deployers/aether/target/maven-aether-1.0.0-full.jar "directory" "url" ["username" "password]
-
-The Aether-Deployer needs 2 ordered parameters separated by spaces:
-    1- directory: The path to the directory to deploy.
-    2- url: URL where the artifacts will be deployed.
-Optionally you can provide the username and password that is used for deploying artifacts.
-    3- username: The username needed to log-in to the remote repository.
-    4- password: The password needed to log-in to the remote repository.
-
-

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/RELEASE_NOTES
----------------------------------------------------------------------
diff --git a/mavenizer/RELEASE_NOTES b/mavenizer/RELEASE_NOTES
deleted file mode 100644
index d51fd96..0000000
--- a/mavenizer/RELEASE_NOTES
+++ /dev/null
@@ -1,19 +0,0 @@
-Apache Flex Mavenizer 1.0.0
-===========================
-
-Apache Flex Mavenizer 1.0.0 is the first release of a tool allowing, automating
-the conversion of Apache Flex FDKs into Maven artifacts that can be used by
-FlexMojos to build Apache Flex application using Maven.
-
-Known Issues
-_____________
-
-Currently None.
-
-
-Please report new issues to our bug tracker at:
-
-    https://issues.apache.org/jira/browse/FLEX
-
-                                          The Apache Flex Project
-                                          <http://flex.apache.org/>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/cli/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/cli/pom.xml b/mavenizer/cli/pom.xml
deleted file mode 100644
index 511ac31..0000000
--- a/mavenizer/cli/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<project 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.utilities.converter</groupId>
-        <artifactId>apache-flex-sdk-converter</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>cli</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
-
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.4</version>
-                <configuration>
-                    <archive>
-                        <manifest>
-                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                            <addClasspath>true</addClasspath>
-                            <mainClass>org.apache.flex.utilities.converter.core.SdkConverterCLI</mainClass>
-                        </manifest>
-                        <manifestEntries>
-                            <Implementation-Build>${project.version}</Implementation-Build>
-                        </manifestEntries>
-                    </archive>
-                    <descriptorRefs>
-                        <descriptorRef>jar-with-dependencies</descriptorRef>
-                    </descriptorRefs>
-                    <finalName>apache-flex-sdk-converter-${project.version}</finalName>
-                    <appendAssemblyId>false</appendAssemblyId>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.flex.utilities.converter</groupId>
-            <artifactId>download-retriever</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.flex.utilities.converter</groupId>
-            <artifactId>flex-converter</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.flex.utilities.converter</groupId>
-            <artifactId>aether-deployer</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-artifact</artifactId>
-            <version>3.2.3</version>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-cli</groupId>
-            <artifactId>commons-cli</artifactId>
-            <version>1.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.3.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <version>1.7.7</version>
-        </dependency>
-    </dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/cli/src/main/java/org/apache/flex/utilities/converter/core/SdkConverterCLI.java
----------------------------------------------------------------------
diff --git a/mavenizer/cli/src/main/java/org/apache/flex/utilities/converter/core/SdkConverterCLI.java b/mavenizer/cli/src/main/java/org/apache/flex/utilities/converter/core/SdkConverterCLI.java
deleted file mode 100644
index 918dd70..0000000
--- a/mavenizer/cli/src/main/java/org/apache/flex/utilities/converter/core/SdkConverterCLI.java
+++ /dev/null
@@ -1,394 +0,0 @@
-package org.apache.flex.utilities.converter.core;
-
-import org.apache.commons.cli.*;
-import org.apache.commons.io.FileUtils;
-import org.apache.flex.utilities.converter.air.AirConverter;
-import org.apache.flex.utilities.converter.deployer.aether.AetherDeployer;
-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.PlatformType;
-import org.apache.flex.utilities.converter.retrievers.types.SdkType;
-import org.apache.flex.utilities.converter.wrapper.WrapperConverter;
-import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * Created by christoferdutz on 07.04.15.
- */
-public class SdkConverterCLI {
-
-    public static final String COMMAND_HELP = "help";
-    public static final String COMMAND_LIST = "list";
-    public static final String COMMAND_DOWNLOAD = "download";
-    public static final String COMMAND_CONVERT = "convert";
-    public static final String COMMAND_DEPLOY = "deploy";
-
-    public static final String OPTION_FLEX_VERSION = "flexVersion";
-    public static final String OPTION_FLASH_VERSIONS = "flashVersions";
-    public static final String OPTION_AIT_VERSION = "airVersion";
-    public static final String OPTION_FONTKIT = "fontkit";
-    public static final String OPTION_PLATFORMS = "platforms";
-
-    public static final String OPTION_FDK_DIR = "fdkDir";
-    public static final String OPTION_MAVEN_DIR = "mavenDir";
-
-    public static final String OPTION_REPO_URL = "repoUrl";
-    public static final String OPTION_REPO_USERNAME = "repoUsername";
-    public static final String OPTION_REPO_PASSWORD = "repoPassword";
-
-
-    @SuppressWarnings("unchecked")
-    public static void main(String[] args) throws Exception {
-        Options options = new Options();
-        options.addOption(OptionBuilder.withArgName("version").hasArg().
-                withDescription("(Optional and Only valid for download) Version of the " +
-                        "FDK which should be downloaded.").
-                isRequired(false).
-                create(OPTION_FLEX_VERSION));
-        options.addOption(OptionBuilder.withArgName("version(s)").hasArg().
-                withValueSeparator(',').
-                withDescription("(Optional and Only valid for download) Version(s) of the " +
-                        "Adobe Flash SDK which should be downloaded. Multiple versions can " +
-                        "be separated by \",\".").
-                isRequired(false).
-                create(OPTION_FLASH_VERSIONS));
-        options.addOption(OptionBuilder.withArgName("version").hasArg().
-                withDescription("(Optional and Only valid for download) Version of the " +
-                        "Adobe Air SDK which should be downloaded.").
-                isRequired(false).
-                create(OPTION_AIT_VERSION));
-        options.addOption(OptionBuilder.
-                withDescription("(Optional and Only valid for download) If provided, the " +
-                        "Converter will also download the Fontkit libraries needed for font " +
-                        "encoding.").
-                isRequired(false).
-                create(OPTION_FONTKIT));
-        options.addOption(OptionBuilder.withArgName("platform(s)").hasArg().
-                withValueSeparator(',').
-                withDescription("(Optional and Only valid for download) Platform the artifacts " +
-                        "should be downloaded for. If omitted the platform this process is run " +
-                        "on will be used. Valid options are: \"WINDOWS\", \"MAC\" and \"LNX\". " +
-                        "Multiple versions can be separated by \",\".").
-                isRequired(false).
-                create(OPTION_PLATFORMS));
-        options.addOption(OptionBuilder.withArgName("dir").hasArg().
-                withDescription("(Optional) Directory that the FDK will be located in. " +
-                        "If omitted, a temporary directory will be used.").
-                isRequired(false).
-                create(OPTION_FDK_DIR));
-        options.addOption(OptionBuilder.withArgName("dir").hasArg().
-                withDescription("(Optional) Directory that the mavenized artifacts will be located in. " +
-                        "If omitted, a temporary directory will be used.").
-                isRequired(false).
-                create(OPTION_MAVEN_DIR));
-        options.addOption(OptionBuilder.withArgName("url").hasArg().
-                withDescription("(Optional and only valid for deploy) Url of the remote Maven " +
-                        "repository that the generated Maven artifacts should be deployed to.").
-                isRequired(false).
-                create(OPTION_REPO_URL));
-        options.addOption(OptionBuilder.withArgName("username").hasArg().
-                withDescription("(Optional and only valid for deploy) Username used to authenticate " +
-                        "on the remote Maven repository that the generated Maven artifacts should be " +
-                        "deployed to.").
-                isRequired(false).
-                create(OPTION_REPO_USERNAME));
-        options.addOption(OptionBuilder.withArgName("password").hasArg().
-                withDescription("(Optional and only valid for deploy) Password used to authenticate " +
-                        "on the remote Maven repository that the generated Maven artifacts should be " +
-                        "deployed to.").
-                isRequired(false).
-                create(OPTION_REPO_PASSWORD));
-
-        CommandLineParser parser = new BasicParser();
-        try {
-            CommandLine cmd = parser.parse(options, args);
-            if(cmd.getArgList().isEmpty() || cmd.getArgList().contains(COMMAND_HELP)) {
-                printHelp(options);
-                System.exit(0);
-            }
-
-            // Find out the desired platform(s).
-            List<PlatformType> platforms = new ArrayList<PlatformType>();
-            String platformParam = cmd.getOptionValue(OPTION_PLATFORMS);
-            if((platformParam != null) && !platformParam.isEmpty()) {
-                String[] platformNames = platformParam.split(",");
-                for(String platformName : platformNames) {
-                    platforms.add(PlatformType.valueOf(platformName));
-                }
-            }
-
-            if(platforms.isEmpty()) {
-                try {
-                    platforms.add(PlatformType.getCurrent());
-                } catch (Exception e) {
-                    System.err.println("Unsupported OS type. Provide manually using 'platform' parameter.");
-                    System.exit(1);
-                }
-            }
-
-            /////////////////////////////////////////////////////////
-            // Validate sensible combinations of commands.
-            /////////////////////////////////////////////////////////
-
-            // Check that all commands are valid.
-            for(String command : (List<String>) cmd.getArgList()) {
-                if(!COMMAND_LIST.equals(command) && !COMMAND_DOWNLOAD.equals(command) &&
-                        !COMMAND_CONVERT.equals(command) && !COMMAND_DEPLOY.equals(command)) {
-                    System.err.println("Unsupported command '" + command + "'.");
-                    System.exit(1);
-                }
-            }
-
-            // Downloading and deploying without converting doesn't make sense.
-            if(cmd.getArgList().contains(COMMAND_DOWNLOAD) && !cmd.getArgList().contains(COMMAND_CONVERT) &&
-                    cmd.getArgList().contains(COMMAND_DEPLOY)) {
-                System.err.println("Downloading and deploying without conversion doesn't make much sense.");
-                System.exit(1);
-            }
-
-            // If Downloading and not converting, the fdkDir parameter has to be provided as
-            // otherwise the download result would reside in some strange temp directory.
-            if(cmd.getArgList().contains(COMMAND_DOWNLOAD) && !cmd.getArgList().contains(COMMAND_CONVERT)
-                    && !cmd.hasOption(OPTION_FDK_DIR)) {
-                System.err.println("Parameter 'fdkDir' required for task 'download' without conversion.");
-                System.exit(1);
-            }
-
-            // If Converting and not deploying, the mavenDir parameter has to be provided as
-            // otherwise the converted FDK would reside in some strange temp directory.
-            if(cmd.getArgList().contains(COMMAND_CONVERT) && !cmd.getArgList().contains(COMMAND_DEPLOY)
-                    && !cmd.hasOption(OPTION_MAVEN_DIR)) {
-                System.err.println("Parameter 'mavenDir' required for task 'convert' without deployment.");
-                System.exit(1);
-            }
-
-            // Downloading nothing doesn't really make sense. On the bad side it even causes
-            // problems with the converter without any fdkDir parameter, therefore we abort here.
-            if(cmd.getArgList().contains(COMMAND_DOWNLOAD) && !cmd.hasOption(OPTION_FLEX_VERSION) &&
-                    !cmd.hasOption(OPTION_FLASH_VERSIONS) && !cmd.hasOption(OPTION_AIT_VERSION) &&
-                    !cmd.hasOption(OPTION_FONTKIT)) {
-                System.err.println("At least one of the parameters 'flexVersion', 'flashVersions', 'airVersion' or " +
-                        "'fontkit' required for task 'download'.");
-                System.exit(1);
-            }
-
-            // Find out where to download or convert from.
-            File fdkDir = cmd.hasOption(OPTION_FDK_DIR) ?
-                    new File(cmd.getOptionValue(OPTION_FDK_DIR)) : getTempDir("FLEX-DOWNLOAD-");
-
-            // Find out where to convert to or deploy from.
-            File mavenDir = cmd.hasOption(OPTION_MAVEN_DIR) ?
-                    new File(cmd.getOptionValue(OPTION_MAVEN_DIR)) : getTempDir("FLEX-MAVEN-");
-
-            ////////////////////////////////////////////////////////////////////////////
-            // Exectute operations
-            ////////////////////////////////////////////////////////////////////////////
-
-            // Output a list of all available downloads.
-            if(cmd.getArgList().contains(COMMAND_LIST)) {
-                System.out.println("-----------------------------------------------");
-                System.out.println("- Available downloads");
-                System.out.println("-----------------------------------------------");
-
-                DownloadRetriever retriever = new DownloadRetriever();
-                System.out.println("Apache Flex:");
-                List<DefaultArtifactVersion> versions = new ArrayList<DefaultArtifactVersion>(
-                        retriever.getAvailableVersions(SdkType.FLEX).keySet());
-                Collections.sort(versions);
-                for(DefaultArtifactVersion version : versions) {
-                    System.out.println(" - " + version.toString());
-                }
-                System.out.println();
-
-                System.out.println("Adobe Flash:");
-                versions = new ArrayList<DefaultArtifactVersion>(
-                        retriever.getAvailableVersions(SdkType.FLASH).keySet());
-                Collections.sort(versions);
-                for(DefaultArtifactVersion version : versions) {
-                    System.out.println(" - " + version.toString());
-                }
-                System.out.println();
-
-                System.out.println("Adobe AIR:");
-                Map<DefaultArtifactVersion, Collection<PlatformType>> versionData =
-                        retriever.getAvailableVersions(SdkType.AIR);
-                versions = new ArrayList<DefaultArtifactVersion>(versionData.keySet());
-                Collections.sort(versions);
-                for(DefaultArtifactVersion version : versions) {
-                    StringBuilder sb = new StringBuilder();
-                    sb.append(" - ").append(version.toString()).append(" (");
-                    boolean firstOption = true;
-                    for(PlatformType platformType : versionData.get(version)) {
-                        if(!firstOption) {
-                            sb.append(", ");
-                        }
-                        sb.append(platformType.name());
-                        firstOption = false;
-                    }
-                    sb.append(")");
-                    System.out.println(sb.toString());
-                }
-            }
-
-            // Handle the downloading of atifacts.
-            if(cmd.getArgList().contains(COMMAND_DOWNLOAD)) {
-                System.out.println("-----------------------------------------------");
-                System.out.println("- Downloading");
-                System.out.println("-----------------------------------------------");
-
-                DownloadRetriever retriever = new DownloadRetriever();
-
-                String flexVersion = cmd.getOptionValue(OPTION_FLEX_VERSION, null);
-                if(flexVersion != null) {
-                    System.out.println("- Downloading Flex SDK version: " + flexVersion +
-                            " to directory: " + fdkDir.getAbsolutePath());
-                    File fdkDownloadDirectory = retriever.retrieve(SdkType.FLEX, flexVersion);
-                    // Unpack the archive to the FDK directory.
-                    mergeDirectories(fdkDownloadDirectory, fdkDir);
-
-                    // Add the swfobject files.
-                    File swfObjectDirectory = retriever.retrieve(SdkType.SWFOBJECT);
-                    mergeDirectories(swfObjectDirectory, fdkDir);
-                }
-
-                String flashVersions = cmd.getOptionValue(OPTION_FLASH_VERSIONS, "");
-                if(!flashVersions.isEmpty()) {
-                    for(String flashVersion : flashVersions.split(",")) {
-                        System.out.println("- Downloading Flash SDK version: " + flashVersion +
-                                " to directory: " + fdkDir.getAbsolutePath());
-                        File flashDownloadDiretory = retriever.retrieve(SdkType.FLASH, flashVersion);
-                        // Integrate the download into  the FDK directory.
-                        mergeDirectories(flashDownloadDiretory, fdkDir);
-                    }
-                }
-
-                String airVersion = cmd.getOptionValue(OPTION_AIT_VERSION, "");
-                if(!airVersion.isEmpty()) {
-                    for(PlatformType platformType : platforms) {
-                        System.out.println("- Downloading Air SDK version: " + airVersion +
-                                " and platform " + platformType.name() +
-                                " to directory: " + fdkDir.getAbsolutePath());
-                        File airDownloadDirectory = retriever.retrieve(SdkType.AIR, airVersion, platformType);
-                        // Integrate the download into the FDK directory.
-                        mergeDirectories(airDownloadDirectory, fdkDir);
-                    }
-                }
-
-                if(cmd.hasOption(OPTION_FONTKIT)) {
-                    System.out.println("- Downloading Flex Fontkit libraries" +
-                            " to directory: " + fdkDir.getAbsolutePath());
-                    File fontkitDownloadDirectory = retriever.retrieve(SdkType.FONTKIT);
-                    // Integrate the download into the FDK directory.
-                    mergeDirectories(fontkitDownloadDirectory, fdkDir);
-                }
-
-                System.out.println("Finished downloads.");
-            }
-
-            // Handle the conversion.
-            if(cmd.getArgList().contains(COMMAND_CONVERT)) {
-                System.out.println("-----------------------------------------------");
-                System.out.println("- Conversion");
-                System.out.println("-----------------------------------------------");
-
-                System.out.println("- Converting Flex SDK from " + fdkDir.getAbsolutePath() +
-                        " to " + mavenDir.getAbsolutePath());
-                FlexConverter flexConverter = new FlexConverter(fdkDir, mavenDir);
-                flexConverter.convert();
-
-                System.out.println("- Converting Flash SDKs from " + fdkDir.getAbsolutePath() +
-                        " to " + mavenDir.getAbsolutePath());
-                FlashConverter flashConverter = new FlashConverter(fdkDir, mavenDir);
-                flashConverter.convert();
-
-                System.out.println("- Converting Air SDK from " + fdkDir.getAbsolutePath() +
-                        " to " + mavenDir.getAbsolutePath());
-                AirConverter airConverter = new AirConverter(fdkDir, mavenDir);
-                airConverter.convert();
-
-                System.out.println("- Converting Fontkit libraries from " + fdkDir.getAbsolutePath() +
-                        " to " + mavenDir.getAbsolutePath());
-                FontkitConverter fontkitConverter = new FontkitConverter(fdkDir, mavenDir);
-                fontkitConverter.convert();
-
-                System.out.println("- Converting Wrappers from " + fdkDir.getAbsolutePath() +
-                        " to " + mavenDir.getAbsolutePath());
-                WrapperConverter wrapperConverter = new WrapperConverter(fdkDir, mavenDir);
-                wrapperConverter.convert();
-
-                System.out.println("Finished conversion.");
-            }
-
-            // Handle the deployment.
-            if(cmd.getArgList().contains(COMMAND_DEPLOY)) {
-                System.out.println("-----------------------------------------------");
-                System.out.println("- Deployment");
-                System.out.println("-----------------------------------------------");
-
-                if(!cmd.hasOption(OPTION_REPO_URL)) {
-                    System.err.println("Parameter 'repoUrl' required for task 'deploy'.");
-                    System.exit(1);
-                }
-
-                String repoUrl = cmd.getOptionValue(OPTION_REPO_URL);
-                String repoUsername = cmd.getOptionValue(OPTION_REPO_USERNAME, null);
-                String repoPassword = cmd.getOptionValue(OPTION_REPO_PASSWORD, null);
-
-                System.out.println("- Deploying libraries to " + repoUrl + " from " + mavenDir.getAbsolutePath());
-
-                AetherDeployer deployer = new AetherDeployer(mavenDir, repoUrl, repoUsername, repoPassword);
-                deployer.deploy();
-
-                System.out.println("Finished deploying.");
-            }
-            System.out.println("-----------------------------------------------");
-        } catch (ParseException e) {
-            System.err.println("Parsing failed. Reason: " + e.getMessage());
-            printHelp(options);
-        }
-    }
-
-    protected static void printHelp(Options options) {
-        String headerText = "Commands: \n" +
-                "If the parameters 'fdkDir' and 'mavenDir' are not specified, the Converter creates two temporary " +
-                "directories in your systems temp directory and uses these for the follwoing commands.\n" +
-                " - list:\nList all available versions and platforms (for download)\n" +
-                " - download:\nDownload the selected versions of FDK parts specified by 'flexVersion', " +
-                "'flashVersions', 'airVersion' and 'fontkit' and creates an FDK in the directory specified by " +
-                "'fdkDir'. If 'airVersion' is specified, the 'platforms' parameter specifies the platforms for which " +
-                "the given AIR SDK should be downloaded, if not specified the current systems platform is used. \n" +
-                " - convert:\nConvert the FDK located in 'fdkDir' into a mavenized form at 'mavenDir'.\n" +
-                " - deploy:\nDeploy the maven artifacts located in 'mavenDir', to the remote maven repository " +
-                "specified with 'repoUrl'. If the 'repoUsername' and 'repoPassword' parameters are specified, use " +
-                "these credentials for authenticating at the remote system.\n" +
-                "Options:";
-
-        HelpFormatter helpFormatter = new HelpFormatter();
-        helpFormatter.printHelp("java -jar apache-flex-sdk-converter.jar [list] [-fdkDir <fdkDir>] " +
-                        "[-mavenDir <mavenDir>] [[-flexVersion <version>] [-flashVersions <version(s)>] " +
-                        "[-airVersion <version> [-platforms <platform(s)>]] [-fontkit] download] [convert] " +
-                        "[-repoUrl <url> [-repoUsername <username> -repoPassword <password>] deploy]",
-                headerText, options, "");
-    }
-
-    protected static File getTempDir(String prefix) throws IOException {
-        File tempFile = File.createTempFile(prefix, ".TMP");
-        tempFile.delete();
-        File tempDir = new File(tempFile.getParentFile(),
-                tempFile.getName().substring(0, tempFile.getName().length() - 4));
-        if(!tempDir.exists()) {
-            tempDir.mkdirs();
-        }
-        return tempDir;
-    }
-
-    protected static void mergeDirectories(File sourceDir, File targetDir) throws IOException {
-        FileUtils.copyDirectory(sourceDir, targetDir);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/air/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/converters/air/pom.xml b/mavenizer/converters/air/pom.xml
deleted file mode 100644
index 88d61aa..0000000
--- a/mavenizer/converters/air/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<project 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.utilities.converter</groupId>
-        <artifactId>converters</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>air-converter</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.flex.utilities.converter</groupId>
-            <artifactId>base-converter</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>