http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/air/src/main/java/org/apache/flex/utilities/converter/air/AirConverter.java ---------------------------------------------------------------------- diff --git a/mavenizer/converters/air/src/main/java/org/apache/flex/utilities/converter/air/AirConverter.java b/mavenizer/converters/air/src/main/java/org/apache/flex/utilities/converter/air/AirConverter.java deleted file mode 100644 index d1dbbfc..0000000 --- a/mavenizer/converters/air/src/main/java/org/apache/flex/utilities/converter/air/AirConverter.java +++ /dev/null @@ -1,266 +0,0 @@ -/* - * 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.air; - -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 java.io.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * Created by cdutz on 22.04.2014. - */ -public class AirConverter extends BaseConverter implements Converter { - - protected String airSdkVersion; - - /** - * @param rootSourceDirectory Path to the root of the original AIR SDK. - * @param rootTargetDirectory Path to the root of the directory where the Maven artifacts should be generated to. - * @throws ConverterException - */ - public AirConverter(File rootSourceDirectory, File rootTargetDirectory) throws ConverterException { - super(rootSourceDirectory, rootTargetDirectory); - - // Get the version of the current air sdk. - this.airSdkVersion = getAirVersion(rootSourceDirectory); - } - - /** - * Entry point for generating the Maven artifacts for an AIR SDK. - * - * @throws ConverterException - */ - @Override - protected void processDirectory() throws ConverterException { - if((airSdkVersion == null) || !rootSourceDirectory.exists() || !rootSourceDirectory.isDirectory()) { - System.out.println("Skipping AIR SDK generation."); - return; - } - - generateCompilerArtifacts(); - generateRuntimeArtifacts(); - generateFrameworkArtifacts(); - } - - /** - * This method generates those artifacts that resemble the compiler part of the AIR SDK. - * - * @throws ConverterException - */ - protected void generateCompilerArtifacts() throws ConverterException { - // Create the root artifact. - final MavenArtifact compiler = new MavenArtifact(); - compiler.setGroupId("com.adobe.air"); - compiler.setArtifactId("compiler"); - compiler.setVersion(airSdkVersion); - compiler.setPackaging("pom"); - - // Create a list of all libs that should belong to the AIR SDK compiler. - final File directory = new File(rootSourceDirectory, "lib"); - if(!directory.exists() || !directory.isDirectory()) { - throw new ConverterException("Compiler directory does not exist."); - } - final List<File> files = new ArrayList<File>(); - files.addAll(Arrays.asList(directory.listFiles(new AirCompilerFilter()))); - - // Generate artifacts for every jar in the input directories. - for(final File sourceFile : files) { - final MavenArtifact artifact = resolveArtifact(sourceFile, "com.adobe.air.compiler", airSdkVersion); - compiler.addDependency(artifact); - } - - // Write this artifact to file. - writeArtifact(compiler); - } - - /** - * This method generates those artifacts that resemble the runtime part of the AIR SDK. - * - * @throws ConverterException - */ - protected void generateRuntimeArtifacts() throws ConverterException { - // Create the root artifact. - final MavenArtifact runtime = new MavenArtifact(); - runtime.setGroupId("com.adobe.air"); - runtime.setArtifactId("runtime"); - runtime.setVersion(airSdkVersion); - runtime.setPackaging("pom"); - - // Create a list of all libs that should belong to the AIR SDK runtime. - final File directory = new File(rootSourceDirectory, "bin"); - if(!directory.exists() || !directory.isDirectory()) { - throw new ConverterException("Runtime directory does not exist."); - } - final List<File> files = new ArrayList<File>(); - files.addAll(Arrays.asList(directory.listFiles(new AirRuntimeFilter()))); - - // Generate artifacts for every jar in the input directories (Actually this is only one file). - for(final File sourceFile : files) { - final MavenArtifact artifact = resolveArtifact(sourceFile, "com.adobe.air.runtime", airSdkVersion); - runtime.addDependency(artifact); - } - - // Zip up the AIR runtime directory. - final MavenArtifact airRuntimeArtifact = generateAirRuntimeArtifact(rootSourceDirectory); - if(airRuntimeArtifact != null) { - runtime.addDependency(airRuntimeArtifact); - } - - // Write this artifact to file. - writeArtifact(runtime); - } - - /** - * This method generates those artifacts that resemble the framework part of the AIR SDK. - * - * @throws ConverterException - */ - protected void generateFrameworkArtifacts() throws ConverterException { - // Create the root artifact. - final MavenArtifact framework = new MavenArtifact(); - framework.setGroupId("com.adobe.air"); - framework.setArtifactId("framework"); - framework.setVersion(airSdkVersion); - framework.setPackaging("pom"); - - // Create a list of all libs that should belong to the AIR SDK framework. - final File directory = - new File(rootSourceDirectory, "frameworks" + File.separator + "libs" + File.separator + "air"); - if(!directory.exists() || !directory.isDirectory()) { - throw new ConverterException("Framework directory does not exist."); - } - final List<File> files = new ArrayList<File>(); - files.addAll(Arrays.asList(directory.listFiles(new AirFrameworkFilter()))); - - // Generate artifacts for every jar in the input directories. - for(final File sourceFile : files) { - final MavenArtifact artifact = resolveArtifact(sourceFile, "com.adobe.air.framework", airSdkVersion); - framework.addDependency(artifact); - } - - // Write this artifact to file. - writeArtifact(framework); - } - - /////////////////////////////////////////////////////////////////////////////////////////////////// - // - // Utility methods - // - /////////////////////////////////////////////////////////////////////////////////////////////////// - - protected MavenArtifact generateAirRuntimeArtifact(File rootDirectory) throws ConverterException { - final MavenArtifact airRuntimeArtifact = new MavenArtifact(); - airRuntimeArtifact.setGroupId("com.adobe.air.runtime"); - airRuntimeArtifact.setArtifactId("air-runtime"); - airRuntimeArtifact.setVersion(airSdkVersion); - airRuntimeArtifact.setPackaging("zip"); - - final File runtimeRoot = new File(rootDirectory, "runtimes.air".replace(".", File.separator)); - final File[] platforms = runtimeRoot.listFiles(); - if(platforms != null) { - for (final File platform : platforms) { - if (!platform.isDirectory()) { - continue; - } - final String platformName = platform.getName(); - try { - final File zip = File.createTempFile("AirRuntime-" + platformName + "-" + airSdkVersion, "zip"); - generateZip(platform.listFiles(), zip); - airRuntimeArtifact.addBinaryArtifact(platformName, zip); - } catch (IOException e) { - throw new ConverterException("Error creating runtime zip.", e); - } - } - } else { - return null; - } - - writeArtifact(airRuntimeArtifact); - return airRuntimeArtifact; - } - - /** - * Get the version of an AIR SDK from the content of the SDK directory. - * - * @return version string for the current AIR SDK - */ - protected String getAirVersion(File rootDirectory) throws ConverterException { - // All AIR SDKs contain a text file "AIR SDK Readme.txt" which contains a - // Version string in the first line. Newer SDKs contain an additional "airsdk.xml" - // which would be easier to parse, but as all SDKs contain the text-file, we'll - // stick to that for now. - - final File sdkDescriptor = new File(rootDirectory, "AIR SDK Readme.txt"); - - // If the descriptor is not present, return null as this FDK directory doesn't - // seem to contain a AIR SDK. - if(!sdkDescriptor.exists() || !sdkDescriptor.isFile()) { - return null; - } - - DataInputStream in = null; - try { - final FileInputStream descriptorInputStream = new FileInputStream(sdkDescriptor); - in = new DataInputStream(descriptorInputStream); - final BufferedReader br = new BufferedReader(new InputStreamReader(in)); - final String strLine = br.readLine(); - return strLine.substring("Adobe AIR ".length(), strLine.indexOf(" ", "Adobe AIR ".length())); - } catch (Exception e) { - throw new ConverterException("Error getting AIR version.", e); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException ioe) { - // Ignore. - } - } - } - } - - public static class AirCompilerFilter implements FilenameFilter { - public boolean accept(File dir, String name) { - return name.equals("adt.jar"); - } - } - - public static class AirRuntimeFilter implements FilenameFilter { - public boolean accept(File dir, String name) { - return name.equalsIgnoreCase("adl.exe"); - } - } - - public static class AirFrameworkFilter implements FilenameFilter { - public boolean accept(File dir, String name) { - return name.equals("aircore.swc") || name.equals("airglobal.swc") || - name.equals("applicationupdater.swc") || name.equals("applicationupdater_ui.swc") || - name.equals("servicemonitor.swc"); - } - } - - public static void main(String[] args) throws Exception { - AirConverter converter = new AirConverter(new File(args[0]), new File(args[1])); - converter.convert(); - } - -}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/pom.xml ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/pom.xml b/mavenizer/converters/base/pom.xml deleted file mode 100644 index 5a1b89c..0000000 --- a/mavenizer/converters/base/pom.xml +++ /dev/null @@ -1,51 +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>base-converter</artifactId> - <version>1.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - - <dependencies> - <dependency> - <groupId>com.sun.jersey</groupId> - <artifactId>jersey-client</artifactId> - <version>1.12</version> - </dependency> - <dependency> - <groupId>org.codehaus.jettison</groupId> - <artifactId>jettison</artifactId> - <version>1.3.1</version> - </dependency> - <dependency> - <groupId>org.freemarker</groupId> - <artifactId>freemarker</artifactId> - <version>2.3.22</version> - </dependency> - </dependencies> - -</project> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java b/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java deleted file mode 100644 index 5d904dd..0000000 --- a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/BaseConverter.java +++ /dev/null @@ -1,426 +0,0 @@ -/* - * 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; - -import com.sun.jersey.api.client.Client; -import com.sun.jersey.api.client.ClientResponse; -import com.sun.jersey.api.client.WebResource; -import freemarker.template.Configuration; -import freemarker.template.Template; -import freemarker.template.TemplateExceptionHandler; -import org.apache.flex.utilities.converter.exceptions.ConverterException; -import org.apache.flex.utilities.converter.model.MavenArtifact; -import org.codehaus.jettison.json.JSONArray; -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONObject; -import org.codehaus.jettison.json.JSONTokener; - -import java.io.*; -import java.math.BigInteger; -import java.net.URL; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -/** - * Created by cdutz on 11.05.2012. - */ -public abstract class BaseConverter { - - protected final Map<String, MavenArtifact> checksums = new HashMap<String, MavenArtifact>(); - - protected static final String MAVEN_CENTRAL_SHA_1_QUERY_URL = "http://search.maven.org/solrsearch/select?rows=20&wt=json&q=1:"; - // Artifactory: "http://server:port/artifactory/api/search/checksum?repos=libs-release-local&md5=04040c7c184620af0a0a8a3682a75eb7 - // Nexus: "http://repository.sonatype.org/service/local/data_index?a=04040c7c184620af0a0a8a3682a75eb7" - - protected File rootSourceDirectory; - protected File rootTargetDirectory; - - protected Configuration freemarkerConfig; - - protected BaseConverter(File rootSourceDirectory, File rootTargetDirectory) throws ConverterException { - if(rootSourceDirectory == null) { - throw new ConverterException("Air SDK directory is null."); - } - if(rootTargetDirectory == null) { - throw new ConverterException("Target directory is null."); - } - - this.rootSourceDirectory = rootSourceDirectory; - this.rootTargetDirectory = rootTargetDirectory; - - this.freemarkerConfig = new Configuration(Configuration.VERSION_2_3_22); - this.freemarkerConfig.setDefaultEncoding("UTF-8"); - this.freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); - this.freemarkerConfig.setClassForTemplateLoading(this.getClass(), "/"); - } - - public void convert() throws ConverterException { - if(rootSourceDirectory.isFile()) { - processArchive(); - } else { - processDirectory(); - } - } - - abstract protected void processDirectory() throws ConverterException; - - protected void processArchive() throws ConverterException { - - } - - protected String calculateChecksum(File jarFile) throws ConverterException { - // Implement the calculation of checksums for a given jar. - final MessageDigest digest; - try { - digest = MessageDigest.getInstance("SHA-1"); - - final InputStream is = new FileInputStream(jarFile); - final byte[] buffer = new byte[8192]; - int read; - try { - while( (read = is.read(buffer)) > 0) { - digest.update(buffer, 0, read); - } - final byte[] md5sum = digest.digest(); - final BigInteger bigInt = new BigInteger(1, md5sum); - return bigInt.toString(16); - } - catch(IOException e) { - throw new RuntimeException("Unable to process file for MD5", e); - } - finally { - try { - is.close(); - } - catch(IOException e) { - //noinspection ThrowFromFinallyBlock - throw new RuntimeException("Unable to close input stream for MD5 calculation", e); - } - } - } catch (NoSuchAlgorithmException e) { - throw new ConverterException("Error calculating checksum of file '" + jarFile.getPath() + "'", e); - } catch (FileNotFoundException e) { - throw new ConverterException("Error calculating checksum of file '" + jarFile.getPath() + "'", e); - } - } - - protected MavenArtifact lookupMetadataForChecksum(String checksum) throws ConverterException { - final String queryUrl = MAVEN_CENTRAL_SHA_1_QUERY_URL + checksum; - - final Client client = Client.create(); - final WebResource webResource = client.resource(queryUrl); - final ClientResponse response = webResource.accept("application/json").get(ClientResponse.class); - - if (response.getStatus() != 200) { - throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); - } - - final String output = response.getEntity(String.class); - - final BufferedReader reader = new BufferedReader(new StringReader(output)); - final StringBuilder builder = new StringBuilder(); - try { - for (String line; (line = reader.readLine()) != null; ) { - builder.append(line).append("\n"); - } - final JSONTokener tokener = new JSONTokener(builder.toString()); - final JSONObject rootObject = new JSONObject(tokener); - - final JSONObject responseObject = (JSONObject) rootObject.get("response"); - final int numFound = (Integer) responseObject.get("numFound"); - if(numFound == 0) { - return null; - } - else if(numFound == 1) { - final JSONArray docs = (JSONArray) responseObject.get("docs"); - final JSONObject firstHit = (JSONObject) docs.get(0); - - final MavenArtifact artifactMetadata = new MavenArtifact(); - artifactMetadata.setGroupId((String) firstHit.get("g")); - artifactMetadata.setArtifactId((String) firstHit.get("a")); - artifactMetadata.setVersion((String) firstHit.get("v")); - artifactMetadata.setPackaging((String) firstHit.get("p")); - - return artifactMetadata; - } else { - long newestTimestamp = 0; - JSONObject newestVersion = null; - - JSONArray options = (JSONArray) responseObject.get("docs"); - // if the "groupId" is "batik" then use the newer version. - for(int i = 0; i < numFound; i++) { - final JSONObject option = (JSONObject) options.get(0); - if("batik".equals(option.get("g")) && "batik-dom".equals(option.get("a")) && "jar".equals(option.get("p"))) { - final long timestamp = (Long) option.get("timestamp"); - if(timestamp > newestTimestamp) { - newestTimestamp = timestamp; - newestVersion = option; - } - } - } - - if(newestVersion != null) { - final MavenArtifact artifactMetadata = new MavenArtifact(); - artifactMetadata.setGroupId((String) newestVersion.get("g")); - artifactMetadata.setArtifactId((String) newestVersion.get("a")); - artifactMetadata.setVersion((String) newestVersion.get("v")); - artifactMetadata.setPackaging((String) newestVersion.get("p")); - - return artifactMetadata; - } else { - System.out.println("For jar-file with checksum: " + checksum + - " more than one result was returned by query: " + queryUrl); - } - } - return null; - } catch(IOException e) { - throw new ConverterException("Error processing Metadata for checksum: '" + checksum + "'", e); - } catch (JSONException e) { - throw new ConverterException("Error processing Metadata for checksum: '" + checksum + "'", e); - } - } - - protected void copyFile(File source, File target) throws ConverterException { - try { - final File outputDirectory = target.getParentFile(); - if(!outputDirectory.exists()) { - if(!outputDirectory.mkdirs()) { - throw new RuntimeException("Could not create directory: " + outputDirectory.getAbsolutePath()); - } - } - - final InputStream in = new FileInputStream(source); - final OutputStream out = new FileOutputStream(target); - - final byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0){ - out.write(buf, 0, len); - } - - in.close(); - out.close(); - } catch(IOException e) { - throw new ConverterException("Error copying file from '" + source.getPath() + - "' to '" + target.getPath() + "'", e); - } - } - - protected void writePomArtifact(MavenArtifact pomData) throws ConverterException { - final File outputFile = pomData.getPomTargetFile(rootTargetDirectory); - createPomDocument(pomData, outputFile); - } - - protected void createPomDocument(final MavenArtifact metadata, File outputFile) throws ConverterException { - try { - // Build a context to hold the model - Map freemarkerContext = new HashMap(); - freemarkerContext.put("artifact", metadata); - - // Try to get a template "templates/{type}.vm". - Template template; - URL check = this.getClass().getClassLoader().getResource("templates/" + metadata.getPackaging() + ".ftl"); - if(check != null) { - template = freemarkerConfig.getTemplate("templates/" + metadata.getPackaging() + ".ftl"); - } else { - template = freemarkerConfig.getTemplate("templates/default.ftl"); - } - - // Prepare an output stream to which the output can be generated. - FileWriter writer = null; - try { - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { - throw new ConverterException("Could not create template output directory."); - } - } - - writer = new FileWriter(outputFile); - - // Have Freemarker generate the output for the template. - template.process(freemarkerContext, writer); - } finally { - if(writer != null) { - writer.close(); - } - } - } catch (Exception e) { - throw new ConverterException("Error generating template output.", e); - } - } - - protected void writeDummy(final File targetFile) throws ConverterException { - try { - final ZipOutputStream out = new ZipOutputStream(new FileOutputStream(targetFile)); - out.putNextEntry(new ZipEntry("dummy")); - out.closeEntry(); - out.close(); - } catch (IOException e) { - throw new ConverterException("Error generating dummy resouce bundle."); - } - } - - protected static File findDirectory(File directory, String directoryToFind) { - File[] entries = directory.listFiles(); - File founded = null; - - // Go over entries - if(entries != null) { - for (File entry : entries) { - if (entry.isDirectory() && directoryToFind.equalsIgnoreCase(entry.getName())) { - founded = entry; - break; - } - if (entry.isDirectory()) { - founded = findDirectory(entry, directoryToFind); - if (founded != null) - break; - } - } - } - return founded; - } - - protected MavenArtifact resolveArtifact(File sourceFile, String defaultGroupId, String defaultVersion) - throws ConverterException { - // Calculate a checksum for the current file. We will use this checksum to query maven central - // in order to find out if this lib has already been published. If it has, there is no need to - // publish it again under a new name. In case a matching artifact is found the generated FDK - // will use the already deployed version. Additionally the checksum will be saved and if a - // fdk generated after this one uses the same version of a lib, the version of the older fdk is - // used also reducing the amount of jars that have to be re-deployed. - final String checksum = calculateChecksum(sourceFile); - - // Try to get artifact metadata based upon the checksum by looking up the internal cache. - MavenArtifact artifact = checksums.get(checksum); - - // Reusing artifact from other sdk version. - if(artifact != null) { - System.out.println("Reusing artifact (" + checksum + ") : " + artifact.getGroupId() + ":" + - artifact.getArtifactId() + ":" + artifact.getVersion()); - return artifact; - } - // Id no artifact was found in the local cache, continue processing. - else { - // Do a lookup in maven central. - artifact = lookupMetadataForChecksum(checksum); - - // The file was available on maven central, so use that version instead of the one coming with the sdk. - if(artifact != null) { - System.out.println("Using artifact from Maven Central (" + checksum + ") : " + - artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getVersion()); - } - // The file was not available on maven central, so we have to add it manually. - else { - // The artifact name is the name of the jar. - final String artifactFileName = sourceFile.getName(); - final String dependencyArtifactId = artifactFileName.substring(0, artifactFileName.lastIndexOf(".")); - final String dependencyArtifactPackaging = - artifactFileName.substring(artifactFileName.lastIndexOf(".") + 1); - - // Generate a new metadata object - artifact = new MavenArtifact(); - artifact.setGroupId(defaultGroupId); - artifact.setArtifactId(dependencyArtifactId); - artifact.setVersion(defaultVersion); - artifact.setPackaging(dependencyArtifactPackaging); - artifact.addDefaultBinaryArtifact(sourceFile); - - // Create the pom document that will reside next to the artifact lib. - writeArtifact(artifact); - } - - // Remember the checksum for later re-usage. - checksums.put(checksum, artifact); - - return artifact; - } - } - - protected void writeArtifact(MavenArtifact artifact) throws ConverterException { - // Write the pom itself. - writePomArtifact(artifact); - final List<String> binaryClassifiers = artifact.getBinaryFilesClassifiers(); - for(final String classifier : binaryClassifiers) { - final File binarySourceFile = artifact.getBinarySourceFile(classifier); - final File binaryTargetFile = artifact.getBinaryTargetFile(rootTargetDirectory, classifier); - copyFile(binarySourceFile, binaryTargetFile); - } - } - - protected void generateZip(File[] sourceFiles, File targetFile) throws ConverterException { - if((sourceFiles == null) || (sourceFiles.length == 0)) { - return; - } - final File rootDir = sourceFiles[0].getParentFile(); - final File zipInputFiles[] = new File[sourceFiles.length]; - System.arraycopy(sourceFiles, 0, zipInputFiles, 0, sourceFiles.length); - - try { - // Add all the content to a zip-file. - final ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(targetFile)); - for (final File file : zipInputFiles) { - addFileToZip(zipOutputStream, file, rootDir); - } - zipOutputStream.close(); - } catch(IOException e) { - throw new ConverterException("Error generating " + targetFile.getName() + " zip.", e); - } - } - - private void addFileToZip(ZipOutputStream zipOutputStream, File inputFile, File rootDirectory) - throws ConverterException { - - if (inputFile == null) { - return; - } - - // If this is a directory, add all it's children. - if (inputFile.isDirectory()) { - final File directoryContent[] = inputFile.listFiles(); - if (directoryContent != null) { - for (final File file : directoryContent) { - addFileToZip(zipOutputStream, file, rootDirectory); - } - } - } - // If this is a file, add it to the zips output. - else { - byte[] buf = new byte[1024]; - try { - final FileInputStream in = new FileInputStream(inputFile); - final String zipPath = inputFile.getAbsolutePath().substring( - rootDirectory.getAbsolutePath().length() + 1).replace("\\", "/"); - zipOutputStream.putNextEntry(new ZipEntry(zipPath)); - int len; - while ((len = in.read(buf)) > 0) { - zipOutputStream.write(buf, 0, len); - } - zipOutputStream.closeEntry(); - in.close(); - } catch(IOException e) { - throw new ConverterException("Error adding files to zip.", e); - } - } - } - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/Converter.java ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/Converter.java b/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/Converter.java deleted file mode 100644 index 54f4e18..0000000 --- a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/Converter.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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; - -import org.apache.flex.utilities.converter.exceptions.ConverterException; - -/** - * Created by cdutz on 18.04.2014. - */ -public interface Converter { - - void convert() throws ConverterException; - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/exceptions/ConverterException.java ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/exceptions/ConverterException.java b/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/exceptions/ConverterException.java deleted file mode 100644 index 384f2fe..0000000 --- a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/exceptions/ConverterException.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.exceptions; - -/** - * Created by cdutz on 07.05.2014. - */ -public class ConverterException extends Exception { - - public ConverterException(String message) { - super(message); - } - - public ConverterException(String message, Throwable cause) { - super(message, cause); - } - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/model/MavenArtifact.java ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/model/MavenArtifact.java b/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/model/MavenArtifact.java deleted file mode 100644 index 018542a..0000000 --- a/mavenizer/converters/base/src/main/java/org/apache/flex/utilities/converter/model/MavenArtifact.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * 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.model; - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Created by cdutz on 01.07.2012. - */ -public class MavenArtifact { - - public static final String DEFAULT_CLASSIFIER = "default"; - - protected String groupId; - protected String artifactId; - protected String version; - protected String packaging = "pom"; - protected String classifier; - protected List<String> librariesWithResourceBundles; - - protected List<MavenArtifact> dependencies; - - protected Map<String, File> binaryArtifacts; - - public String getGroupId() { - return groupId; - } - - public void setGroupId(String groupId) { - this.groupId = groupId; - } - - public String getArtifactId() { - return artifactId; - } - - public void setArtifactId(String artifactId) { - this.artifactId = artifactId; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getPackaging() { - return packaging; - } - - public void setPackaging(String packaging) { - this.packaging = packaging; - } - - public String getClassifier() { - return classifier; - } - - public void setClassifier(String classifier) { - this.classifier = classifier; - } - - public List<String> getLibrariesWithResourceBundles() { - return librariesWithResourceBundles; - } - - public void setLibrariesWithResourceBundles(List<String> librariesWithResourceBundles) { - this.librariesWithResourceBundles = librariesWithResourceBundles; - } - - public List<MavenArtifact> getDependencies() { - return dependencies; - } - - public void setDependencies(List<MavenArtifact> dependencies) { - this.dependencies = dependencies; - } - - public void addDependency(MavenArtifact dependency) { - if(dependencies == null) { - dependencies = new ArrayList<MavenArtifact>(); - } - dependencies.add(dependency); - } - - public void addDefaultBinaryArtifact(File binaryArtifact) { - addBinaryArtifact(DEFAULT_CLASSIFIER, binaryArtifact); - } - - public void addBinaryArtifact(String classifier, File binaryArtifact) { - if(binaryArtifacts == null) { - binaryArtifacts = new HashMap<String, File>(); - } - binaryArtifacts.put(classifier, binaryArtifact); - } - - public boolean hasBinaryArtifact(String classifier) { - return binaryArtifacts != null && binaryArtifacts.containsKey(classifier); - } - - public File getPomTargetFile(File targetRootDirectory) { - final String fileName = groupId.replace(".", File.separator) + File.separator + artifactId + File.separator + - version + File.separator + artifactId + "-" + version + ((classifier != null) ? "-" + classifier : "") + - ".pom"; - return new File(targetRootDirectory, fileName); - } - - public List<String> getBinaryFilesClassifiers() { - final List<String> classifiers = new ArrayList<String>(); - if(binaryArtifacts != null) { - classifiers.addAll(binaryArtifacts.keySet()); - } - return classifiers; - } - - public File getBinarySourceFile(String classifier) { - if((binaryArtifacts != null) && (binaryArtifacts.containsKey(classifier))) { - return binaryArtifacts.get(classifier); - } - return null; - } - - public File getBinaryTargetFile(File targetRootDirectory, String classifier) { - if((binaryArtifacts != null) && (binaryArtifacts.containsKey(classifier))) { - final String fileName = groupId.replace(".", File.separator) + File.separator + artifactId + File.separator + - version + File.separator + artifactId + "-" + version + - (DEFAULT_CLASSIFIER.equals(classifier) ? "" : "-" + classifier) + "." + packaging; - return new File(targetRootDirectory, fileName); - } - return null; - } - - public boolean hasDependencies() { - return (dependencies != null) && (!dependencies.isEmpty()); - } - - public boolean isAtLeastOneDependencyRsl() { - if(dependencies != null) { - for(final MavenArtifact dependency : dependencies) { - if(dependency.hasBinaryArtifact("rsl")) { - return true; - } - } - } - return false; - } - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/src/main/resources/templates/default.ftl ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/src/main/resources/templates/default.ftl b/mavenizer/converters/base/src/main/resources/templates/default.ftl deleted file mode 100644 index e4a200b..0000000 --- a/mavenizer/converters/base/src/main/resources/templates/default.ftl +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- - - 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"> - <modelVersion>4.0.0</modelVersion> - - <groupId>${artifact.groupId}</groupId> - <artifactId>${artifact.artifactId}</artifactId> - <version>${artifact.version}</version> - <packaging>${artifact.packaging}</packaging> - -<#if artifact.hasDependencies()> - <dependencies> -<#list artifact.dependencies as dependency> - <dependency> - <groupId>${dependency.groupId}</groupId> - <artifactId>${dependency.artifactId}</artifactId> - <version>${dependency.version}</version> - <type>${dependency.packaging}</type> - </dependency> -</#list> - </dependencies> -</#if> - -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/base/src/main/resources/templates/pom.ftl ---------------------------------------------------------------------- diff --git a/mavenizer/converters/base/src/main/resources/templates/pom.ftl b/mavenizer/converters/base/src/main/resources/templates/pom.ftl deleted file mode 100644 index 1242fb7..0000000 --- a/mavenizer/converters/base/src/main/resources/templates/pom.ftl +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- - - 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"> - <modelVersion>4.0.0</modelVersion> - - <groupId>${artifact.groupId}</groupId> - <artifactId>${artifact.artifactId}</artifactId> - <version>${artifact.version}</version> - <packaging>${artifact.packaging}</packaging> - -<#if artifact.hasDependencies()> - <dependencies> -<#list artifact.dependencies as dependency> - <dependency> - <groupId>${dependency.groupId}</groupId> - <artifactId>${dependency.artifactId}</artifactId> - <version>${dependency.version}</version> -<#if dependency.packaging != "jar"> - <type>${dependency.packaging}</type> -</#if> - </dependency> -</#list> - </dependencies> - - <dependencyManagement> - <dependencies> -<#list artifact.dependencies as dependency> - <dependency> - <groupId>${dependency.groupId}</groupId> - <artifactId>${dependency.artifactId}</artifactId> - <version>${dependency.version}</version> - </dependency> -</#list> - </dependencies> - </dependencyManagement> -</#if> - -</project> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/flash/pom.xml ---------------------------------------------------------------------- diff --git a/mavenizer/converters/flash/pom.xml b/mavenizer/converters/flash/pom.xml deleted file mode 100644 index 6afc519..0000000 --- a/mavenizer/converters/flash/pom.xml +++ /dev/null @@ -1,46 +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>flash-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> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-compress</artifactId> - <version>1.4</version> - </dependency> - </dependencies> - -</project> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java ---------------------------------------------------------------------- diff --git a/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java b/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java deleted file mode 100644 index 776e0c6..0000000 --- a/mavenizer/converters/flash/src/main/java/org/apache/flex/utilities/converter/flash/FlashConverter.java +++ /dev/null @@ -1,286 +0,0 @@ -/* - * 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.flash; - -import org.apache.commons.compress.archivers.ArchiveEntry; -import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; -import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; -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 java.io.*; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; - -/** - * Created by cdutz on 22.04.2014. - */ -public class FlashConverter extends BaseConverter implements Converter { - - /** - * @param rootSourceDirectory Path to the root of the original Flash SDK. - * @param rootTargetDirectory Path to the root of the directory where the Maven artifacts should be generated to. - * @throws org.apache.flex.utilities.converter.exceptions.ConverterException - */ - public FlashConverter(File rootSourceDirectory, File rootTargetDirectory) throws ConverterException { - super(rootSourceDirectory, rootTargetDirectory); - } - - /** - * Entry point for generating the Maven artifacts for an Flash SDK. - * - * @throws ConverterException - */ - @Override - protected void processDirectory() throws ConverterException { - if(!rootSourceDirectory.exists() || !rootSourceDirectory.isDirectory()) { - System.out.println("Skipping Flash SDK generation."); - return; - } - - generateRuntimeArtifacts(); - generateFrameworkArtifacts(); - } - - /** - * This method generates those artifacts that resemble the runtime part of the Flash SDK. - * - * @throws ConverterException - */ - protected void generateRuntimeArtifacts() throws ConverterException { - // Create a list of all libs that should belong to the Flash SDK runtime. - final File directory = new File(rootSourceDirectory, "runtimes" + File.separator + "player"); - if(!directory.exists() || !directory.isDirectory()) { - System.out.println("Skipping Flash runtime generation."); - return; - } - final List<File> playerVersions = new ArrayList<File>(); - playerVersions.addAll(Arrays.asList(directory.listFiles(new FlashRuntimeFilter()))); - - // In really old SDKs the flash-player was installed in the players directory directly. - if(new File(directory, "win").exists()) { - playerVersions.add(directory); - } - - // Generate artifacts for every jar in the input directories. - for(final File versionDir : playerVersions) { - // The flash-player 9 is installed directly in the player directory. - String playerVersionString; - if(versionDir == directory) { - playerVersionString = "9.0"; - } else { - playerVersionString = versionDir.getName(); - } - - final double playerVersion = Double.valueOf(playerVersionString); - final NumberFormat doubleFormat = NumberFormat.getInstance(Locale.US); - doubleFormat.setMinimumFractionDigits(1); - doubleFormat.setMaximumFractionDigits(1); - final String version = doubleFormat.format(playerVersion); - - final MavenArtifact playerArtifact = new MavenArtifact(); - playerArtifact.setGroupId("com.adobe.flash"); - playerArtifact.setArtifactId("runtime"); - playerArtifact.setVersion(version); - playerArtifact.setPackaging("exe"); - - // Deploy Windows binaries. - final File windowsDirectory = new File(versionDir, "win"); - if(windowsDirectory.exists()) { - // Find out if a flash-player binary exists. - File flashPlayerBinary = null; - if(new File(windowsDirectory, "FlashPlayerDebugger.exe").exists()) { - flashPlayerBinary = new File(windowsDirectory, "FlashPlayerDebugger.exe"); - } else if(new File(windowsDirectory, "FlashPlayer.exe").exists()) { - flashPlayerBinary = new File(windowsDirectory, "FlashPlayer.exe"); - } - - // If a binary exists, copy it to the target and create a pom for it. - if (flashPlayerBinary != null) { - playerArtifact.addBinaryArtifact("win", flashPlayerBinary); - } - } - - // Deploy Mac binaries. - final File macDirectory = new File(versionDir, "mac"); - if(macDirectory.exists()) { - // Find out if a flash-player binary exists. - File flashPlayerBinary = null; - if(new File(macDirectory, "Flash Player.app.zip").exists()) { - flashPlayerBinary = new File(macDirectory, "Flash Player.app.zip"); - } else if(new File(macDirectory, "Flash Player Debugger.app.zip").exists()) { - flashPlayerBinary = new File(macDirectory, "Flash Player Debugger.app.zip"); - } - - // If a binary exists, copy it to the target and create a pom for it. - if (flashPlayerBinary != null) { - playerArtifact.addBinaryArtifact("mac", flashPlayerBinary); - } - } - - // Deploy Linux binaries. - final File lnxDirectory = new File(versionDir, "lnx"); - if(lnxDirectory.exists()) { - // Find out if a flash-player binary exists. - File flashPlayerBinary; - if(new File(lnxDirectory, "flashplayer.tar.gz").exists()) { - flashPlayerBinary = new File(lnxDirectory, "flashplayer.tar.gz"); - } else if(new File(lnxDirectory, "flashplayerdebugger.tar.gz").exists()) { - flashPlayerBinary = new File(lnxDirectory, "flashplayerdebugger.tar.gz"); - } else { - throw new ConverterException("Couldn't find player archive."); - } - - // Decompress the archive. - // First unzip it. - final FileInputStream fin; - try { - fin = new FileInputStream(flashPlayerBinary); - final BufferedInputStream in = new BufferedInputStream(fin); - final File tempTarFile = File.createTempFile("flex-sdk-linux-flashplayer-binary-" + version, ".tar"); - final FileOutputStream out = new FileOutputStream(tempTarFile); - final GzipCompressorInputStream gzIn = new GzipCompressorInputStream(in); - final byte[] buffer = new byte[1024]; - int n; - while (-1 != (n = gzIn.read(buffer))) { - out.write(buffer, 0, n); - } - out.close(); - gzIn.close(); - - // Then untar it. - File uncompressedBinary = null; - final FileInputStream tarFileInputStream = new FileInputStream(tempTarFile); - final TarArchiveInputStream tarArchiveInputStream = new TarArchiveInputStream(tarFileInputStream); - ArchiveEntry entry; - while((entry = tarArchiveInputStream.getNextEntry()) != null) { - if("flashplayer".equals(entry.getName())) { - uncompressedBinary = File.createTempFile("flex-sdk-linux-flashplayer-binary-" + version, ".uexe"); - final FileOutputStream uncompressedBinaryOutputStream = new FileOutputStream(uncompressedBinary); - while(-1 != (n = tarArchiveInputStream.read(buffer))) { - uncompressedBinaryOutputStream.write(buffer, 0, n); - } - uncompressedBinaryOutputStream.close(); - } else if("flashplayerdebugger".equals(entry.getName())) { - uncompressedBinary = File.createTempFile("flex-sdk-linux-flashplayer-binary-" + version, ".uexe"); - final FileOutputStream uncompressedBinaryOutputStream = new FileOutputStream(uncompressedBinary); - while(-1 != (n = tarArchiveInputStream.read(buffer))) { - uncompressedBinaryOutputStream.write(buffer, 0, n); - } - uncompressedBinaryOutputStream.close(); - } - } - tarFileInputStream.close(); - - // If a binary exists, copy it to the target and create a pom for it. - if (uncompressedBinary != null) { - playerArtifact.addBinaryArtifact("linux", flashPlayerBinary); - } - } catch (FileNotFoundException e) { - throw new ConverterException("Error processing the linux player tar file", e); - } catch (IOException e) { - throw new ConverterException("Error processing the linux player tar file", e); - } - } - - // Write this artifact to file. - writeArtifact(playerArtifact); - } - } - - /** - * This method generates those artifacts that resemble the framework part of the Flash SDK. - * - * @throws ConverterException - */ - protected void generateFrameworkArtifacts() throws ConverterException { - // Create a list of all libs that should belong to the Flash SDK runtime. - final File directory = new File(rootSourceDirectory, "frameworks.libs.player".replace(".", File.separator)); - // It seems the fdk directory doesn't contain any flash resources. - if (!directory.exists() || !directory.isDirectory()) { - System.out.println("Skipping Flash framework generation."); - return; - } - final List<File> playerVersions = new ArrayList<File>(); - final File[] versions = directory.listFiles(); - if((versions != null) && (versions.length > 0)) { - playerVersions.addAll(Arrays.asList(versions)); - - // Generate artifacts for every jar in the input directories. - for (final File versionDir : playerVersions) { - final File playerglobalSwc = new File(versionDir, "playerglobal.swc"); - - // Convert any version into a two-segment version number. - final double playerVersion = Double.valueOf(versionDir.getName()); - final NumberFormat doubleFormat = NumberFormat.getInstance(Locale.US); - doubleFormat.setMinimumFractionDigits(1); - doubleFormat.setMaximumFractionDigits(1); - final String version = doubleFormat.format(playerVersion); - - // Create an artifact for the player-global. - final MavenArtifact playerglobal = new MavenArtifact(); - playerglobal.setGroupId("com.adobe.flash.framework"); - playerglobal.setArtifactId("playerglobal"); - playerglobal.setVersion(version); - playerglobal.setPackaging("swc"); - playerglobal.addDefaultBinaryArtifact(playerglobalSwc); - writeArtifact(playerglobal); - - // Create a dummy pom artifact that references the playerglobal - // in order to consequently have a framework artifact for every - // part of flex. - final MavenArtifact framework = new MavenArtifact(); - framework.setGroupId("com.adobe.flash"); - framework.setArtifactId("framework"); - framework.setVersion(version); - framework.setPackaging("pom"); - framework.addDependency(playerglobal); - writePomArtifact(framework); - } - } - } - - /////////////////////////////////////////////////////////////////////////////////////////////////// - // - // Utility methods - // - /////////////////////////////////////////////////////////////////////////////////////////////////// - - public static class FlashRuntimeFilter implements FileFilter { - public boolean accept(File pathname) { - return pathname.isDirectory() && !"win".equalsIgnoreCase(pathname.getName()) && - !"lnx".equalsIgnoreCase(pathname.getName()) && !"mac".equalsIgnoreCase(pathname.getName()); - } - } - - public static class FlashFrameworkFilter implements FilenameFilter { - public boolean accept(File dir, String name) { - return name.equals("playerglobal.swc"); - } - } - - public static void main(String[] args) throws Exception { - FlashConverter converter = new FlashConverter(new File(args[0]), new File(args[1])); - converter.convert(); - } - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/657a7def/mavenizer/converters/flex/pom.xml ---------------------------------------------------------------------- diff --git a/mavenizer/converters/flex/pom.xml b/mavenizer/converters/flex/pom.xml deleted file mode 100644 index 480bc83..0000000 --- a/mavenizer/converters/flex/pom.xml +++ /dev/null @@ -1,64 +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>flex-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> - <!-- - Flex usually contains Air and Flash artifacts, so we need to reference them. - --> - <dependency> - <groupId>org.apache.flex.utilities.converter</groupId> - <artifactId>air-converter</artifactId> - <version>1.0.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.apache.flex.utilities.converter</groupId> - <artifactId>flash-converter</artifactId> - <version>1.0.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.apache.flex.utilities.converter</groupId> - <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>
