Merge branch 'release/0.9.7' into develop
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 50a6b71..df3043c 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -21,11 +21,23 @@
 
 #### Contributors
 
- * Christopher Dutz (https://github.com/chrisdutz)
- * Justin Mclean (https://github.com/justinmclean)
  * Andrew Dufilie (https://github.com/adufilie)
+ * Alex Harui (https://github.com/aharui)
+ * Omprakash Muppirala (https://github.com/bigosmallm)
+ * Carlos Rovira (https://github.com/carlosrovira)
+ * Christofer Dutz (https://github.com/chrisdutz)
  * Cyrill Zadra (https://github.com/cyrillzadra)
- * Daniel Loverin (https://github.com/dloverin)
- * taorepoara (https://github.com/taorepoara)
+ * Darrell Loverin (https://github.com/dloverin)
+ * Frédéric Thomas (https://github.com/doublefx)
+ * Erik DeBruin (https://github.com/erikdebruin)
+ * Greg Dove (https://github.com/greg-dove)
+ * Harbs (https://github.com/harbs)
+ * Jimmy Casey (https://github.com/jimmycasey)
+ * Josh Tynjala (https://github.com/joshtynjala)
+ * Justin Mclean (https://github.com/justinmclean)
  * Nikolay Sukharev (https://github.com/mrchnk)
- * Jimmy Casey (https://github.com/jimmycasey)
\ No newline at end of file
+ * Peter Ent (https://github.com/pentapache)
+ * Piotr Zarzycki (https://github.com/piotrzarzycki21)
+ * taorepoara (https://github.com/taorepoara)
+ * Michael Schmalle (https://github.com/teotigraphix)
+ * Yishay Weiss (https://github.com/yishayw)
diff --git a/Jenkinsfile b/Jenkinsfile
index 5f527ad..3e702f1 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -60,13 +60,6 @@
             echo 'checking out royale-framework for branch ' + env.BRANCH_NAME
             checkout([$class: 'GitSCM', branches: [[name: env.BRANCH_NAME]], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'framework']], userRemoteConfigs: [[url: 'https://github.com/apache/royale-asjs.git']]])
 
-        stage 'Build Royale Compiler Utils'
-
-            dir('compiler') {
-                echo 'Building Royale Compiler Utils'
-                bat "mvn -U clean ${mavenGoal} ${mavenLocalRepo} -s C:\\.m2\\settings.xml -P -main,utils -Dcom.adobe.systemIdsForWhichTheTermsOfTheAdobeLicenseAgreementAreAccepted=3c9041a9,3872fc1e"
-            }
-
         stage 'Build Royale Compiler'
 
             dir('compiler') {
diff --git a/LICENSE.bin b/LICENSE.bin
index b3b5af1..da97302 100644
--- a/LICENSE.bin
+++ b/LICENSE.bin
@@ -30,3 +30,94 @@
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+This product bundles java-websocket from github.com/TooTallNate/Java-WebSocket available under the MIT license
+
+Copyright (c) 2010-2020 Nathan Rajlich
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+This product bundles dom4j from https://dom4j.github.io available under the BSD license
+
+Copyright 2001-2016 (C) MetaStuff, Ltd. and DOM4J contributors. All Rights Reserved.
+
+Redistribution and use of this software and associated documentation
+("Software"), with or without modification, are permitted provided
+that the following conditions are met:
+
+1. Redistributions of source code must retain copyright
+   statements and notices.  Redistributions must also contain a
+   copy of this document.
+ 
+2. Redistributions in binary form must reproduce the
+   above copyright notice, this list of conditions and the
+   following disclaimer in the documentation and/or other
+   materials provided with the distribution.
+ 
+3. The name "DOM4J" must not be used to endorse or promote
+   products derived from this Software without prior written
+   permission of MetaStuff, Ltd.  For written permission,
+   please contact dom4j-info@metastuff.com.
+ 
+4. Products derived from this Software may not be called "DOM4J"
+   nor may "DOM4J" appear in their names without prior written
+   permission of MetaStuff, Ltd. DOM4J is a registered
+   trademark of MetaStuff, Ltd.
+ 
+5. Due credit should be given to the DOM4J Project - https://dom4j.github.io/
+ 
+THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+This product bundles lsf4j from http://www.slf4j.org/ available under the MIT license
+
+Copyright (c) 2004-2017 QOS.ch
+ All rights reserved.
+
+ Permission is hereby granted, free  of charge, to any person obtaining
+ a  copy  of this  software  and  associated  documentation files  (the
+ "Software"), to  deal in  the Software without  restriction, including
+ without limitation  the rights to  use, copy, modify,  merge, publish,
+ distribute,  sublicense, and/or sell  copies of  the Software,  and to
+ permit persons to whom the Software  is furnished to do so, subject to
+ the following conditions:
+ 
+ The  above  copyright  notice  and  this permission  notice  shall  be
+ included in all copies or substantial portions of the Software.
+ 
+ THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+ EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+ MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+  
diff --git a/NOTICE b/NOTICE
index 6f9f984..5854ba4 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Royale Compiler
-Copyright 2019 The Apache Software Foundation
+Copyright 2020 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/NOTICE.base b/NOTICE.base
index 69caa49..6ad82f6 100644
--- a/NOTICE.base
+++ b/NOTICE.base
@@ -1,5 +1,5 @@
 Apache Royale Compiler
-Copyright 2019 The Apache Software Foundation
+Copyright 2020 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/NOTICE.fdb b/NOTICE.fdb
index fd988a9..95f5af4 100644
--- a/NOTICE.fdb
+++ b/NOTICE.fdb
@@ -1,5 +1,5 @@
 Apache Royale Debugger
-Copyright 2019 The Apache Software Foundation
+Copyright 2020 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/NOTICE.oem b/NOTICE.oem
index e5c6bf7..f02b4e9 100644
--- a/NOTICE.oem
+++ b/NOTICE.oem
@@ -1,5 +1,5 @@
 Apache Royale Compiler
-Copyright 2019 The Apache Software Foundation
+Copyright 2020 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/README b/README
index b425e5e..4e5d8da 100644
--- a/README
+++ b/README
@@ -61,11 +61,6 @@
     *1) The bin directories for Maven and Java should be added to your
         PATH.
 
-    You must first build the utils profile without the main profile 
-    and then the main profile.  So, first run:
-
-        mvn clean install -P -main,utils
-
     Then run
 
         mvn clean install
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 2d97fdf..9eb9061 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -9,6 +9,11 @@
  - (JS) Compiler updates to support more e4X variations/scenarios, including 'use namespace' and 'default xml namespace' directives
  - (JS) Compiler updates to address custom namespace-related output, and reflection support
  - (JS) Compiler updates to output more compact Reflection data
+ - Fixed a [compiler memory leak](https://github.com/apache/royale-compiler/issues/117) that was occurring over multiple compilations 
+ - Fixes in bindable code generation for accessors, and in bindable function generation for swf
+ - Fixed show-binding-warnings=false option to switch off binding warnings
+ - Maven: Many fixes, improvements and Updates
+ - Support for Maven distribution (Create SDK with Maven)
  - (JS) Prevent renaming of public variables in release builds so that they may be set from MXML.
  - (JS) Fix conflict between methods of the same name in superclass and subclass, where the superclass method is private and the subclass method is public.
  - (JS) Added jsx-factory compiler option to customize the factory method used in code generated from [JSX].
@@ -30,6 +35,8 @@
  - (SWF/JS) Fix missing error for calling a getter as a function (similar to attempting to call a variable as a function) when it is the wrong type.
  - (JS) Fix missing . in generated JS when using static getter/setter in a custom namespace.
 
+ For additional information on recent issues that have been closed, see [Github Issues List](https://github.com/apache/royale-compiler/issues?q=is%3Aissue+is%3Aclosed)
+
 Apache Royale Compiler 0.9.6
 =================
 
diff --git a/build.properties b/build.properties
index 7d0e2f6..a3d7ea8 100644
--- a/build.properties
+++ b/build.properties
@@ -18,9 +18,9 @@
 ################################################################################
 
 ##used by Ant scripts
-release.version=0.9.7
+release.version=0.9.8
 ##used by release jobs on Jenkins
-releaseversion=0.9.7
+releaseversion=0.9.8
 developbranchname=develop
 
 generated.by.match=/\\*\\*. \\* Generated by Apache Royale Compiler
diff --git a/build.xml b/build.xml
index ac25291..7f47fe1 100644
--- a/build.xml
+++ b/build.xml
@@ -277,6 +277,7 @@
                 <include name="settings-template.xml"/>
                 <include name="royale-maven-plugin/pom.xml"/>
                 <include name="royale-maven-plugin/src/**"/>
+                <include name="src/main/**"/>
             </fileset>
         </copy>
         
diff --git a/compiler-common/pom.xml b/compiler-common/pom.xml
index 773ea34..c081469 100644
--- a/compiler-common/pom.xml
+++ b/compiler-common/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -70,4 +69,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/compiler-externc/pom.xml b/compiler-externc/pom.xml
index b0aecb1..59212d8 100644
--- a/compiler-externc/pom.xml
+++ b/compiler-externc/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -50,9 +49,9 @@
                     </configuration>

                 </execution>

             </executions>

-            <!--

-             Dependency to the closure compiler externs artifact so

-             the "unpack-resources" goal can find the externs.zip

+            <!--
+             Dependency to the closure compiler externs artifact so
+             the "unpack-resources" goal can find the externs.zip
              -->

             <dependencies>

                 <dependency>

@@ -266,4 +265,4 @@
 

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java
index 0be229f..22af55f 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java
@@ -34,7 +34,7 @@
 import com.google.javascript.rhino.Node;
 import com.google.javascript.rhino.jstype.JSType.Nullability;
 
-public abstract class BaseReference
+public abstract class BaseReference implements Comparable< BaseReference >
 {
     private String qualifiedName;
 
@@ -329,4 +329,9 @@
 	public TrueConstant isTrueConstant() {
 		return null;
 	}
+	
+	@Override
+    public int compareTo(BaseReference o) {
+        return this.getBaseName().compareTo(o.getBaseName());
+    }
 }
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java
index d32cde3..f22aa83 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java
@@ -96,6 +96,7 @@
         if (!isInterface())
             allMethods.addAll(staticFields.values());
         allMethods.addAll(instanceFields.values());
+        Collections.sort(allMethods);
         return allMethods;
     }
 
@@ -105,6 +106,7 @@
         if (!isInterface())
             allMethods.addAll(staticMethods.values());
         allMethods.addAll(instanceMethods.values());
+        Collections.sort(allMethods);
         return allMethods;
     }
 
@@ -494,7 +496,7 @@
             if (classReference != null)
                 result.add(classReference);
         }
-
+        Collections.sort(result);
         return result;
     }
 
@@ -508,6 +510,7 @@
             if (reference != null)
                 result.add(reference);
         }
+        Collections.sort(result);
         return result;
     }
 
@@ -521,6 +524,7 @@
             if (reference != null)
                 result.add(reference);
         }
+        Collections.sort(result);
         return result;
     }
 
@@ -549,6 +553,7 @@
             	getModel().problems.add(problem);
             }
         }
+        Collections.sort(result);
         return result;
     }
 
@@ -563,7 +568,7 @@
             result.addAll(superClass.getInterfaces());
             superClass = superClass.getSuperClass();
         }
-
+        Collections.sort(result);
         return result;
     }
 
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/FunctionUtils.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/FunctionUtils.java
index 50b884b..c2456dd 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/FunctionUtils.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/FunctionUtils.java
@@ -97,7 +97,11 @@
                 {
                     for (Node param : paramNode.children())
                     {
-                        sb.append(param.getString());
+                    	String name = param.getString();
+                    	int c = name.indexOf("$jscomp$");
+                    	if (c != -1)
+                    		name = name.substring(0, c);
+                        sb.append(name);
                         if (!outputJS)
                         	sb.append(":Object");
                         if (index < len - 1)
diff --git a/compiler-jx/pom.xml b/compiler-jx/pom.xml
index 0e4654f..84b18b4 100644
--- a/compiler-jx/pom.xml
+++ b/compiler-jx/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -240,4 +239,4 @@
     

   </dependencies>

 

-</project>

+<properties /></project>

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 1e52a2c..2d42011 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
@@ -28,6 +28,8 @@
 import java.io.InputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
 import java.util.*;
 import java.util.zip.CRC32;
 import java.util.zip.Deflater;
@@ -502,30 +504,15 @@
 	                    		String metadataFormat = targetSettings.getSWFMetadataDateFormat();
 	                    		try {
 	                    			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-	                    			sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-	                    			fileDate = sdf.parse(metadataDate).getTime();
-	                    		} catch (ParseException e) {
-	                				// TODO Auto-generated catch block
-	                				e.printStackTrace();
-	                			} catch (IllegalArgumentException e1) {
-	                				e1.printStackTrace();
-	                			}
-                                // TODO: Fix this the same way that the compiler normalized the date
-                                // strip off timezone.  Zip format doesn't store timezone
-                                // and the goal is to have the same date and time regardless
-                                // of which timezone the build machine is using.
-                                int c = metadataDate.lastIndexOf(' ');
-                                if(c != -1) {
-                                    metadataDate = metadataDate.substring(0, c);
-                                }
-                                c = metadataFormat.lastIndexOf(' ');
-                                if(c != -1) {
-                                    metadataFormat = metadataFormat.substring(0, c);
-                                }
-	                    		try {
-	                    			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                                    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-                                    zipFileDate = sdf.parse(metadataDate).getTime();
+	                    			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();
@@ -595,8 +582,15 @@
                 		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"));
-                			fileDate = sdf.parse(metadataDate).getTime();
+                			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();
@@ -617,8 +611,17 @@
                         }
                 		try {
                 			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
+                			Date d = sdf.parse(metadataDate);
+                			// zip file wants dates in local time
+                			Calendar cal = new GregorianCalendar();
+                			cal.setTime(d);
                             sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-                            zipFileDate = sdf.parse(metadataDate).getTime();
+                			d = sdf.parse(metadataDate);
+                			// other timestamps are in UTC
+                			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();
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 d2eed7d..a370772 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
@@ -28,6 +28,8 @@
 import java.io.InputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
 import java.util.*;
 import java.util.zip.CRC32;
 import java.util.zip.Deflater;
@@ -220,30 +222,15 @@
 	                    		String metadataFormat = targetSettings.getSWFMetadataDateFormat();
 	                    		try {
 	                    			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                                    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-	                    			fileDate = sdf.parse(metadataDate).getTime();
-	                    		} catch (ParseException e) {
-	                				// TODO Auto-generated catch block
-	                				e.printStackTrace();
-	                			} catch (IllegalArgumentException e1) {
-	                				e1.printStackTrace();
-	                			}
-	                    		// TODO: Fix this the same way that the compiler normalized the date
-	                    		// strip off timezone.  Zip format doesn't store timezone
-	                    		// and the goal is to have the same date and time regardless
-	                    		// of which timezone the build machine is using.
-	                    		int c = metadataDate.lastIndexOf(' ');
-	                    		if(c != -1) {
-                                    metadataDate = metadataDate.substring(0, c);
-                                }
-	                    		c = metadataFormat.lastIndexOf(' ');
-	                    		if(c != -1) {
-                                    metadataFormat = metadataFormat.substring(0, c);
-                                }
-	                    		try {
-	                    			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                                    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-                                    zipFileDate = sdf.parse(metadataDate).getTime();
+	                    			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();
@@ -403,30 +390,15 @@
 	                    		String metadataFormat = targetSettings.getSWFMetadataDateFormat();
 	                    		try {
 	                    			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                                    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-                                    fileDate = sdf.parse(metadataDate).getTime();
-	                    		} catch (ParseException e) {
-	                				// TODO Auto-generated catch block
-	                				e.printStackTrace();
-	                			} catch (IllegalArgumentException e1) {
-	                				e1.printStackTrace();
-	                			}
-                                // TODO: Fix this the same way that the compiler normalized the date
-                                // strip off timezone.  Zip format doesn't store timezone
-                                // and the goal is to have the same date and time regardless
-                                // of which timezone the build machine is using.
-                                int c = metadataDate.lastIndexOf(' ');
-                                if(c != -1) {
-                                    metadataDate = metadataDate.substring(0, c);
-                                }
-                                c = metadataFormat.lastIndexOf(' ');
-                                if(c != -1) {
-                                    metadataFormat = metadataFormat.substring(0, c);
-                                }
-	                    		try {
-	                    			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                                    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-                                    zipFileDate = sdf.parse(metadataDate).getTime();
+	                    			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();
@@ -505,30 +477,15 @@
                 		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"));
-                            fileDate = sdf.parse(metadataDate).getTime();
-                		} catch (ParseException e) {
-            				// TODO Auto-generated catch block
-            				e.printStackTrace();
-            			} catch (IllegalArgumentException e1) {
-            				e1.printStackTrace();
-            			}
-                        // TODO: Fix this the same way that the compiler normalized the date
-                		// strip off timezone.  Zip format doesn't store timezone
-                		// and the goal is to have the same date and time regardless
-                		// of which timezone the build machine is using.
-                		int c = metadataDate.lastIndexOf(' ');
-                        if(c != -1) {
-                            metadataDate = metadataDate.substring(0, c);
-                        }
-                        c = metadataFormat.lastIndexOf(' ');
-                        if(c != -1) {
-                            metadataFormat = metadataFormat.substring(0, c);
-                        }
-                		try {
-                			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                            sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-                            zipFileDate = sdf.parse(metadataDate).getTime();
+                			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();
diff --git a/compiler-test-utils/pom.xml b/compiler-test-utils/pom.xml
index 258c08d..e54b61c 100644
--- a/compiler-test-utils/pom.xml
+++ b/compiler-test-utils/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -52,4 +51,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/compiler/pom.xml b/compiler/pom.xml
index 6bed104..cf1c584 100644
--- a/compiler/pom.xml
+++ b/compiler/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -83,8 +82,8 @@
           </execution>

         </executions>

       </plugin>

-      <!--

-              Do all the JFlex code generation

+      <!--
+              Do all the JFlex code generation
       -->

       <plugin>

         <groupId>de.jflex</groupId>

@@ -130,8 +129,8 @@
           </execution>

         </executions>

       </plugin>

-      <!--

-            Do all the Antlr2 code generation

+      <!--
+            Do all the Antlr2 code generation
       -->

       <plugin>

         <groupId>org.apache.maven.plugins</groupId>

@@ -156,12 +155,12 @@
         </dependencies>

       </plugin>

 

-      <!--

-          The generation of the metadata-parser requires Antlr to

-          load ImportMetadataTokenTypes.txt. Unfortunately Altlr

-          looks in the current working directory. The only way to

-          force it to work, is to start a new process with the

-          working directory in the directory containing the file.

+      <!--
+          The generation of the metadata-parser requires Antlr to
+          load ImportMetadataTokenTypes.txt. Unfortunately Altlr
+          looks in the current working directory. The only way to
+          force it to work, is to start a new process with the
+          working directory in the directory containing the file.
       -->

       <plugin>

         <groupId>org.codehaus.mojo</groupId>

@@ -240,8 +239,8 @@
         </executions>

       </plugin>

 

-      <!--

-            Do all the JBurg code generation.

+      <!--
+            Do all the JBurg code generation.
       -->

       <plugin>

         <groupId>net.sourceforge.jburg</groupId>

@@ -294,8 +293,8 @@
         </dependencies>

       </plugin>

 

-      <!--

-            Do all the Antlr3 code generation.

+      <!--
+            Do all the Antlr3 code generation.
       -->

       <plugin>

         <groupId>org.antlr</groupId>

@@ -330,8 +329,8 @@
         </executions>

       </plugin>

 

-      <!--

-              Do all the custom processing with the royale build tools.

+      <!--
+              Do all the custom processing with the royale build tools.
       -->

       <plugin>

         <groupId>org.apache.royale.compiler</groupId>

@@ -491,10 +490,10 @@
   </build>

 

   <profiles>

-    <!--

-        This profile adds one test, that relies on the original FDK being

-        available as it compiles each project in the framework/projects

-        directory. It requires some environment variables being set.

+    <!--
+        This profile adds one test, that relies on the original FDK being
+        available as it compiles each project in the framework/projects
+        directory. It requires some environment variables being set.
     -->

     <profile>

       <id>option-with-flex-sdk-tests</id>

@@ -628,4 +627,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

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 c1a1a77..5ab959d 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
@@ -31,6 +31,11 @@
 import java.security.DigestOutputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
 import java.util.TimeZone;
 import java.util.zip.CRC32;
 import java.util.zip.Deflater;
@@ -86,32 +91,23 @@
         File outputDirectory = new File(outputFile.getAbsoluteFile().getParent());
         outputDirectory.mkdirs();
         
-        /*
     	if (metadataDate != null)
     	{
-    	    // TODO: Perhaps parsing without modification and then serializing with a default timezone is the more solid approach.
-            // strip off timezone.  Zip format doesn't store timezone
-            // and the goal is to have the same date and time regardless
-            // of which timezone the build machine is using.
-            int c = metadataDate.lastIndexOf(' ');
-            if(c != -1) {
-                metadataDate = metadataDate.substring(0, c);
-            }
-            c = metadataFormat.lastIndexOf(' ');
-            if(c != -1) {
-                metadataFormat = metadataFormat.substring(0, c);
-            }
     		try {
     			SimpleDateFormat sdf = new SimpleDateFormat(metadataFormat);
-                sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
-    			fileDate = sdf.parse(metadataDate).getTime();
+    			Date d = sdf.parse(metadataDate);
+    			Calendar cal = new GregorianCalendar();
+    			cal.setTime(d);
+    			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());
+    			fileDate = zdt.toInstant().toEpochMilli();
     		} catch (ParseException e) {
     			// TODO Auto-generated catch block
     			e.printStackTrace();
     		} catch (IllegalArgumentException e1) {
     			e1.printStackTrace();
     		}
-    	}*/
+    	}
     	
         zipOutputStream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(filename)));
         zipOutputStream.setLevel(Deflater.NO_COMPRESSION);
@@ -122,7 +118,7 @@
      */
     private final ZipOutputStream zipOutputStream;
     
-    private long fileDate = -1;
+    private long fileDate = System.currentTimeMillis();
 
     @Override
     void writeCatalog(final ISWC swc) throws IOException
diff --git a/debugger/pom.xml b/debugger/pom.xml
index 148a3da..18abe0d 100644
--- a/debugger/pom.xml
+++ b/debugger/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -33,8 +32,8 @@
 

   <build>

     <plugins>

-      <!--

-Do all the JBurg code generation.

+      <!--
+Do all the JBurg code generation.
 -->

       <plugin>

         <groupId>net.sourceforge.jburg</groupId>

@@ -49,7 +48,7 @@
             <configuration>

               <includes>

                 <include>AS3DebuggerBURM.jbg</include>

-                <!--include>AS3DebuggerCompoundAssignmentRules.jbg</include>

+                <!--include>AS3DebuggerCompoundAssignmentRules.jbg</include>
                 <include>AS3DebuggerRules.jbg</include-->

               </includes>

               <sourceDirectory>src/main/jburg/flash/tools/debugger/expression</sourceDirectory>

@@ -124,4 +123,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/flex-compiler-oem/pom.xml b/flex-compiler-oem/pom.xml
index 274a017..537796c 100644
--- a/flex-compiler-oem/pom.xml
+++ b/flex-compiler-oem/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -49,4 +48,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/pom.xml b/pom.xml
index aac969d..9568ccb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -42,7 +41,7 @@
   </scm>

 

   <properties>

-    <java.version>1.7</java.version>

+    <java.version>1.8</java.version>

     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

     <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>

     <maven.version>3.3.1</maven.version>

@@ -174,24 +173,24 @@
             <exclude>**/.idea/**</exclude>

             <!-- Ignore VSCode/Java project files -->

             <exclude>**/.factorypath</exclude>

-            <!--

-                Exclude any eventually existing content of target directories.

-                Some times when building with a bigger maven reactor and then

-                with a smaller one, RAT will complain about stuff still in the

-                target directories. We don't want that.

+            <!--
+                Exclude any eventually existing content of target directories.
+                Some times when building with a bigger maven reactor and then
+                with a smaller one, RAT will complain about stuff still in the
+                target directories. We don't want that.
             -->

             <exclude>**/target/**</exclude>

             <exclude>**/release-dir/**</exclude>

             <!-- Stuff an Ant build might have left behind. -->

             <exclude>lib/**</exclude>

-            <!--

-                In case of an ANT based release the typedefs are included as a

-                subdirectory. We need to exclude this directory from the compiler checks

-                as the typedefs build will handle all content in that directory

+            <!--
+                In case of an ANT based release the typedefs are included as a
+                subdirectory. We need to exclude this directory from the compiler checks
+                as the typedefs build will handle all content in that directory
             -->

             <exclude>royale-typedefs/**</exclude>

-            <!-- This file is used to get reproducible builds.  See royale-maven-plugin/pom.xml

-                 for more info.

+            <!-- This file is used to get reproducible builds.  See royale-maven-plugin/pom.xml
+                 for more info.
              -->

             <exclude>**/src/main/sisu/javax.inject.Named</exclude>

           </excludes>

@@ -231,9 +230,9 @@
         <groupId>org.jacoco</groupId>

         <artifactId>jacoco-maven-plugin</artifactId>

         <executions>

-          <!--

-              Prepares the property pointing to the JaCoCo runtime agent which

-              is passed as VM argument when Maven the Surefire plugin is executed.

+          <!--
+              Prepares the property pointing to the JaCoCo runtime agent which
+              is passed as VM argument when Maven the Surefire plugin is executed.
           -->

           <execution>

             <id>pre-unit-test</id>

@@ -243,16 +242,16 @@
             <configuration>

               <!-- Sets the path to the file which contains the execution data. -->

               <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>

-              <!--

-                  Sets the name of the property containing the settings

-                  for JaCoCo runtime agent.

+              <!--
+                  Sets the name of the property containing the settings
+                  for JaCoCo runtime agent.
               -->

               <propertyName>surefireArgLine</propertyName>

             </configuration>

           </execution>

-          <!--

-              Prepares the property pointing to the JaCoCo runtime agent which

-              is passed as VM argument when Maven the Failsafe plugin is executed.

+          <!--
+              Prepares the property pointing to the JaCoCo runtime agent which
+              is passed as VM argument when Maven the Failsafe plugin is executed.
           -->

           <execution>

             <id>pre-integration-test</id>

@@ -263,9 +262,9 @@
             <configuration>

               <!-- Sets the path to the file which contains the execution data. -->

               <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>

-              <!--

-                  Sets the name of the property containing the settings

-                  for JaCoCo runtime agent.

+              <!--
+                  Sets the name of the property containing the settings
+                  for JaCoCo runtime agent.
               -->

               <propertyName>failsafeArgLine</propertyName>

             </configuration>

@@ -288,12 +287,12 @@
             <mavenLocalRepoDir>${settings.localRepository}</mavenLocalRepoDir>

             <optionWithSwfEnabled>${option.withSwf.enabled}</optionWithSwfEnabled>

           </systemPropertyVariables>

-          <!--

-              Currently some tests need this to be disabled,

-              but actually this is a bug. For now I'll disable

-              them to avoid problems during the maven migration.

-              After this is finished, we should definitely fix

-              the tests so assertions can be enabled.

+          <!--
+              Currently some tests need this to be disabled,
+              but actually this is a bug. For now I'll disable
+              them to avoid problems during the maven migration.
+              After this is finished, we should definitely fix
+              the tests so assertions can be enabled.
           -->

           <enableAssertions>false</enableAssertions>

         </configuration>

@@ -342,9 +341,9 @@
       </plugin>

 

       <!-- This plugin cleans up the jars for anything that might cause problems for reproducible builds -->

-      <!--

-        Even if the core maven plugins currently would support doing this without, we would be required

-        to set the line-separator and the Antlr3 plugin crashes if this is set to something non-default

+      <!--
+        Even if the core maven plugins currently would support doing this without, we would be required
+        to set the line-separator and the Antlr3 plugin crashes if this is set to something non-default
       -->

       <plugin>

         <groupId>io.github.zlika</groupId>

@@ -365,7 +364,7 @@
         <artifactId>animal-sniffer-maven-plugin</artifactId>

         <executions>

           <execution>

-            <id>check-jdk-1.7</id>

+            <id>check-jdk-1.8</id>

             <phase>test</phase>

             <goals>

               <goal>check</goal>

@@ -373,7 +372,7 @@
             <configuration>

               <signature>

                 <groupId>org.codehaus.mojo.signature</groupId>

-                <artifactId>java17</artifactId>

+                <artifactId>java18</artifactId>

                 <version>1.0</version>

               </signature>

             </configuration>

@@ -643,8 +642,8 @@
     </profile>

 

     <profile>

-      <!-- This profile is used to test against staged release artifacts.

-           Be sure to clear out artifacts in the local repository before

+      <!-- This profile is used to test against staged release artifacts.
+           Be sure to clear out artifacts in the local repository before
            and after using -->

       <id>staged-releases</id>

       <pluginRepositories>

@@ -655,9 +654,9 @@
       </pluginRepositories>

     </profile>

 

-    <!--

-      This profile enables the changes required to do releases on the Royale CI server.

-      It should not be used otherwise.

+    <!--
+      This profile enables the changes required to do releases on the Royale CI server.
+      It should not be used otherwise.
     -->

     <profile>

       <id>royale-release</id>

@@ -672,11 +671,11 @@
         <repository>

           <id>apache.releases.https</id>

           <name>Apache Release Distribution Repository</name>

-          <!--

-            'maven.multiModuleProjectDirectory' is a property introduced with maven 3.3.1 ...

-            don't worry if your IDE is complaining.

-            Also this will be set to the 'target/checkout' directory the output will be in

-            'target/local-release-dir'.

+          <!--
+            'maven.multiModuleProjectDirectory' is a property introduced with maven 3.3.1 ...
+            don't worry if your IDE is complaining.
+            Also this will be set to the 'target/checkout' directory the output will be in
+            'target/local-release-dir'.
           -->

           <url>file://${maven.multiModuleProjectDirectory}/../local-release-dir</url>

         </repository>

@@ -752,8 +751,8 @@
               <completionGoals>com.theoryinpractise:reproducible-maven-plugin:clear</completionGoals>

             </configuration>

           </plugin>

-          <!--

-            Create MD5 and SHA512 checksum files for the release artifacts.

+          <!--
+            Create MD5 and SHA512 checksum files for the release artifacts.
           -->

           <plugin>

             <groupId>net.nicoulaj.maven.plugins</groupId>

@@ -784,11 +783,11 @@
       </build>

     </profile>

 

-    <!--

-      This profile is intended to help when having problems with Maven.

-      When enabled, it automatically generates an "effective.pom" in the target directory.

-      This version is the fully expanded version where all inherited configuration is in

-      place and all variables are resolved and profile configuration is included.

+    <!--
+      This profile is intended to help when having problems with Maven.
+      When enabled, it automatically generates an "effective.pom" in the target directory.
+      This version is the fully expanded version where all inherited configuration is in
+      place and all variables are resolved and profile configuration is included.
     -->

     <profile>

       <id>debug-pom</id>

diff --git a/releasesteps.xml b/releasesteps.xml
index 10ef88a..1204030 100644
--- a/releasesteps.xml
+++ b/releasesteps.xml
@@ -391,6 +391,7 @@
             <arg value="-Dwagon.url=https://repository.apache.org/service/local/staging/deploy/maven2" />
             <arg value="-Dwagon.serverId=apache.releases.https" />
             <arg value="-Dwagon.includes=**" />
+	    <arg value="-N"/>
         </exec>
     </target>
     
diff --git a/royale-ant-tasks/pom.xml b/royale-ant-tasks/pom.xml
index a770163..34b018c 100644
--- a/royale-ant-tasks/pom.xml
+++ b/royale-ant-tasks/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -39,4 +38,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/royale-maven-plugin/pom.xml b/royale-maven-plugin/pom.xml
index e44bd90..af16f9d 100644
--- a/royale-maven-plugin/pom.xml
+++ b/royale-maven-plugin/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

diff --git a/royaleunit-ant-tasks/pom.xml b/royaleunit-ant-tasks/pom.xml
index 2907526..50967a3 100644
--- a/royaleunit-ant-tasks/pom.xml
+++ b/royaleunit-ant-tasks/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -64,4 +63,4 @@
     </dependency>

   </dependencies>

 

-</project>

+<properties /></project>

diff --git a/swfutils/pom.xml b/swfutils/pom.xml
index 0df314d..98d2c56 100644
--- a/swfutils/pom.xml
+++ b/swfutils/pom.xml
@@ -1,23 +1,22 @@
 <?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">

+<!--
+
+  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>

@@ -32,4 +31,4 @@
   <name>Apache Royale: Compiler: SWFUtils</name>

   <description>The Apache Royale Compiler SWF Utility classes</description>

 

-</project>

+<properties /></project>