This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch release_practice
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit bed4ac55ea08f7f8ab36721fe7f10ffdf465db83
Author: Alex Harui <[email protected]>
AuthorDate: Tue May 28 09:38:11 2019 -0700

    use STORED instead of DEFLATE for all SWC entries.  NO_COMPRESSION was 
being used on the stream so size apparently isn't an issue and STORED is 
actually smaller than DEFLATE with NO_COMPRESSION.DEFLAT would still inject 
block size markers differently on Mac vs Windows
---
 .../apache/royale/compiler/clients/COMPJSC.java    | 48 ++++++++++++++++++++--
 .../royale/compiler/clients/COMPJSCRoyale.java     | 44 ++++++++++++++++++--
 .../java/org/apache/royale/swc/io/SWCWriter.java   | 32 +++++++++++++--
 3 files changed, 113 insertions(+), 11 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 f81e790..1096235 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
@@ -33,6 +33,7 @@ import java.util.Collection;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Set;
+import java.util.zip.CRC32;
 import java.util.zip.Deflater;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
@@ -345,7 +346,13 @@ public class COMPJSC extends MXMLJSC
                         {
                             System.out.println("Copy " + entry.getName());
                                InputStream input = 
zipFile.getInputStream(entry);
-                               zipOutputStream.putNextEntry(new 
ZipEntry(entry.getName()));
+                               ZipEntry ze = new ZipEntry(entry.getName());
+                               ze.setMethod(ZipEntry.STORED);
+                               ze.setTime(entry.getTime());
+                               ze.setSize(entry.getSize());
+                               ze.setCompressedSize(entry.getCompressedSize());
+                               ze.setCrc(entry.getCrc());
+                               zipOutputStream.putNextEntry(ze);
                                IOUtils.copy(input, zipOutputStream);
                             zipOutputStream.flush();
                                zipOutputStream.closeEntry();
@@ -509,8 +516,19 @@ public class COMPJSC extends MXMLJSC
                                }
                                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);
-                               temp.writeTo(zipOutputStream);
+                               baos.writeTo(zipOutputStream);
                             zipOutputStream.flush();
                                zipOutputStream.closeEntry();
                                fileList.append("        <file path=\"" + 
outputClassFile + "\" mod=\"" + fileDate + "\"/>\n");
@@ -523,8 +541,19 @@ 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);
-                                sourceMapTemp.writeTo(zipOutputStream);
+                               baos.writeTo(zipOutputStream);
                                 zipOutputStream.flush();
                                 zipOutputStream.closeEntry();
                                 fileList.append("        <file path=\"" + 
sourceMapFile + "\" mod=\"" + fileDate + "\"/>\n");
@@ -574,8 +603,19 @@ public class COMPJSC extends MXMLJSC
                                catalog.substring(libraryIndex + 13);
                        ZipEntry ze = new ZipEntry(SWCReader.CATALOG_XML);
                        ze.setTime(zipFileDate);
+                       ze.setMethod(ZipEntry.STORED);
+                       
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                       baos.write(catalog.getBytes());
+                    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);
-                       zipOutputStream.write(catalog.getBytes());
+                    baos.writeTo(zipOutputStream);
                     zipOutputStream.flush();
                     zipOutputStream.closeEntry();
                     zipOutputStream.flush();
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 43a885f..f2fa62e 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
@@ -33,6 +33,7 @@ import java.util.Collection;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Set;
+import java.util.zip.CRC32;
 import java.util.zip.Deflater;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
@@ -209,6 +210,10 @@ public class COMPJSCRoyale extends MXMLJSCRoyale
                             System.out.println("Copy " + entry.getName());
                                InputStream input = 
zipFile.getInputStream(entry);
                                ZipEntry ze = new ZipEntry(entry.getName());
+                               ze.setMethod(ZipEntry.STORED);
+                               ze.setSize(entry.getSize());
+                               ze.setCompressedSize(entry.getCompressedSize());
+                               ze.setCrc(entry.getCrc());
                                long fileDate = System.currentTimeMillis();
                                long zipFileDate = fileDate;
                                String metadataDate = 
targetSettings.getSWFMetadataDate();
@@ -405,8 +410,19 @@ public class COMPJSCRoyale extends MXMLJSCRoyale
                                }
                                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);
-                               temp.writeTo(zipOutputStream);
+                               baos.writeTo(zipOutputStream);
                             zipOutputStream.flush();
                             zipOutputStream.closeEntry();
                                fileList.append("        <file path=\"" + 
outputClassFile + "\" mod=\"" + fileDate + "\"/>\n");
@@ -419,8 +435,19 @@ 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);
-                                sourceMapTemp.writeTo(zipOutputStream);
+                               baos.writeTo(zipOutputStream);
                                 zipOutputStream.flush();
                                 zipOutputStream.closeEntry();
                                 fileList.append("        <file path=\"" + 
sourceMapFile + "\" mod=\"" + fileDate + "\"/>\n");
@@ -478,8 +505,19 @@ public class COMPJSCRoyale extends MXMLJSCRoyale
                                catalog.substring(libraryIndex + 13);
                        ZipEntry ze = new ZipEntry(SWCReader.CATALOG_XML);
                        ze.setTime(zipFileDate);
+                       ze.setMethod(ZipEntry.STORED);
+                       
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                       baos.write(catalog.getBytes());
+                    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);
-                       zipOutputStream.write(catalog.getBytes());
+                    baos.writeTo(zipOutputStream);
                     zipOutputStream.flush();
                     zipOutputStream.closeEntry();
                     zipOutputStream.flush();
diff --git a/compiler/src/main/java/org/apache/royale/swc/io/SWCWriter.java 
b/compiler/src/main/java/org/apache/royale/swc/io/SWCWriter.java
index ab5b769..095e321 100644
--- a/compiler/src/main/java/org/apache/royale/swc/io/SWCWriter.java
+++ b/compiler/src/main/java/org/apache/royale/swc/io/SWCWriter.java
@@ -121,10 +121,22 @@ public class SWCWriter extends SWCWriterBase
     {
        ZipEntry ze = new ZipEntry(CATALOG_XML);
        ze.setTime(fileDate);
-        zipOutputStream.putNextEntry(ze);
-        final Writer catalogXMLWriter = new 
OutputStreamWriter(zipOutputStream);
+       ze.setMethod(ZipEntry.STORED);
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final Writer catalogXMLWriter = new OutputStreamWriter(baos);
         writeCatalogXML(swc, catalogXMLWriter);
         catalogXMLWriter.flush();
+        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.closeEntry();
     }
 
@@ -168,10 +180,22 @@ public class SWCWriter extends SWCWriterBase
     {
        ZipEntry ze = new ZipEntry(fileEntry.getPath());
        ze.setTime(fileDate);        
-        zipOutputStream.putNextEntry(ze);
+       ze.setMethod(ZipEntry.STORED);
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
         final InputStream fileInputStream = fileEntry.createInputStream();
-        IOUtils.copy(fileInputStream, zipOutputStream);
+        IOUtils.copy(fileInputStream, baos);
         fileInputStream.close();
+        
+        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.closeEntry();
     }
 

Reply via email to