You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by qu...@apache.org on 2015/06/01 00:19:10 UTC
[28/50] [abbrv] git commit: [flex-utilities]
[refs/heads/as3httpclient-work] - - Implemented a wrapper converter that
creates wrapper artifacts used as templates for web-projects.
- Implemented a wrapper converter that creates wrapper artifacts used as templates for web-projects.
Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/1a46b112
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/1a46b112
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/1a46b112
Branch: refs/heads/as3httpclient-work
Commit: 1a46b11276f24b2a13464461887bf63b4735006e
Parents: 05922ef
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Thu Apr 23 17:15:44 2015 +0200
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Thu Apr 23 17:15:44 2015 +0200
----------------------------------------------------------------------
.../converter/core/SdkConverterCLI.java | 10 +++
mavenizer/converters/flex/pom.xml | 5 ++
mavenizer/converters/pom.xml | 1 +
mavenizer/converters/wrapper/pom.xml | 41 +++++++++
.../converter/wrapper/WrapperConverter.java | 87 ++++++++++++++++++++
mavenizer/maven-extension/pom.xml | 5 ++
.../converter/mavenextension/FlexEventSpy.java | 23 ++++--
.../converter/retrievers/types/SdkType.java | 3 +-
.../retrievers/download/DownloadRetriever.java | 41 ++++++---
9 files changed, 195 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/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
index 56d5f1f..9f3d160 100644
--- 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
@@ -11,6 +11,7 @@ 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;
@@ -253,6 +254,10 @@ public class SdkConverterCLI {
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, "");
@@ -315,6 +320,11 @@ public class SdkConverterCLI {
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.");
}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/converters/flex/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/converters/flex/pom.xml b/mavenizer/converters/flex/pom.xml
index 6df279f..480bc83 100644
--- a/mavenizer/converters/flex/pom.xml
+++ b/mavenizer/converters/flex/pom.xml
@@ -54,6 +54,11 @@
<artifactId>fontkit-converter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.flex.utilities.converter</groupId>
+ <artifactId>wrapper-converter</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/converters/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/converters/pom.xml b/mavenizer/converters/pom.xml
index d2dbad4..69a859b 100644
--- a/mavenizer/converters/pom.xml
+++ b/mavenizer/converters/pom.xml
@@ -39,6 +39,7 @@
<module>flash</module>
<module>flex</module>
<module>fontkit</module>
+ <module>wrapper</module>
</modules>
</project>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/converters/wrapper/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/converters/wrapper/pom.xml b/mavenizer/converters/wrapper/pom.xml
new file mode 100644
index 0000000..86f8a43
--- /dev/null
+++ b/mavenizer/converters/wrapper/pom.xml
@@ -0,0 +1,41 @@
+<?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>wrapper-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>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/converters/wrapper/src/main/java/org/apache/flex/utilities/converter/wrapper/WrapperConverter.java
----------------------------------------------------------------------
diff --git a/mavenizer/converters/wrapper/src/main/java/org/apache/flex/utilities/converter/wrapper/WrapperConverter.java b/mavenizer/converters/wrapper/src/main/java/org/apache/flex/utilities/converter/wrapper/WrapperConverter.java
new file mode 100644
index 0000000..6a2b691
--- /dev/null
+++ b/mavenizer/converters/wrapper/src/main/java/org/apache/flex/utilities/converter/wrapper/WrapperConverter.java
@@ -0,0 +1,87 @@
+package org.apache.flex.utilities.converter.wrapper;
+
+import org.apache.flex.utilities.converter.BaseConverter;
+import org.apache.flex.utilities.converter.Converter;
+import org.apache.flex.utilities.converter.exceptions.ConverterException;
+import org.apache.flex.utilities.converter.model.MavenArtifact;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Created by christoferdutz on 06.04.15.
+ */
+public class WrapperConverter extends BaseConverter implements Converter {
+
+ public WrapperConverter(File rootSourceDirectory, File rootTargetDirectory) throws ConverterException {
+ super(rootSourceDirectory, rootTargetDirectory);
+ }
+
+ @Override
+ protected void processDirectory() throws ConverterException {
+ File wrapperRootDir = new File(rootSourceDirectory, "templates/swfobject");
+ if(!wrapperRootDir.exists() || !wrapperRootDir.isDirectory()) {
+ System.out.println("Skipping Wrapper generation.");
+ return;
+ }
+
+ try {
+ final File wrapperJar = File.createTempFile("SWFObjectWrapper-2.2", ".jar");
+ generateZip(wrapperRootDir.listFiles(), wrapperJar);
+
+ final MavenArtifact swfobjectWrapper = new MavenArtifact();
+ swfobjectWrapper.setGroupId("org.apache.flex.wrapper");
+ swfobjectWrapper.setArtifactId("swfobject");
+ swfobjectWrapper.setVersion(getFlexVersion(rootSourceDirectory));
+ swfobjectWrapper.setPackaging("jar");
+ swfobjectWrapper.addDefaultBinaryArtifact(wrapperJar);
+
+ writeArtifact(swfobjectWrapper);
+ } catch (IOException e) {
+ throw new ConverterException("Error creating wrapper jar.", e);
+ }
+ }
+
+ /**
+ * Get the version of an Flex SDK from the content of the SDK directory.
+ *
+ * @return version string for the current Flex SDK
+ */
+ protected String getFlexVersion(File rootDirectory) throws ConverterException {
+ final File sdkDescriptor = new File(rootDirectory, "flex-sdk-description.xml");
+
+ // If the descriptor is not present, return null as this FDK directory doesn't
+ // seem to contain a Flex SDK.
+ if(!sdkDescriptor.exists()) {
+ return null;
+ }
+
+ final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ try {
+ // Parse the document
+ final DocumentBuilder db = dbf.newDocumentBuilder();
+ final Document dom = db.parse(sdkDescriptor);
+
+ // Get name, version and build nodes
+ final Element root = dom.getDocumentElement();
+ final String version = root.getElementsByTagName("version").item(0).getTextContent();
+ final String build = root.getElementsByTagName("build").item(0).getTextContent();
+
+ // In general the version consists of the content of the version element with an appended build-number.
+ return (build.equals("0")) ? version + "-SNAPSHOT" : version;
+ } catch (ParserConfigurationException pce) {
+ throw new RuntimeException(pce);
+ } catch (SAXException se) {
+ throw new RuntimeException(se);
+ } catch (IOException ioe) {
+ throw new RuntimeException(ioe);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/maven-extension/pom.xml
----------------------------------------------------------------------
diff --git a/mavenizer/maven-extension/pom.xml b/mavenizer/maven-extension/pom.xml
index 384fba9..4a96355 100644
--- a/mavenizer/maven-extension/pom.xml
+++ b/mavenizer/maven-extension/pom.xml
@@ -95,6 +95,11 @@
<artifactId>fontkit-converter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.flex.utilities.converter</groupId>
+ <artifactId>wrapper-converter</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>javax.inject</groupId>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexEventSpy.java
----------------------------------------------------------------------
diff --git a/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexEventSpy.java b/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexEventSpy.java
index f6d5c4f..e946db0 100644
--- a/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexEventSpy.java
+++ b/mavenizer/maven-extension/src/main/java/org/apache/flex/utilities/converter/mavenextension/FlexEventSpy.java
@@ -7,6 +7,7 @@ import org.apache.flex.utilities.converter.flex.FlexConverter;
import org.apache.flex.utilities.converter.fontkit.FontkitConverter;
import org.apache.flex.utilities.converter.retrievers.download.DownloadRetriever;
import org.apache.flex.utilities.converter.retrievers.types.SdkType;
+import org.apache.flex.utilities.converter.wrapper.WrapperConverter;
import org.apache.maven.MavenExecutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
@@ -110,7 +111,7 @@ public class FlexEventSpy extends AbstractEventSpy {
}
ArtifactResolutionResult res = repositorySystem.resolve(req);
return res.isSuccess();
- } catch (Exception e) {
+ } catch (Throwable e) {
return false;
}
}
@@ -123,17 +124,25 @@ public class FlexEventSpy extends AbstractEventSpy {
DownloadRetriever downloadRetriever = new DownloadRetriever();
File sdkRoot = downloadRetriever.retrieve(SdkType.FLEX, version);
+ // In order to create a fully functional wrapper we need to download
+ // SWFObject and merge that with the fdk first.
+ File swfObjectRoot = downloadRetriever.retrieve(SdkType.SWFOBJECT);
+ FileUtils.copyDirectory(swfObjectRoot, sdkRoot);
+
// In order to compile some of the themes, we need to download a
// playerglobal version.
logger.info("In order to convert the Apache Flex SDK, a Flash SDK has to be downloaded.");
File flashSdkRoot = downloadRetriever.retrieve(SdkType.FLASH, "10.2");
FileUtils.copyDirectory(flashSdkRoot, sdkRoot);
+ // Convert the FDK itself.
FlexConverter converter = new FlexConverter(sdkRoot, localRepoBaseDir);
converter.convert();
- } catch (Exception ce) {
- logger.error("Error", ce);
- ce.printStackTrace();
+
+ // Convert the wrapper.
+ WrapperConverter wrapperConverter = new WrapperConverter(sdkRoot, localRepoBaseDir);
+ wrapperConverter.convert();
+ } catch (Throwable ce) {
throw new MavenExecutionException(
"Caught exception while downloading and converting artifact.", ce);
}
@@ -149,7 +158,7 @@ public class FlexEventSpy extends AbstractEventSpy {
File sdkRoot = downloadRetriever.retrieve(SdkType.FLASH, version);
FlashConverter converter = new FlashConverter(sdkRoot, localRepoBaseDir);
converter.convert();
- } catch (Exception ce) {
+ } catch (Throwable ce) {
throw new MavenExecutionException(
"Caught exception while downloading and converting artifact.", ce);
}
@@ -165,7 +174,7 @@ public class FlexEventSpy extends AbstractEventSpy {
File sdkRoot = downloadRetriever.retrieve(SdkType.AIR, version);
AirConverter converter = new AirConverter(sdkRoot, localRepoBaseDir);
converter.convert();
- } catch (Exception ce) {
+ } catch (Throwable ce) {
throw new MavenExecutionException(
"Caught exception while downloading and converting artifact.", ce);
}
@@ -181,7 +190,7 @@ public class FlexEventSpy extends AbstractEventSpy {
File sdkRoot = downloadRetriever.retrieve(SdkType.FONTKIT);
FontkitConverter converter = new FontkitConverter(sdkRoot, localRepoBaseDir);
converter.convert();
- } catch (Exception ce) {
+ } catch (Throwable ce) {
throw new MavenExecutionException(
"Caught exception while downloading and converting artifact.", ce);
}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
----------------------------------------------------------------------
diff --git a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
index 5ea0ba8..f8b3024 100644
--- a/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
+++ b/mavenizer/retrievers/base/src/main/java/org/apache/flex/utilities/converter/retrievers/types/SdkType.java
@@ -24,6 +24,7 @@ public enum SdkType {
FLEX,
FLASH,
AIR,
- FONTKIT
+ FONTKIT,
+ SWFOBJECT
}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/1a46b112/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
index 81c4f75..45c9570 100644
--- 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
@@ -125,20 +125,36 @@ public class DownloadRetriever extends BaseRetriever {
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()) {
+ if (!libDestFile.getParentFile().exists()) {
libDestFile.getParentFile().mkdirs();
}
FileUtils.moveFile(targetFile, libDestFile);
return targetDirectory;
} else {
System.out.println("Extracting archive to temp directory.");
- final File targetDirectory = new File(targetFile.getParent(),
+ File targetDirectory = new File(targetFile.getParent(),
targetFile.getName().substring(0, targetFile.getName().lastIndexOf(".") - 1));
- unpack(targetFile, targetDirectory);
+ 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;
}
}
@@ -250,7 +266,7 @@ public class DownloadRetriever extends BaseRetriever {
}
final StringBuilder stringBuilder = new StringBuilder();
- if (sdkType == SdkType.FLEX) {
+ if ((sdkType == SdkType.FLEX) || (sdkType == SdkType.SWFOBJECT)) {
final String path = artifactElement.getAttribute("path");
final String file = artifactElement.getAttribute("file");
if (!path.startsWith("http://")) {
@@ -260,7 +276,10 @@ public class DownloadRetriever extends BaseRetriever {
if(!path.endsWith("/")) {
stringBuilder.append("/");
}
- stringBuilder.append(file).append(".zip");
+ stringBuilder.append(file);
+ if(sdkType == SdkType.FLEX) {
+ stringBuilder.append(".zip");
+ }
} else {
final NodeList pathElements = artifactElement.getElementsByTagName("path");
final NodeList fileElements = artifactElement.getElementsByTagName("file");
@@ -318,7 +337,10 @@ public class DownloadRetriever extends BaseRetriever {
break;
case FONTKIT:
stringBuilder.append("//fontswf");
-
+ break;
+ case SWFOBJECT:
+ stringBuilder.append("//swfobject");
+ break;
}
return stringBuilder.toString();
}
@@ -413,11 +435,4 @@ public class DownloadRetriever extends BaseRetriever {
}
return result;
}
-
- public static void main(String[] args) throws Exception {
- DownloadRetriever downloadRetriever = new DownloadRetriever();
- //downloadRetriever.getAvailableVersions(SdkType.FLEX);
- //downloadRetriever.getAvailableVersions(SdkType.FLASH);
- downloadRetriever.getAvailableVersions(SdkType.AIR);
- }
}