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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 9b8f8ed  fix ProductInfo date and add options to allow it to be synced 
with RDF date
9b8f8ed is described below

commit 9b8f8ed4de75c9e10e64ffa531d46a1a1316d420
Author: Alex Harui <[email protected]>
AuthorDate: Tue Feb 5 09:58:33 2019 -0800

    fix ProductInfo date and add options to allow it to be synced with RDF date
---
 .../royale/compiler/config/Configuration.java      | 24 ++++++++++++++++++++++
 .../compiler/internal/config/TargetSettings.java   | 11 ++++++++++
 .../royale/compiler/targets/ITargetSettings.java   | 14 +++++++++++++
 .../org/apache/royale/compiler/clients/ASC.java    | 12 +++++++++++
 .../compiler/internal/targets/RoyaleTarget.java    | 20 +++++++++++++++++-
 5 files changed, 80 insertions(+), 1 deletion(-)

diff --git 
a/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
 
b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
index 478d346..9b8d0de 100644
--- 
a/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
+++ 
b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
@@ -4614,6 +4614,11 @@ public class Configuration
     //
 
     public String date = null;
+    
+    public String getMetadataDate()
+    {
+       return date;
+    }
 
     @Config
     @Mapping({ "metadata", "date" })
@@ -4624,6 +4629,25 @@ public class Configuration
     }
 
     //
+    // 'metadata.dateFormat' option
+    //
+
+    public String dateFormat = null;
+    
+    public String getMetadataDateFormat()
+    {
+       return dateFormat;
+    }
+
+    @Config
+    @Mapping({ "metadata", "dateFormat" })
+    @Arguments("text")
+    public void setMetadataDateFormat(ConfigurationValue cv, String text)
+    {
+        dateFormat = text;
+    }
+
+    //
     // 'metadata.description' option
     //
 
diff --git 
a/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
 
b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
index bc2ab9f..919b4fb 100644
--- 
a/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
+++ 
b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
@@ -594,4 +594,15 @@ public class TargetSettings implements ITargetSettings
     {
         return configuration.getRemoveDeadCode();
     }
+
+       @Override
+       public String getSWFMetadataDate() {
+               return configuration.getMetadataDate();
+       }
+       
+       @Override
+       public String getSWFMetadataDateFormat() {
+               return configuration.getMetadataDateFormat();
+       }
+
 }
diff --git 
a/compiler-common/src/main/java/org/apache/royale/compiler/targets/ITargetSettings.java
 
b/compiler-common/src/main/java/org/apache/royale/compiler/targets/ITargetSettings.java
index 946e670..f1b6672 100644
--- 
a/compiler-common/src/main/java/org/apache/royale/compiler/targets/ITargetSettings.java
+++ 
b/compiler-common/src/main/java/org/apache/royale/compiler/targets/ITargetSettings.java
@@ -500,5 +500,19 @@ public interface ITargetSettings
      * @return An array of strings specifying the import targets.
      */
     String[] getMxmlImplicitImports();
+    
+    /**
+     * Gets Date string used in RDF metadata.
+     * 
+     * @return null or RDF date.
+     */
+    String getSWFMetadataDate();
+    
+    /**
+     * Gets DateFormat string used in RDF metadata date.
+     * 
+     * @return null or Java SimpleDateFormat pattern.
+     */
+    String getSWFMetadataDateFormat();
 }
 
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/ASC.java 
b/compiler/src/main/java/org/apache/royale/compiler/clients/ASC.java
index 615ce7c..83e154f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/clients/ASC.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/clients/ASC.java
@@ -490,6 +490,18 @@ public class ASC
         {
             return removeDeadCode;
         }
+
+               @Override
+               public String getSWFMetadataDate() {
+                       // TODO Auto-generated method stub
+                       return null;
+               }
+
+               @Override
+               public String getSWFMetadataDateFormat() {
+                       // TODO Auto-generated method stub
+                       return null;
+               }
     }
     
     private static final int EXIT_CODE_SUCCESS = 0;
diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleTarget.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleTarget.java
index 933d9a6..6a36dec 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleTarget.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleTarget.java
@@ -20,8 +20,11 @@
 package org.apache.royale.compiler.internal.targets;
 
 import java.io.File;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -755,13 +758,28 @@ public abstract class RoyaleTarget
      */
     public void addProductInfoToSWF(ISWF swf)
     {
+       long compileDate = new Date().getTime();
+       String rdfDate = targetSettings.getSWFMetadataDate();
+       String rdfDateFormat = targetSettings.getSWFMetadataDateFormat();
+       if (rdfDate != null && rdfDateFormat != null)
+       {
+               try {
+                       SimpleDateFormat sdf = new 
SimpleDateFormat(rdfDateFormat);
+                       compileDate = sdf.parse(rdfDate).getTime();
+               } catch (ParseException e) {
+                               // TODO Auto-generated catch block
+                               e.printStackTrace();
+                       } catch (IllegalArgumentException e1) {
+                               e1.printStackTrace();
+                       }
+       }
         // Add product info to the swf.
         ProductInfoTag productInfo = new ProductInfoTag(Product.ROYALE,
                 Edition.NONE,
                 (byte)Integer.parseInt(VersionInfo.FLEX_MAJOR_VERSION),
                 (byte)Integer.parseInt(VersionInfo.FLEX_MINOR_VERSION),
                 VersionInfo.getBuildLong(),
-                0);
+                compileDate);
         swf.setProductInfo(productInfo);
     }
 }

Reply via email to