You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2014/09/05 15:15:20 UTC

[04/28] git commit: [flex-utilities] [refs/heads/develop] - FLEX-34318 - [Mavenizer] Refactor the Mavenizer in preparation of future mavenized releases of Flex - Started implementing a component for automatically downloading artifacts - Created the cod

FLEX-34318 - [Mavenizer] Refactor the Mavenizer in preparation of future mavenized releases of Flex
- Started implementing a component for automatically downloading artifacts
  - Created the code for automatically extracting the url for an artifact from the "sdk-installer-config-4.0.xml"


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

Branch: refs/heads/develop
Commit: 16a6420330e4742a5e802742a09fdc254a510002
Parents: 61d38e9
Author: Christofer Dutz <ch...@c-ware.de>
Authored: Sun May 18 21:39:57 2014 +0200
Committer: Christofer Dutz <ch...@c-ware.de>
Committed: Sun May 18 21:39:57 2014 +0200

----------------------------------------------------------------------
 mavenizer/core/pom.xml                          |  35 ++++
 mavenizer/pom.xml                               |  17 +-
 mavenizer/retrievers/base/pom.xml               |  35 ++++
 .../converter/retrievers/BaseRetriever.java     |   7 +
 .../converter/retrievers/Retriever.java         |  14 ++
 .../exceptions/RetrieverException.java          |  32 ++++
 .../retrievers/types/PlatformType.java          |  12 ++
 .../converter/retrievers/types/SdkType.java     |  12 ++
 mavenizer/retrievers/download/pom.xml           |  43 +++++
 .../retrievers/download/DownloadRetriever.java  | 166 +++++++++++++++++++
 mavenizer/retrievers/pom.xml                    |  40 +++++
 11 files changed, 398 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/core/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/core/pom.xml b/mavenizer/core/pom.xml
new file mode 100644
index 0000000..d3cc9bf
--- /dev/null
+++ b/mavenizer/core/pom.xml
@@ -0,0 +1,35 @@
+<?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>flex-sdk-converter</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>core</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/pom.xml b/mavenizer/pom.xml
index 21e5fd2..83015db 100644
--- a/mavenizer/pom.xml
+++ b/mavenizer/pom.xml
@@ -33,22 +33,9 @@
         <wagonVersion>2.2</wagonVersion>
     </properties>
 
-    <developers>
-        <developer>
-            <id>cdutz</id>
-            <name>Christofer Dutz</name>
-        </developer>
-        <developer>
-            <id>fthomas</id>
-            <name>Frederic Thomas</name>
-        </developer>
-        <developer>
-            <id>josebarragan</id>
-            <name>Jose Barragan</name>
-        </developer>
-    </developers>
-
     <modules>
+        <module>core</module>
+        <module>retrievers</module>
         <module>converters</module>
         <module>deployers</module>
     </modules>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/base/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/pom.xml b/mavenizer/retrievers/base/pom.xml
