Repository: flex-utilities Updated Branches: refs/heads/mavenizer-refactoring 61d38e9e3 -> 16a642033
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/mavenizer-refactoring Commit: 16a6420330e4742a5e802742a09fdc254a510002 Parents: 61d38e9 Author: Christofer Dutz <christofer.d...@c-ware.de> Authored: Sun May 18 21:39:57 2014 +0200 Committer: Christofer Dutz <christofer.d...@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>