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);
}
}