new file mode 100644
index 0000000..4a8c74d
--- /dev/null
+++ b/mavenizer/retrievers/base/pom.xml
@@ -0,0 +1,35 @@
+<?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>base-retriever</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/BaseRetriever.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/BaseRetriever.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/BaseRetriever.java
new file mode 100644
index 0000000..a0371b6
--- /dev/null
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/BaseRetriever.java
@@ -0,0 +1,7 @@
+package org.apache.flex.utilities.converter.retrievers;
+
+/**
+ * Created by cdutz on 18.05.2014.
+ */
+public abstract class BaseRetriever implements Retriever {
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/Retriever.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/Retriever.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/Retriever.java
new file mode 100644
index 0000000..1ce2207
--- /dev/null
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/Retriever.java
@@ -0,0 +1,14 @@
+package org.apache.flex.utilities.converter.retrievers;
+
+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;
+
+/**
+ * Created by cdutz on 18.05.2014.
+ */
+public interface Retriever {
+
+    void retrieve(PlatformType platformType, SDKType sdkType, String version) throws RetrieverException;
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/exceptions/RetrieverException.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/exceptions/RetrieverException.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/exceptions/RetrieverException.java
new file mode 100644
index 0000000..bfb708b
--- /dev/null
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/exceptions/RetrieverException.java
@@ -0,0 +1,32 @@
+/*
+ * 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.exceptions;
+
+/**
+ * Created by cdutz on 07.05.2014.
+ */
+public class RetrieverException extends Exception {
+
+    public RetrieverException(String message) {
+        super(message);
+    }
+
+    public RetrieverException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/PlatformType.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/PlatformType.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/PlatformType.java
new file mode 100644
index 0000000..c0694d8
--- /dev/null
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/PlatformType.java
@@ -0,0 +1,12 @@
+package org.apache.flex.utilities.converter.retrievers.types;
+
+/**
+ * Created by cdutz on 18.05.2014.
+ */
+public enum PlatformType {
+
+    WINDOWS,
+    LINUX,
+    MAC
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
new file mode 100644
index 0000000..b2ba4df
--- /dev/null
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
@@ -0,0 +1,12 @@
+package org.apache.flex.utilities.converter.retrievers.types;
+
+/**
+ * Created by cdutz on 18.05.2014.
+ */
+public enum SDKType {
+
+    FLASH,
+    AIR,
+    FLEX
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/download/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/download/pom.xml b/mavenizer/retrievers/download/pom.xml
new file mode 100644
index 0000000..a566673
--- /dev/null
+++ b/mavenizer/retrievers/download/pom.xml
@@ -0,0 +1,43 @@
+<?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>
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java b/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java
new file mode 100644
index 0000000..bec47d1
--- /dev/null
+++ b/mavenizer/retrievers/download/src/main/java/org/apache/flex/utilities/converter/retrievers/download/DownloadRetriever.java
@@ -0,0 +1,166 @@
+package org.apache.flex.utilities.converter.retrievers.download;
+
+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.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+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.IOException;
+
+/**
+ * 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";
+
+    @Override
+    public void retrieve(PlatformType platformType, SDKType type, String version) throws RetrieverException {
+        final String url = getBinaryUrl(platformType, type, version);
+        System.out.println(url);
+    }
+
+    protected String getBinaryUrl(PlatformType platformType, SDKType sdkType, String version) throws RetrieverException {
+        try {
+            final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+            final DocumentBuilder builder = factory.newDocumentBuilder();
+            final Document doc = builder.parse(FLEX_INSTALLER_CONFIG_URL);
+
+            //Evaluate XPath against Document itself
+            final String expression = getUrlXpath(platformType, sdkType, version);
+            final XPath xPath = XPathFactory.newInstance().newXPath();
+            final Element artifactElement = (Element) xPath.evaluate(
+                    expression, doc.getDocumentElement(), XPathConstants.NODE);
+            final StringBuilder stringBuilder = new StringBuilder();
+            if(sdkType == SDKType.FLEX) {
+                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).append(file);
+            } 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.");
+                }
+                stringBuilder.append(pathElements.item(0).getTextContent());
+                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(PlatformType platformType, SDKType sdkType, String version) {
+        final StringBuilder stringBuilder = new StringBuilder();
+        switch (sdkType) {
+            case FLEX:
+                stringBuilder.append("//*[@id='").append(version).append("']");
+                break;
+            case AIR:
+                stringBuilder.append("//*[@id='air.sdk.version.");
+                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;
+        }
+        return stringBuilder.toString();
+    }
+
+    public static void main(String[] args) throws Exception {
+        final DownloadRetriever retriever = new DownloadRetriever();
+
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLEX, "4.9.1");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLEX, "4.10.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLEX, "4.11.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLEX, "4.12.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLEX, "4.12.1");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLEX, "Nightly");
+
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "2.6");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "2.6");
+        retriever.retrieve(PlatformType.LINUX, SDKType.AIR, "2.6");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "2.7");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "2.7");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.0");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.1");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.1");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.2");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.2");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.3");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.3");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.4");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.4");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.5");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.5");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.6");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.6");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.7");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.7");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.8");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.8");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "3.9");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "3.9");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "4.0");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "4.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "13.0");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "13.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.AIR, "14.0");
+        retriever.retrieve(PlatformType.MAC, SDKType.AIR, "14.0");
+
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "10.2");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "10.3");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.1");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.2");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.3");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.4");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.5");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.6");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.7");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.8");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "11.9");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "12.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "13.0");
+        retriever.retrieve(PlatformType.WINDOWS, SDKType.FLASH, "14.0");
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/16a64203/mavenizer/retrievers/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/pom.xml b/mavenizer/retrievers/pom.xml
new file mode 100644
index 0000000..30b38d3
--- /dev/null
+++ b/mavenizer/retrievers/pom.xml
@@ -0,0 +1,40 @@
+<?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>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>