You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2020/08/21 21:58:29 UTC
[royale-compiler] 02/03: COMPJSC: reduce duplicate code for writing
zip file entries to SWCs
This is an automated email from the ASF dual-hosted git repository.
joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 3b7040f6a32102ca61f29b4738708ff887f80868
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Fri Aug 21 14:29:32 2020 -0700
COMPJSC: reduce duplicate code for writing zip file entries to SWCs
---
.../apache/royale/compiler/clients/COMPJSC.java | 102 +++++++++-----------
.../royale/compiler/clients/COMPJSCNative.java | 69 ++++++++++++--
.../royale/compiler/clients/COMPJSCRoyale.java | 104 ++++++++++-----------
3 files changed, 152 insertions(+), 123 deletions(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSC.java b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSC.java
index 979d70e..5c058b9 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSC.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSC.java
@@ -496,48 +496,9 @@ public class COMPJSC extends MXMLJSC
{
System.out.println("Writing file: " + outputClassFile);
}
- long fileDate = System.currentTimeMillis();
- long zipFileDate = fileDate;
- String metadataDate = targetSettings.getSWFMetadataDate();
- if (metadataDate != null)
- {
- String metadataFormat = targetSettings.getSWFMetadataDateFormat();
- try {
- SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
- Date d = sdf.parse(metadataDate);
- Calendar cal = new GregorianCalendar();
- cal.setTime(d);
- sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
- d = sdf.parse(metadataDate);
- fileDate = d.getTime();
- ZonedDateTime zdt = ZonedDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH),
- cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), 0, ZoneId.systemDefault());
- zipFileDate = zdt.toInstant().toEpochMilli();
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e1) {
- e1.printStackTrace();
- }
- }
- ZipEntry ze = new ZipEntry(outputClassFile);
- ze.setTime(zipFileDate);
- ze.setMethod(ZipEntry.STORED);
-
ByteArrayOutputStream baos = new ByteArrayOutputStream();
temp.writeTo(baos);
- ze.setSize(baos.size());
- ze.setCompressedSize(baos.size());
- CRC32 crc = new CRC32();
- crc.reset();
- crc.update(baos.toByteArray());
- ze.setCrc(crc.getValue());
-
- zipOutputStream.putNextEntry(ze);
- baos.writeTo(zipOutputStream);
- zipOutputStream.flush();
- zipOutputStream.closeEntry();
- fileList.append(" <file path=\"" + outputClassFile + "\" mod=\"" + fileDate + "\"/>\n");
+ writeFileToZip(zipOutputStream, outputClassFile, baos, fileList);
if(sourceMapTemp != null)
{
String sourceMapFile = getOutputSourceMapFile(
@@ -549,24 +510,9 @@ public class COMPJSC extends MXMLJSC
{
System.out.println("Writing file: " + sourceMapFile);
}
- ze = new ZipEntry(sourceMapFile);
- ze.setTime(zipFileDate);
- ze.setMethod(ZipEntry.STORED);
-
baos = new ByteArrayOutputStream();
sourceMapTemp.writeTo(baos);
- ze.setSize(baos.size());
- ze.setCompressedSize(baos.size());
- crc = new CRC32();
- crc.reset();
- crc.update(baos.toByteArray());
- ze.setCrc(crc.getValue());
-
- zipOutputStream.putNextEntry(ze);
- baos.writeTo(zipOutputStream);
- zipOutputStream.flush();
- zipOutputStream.closeEntry();
- fileList.append(" <file path=\"" + sourceMapFile + "\" mod=\"" + fileDate + "\"/>\n");
+ writeFileToZip(zipOutputStream, sourceMapFile, baos, fileList);
}
writer.close();
}
@@ -670,6 +616,50 @@ public class COMPJSC extends MXMLJSC
return compilationSuccess;
}
+ private void writeFileToZip(ZipOutputStream zipOutputStream, String entryFilePath, ByteArrayOutputStream baos, StringBuilder fileList) throws IOException
+ {
+ long fileDate = System.currentTimeMillis();
+ long zipFileDate = fileDate;
+ String metadataDate = targetSettings.getSWFMetadataDate();
+ if (metadataDate != null)
+ {
+ String metadataFormat = targetSettings.getSWFMetadataDateFormat();
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
+ Date d = sdf.parse(metadataDate);
+ Calendar cal = new GregorianCalendar();
+ cal.setTime(d);
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+ d = sdf.parse(metadataDate);
+ fileDate = d.getTime();
+ ZonedDateTime zdt = ZonedDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH),
+ cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), 0, ZoneId.systemDefault());
+ zipFileDate = zdt.toInstant().toEpochMilli();
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e1) {
+ e1.printStackTrace();
+ }
+ }
+ ZipEntry ze = new ZipEntry(entryFilePath);
+ ze.setTime(zipFileDate);
+ ze.setMethod(ZipEntry.STORED);
+
+ ze.setSize(baos.size());
+ ze.setCompressedSize(baos.size());
+ CRC32 crc = new CRC32();
+ crc.reset();
+ crc.update(baos.toByteArray());
+ ze.setCrc(crc.getValue());
+
+ zipOutputStream.putNextEntry(ze);
+ baos.writeTo(zipOutputStream);
+ zipOutputStream.flush();
+ zipOutputStream.closeEntry();
+ fileList.append(" <file path=\"" + entryFilePath + "\" mod=\"" + fileDate + "\"/>\n");
+ }
+
/**
* Build target artifact.
*
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCNative.java b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCNative.java
index 7f85f76..e2b3d11 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCNative.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCNative.java
@@ -26,11 +26,20 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.Collection;
+import java.util.Date;
import java.util.Enumeration;
+import java.util.GregorianCalendar;
import java.util.List;
import java.util.Set;
+import java.util.TimeZone;
+import java.util.zip.CRC32;
import java.util.zip.Deflater;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -352,11 +361,9 @@ public class COMPJSCNative extends MXMLJSCNative
{
System.out.println("Writing file: " + outputClassFile);
}
- zipOutputStream.putNextEntry(new ZipEntry(outputClassFile));
- temp.writeTo(zipOutputStream);
- zipOutputStream.flush();
- zipOutputStream.closeEntry();
- fileList.append(" <file path=\"" + outputClassFile + "\" mod=\"" + System.currentTimeMillis() + "\"/>\n");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ temp.writeTo(baos);
+ writeFileToZip(zipOutputStream, outputClassFile, baos, fileList);
if(sourceMapTemp != null)
{
String sourceMapFile = getOutputSourceMapFile(
@@ -368,11 +375,9 @@ public class COMPJSCNative extends MXMLJSCNative
{
System.out.println("Writing file: " + sourceMapFile);
}
- zipOutputStream.putNextEntry(new ZipEntry(sourceMapFile));
- sourceMapTemp.writeTo(zipOutputStream);
- zipOutputStream.flush();
- zipOutputStream.closeEntry();
- fileList.append(" <file path=\"" + sourceMapFile + "\" mod=\"" + System.currentTimeMillis() + "\"/>\n");
+ baos = new ByteArrayOutputStream();
+ sourceMapTemp.writeTo(baos);
+ writeFileToZip(zipOutputStream, sourceMapFile, baos, fileList);
}
writer.close();
}
@@ -408,6 +413,50 @@ public class COMPJSCNative extends MXMLJSCNative
return compilationSuccess;
}
+ private void writeFileToZip(ZipOutputStream zipOutputStream, String entryFilePath, ByteArrayOutputStream baos, StringBuilder fileList) throws IOException
+ {
+ long fileDate = System.currentTimeMillis();
+ long zipFileDate = fileDate;
+ String metadataDate = targetSettings.getSWFMetadataDate();
+ if (metadataDate != null)
+ {
+ String metadataFormat = targetSettings.getSWFMetadataDateFormat();
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
+ Date d = sdf.parse(metadataDate);
+ Calendar cal = new GregorianCalendar();
+ cal.setTime(d);
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+ d = sdf.parse(metadataDate);
+ fileDate = d.getTime();
+ ZonedDateTime zdt = ZonedDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH),
+ cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), 0, ZoneId.systemDefault());
+ zipFileDate = zdt.toInstant().toEpochMilli();
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e1) {
+ e1.printStackTrace();
+ }
+ }
+ ZipEntry ze = new ZipEntry(entryFilePath);
+ ze.setTime(zipFileDate);
+ ze.setMethod(ZipEntry.STORED);
+
+ ze.setSize(baos.size());
+ ze.setCompressedSize(baos.size());
+ CRC32 crc = new CRC32();
+ crc.reset();
+ crc.update(baos.toByteArray());
+ ze.setCrc(crc.getValue());
+
+ zipOutputStream.putNextEntry(ze);
+ baos.writeTo(zipOutputStream);
+ zipOutputStream.flush();
+ zipOutputStream.closeEntry();
+ fileList.append(" <file path=\"" + entryFilePath + "\" mod=\"" + fileDate + "\"/>\n");
+ }
+
/**
* Build target artifact.
*
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCRoyale.java b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCRoyale.java
index ed38c4b..4ed9d8c 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCRoyale.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/COMPJSCRoyale.java
@@ -382,48 +382,9 @@ public class COMPJSCRoyale extends MXMLJSCRoyale
{
System.out.println("Writing file: " + outputClassFile);
}
- long fileDate = System.currentTimeMillis();
- long zipFileDate = fileDate;
- String metadataDate = targetSettings.getSWFMetadataDate();
- if (metadataDate != null)
- {
- String metadataFormat = targetSettings.getSWFMetadataDateFormat();
- try {
- SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
- Date d = sdf.parse(metadataDate);
- Calendar cal = new GregorianCalendar();
- cal.setTime(d);
- sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
- d = sdf.parse(metadataDate);
- fileDate = d.getTime();
- ZonedDateTime zdt = ZonedDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH),
- cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), 0, ZoneId.systemDefault());
- zipFileDate = zdt.toInstant().toEpochMilli();
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e1) {
- e1.printStackTrace();
- }
- }
- ZipEntry ze = new ZipEntry(outputClassFile);
- ze.setTime(zipFileDate);
- ze.setMethod(ZipEntry.STORED);
-
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- temp.writeTo(baos);
- ze.setSize(baos.size());
- ze.setCompressedSize(baos.size());
- CRC32 crc = new CRC32();
- crc.reset();
- crc.update(baos.toByteArray());
- ze.setCrc(crc.getValue());
-
- zipOutputStream.putNextEntry(ze);
- baos.writeTo(zipOutputStream);
- zipOutputStream.flush();
- zipOutputStream.closeEntry();
- fileList.append(" <file path=\"" + outputClassFile + "\" mod=\"" + fileDate + "\"/>\n");
+ temp.writeTo(baos);
+ writeFileToZip(zipOutputStream, outputClassFile, baos, fileList);
if(sourceMapTemp != null)
{
@@ -436,24 +397,9 @@ public class COMPJSCRoyale extends MXMLJSCRoyale
{
System.out.println("Writing file: " + sourceMapFile);
}
- ze = new ZipEntry(sourceMapFile);
- ze.setTime(zipFileDate);
- ze.setMethod(ZipEntry.STORED);
-
baos = new ByteArrayOutputStream();
sourceMapTemp.writeTo(baos);
- ze.setSize(baos.size());
- ze.setCompressedSize(baos.size());
- crc = new CRC32();
- crc.reset();
- crc.update(baos.toByteArray());
- ze.setCrc(crc.getValue());
-
- zipOutputStream.putNextEntry(ze);
- baos.writeTo(zipOutputStream);
- zipOutputStream.flush();
- zipOutputStream.closeEntry();
- fileList.append(" <file path=\"" + sourceMapFile + "\" mod=\"" + fileDate + "\"/>\n");
+ writeFileToZip(zipOutputStream, sourceMapFile, baos, fileList);
}
writer.close();
}
@@ -534,6 +480,50 @@ public class COMPJSCRoyale extends MXMLJSCRoyale
return compilationSuccess;
}
+ private void writeFileToZip(ZipOutputStream zipOutputStream, String entryFilePath, ByteArrayOutputStream baos, StringBuilder fileList) throws IOException
+ {
+ long fileDate = System.currentTimeMillis();
+ long zipFileDate = fileDate;
+ String metadataDate = targetSettings.getSWFMetadataDate();
+ if (metadataDate != null)
+ {
+ String metadataFormat = targetSettings.getSWFMetadataDateFormat();
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
+ Date d = sdf.parse(metadataDate);
+ Calendar cal = new GregorianCalendar();
+ cal.setTime(d);
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+ d = sdf.parse(metadataDate);
+ fileDate = d.getTime();
+ ZonedDateTime zdt = ZonedDateTime.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH),
+ cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND), 0, ZoneId.systemDefault());
+ zipFileDate = zdt.toInstant().toEpochMilli();
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e1) {
+ e1.printStackTrace();
+ }
+ }
+ ZipEntry ze = new ZipEntry(entryFilePath);
+ ze.setTime(zipFileDate);
+ ze.setMethod(ZipEntry.STORED);
+
+ ze.setSize(baos.size());
+ ze.setCompressedSize(baos.size());
+ CRC32 crc = new CRC32();
+ crc.reset();
+ crc.update(baos.toByteArray());
+ ze.setCrc(crc.getValue());
+
+ zipOutputStream.putNextEntry(ze);
+ baos.writeTo(zipOutputStream);
+ zipOutputStream.flush();
+ zipOutputStream.closeEntry();
+ fileList.append(" <file path=\"" + entryFilePath + "\" mod=\"" + fileDate + "\"/>\n");
+ }
+
/**
* Build target artifact.
*