changeset 9478:7b4b5a0135da jdk-9+100

Merge
author kcr
date Mon, 04 Jan 2016 07:34:00 -0800
parents 70e377c26b49 2102c90de46a
children 22a33ee051dd 34e657660c5c
files modules/fxml/src/test/java/com/oracle/javafx/fxml/test/CompareLoadPerformance.java modules/fxml/src/test/java/com/oracle/javafx/fxml/test/TestLoadPerformance.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithCollection.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithDefaultValues.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithMixedConstructors.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithReadOnlyCollection.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ImmutableClass.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/MutableClass.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/PartiallyMutableClass.java modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ProxyBuilderTest.java modules/fxml/src/test/java/javafx/fxml/AlertTest.java modules/fxml/src/test/java/javafx/fxml/Alignment.java modules/fxml/src/test/java/javafx/fxml/CompareVersionsTest.java modules/fxml/src/test/java/javafx/fxml/EventsTestController.java modules/fxml/src/test/java/javafx/fxml/ExpressionBindingController.java modules/fxml/src/test/java/javafx/fxml/FXMLLoaderTest_FieldInjectionTest.java modules/fxml/src/test/java/javafx/fxml/FXMLLoader_BuilderTest.java modules/fxml/src/test/java/javafx/fxml/FXMLLoader_EventsTest.java modules/fxml/src/test/java/javafx/fxml/FXMLLoader_ExpressionTest.java modules/fxml/src/test/java/javafx/fxml/FXMLLoader_ScriptTest.java modules/fxml/src/test/java/javafx/fxml/IncompletePropertyContainer.java modules/fxml/src/test/java/javafx/fxml/ListMapSetEventsTestController.java modules/fxml/src/test/java/javafx/fxml/ListMapSetEventsTestController2.java modules/fxml/src/test/java/javafx/fxml/MyWidget.java modules/fxml/src/test/java/javafx/fxml/PropertyEventsTestController.java modules/fxml/src/test/java/javafx/fxml/PropertyEventsTestDeprecatedController.java modules/fxml/src/test/java/javafx/fxml/PropertyEventsTestValueController.java modules/fxml/src/test/java/javafx/fxml/RT_15524Test.java modules/fxml/src/test/java/javafx/fxml/RT_16722ControllerA.java modules/fxml/src/test/java/javafx/fxml/RT_16724Controller.java modules/fxml/src/test/java/javafx/fxml/RT_16724ControllerFactory.java modules/fxml/src/test/java/javafx/fxml/RT_16724Test.java modules/fxml/src/test/java/javafx/fxml/RT_16815Controller.java modules/fxml/src/test/java/javafx/fxml/RT_16815ControllerFactory.java modules/fxml/src/test/java/javafx/fxml/RT_16815Test.java modules/fxml/src/test/java/javafx/fxml/RT_16977Test.java modules/fxml/src/test/java/javafx/fxml/RT_18218Test.java modules/fxml/src/test/java/javafx/fxml/RT_18933Test.java modules/fxml/src/test/java/javafx/fxml/RT_19008Test.java modules/fxml/src/test/java/javafx/fxml/RT_19112Test.java modules/fxml/src/test/java/javafx/fxml/RT_19139Test.java modules/fxml/src/test/java/javafx/fxml/RT_19228Test.java modules/fxml/src/test/java/javafx/fxml/RT_19329Test.java modules/fxml/src/test/java/javafx/fxml/RT_19870Test.java modules/fxml/src/test/java/javafx/fxml/RT_20082ClassLoader.java modules/fxml/src/test/java/javafx/fxml/RT_20082Test.java modules/fxml/src/test/java/javafx/fxml/RT_20471Controller.java modules/fxml/src/test/java/javafx/fxml/RT_20471Test.java modules/fxml/src/test/java/javafx/fxml/RT_22864.java modules/fxml/src/test/java/javafx/fxml/RT_22971Controller.java modules/fxml/src/test/java/javafx/fxml/RT_22971Test.java modules/fxml/src/test/java/javafx/fxml/RT_23447.java modules/fxml/src/test/java/javafx/fxml/RT_23519Test.java modules/fxml/src/test/java/javafx/fxml/RT_24380Controller.java modules/fxml/src/test/java/javafx/fxml/RT_24380ControllerBase.java modules/fxml/src/test/java/javafx/fxml/RT_24380Test.java modules/fxml/src/test/java/javafx/fxml/RT_25494_Cycle_DetectionTest.java modules/fxml/src/test/java/javafx/fxml/RT_26449Test.java modules/fxml/src/test/java/javafx/fxml/RT_27529Test.java modules/fxml/src/test/java/javafx/fxml/RT_34146Test.java modules/fxml/src/test/java/javafx/fxml/RT_36633Test.java modules/fxml/src/test/java/javafx/fxml/RT_40335Test.java modules/fxml/src/test/java/javafx/fxml/Widget.java modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/border_pane.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/flow_pane.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/grid_pane.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/icon-48x48.png modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/project-with-all-p2-components.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/stageview-drop-test.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-gear-flowers.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-tiger.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-tux.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-complex-unhappy-sheep.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/svg-svgspec-paints-radialGradient.fxml modules/fxml/src/test/resources/com/oracle/javafx/fxml/test/tile_pane.fxml modules/fxml/src/test/resources/javafx/fxml/alert.fxml modules/fxml/src/test/resources/javafx/fxml/bad_include.fxml modules/fxml/src/test/resources/javafx/fxml/builders_trianglemesh.fxml modules/fxml/src/test/resources/javafx/fxml/cycle.fxml modules/fxml/src/test/resources/javafx/fxml/dummy-cycle.fxml modules/fxml/src/test/resources/javafx/fxml/events_test.fxml modules/fxml/src/test/resources/javafx/fxml/expression_binding.fxml modules/fxml/src/test/resources/javafx/fxml/expression_escapechars.fxml modules/fxml/src/test/resources/javafx/fxml/expression_incomplete_property.fxml modules/fxml/src/test/resources/javafx/fxml/leaf1.fxml modules/fxml/src/test/resources/javafx/fxml/leaf2.fxml modules/fxml/src/test/resources/javafx/fxml/leaf3.fxml modules/fxml/src/test/resources/javafx/fxml/leaf4.fxml modules/fxml/src/test/resources/javafx/fxml/list_map_set_events_test.fxml modules/fxml/src/test/resources/javafx/fxml/one-2-one-cycle.fxml modules/fxml/src/test/resources/javafx/fxml/property_events_test.fxml modules/fxml/src/test/resources/javafx/fxml/property_events_test_expression.fxml modules/fxml/src/test/resources/javafx/fxml/property_events_test_expression_na.fxml modules/fxml/src/test/resources/javafx/fxml/property_events_test_value.fxml modules/fxml/src/test/resources/javafx/fxml/rt_15524.fxml modules/fxml/src/test/resources/javafx/fxml/rt_16724.fxml modules/fxml/src/test/resources/javafx/fxml/rt_16815.fxml modules/fxml/src/test/resources/javafx/fxml/rt_16815.properties modules/fxml/src/test/resources/javafx/fxml/rt_16977.fxml modules/fxml/src/test/resources/javafx/fxml/rt_18218.fxml modules/fxml/src/test/resources/javafx/fxml/rt_18933.fxml modules/fxml/src/test/resources/javafx/fxml/rt_19112.fxml modules/fxml/src/test/resources/javafx/fxml/rt_19139.fxml modules/fxml/src/test/resources/javafx/fxml/rt_19228.fxml modules/fxml/src/test/resources/javafx/fxml/rt_19329.fxml modules/fxml/src/test/resources/javafx/fxml/rt_19870.fxml modules/fxml/src/test/resources/javafx/fxml/rt_20082.fxml modules/fxml/src/test/resources/javafx/fxml/rt_20082_include.fxml modules/fxml/src/test/resources/javafx/fxml/rt_20471.fxml modules/fxml/src/test/resources/javafx/fxml/rt_20471.properties modules/fxml/src/test/resources/javafx/fxml/rt_22864.fxml modules/fxml/src/test/resources/javafx/fxml/rt_22971.fxml modules/fxml/src/test/resources/javafx/fxml/rt_22971.properties modules/fxml/src/test/resources/javafx/fxml/rt_23447.fxml modules/fxml/src/test/resources/javafx/fxml/rt_23519.fxml modules/fxml/src/test/resources/javafx/fxml/rt_24380.fxml modules/fxml/src/test/resources/javafx/fxml/rt_24465.fxml modules/fxml/src/test/resources/javafx/fxml/rt_26449.fxml modules/fxml/src/test/resources/javafx/fxml/rt_27529.properties modules/fxml/src/test/resources/javafx/fxml/rt_27529_1.fxml modules/fxml/src/test/resources/javafx/fxml/rt_27529_2.fxml modules/fxml/src/test/resources/javafx/fxml/rt_27529_3.fxml modules/fxml/src/test/resources/javafx/fxml/rt_27529_4.fxml modules/fxml/src/test/resources/javafx/fxml/rt_34146.fxml modules/fxml/src/test/resources/javafx/fxml/rt_36633.fxml modules/fxml/src/test/resources/javafx/fxml/rt_40335.fxml modules/fxml/src/test/resources/javafx/fxml/script_handler.fxml modules/fxml/src/test/resources/javafx/fxml/script_handler_external.fxml modules/fxml/src/test/resources/javafx/fxml/script_handler_external.js modules/fxml/src/test/resources/javafx/fxml/simple.fxml modules/fxml/src/test/resources/javafx/fxml/static_script_load.fxml modules/graphics/src/main/java/com/sun/prism/d3d/D3DVertexBuffer.java modules/graphics/src/main/java/com/sun/prism/es2/ES2VertexBuffer.java modules/graphics/src/main/java/com/sun/prism/null3d/DummyVertexBuffer.java modules/web/src/test/java/com/sun/webkit/SharedBufferTest.java modules/web/src/test/java/com/sun/webkit/SimpleSharedBufferInputStreamTest.java modules/web/src/test/java/com/sun/webkit/network/CookieManagerTest.java modules/web/src/test/java/com/sun/webkit/network/CookieTest.java modules/web/src/test/java/com/sun/webkit/network/DateParserTest.java modules/web/src/test/java/com/sun/webkit/network/PublicSuffixesTest.java modules/web/src/test/java/com/sun/webkit/network/UtilTest.java modules/web/src/test/java/com/sun/webkit/network/data/DataURLConnectionTest.java modules/web/src/test/java/com/sun/webkit/text/TextBreakIteratorTest.java modules/web/src/test/java/javafx/scene/web/BindingTest.java modules/web/src/test/java/javafx/scene/web/CSSTest.java modules/web/src/test/java/javafx/scene/web/CallbackTest.java modules/web/src/test/java/javafx/scene/web/CheckFxThreadTest.java modules/web/src/test/java/javafx/scene/web/DOMTest.java modules/web/src/test/java/javafx/scene/web/DebuggerTest.java modules/web/src/test/java/javafx/scene/web/DirectoryLockTest.java modules/web/src/test/java/javafx/scene/web/HistoryTest.java modules/web/src/test/java/javafx/scene/web/ImageToDataURLTest.java modules/web/src/test/java/javafx/scene/web/IrresponsiveScriptTest.java modules/web/src/test/java/javafx/scene/web/JavaScriptBridgeTest.java modules/web/src/test/java/javafx/scene/web/LeakTest.java modules/web/src/test/java/javafx/scene/web/LoadNotificationsTest.java modules/web/src/test/java/javafx/scene/web/LoadTest.java modules/web/src/test/java/javafx/scene/web/MiscellaneousTest.java modules/web/src/test/java/javafx/scene/web/ScreenAndWindowTest.java modules/web/src/test/java/javafx/scene/web/TestBase.java modules/web/src/test/java/javafx/scene/web/UserDataDirectoryTest.java modules/web/src/test/java/javafx/scene/web/WebPageTest.java modules/web/src/test/java/javafx/scene/web/WebViewResizabilityTest.java modules/web/src/test/java/javafx/scene/web/WebViewTest.java modules/web/src/test/resources/html/RT30835.html modules/web/src/test/resources/html/dom.html modules/web/src/test/resources/html/guimark2-vector.html modules/web/src/test/resources/html/h1.html modules/web/src/test/resources/html/h2.html modules/web/src/test/resources/html/h3.html modules/web/src/test/resources/html/h4.html modules/web/src/test/resources/html/imported-styles.css modules/web/src/test/resources/html/invoke-alert.js modules/web/src/test/resources/html/ipsum.html
diffstat 405 files changed, 26444 insertions(+), 26079 deletions(-) [+]
line wrap: on
line diff
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/ConferenceScheduleApp.java	Thu Dec 24 02:23:24 2015 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/ConferenceScheduleApp.java	Mon Jan 04 07:34:00 2016 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboardSkin.java	Thu Dec 24 02:23:24 2015 -0800
+++ b/apps/experiments/ConferenceScheduleApp/src/main/java/com/javafx/experiments/scheduleapp/control/VirtualKeyboardSkin.java	Mon Jan 04 07:34:00 2016 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java	Thu Dec 24 02:23:24 2015 -0800
+++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/metadata/Metadata.java	Mon Jan 04 07:34:00 2016 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
--- a/apps/toys/Hello/src/main/java/hello/HelloPopup.java	Thu Dec 24 02:23:24 2015 -0800
+++ b/apps/toys/Hello/src/main/java/hello/HelloPopup.java	Mon Jan 04 07:34:00 2016 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
--- a/buildSrc/ios.gradle	Thu Dec 24 02:23:24 2015 -0800
+++ b/buildSrc/ios.gradle	Mon Jan 04 07:34:00 2016 -0800
@@ -495,86 +495,6 @@
 IOS.webview.x86_64.linkFlags = ["-arch_only", archX86_64, "-syslibroot", sdkPath(iPhoneSim), linkFlags].flatten()
 IOS.webview.x86_64.lib = "javafx_ios_webnode_${archX86_64}"
 
-project(":web") {
-    apply plugin: 'java'
-
-    compileJava {
-        sourceSets.main.java.srcDirs = ['src/ios/java'];
-    }
-
-    sourceSets {
-        main {
-            java {
-                srcDirs= ['src/ios/java']
-            }
-        }
-    }
-    dependencies {
-         compile files("../graphics/build/classes/ios");
-     }
-
-    afterEvaluate {
-        sourceSets.main.java.srcDirs = ['src/ios/java'];
-        def compileWebJavaIos = task("compileWebJavaIos",
-            type: JavaCompile, group: "Build") {
-
-            dependsOn(project(":graphics").classes, project(":base").classes)
-            description = "Task compiles web component for iOS."
-            classpath = files(
-                project(":controls").sourceSets.main.output.classesDir,
-                project(":graphics").sourceSets.main.output.classesDir,
-                project(":base").sourceSets.main.output.classesDir
-            )
-            destinationDir = file("modules/web/build/classes/ios")
-            sourceSets.main.output.classesDir = destinationDir
-            dependencyCacheDir = file("modules/web/build/dependency-cache")
-            source file("modules/web/src/ios/java")
-            doLast {
-                copy {
-                    from "modules/web/src/ios/resources"
-                    into "modules/web/build/resources/ios"
-                }
-            }
-        }
-
-        def jarWebJavaIos = task("jarWebJavaIos",
-            type: Jar, group: "Build") {
-            description = "Creates web.jar for iOS."
-            dependsOn(compileWebJavaIos)
-            archiveName = "web.jar"
-            includeEmptyDirs = false
-            destinationDir = project.file("build/libs/ios")
-            from("build/classes/ios")
-        }
-
-        addNative(project, "webview")
-        javahIosWebview.dependsOn(compileWebJavaIos)
-        javahIosWebview.classpath += files(project(":base").sourceSets.main.output.classesDir,
-                             project(":graphics").sourceSets.main.output.classesDir,
-                             project(":controls").sourceSets.main.output.classesDir)
-
-        jfxrtIos {
-            from ("modules/web/build/classes/ios", "modules/web/build/resources/main");
-            exclude("com/sun/webkit", "com/sun/javafx/webkit");
-        }
-
-        sdkIos  {
-            dependsOn(jarWebJavaIos)
-            doLast {
-                def props = project.ext["IOS"]
-                copy {
-                    if (props.useLipo) {
-                        from ("modules/web/build/libs/webview/ios/${props.library(props.webview.lib)}")
-                    } else {
-                        from ("modules/web/build/libs/webview/ios")
-                    }
-                    into ("build/ios-sdk/rt/${props.libDest}")
-                }
-            }
-        }
-    }
-}
-
 IOS.media = [:]
 IOS.media.lib = "jfxmedia"
 IOS.media.javahSource = files("modules/media/build/classes/main")
@@ -617,56 +537,3 @@
 IOS.media.x86_64.linkFlags = ["-arch_only", archX86_64, "-syslibroot", sdkPath(iPhoneSim), linkFlags].flatten()
 IOS.media.x86_64.lib = "jfxmedia_${archX86_64}"
 
-project(":media") {
-    afterEvaluate {
-        addNative(project, "media")
-
-        sdkIos  {
-            doLast {
-                def props = project.ext["IOS"]
-                copy {
-                    if (props.useLipo) {
-                        from ("modules/media/build/libs/media/ios/${props.library(props.media.lib)}")
-                    } else {
-                        from ("modules/media/build/libs/media/ios")
-                    }
-                    into ("build/ios-sdk/rt/${props.libDest}")
-                }
-            }
-        }
-    }
-}
-
-project(":extensions") {
-    apply plugin: 'java'
-
-    compileJava {
-        destinationDir = file("build/classes/ios")
-        source file("src/ios/java")
-    }
-    
-    jar {
-        from("build/classes/ios")
-    }
-    
-    afterEvaluate {
-
-        addNative(project, "extensions")
-        javahIosExtensions.classpath += files(project(":base").sourceSets.main.output.classesDir,
-                             project(":graphics").sourceSets.main.output.classesDir)
-
-        sdkIos  {
-            doLast {
-                def props = project.ext["IOS"]
-                copy {
-                    if (props.useLipo) {
-                        from ("modules/extensions/build/libs/extensions/ios/${props.library(props.extensions.lib)}")
-                    } else {
-                        from ("modules/extensions/build/libs/extensions/ios")
-                    }
-                    into ("build/ios-sdk/rt/${props.libDest}")
-                }
-            }
-        }
-    }
-}
--- a/modules/base/src/main/java/javafx/util/Pair.java	Thu Dec 24 02:23:24 2015 -0800
+++ b/modules/base/src/main/java/javafx/util/Pair.java	Mon Jan 04 07:34:00 2016 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
--- a/modules/controls/src/main/java/javafx/scene/control/cell/CellUtils.java	Thu Dec 24 02:23:24 2015 -0800
+++ b/modules/controls/src/main/java/javafx/scene/control/cell/CellUtils.java	Mon Jan 04 07:34:00 2016 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
--- a/modules/fxml/src/test/java/com/oracle/javafx/fxml/test/CompareLoadPerformance.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.oracle.javafx.fxml.test;
-
-import java.io.IOException;
-
-import javafx.application.Application;
-import javafx.collections.ObservableList;
-import javafx.fxml.FXMLLoader;
-import javafx.geometry.HPos;
-import javafx.geometry.Insets;
-import javafx.scene.Node;
-import javafx.scene.Scene;
-import javafx.scene.control.Button;
-import javafx.scene.control.Label;
-import javafx.scene.control.Separator;
-import javafx.scene.control.Tab;
-import javafx.scene.control.TabPane;
-import javafx.scene.control.TextField;
-import javafx.scene.image.Image;
-import javafx.scene.image.ImageView;
-import javafx.scene.layout.AnchorPane;
-import javafx.scene.layout.BorderPane;
-import javafx.scene.layout.ColumnConstraints;
-import javafx.scene.layout.FlowPane;
-import javafx.scene.layout.GridPane;
-import javafx.scene.layout.RowConstraints;
-import javafx.scene.layout.TilePane;
-import javafx.scene.layout.VBox;
-import javafx.scene.paint.Color;
-import javafx.scene.shape.Rectangle;
-import javafx.stage.Stage;
-
-public class CompareLoadPerformance extends Application {
-    private static final Image ICON_48 = new Image(CompareLoadPerformance.class.getResourceAsStream("icon-48x48.png"));
-    private static final boolean USE_FXML = true;
-
-    @Override
-    public void start(Stage primaryStage) throws Exception {
-        TabPane tabPane = new TabPane();
-
-        Tab borderPaneTab = new Tab("BorderPane");
-        borderPaneTab.setContent(USE_FXML ? createBorderPaneFXML() : createBorderPane());
-        tabPane.getTabs().add(borderPaneTab);
-
-        Tab flowPaneTab = new Tab("FlowPane");
-        flowPaneTab.setContent(USE_FXML ? createFlowPaneFXML() : createFlowPane());
-        tabPane.getTabs().add(flowPaneTab);
-
-        Tab gridPaneTab = new Tab("GridPane");
-        gridPaneTab.setContent(USE_FXML ? createGridPaneFXML() : createGridPane());
-        tabPane.getTabs().add(gridPaneTab);
-
-        Tab tilePaneTab = new Tab("TilePane");
-        tilePaneTab.setContent(USE_FXML ? createTilePaneFXML() : createTilePane());
-        tabPane.getTabs().add(tilePaneTab);
-
-        primaryStage.setScene(new Scene(tabPane));
-        primaryStage.show();
-    }
-
-    private Node createBorderPane() {
-        long t0 = System.currentTimeMillis();
-
-        BorderPane borderPane = new BorderPane();
-
-        //Top content
-        Rectangle topRectangle = new Rectangle(400, 23, Color.DARKSEAGREEN);
-        topRectangle.setStroke(Color.BLACK);
-        borderPane.setTop(topRectangle);
-
-        //Left content
-        Label label1 = new Label("Left hand");
-        Label label2 = new Label("Choice One");
-        Label label3 = new Label("Choice Two");
-        Label label4 = new Label("Choice Three");
-        VBox leftVbox = new VBox();
-        leftVbox.getChildren().addAll(label1, label2, label3, label4);
-        borderPane.setLeft(leftVbox);
-
-        //Right content
-        Label rightlabel1 = new Label("Right hand");
-        Label rightlabel2 = new Label("Thing A");
-        Label rightlabel3 = new Label("Thing B");
-        VBox rightVbox = new VBox();
-        rightVbox.getChildren().addAll(rightlabel1, rightlabel2, rightlabel3);
-        borderPane.setRight(rightVbox);
-
-        //Center content
-        Label centerLabel = new Label("We're in the center area.");
-        ImageView imageView = new ImageView(ICON_48);
-
-        //Using AnchorPane only to position items in the center
-        AnchorPane centerAP = new AnchorPane();
-        AnchorPane.setTopAnchor(centerLabel, Double.valueOf(5));
-        AnchorPane.setLeftAnchor(centerLabel, Double.valueOf(20));
-        AnchorPane.setTopAnchor(imageView, Double.valueOf(40));
-        AnchorPane.setLeftAnchor(imageView, Double.valueOf(30));
-        centerAP.getChildren().addAll(centerLabel, imageView);
-        borderPane.setCenter(centerAP);
-
-        //Bottom content
-        Label bottomLabel = new Label("I am a status message, and I am at the bottom.");
-        borderPane.setBottom(bottomLabel);
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("BorderPane " + (t1 - t0) + "ms");
-
-        return borderPane;
-    }
-
-    private Node createBorderPaneFXML() {
-        long t0 = System.currentTimeMillis();
-
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("border_pane.fxml"));
-        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
-
-        BorderPane borderPane;
-        try {
-            borderPane = (BorderPane)fxmlLoader.load();
-        } catch (IOException exception) {
-            throw new RuntimeException(exception);
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("BorderPane FXML " + (t1 - t0) + "ms");
-
-        return borderPane;
-    }
-
-    private Node createFlowPane() {
-        long t0 = System.currentTimeMillis();
-
-        final int ITEMS = 5;
-        FlowPane flowPane = new FlowPane(2, 4);
-        flowPane.setPrefWrapLength(200); //preferred wraplength
-        Label[] shortLabels = new Label[ITEMS];
-        Label[] longLabels = new Label[ITEMS];
-        ImageView[] imageViews = new ImageView[ITEMS];
-
-        for (int i = 0; i < ITEMS; i++) {
-            shortLabels[i] = new Label("Short label.");
-            longLabels[i] = new Label("I am a slightly longer label.");
-            imageViews[i] = new ImageView(ICON_48);
-            flowPane.getChildren().addAll(shortLabels[i], longLabels[i], imageViews[i]);
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("FlowPane " + (t1 - t0) + "ms");
-
-        return flowPane;
-    }
-
-    private Node createFlowPaneFXML() {
-        long t0 = System.currentTimeMillis();
-
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("flow_pane.fxml"));
-        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
-
-        FlowPane flowPane;
-        try {
-            flowPane = (FlowPane)fxmlLoader.load();
-        } catch (IOException exception) {
-            throw new RuntimeException(exception);
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("FlowPane FXML " + (t1 - t0) + "ms");
-
-        return flowPane;
-    }
-
-    private Node createGridPane() {
-        long t0 = System.currentTimeMillis();
-
-        VBox vbox = new VBox();
-
-        //grid1 places the child by specifying the rows and columns in
-        // GridPane.setContraints()
-        Label grid1Caption = new Label("The example below shows GridPane content placement by specifying rows and columns:");
-        grid1Caption.setWrapText(true);
-        GridPane grid1 = new GridPane();
-        grid1.setHgap(4);
-        grid1.setVgap(6);
-        grid1.setPadding(new Insets(18, 18, 18, 18));
-        ObservableList<Node> content = grid1.getChildren();
-
-        Label label = new Label("Name:");
-        GridPane.setConstraints(label, 0, 0);
-        GridPane.setHalignment(label, HPos.RIGHT);
-        content.add(label);
-
-        label = new Label("John Q. Public");
-        GridPane.setConstraints(label, 1, 0, 2, 1);
-        GridPane.setHalignment(label, HPos.LEFT);
-        content.add(label);
-
-        label = new Label("Address:");
-        GridPane.setConstraints(label, 0, 1);
-        GridPane.setHalignment(label, HPos.RIGHT);
-        content.add(label);
-
-        label = new Label("12345 Main Street, Some City, CA");
-        GridPane.setConstraints(label, 1, 1, 5, 1);
-        GridPane.setHalignment(label, HPos.LEFT);
-        content.add(label);
-
-        vbox.getChildren().addAll(grid1Caption, grid1, new Separator());
-
-        //grid2 places the child by influencing the rows and columns themselves
-        //via GridRowInfo and GridColumnInfo. This grid uses the preferred
-        //width/height and max/min width/height.
-        Label grid2Caption = new Label("The example below shows GridPane content placement by influencing the rows and columns themselves.");
-        grid2Caption.setWrapText(true);
-        grid2Caption.setWrapText(true);
-        GridPane grid2 = new GridPane();
-        grid2.setPadding(new Insets(18, 18, 18, 18));
-        RowConstraints rowinfo = new RowConstraints(40, 40, 40);
-        ColumnConstraints colinfo = new ColumnConstraints(90, 90, 90);
-
-        for (int i = 0; i <= 2; i++) {
-            grid2.getRowConstraints().add(rowinfo);
-        }
-
-        for (int j = 0; j <= 2; j++) {
-            grid2.getColumnConstraints().add(colinfo);
-        }
-
-        Label category = new Label("Category:");
-        GridPane.setHalignment(category, HPos.RIGHT);
-        Label categoryValue = new Label("Wines");
-        Label company = new Label("Company:");
-        GridPane.setHalignment(company, HPos.RIGHT);
-        Label companyValue = new Label("Acme Winery");
-        Label rating = new Label("Rating:");
-        GridPane.setHalignment(rating, HPos.RIGHT);
-        Label ratingValue = new Label("Excellent");
-
-        ImageView imageView = new ImageView(ICON_48);
-        GridPane.setHalignment(imageView, HPos.CENTER);
-
-        //Place content
-        GridPane.setConstraints(category, 0, 0);
-        GridPane.setConstraints(categoryValue, 1, 0);
-        GridPane.setConstraints(company, 0, 1);
-        GridPane.setConstraints(companyValue, 1, 1);
-        GridPane.setConstraints(imageView, 2, 1);
-        GridPane.setConstraints(rating, 0, 2);
-        GridPane.setConstraints(ratingValue, 1, 2);
-        grid2.getChildren().addAll(category, categoryValue, company, companyValue, imageView, rating, ratingValue);
-
-        vbox.getChildren().addAll(grid2Caption, grid2, new Separator());
-
-        //grid3 places the child by influencing the rows and columns
-        //via GridRowInfo and GridColumnInfo. This grid uses the percentages
-        Label grid3Caption = new Label("The example below shows GridPane content placement by influencing row and column percentages.  Also, grid lines are made visible in this example.  The lines can be helpful in debugging.");
-        grid3Caption.setWrapText(true);
-        GridPane grid3 = new GridPane();
-        grid3.setPadding(new Insets(18, 18, 18, 18));
-        grid3.setGridLinesVisible(true);
-        RowConstraints rowinfo3 = new RowConstraints();
-        rowinfo3.setPercentHeight(50);
-
-        ColumnConstraints colInfo2 = new ColumnConstraints();
-        colInfo2.setPercentWidth(25);
-
-        ColumnConstraints colInfo3 = new ColumnConstraints();
-        colInfo3.setPercentWidth(50);
-
-        grid3.getRowConstraints().add(rowinfo3);//2*50 percent
-        grid3.getRowConstraints().add(rowinfo3);
-
-        grid3.getColumnConstraints().add(colInfo2); //25 percent
-        grid3.getColumnConstraints().add(colInfo3); //50 percent
-        grid3.getColumnConstraints().add(colInfo2); //25 percent
-
-        Label condLabel = new Label(" Member Name:");
-        GridPane.setHalignment(condLabel, HPos.RIGHT);
-        GridPane.setConstraints(condLabel, 0, 0);
-        Label condValue = new Label("MyName");
-        GridPane.setMargin(condValue, new Insets(0, 0, 0, 10));
-        GridPane.setConstraints(condValue, 1, 0);
-
-        Label acctLabel = new Label("Member Number:");
-        GridPane.setHalignment(acctLabel, HPos.RIGHT);
-        GridPane.setConstraints(acctLabel, 0, 1);
-        TextField textBox = new TextField("Your number");
-        GridPane.setMargin(textBox, new Insets(10, 10, 10, 10));
-        GridPane.setConstraints(textBox, 1, 1);
-
-        Button button = new Button("Help");
-        GridPane.setConstraints(button, 2, 1);
-        GridPane.setMargin(button, new Insets(10, 10, 10, 10));
-        GridPane.setHalignment(button, HPos.CENTER);
-
-        GridPane.setConstraints(condValue, 1, 0);
-        grid3.getChildren().addAll(condLabel, condValue, button, acctLabel, textBox);
-
-        vbox.getChildren().addAll(grid3Caption, grid3);
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("GridPane " + (t1 - t0) + "ms");
-
-        return vbox;
-    }
-
-    private Node createGridPaneFXML() {
-        long t0 = System.currentTimeMillis();
-
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("grid_pane.fxml"));
-        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
-
-        VBox vBox;
-        try {
-            vBox = (VBox)fxmlLoader.load();
-        } catch (IOException exception) {
-            throw new RuntimeException(exception);
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("GridPane FXML " + (t1 - t0) + "ms");
-
-        return vBox;
-    }
-
-    private Node createTilePane() {
-        long t0 = System.currentTimeMillis();
-
-        TilePane tilePane = new TilePane();
-        tilePane.setPrefColumns(3); //preferred columns
-
-        Button[] buttons = new Button[18];
-        for (int j = 0; j < buttons.length; j++) {
-            buttons[j] = new Button("button" + (j + 1), new ImageView(ICON_48));
-            tilePane.getChildren().add(buttons[j]);
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("TilePane " + (t1 - t0) + "ms");
-
-        return tilePane;
-    }
-
-    private Node createTilePaneFXML() {
-        long t0 = System.currentTimeMillis();
-
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("tile_pane.fxml"));
-        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
-
-        TilePane tilePane;
-        try {
-            tilePane = (TilePane)fxmlLoader.load();
-        } catch (IOException exception) {
-            throw new RuntimeException(exception);
-        }
-
-        long t1 = System.currentTimeMillis();
-
-        System.out.println("TilePane FXML " + (t1 - t0) + "ms");
-
-        return tilePane;
-    }
-
-    public static void main(String[] args) throws Exception {
-        launch(args);
-    }
-}
--- a/modules/fxml/src/test/java/com/oracle/javafx/fxml/test/TestLoadPerformance.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.oracle.javafx.fxml.test;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.charset.Charset;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.util.StreamReaderDelegate;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-import javafx.application.Application;
-import javafx.fxml.FXMLLoader;
-import javafx.stage.Stage;
-
-public class TestLoadPerformance extends Application {
-    private static class SAXHandler extends DefaultHandler {
-        @Override
-        public void processingInstruction(String target, String data) {
-            target.trim();
-        }
-
-        @Override
-        public void startElement(String uri, String name, String qName, Attributes atts) {
-            for (int i = 0, n = atts.getLength(); i < n; i++) {
-                atts.getLocalName(i);
-                atts.getQName(i);
-                atts.getValue(i);
-            }
-        }
-
-        @Override
-        public void endElement(String uri, String name, String qName) {
-            // No-op
-        }
-
-        @Override
-        public void characters (char ch[], int start, int length) {
-            // No-op
-        }
-    }
-
-    @Override
-    public void start(Stage primaryStage) throws Exception {
-        String[] files = new String[] {
-            "project-with-all-p2-components.fxml",
-            "stageview-drop-test.fxml",
-            "svg-complex-gear-flowers.fxml",
-            "svg-complex-tiger.fxml",
-            "svg-complex-tux.fxml",
-            "svg-complex-unhappy-sheep.fxml",
-            "svg-svgspec-paints-radialGradient.fxml"
-        };
-
-        for (int i = 0; i < files.length; i++) {
-            String file = files[i];
-            URL location = TestLoadPerformance.class.getResource(file);
-            URLConnection connection = location.openConnection();
-            int size = connection.getContentLength();
-            System.out.printf("%s (%dKB)\n", file, size / 1000);
-            // loadSAX(location);
-            // loadStAX(location);
-            loadFXML(TestLoadPerformance.class, file);
-
-            System.out.println();
-        }
-
-        System.exit(0);
-    }
-
-    protected void loadSAX(URL location) throws Exception {
-        long t0 = System.currentTimeMillis();
-
-        XMLReader xmlReader = XMLReaderFactory.createXMLReader();
-
-        SAXHandler handler = new SAXHandler();
-        xmlReader.setContentHandler(handler);
-        xmlReader.setErrorHandler(handler);
-
-        InputStream inputStream = location.openStream();
-        xmlReader.parse(new InputSource(inputStream));
-
-        long t1 = System.currentTimeMillis();
-        System.out.printf("SAX: %dms\n", t1 - t0);
-    }
-
-    protected void loadStAX(URL location) throws Exception {
-        long t0 = System.currentTimeMillis();
-
-        XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
-        xmlInputFactory.setProperty("javax.xml.stream.isCoalescing", true);
-
-        InputStream inputStream = location.openStream();
-        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
-        XMLStreamReader xmlStreamReader = new StreamReaderDelegate(xmlInputFactory.createXMLStreamReader(inputStreamReader)) {
-            @Override
-            public String getPrefix() {
-                String prefix = super.getPrefix();
-
-                if (prefix != null && prefix.length() == 0) {
-                    prefix = null;
-                }
-
-                return prefix;
-            }
-
-            @Override
-            public String getAttributePrefix(int index) {
-                String attributePrefix = super.getAttributePrefix(index);
-
-                if (attributePrefix != null && attributePrefix.length() == 0) {
-                    attributePrefix = null;
-                }
-
-                return attributePrefix;
-            }
-        };
-
-        // Parse the XML stream
-        while (xmlStreamReader.hasNext()) {
-            int event = xmlStreamReader.next();
-
-            switch (event) {
-                case XMLStreamConstants.PROCESSING_INSTRUCTION: {
-                    xmlStreamReader.getPITarget().trim();
-                    xmlStreamReader.getPIData();
-                    break;
-                }
-
-                case XMLStreamConstants.COMMENT: {
-                    xmlStreamReader.getText();
-                    break;
-                }
-
-                case XMLStreamConstants.START_ELEMENT: {
-                    xmlStreamReader.getPrefix();
-                    xmlStreamReader.getLocalName();
-
-                    for (int i = 0, n = xmlStreamReader.getAttributeCount(); i < n; i++) {
-                        xmlStreamReader.getAttributePrefix(i);
-                        xmlStreamReader.getAttributeLocalName(i);
-                        xmlStreamReader.getAttributeValue(i);
-                    }
-
-                    break;
-                }
-
-                case XMLStreamConstants.END_ELEMENT: {
-                    break;
-                }
-
-                case XMLStreamConstants.CHARACTERS: {
-                    break;
-                }
-            }
-        }
-
-        long t1 = System.currentTimeMillis();
-        System.out.printf("StAX: %dms\n", t1 - t0);
-    }
-
-    protected void loadFXML(Class<?> type, String name) throws Exception {
-        long t0 = System.currentTimeMillis();
-        FXMLLoader fxmlLoader = new FXMLLoader(type.getResource(name));
-        fxmlLoader.load();
-
-        long t1 = System.currentTimeMillis();
-        System.out.printf("FXML: %dms\n", t1 - t0);
-    }
-
-    public static void main(String[] args) throws Exception {
-        launch(args);
-    }
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithCollection.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.sun.javafx.fxml.builder;
-
-import com.sun.javafx.collections.TrackableObservableList;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import javafx.beans.NamedArg;
-import javafx.collections.ListChangeListener;
-import javafx.collections.ObservableList;
-
-public class ClassWithCollection {
-    public double a;
-    public double b;
-    public List<Integer> list;
-    ObservableList<Integer> propertyList = new TrackableObservableList<Integer>() {
-        @Override
-        protected void onChanged(ListChangeListener.Change<Integer> c) {}
-    };
-
-    public ClassWithCollection(@NamedArg("a") double a) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public ClassWithCollection(@NamedArg("a") double a, @NamedArg("b") double b) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public ClassWithCollection(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") List<Integer> list) {
-        this.a = a;
-        this.b = b;
-        this.list = new ArrayList<>(list);
-    }
-
-    public ClassWithCollection(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") Integer... list) {
-        this.a = a;
-        this.b = b;
-        this.list = Arrays.asList(list);
-    }
-
-    public double getB() {
-        return b;
-    }
-
-    public void setB(double b) {
-        this.b = b;
-    }
-    public List<Integer> getList() {
-        return list;
-    }
-    
-    public List<Integer> getPropertyList() {
-        return propertyList;
-    }
-
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithDefaultValues.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.sun.javafx.fxml.builder;
-
-import java.util.List;
-import javafx.beans.NamedArg;
-import javafx.scene.paint.Color;
-import javafx.scene.paint.Paint;
-import javafx.stage.StageStyle;
-
-public class ClassWithDefaultValues {
-    public double a;
-    public double b;
-    public List<Integer> list;
-    public Color color;
-    public Paint fill;
-    public StageStyle stageStyle;
-
-    public ClassWithDefaultValues(
-            @NamedArg(value="a", defaultValue="1.0") double a,
-            @NamedArg(value="b", defaultValue="2.0") double b,
-            @NamedArg(value="color", defaultValue="red") Color color,
-            @NamedArg(value="fill", defaultValue="GREEN") Paint fill,
-            @NamedArg(value="stageStyle", defaultValue="DECORATED") StageStyle stageStyle            
-            ) {
-        this.a = a;
-        this.b = b;
-        this.color = color;
-        this.fill = fill;
-        this.stageStyle = stageStyle;
-    }
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithMixedConstructors.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.javafx.fxml.builder;
-
-import javafx.beans.NamedArg;
-
-public class ClassWithMixedConstructors {
-    public double a;
-    public double b;
-    public String c;
-    public String d;
-    
-    public ClassWithMixedConstructors(@NamedArg("a") double a, @NamedArg("b") double b) {
-        this.a = a;
-        this.b = b;
-    }    
-    
-    public ClassWithMixedConstructors(@NamedArg("c") String c, @NamedArg("d") String d) {
-        this.c = c;
-        this.d = d;
-    }    
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ClassWithReadOnlyCollection.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-package com.sun.javafx.fxml.builder;
-
-import com.sun.javafx.collections.TrackableObservableList;
-import javafx.beans.NamedArg;
-import javafx.collections.ListChangeListener;
-import javafx.collections.ObservableList;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by msladecek on 22.7.14.
- */
-public class ClassWithReadOnlyCollection {
-    public double a;
-    ObservableList<Integer> propertyList = new TrackableObservableList<Integer>() {
-        @Override
-        protected void onChanged(ListChangeListener.Change<Integer> c) {}
-    };
-
-    public ClassWithReadOnlyCollection() {
-
-    }
-
-    public ClassWithReadOnlyCollection(@NamedArg("a") double a) {
-        this.a = a;
-    }
-
-    public List<Integer> getPropertyList() {
-        return propertyList;
-    }
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ImmutableClass.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.javafx.fxml.builder;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import javafx.beans.NamedArg;
-
-public class ImmutableClass {
-    public double a;
-    public double b;
-    public List<Integer> list;
-    
-    public ImmutableClass(@NamedArg("a") int a, @NamedArg("b") int b) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public ImmutableClass(@NamedArg("a")float a, @NamedArg("b") float b) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public ImmutableClass(@NamedArg("a")int a, @NamedArg("b") float b) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public ImmutableClass(@NamedArg("a") float a, @NamedArg("b") int b) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public ImmutableClass(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") List<Integer> list) {
-        this.a = a;
-        this.b = b;
-        this.list = new ArrayList<>(list);
-    }
-
-    public ImmutableClass(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") Integer... list) {
-        this.a = a;
-        this.b = b;
-        this.list = Arrays.asList(list);
-    }
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/MutableClass.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.javafx.fxml.builder;
-
-import javafx.scene.Camera;
-import javafx.scene.Cursor;
-import javafx.scene.paint.Paint;
-
-public class MutableClass {
-
-    public int intValue;
-    public double doubleValue;
-    public String stringValue;
-    public Paint paint;
-    public Camera camera;
-    public Cursor cursor;
-
-    public MutableClass() {
-
-    }
-
-    public void setIntValue(int i) {
-        this.intValue = i;
-    }
-
-    public void setDoubleValue(double d) {
-        this.doubleValue = d;
-    }
-
-    public void setStringValue(String s) {
-        this.stringValue = s;
-    }
-
-    public void setPaint(Paint p) {
-        this.paint = p;
-    }
-
-    public void setCamera(Camera c) {
-        this.camera = c;
-    }
-
-    public void setCursor(Cursor c) {
-        this.cursor = c;
-    }
-
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/PartiallyMutableClass.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.javafx.fxml.builder;
-
-import javafx.beans.NamedArg;
-
-public class PartiallyMutableClass {
-    public int a;
-    public int b;
-    public int intValue;
-    public double doubleValue;
-    public String stringValue;
-
-    public PartiallyMutableClass(@NamedArg("a")int a, @NamedArg("b") int b) {
-        this.a = a;
-        this.b = b;
-    }
-
-    public PartiallyMutableClass(@NamedArg("a") String a, @NamedArg("b") String b) {
-        this.a = Integer.valueOf(a);
-        this.b = Integer.valueOf(b);
-    }
-
-    public PartiallyMutableClass(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("stringValue") String stringValue) {
-        this.a = a;
-        this.b = b;
-        this.stringValue = stringValue;
-    }
-
-    public void setIntValue(int i) {
-        this.intValue = i;
-    }
-
-    public void setDoubleValue(double d) {
-        this.doubleValue = d;
-    }
-
-    public void setStringValue(String s) {
-        this.stringValue = s;
-    }
-}
--- a/modules/fxml/src/test/java/com/sun/javafx/fxml/builder/ProxyBuilderTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-/*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.sun.javafx.fxml.builder;
-
-import java.util.Arrays;
-import java.util.List;
-import javafx.scene.paint.Color;
-import javafx.scene.paint.Paint;
-import javafx.stage.StageStyle;
-import org.junit.Test;
-import static org.junit.Assert.*;
-import org.junit.Ignore;
-
-public class ProxyBuilderTest {
-
-    @Test
-    public void testMutable() {
-        ProxyBuilder pb = new ProxyBuilder(MutableClass.class);
-        pb.put("intValue", 123);
-        pb.put("doubleValue", 1.23);
-        pb.put("stringValue", "This is String");
-
-        MutableClass result = (MutableClass) pb.build();
-        assertEquals(123, result.intValue);
-        assertEquals(1.23, result.doubleValue, 1e-5);
-        assertEquals("This is String", result.stringValue);
-    }
-
-    @Test
-    public void testImmutable() {
-        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        ImmutableClass result = (ImmutableClass) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertEquals(456, result.b, 1e-10);
-    }
-
-    @Test
-    public void testImmutableWithList() {
-        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        List<Integer> inputList = Arrays.asList(1, 2, 3, 4, 5);
-        pb.put("list", inputList);
-
-        ImmutableClass result = (ImmutableClass) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertEquals(456, result.b, 1e-10);
-        assertArrayEquals(inputList.toArray(), result.list.toArray());
-
-        pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        Integer[] inputArray = new Integer[]{1, 2, 3, 4, 5};
-        pb.put("list", inputArray);
-
-        result = (ImmutableClass) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertEquals(456, result.b, 1e-10);
-        assertArrayEquals(inputArray, result.list.toArray(new Integer[0]));
-
-        pb = new ProxyBuilder(ClassWithCollection.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        inputList = Arrays.asList(1, 2, 3, 4, 5);
-        pb.put("propertyList", inputList);
-
-        ClassWithCollection result2 = (ClassWithCollection) pb.build();
-        assertEquals(123, result2.a, 1e-10);
-        assertEquals(456, result2.b, 1e-10);
-        assertArrayEquals(inputList.toArray(), result2.propertyList.toArray());   
-    }
-
-    @Test
-    @Ignore
-    public void testImmutableTwoConstructorsWithSameArgNames() {
-        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        ImmutableClass result = (ImmutableClass) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertEquals(456, result.b, 1e-10);
-
-        pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456.1f);
-        result = (ImmutableClass) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertEquals(456.1, result.b, 1e-10);
-
-        pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123.1f);
-        pb.put("b", 456);
-        result = (ImmutableClass) pb.build();
-        assertEquals(123.1, result.a, 1e-10);
-        assertEquals(456, result.b, 1e-10);
-
-        pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("a", 123.1f);
-        pb.put("b", 456.1f);
-        result = (ImmutableClass) pb.build();
-        assertEquals(123.1, result.a, 1e-10);
-        assertEquals(456.1, result.b, 1e-10);
-    }
-
-    @Test
-    public void testPartiallyMutable() {
-        ProxyBuilder pb = new ProxyBuilder(PartiallyMutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        pb.put("intValue", 1);
-        pb.put("doubleValue", 1.2);
-        pb.put("stringValue", "This is String");
-
-        PartiallyMutableClass result = (PartiallyMutableClass) pb.build();
-        assertEquals(123, result.a);
-        assertEquals(456, result.b);
-        assertEquals(1, result.intValue);
-        assertEquals(1.2, result.doubleValue, 1e-5);
-        assertEquals("This is String", result.stringValue);
-    }
-
-    private void assertColorEquals(Color expected, Paint actualPaint) {
-        assertTrue(actualPaint instanceof Color);
-        final Color actual = (Color) actualPaint;
-        assertEquals(expected.getRed(), actual.getRed(), 1e-10);
-        assertEquals(expected.getGreen(), actual.getGreen(), 1e-10);
-        assertEquals(expected.getBlue(), actual.getBlue(), 1e-10);
-        assertEquals(expected.getOpacity(), actual.getOpacity(), 1e-10);
-    }
-
-    @Test
-    public void testDefaultValues() {
-        ProxyBuilder pb = new ProxyBuilder(ClassWithDefaultValues.class);
-        ClassWithDefaultValues result = (ClassWithDefaultValues) pb.build();
-        assertEquals(1, result.a, 1e-10);
-        assertEquals(2, result.b, 1e-10);
-        assertColorEquals(Color.RED, result.color);
-        assertColorEquals(Color.GREEN, result.fill);
-        assertEquals(StageStyle.DECORATED, result.stageStyle);
-
-        pb = new ProxyBuilder(ClassWithDefaultValues.class);
-        pb.put("a", 123);
-        pb.put("color", Color.BLUE);
-        result = (ClassWithDefaultValues) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertEquals(2, result.b, 1e-10);
-        assertColorEquals(Color.BLUE, result.color);
-        assertColorEquals(Color.GREEN, result.fill);
-        assertEquals(StageStyle.DECORATED, result.stageStyle);
-
-        //Integer[] inputArray = new Integer[] {1, 2, 3, 4, 5};
-        //assertArrayEquals(inputArray, result.list.toArray(new Integer[0]));
-    }
-
-    @Test
-    public void testImmutableWithValuesNotSet() {
-        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
-        ImmutableClass result = (ImmutableClass) pb.build();
-        assertEquals(0, result.a, 1e-10);
-        assertEquals(0, result.b, 1e-10);
-
-        pb = new ProxyBuilder(ImmutableClass.class);
-        pb.put("b", 123);
-        result = (ImmutableClass) pb.build();
-        assertEquals(0, result.a, 1e-10);
-        assertEquals(123, result.b, 1e-10);
-    }
-
-    @Test
-    public void testNonExistentProperties() {
-        ProxyBuilder pb = new ProxyBuilder(PartiallyMutableClass.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        pb.put("intValue", 1);
-        pb.put("doubleValue", 1.2);
-        pb.put("stringValue", "This is String");
-        pb.put("nonExistentValue", "This is non-existent String");
-
-        try {
-            PartiallyMutableClass result = (PartiallyMutableClass) pb.build();
-            fail("expected RuntimeException");
-        } catch (RuntimeException ex) {
-        }
-
-        pb = new ProxyBuilder(ClassWithMixedConstructors.class);
-        pb.put("a", 123);
-        pb.put("b", 456);
-        pb.put("c", "This is String C");
-        pb.put("d", "This is String D");
-        try {
-            ClassWithMixedConstructors result = (ClassWithMixedConstructors) pb.build();
-            fail("expected RuntimeException");
-        } catch (RuntimeException ex) {
-        }
-    }
-
-    @Test
-    public void testReadOnlyList() {
-        ProxyBuilder pb = new ProxyBuilder(ClassWithReadOnlyCollection.class);
-        pb.put("a", 123);
-
-        List<Integer> inputList = Arrays.asList(1, 2, 3, 4, 5);
-        pb.put("propertyList", inputList);
-
-        ClassWithReadOnlyCollection result = (ClassWithReadOnlyCollection) pb.build();
-        assertEquals(123, result.a, 1e-10);
-        assertArrayEquals(inputList.toArray(), result.propertyList.toArray());
-
-
-        pb = new ProxyBuilder(ClassWithReadOnlyCollection.class);
-
-        pb.put("propertyList", inputList);
-
-        result = (ClassWithReadOnlyCollection) pb.build();
-        assertArrayEquals(inputList.toArray(), result.propertyList.toArray());
-    }
-
-    @Test
-    public void testShortMethodNames() {
-        new ProxyBuilder<>(ShortMethodNames.class);
-    }
-
-    public static class ShortMethodNames {
-        public void get() {}
-        public void set() {}
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/AlertTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.scene.control.Alert;
-import javafx.scene.control.ButtonType;
-import static org.junit.Assert.assertArrayEquals;
-import org.junit.Test;
-
-public class AlertTest {
-
-    @Test
-    public void testAlertButtons() throws Exception {
-        Alert alert = FXMLLoader.load(getClass().getResource("alert.fxml"));
-
-        assertArrayEquals(new ButtonType[] {ButtonType.YES, ButtonType.NO}, alert.getButtonTypes().toArray());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/Alignment.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-public enum Alignment {
-    LEFT,
-    RIGHT,
-    CENTER
-}
--- a/modules/fxml/src/test/java/javafx/fxml/CompareVersionsTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class CompareVersionsTest {
-    @Test
-    public void testCompareJFXVersions() throws IOException {
-        assertTrue(FXMLLoader.compareJFXVersions("1.1", "1.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.1", "0.9.9") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("2", "1.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("2", "1.1.1") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("2", "1.2.3") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("2.1", "2.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("2.1.1.1", "2.1.1.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.5.2", "1.3.5") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0-ea", "2") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0_fcs", "2.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0", "2.0.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0.1", "3.0.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.2.1", "3.2.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.2.1-ea", "1.2.3") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("2", "1") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("5", "3") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("6", "5") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0.1", "3.0.0.0") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0.1", "3.0.0.0.0.1") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("8.0.0-ea", "2.2.5") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9-ea", "8.0.40") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9", "8.0.40") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9.1.2.3", "9.1") > 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9.2", "9.1.2.3") > 0);
-
-        assertTrue(FXMLLoader.compareJFXVersions("1", "1.0") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.0", "1") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3", "1.2.3") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1", "1") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("5", "5") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3.0-fcs", "1.2.3") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3_ea", "1.2.3.0.0.0") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3.0.0.0.0", "1.2.3") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9-ea", "9") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9-ea", "9.0.0.0") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9", "9.0.0.0") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9.0.0.0", "9") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9.0.1", "9.0.1.0") == 0);
-
-        assertTrue(FXMLLoader.compareJFXVersions("ABC", "1.2.3") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("a.b.c", "1.2.3") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3", "abc") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("abc", "abc") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3.a.b", "1.2.3") == 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.3", "1.2.3.*") == 0);
-
-        assertTrue(FXMLLoader.compareJFXVersions("0.9", "1.0") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1", "2") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1", "3") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1", "12") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3", "3.0.0.1.2") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1", "1.2") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2", "1.2.3") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.0", "1.2.1") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("1.2.0", "1.2.0.0.0.1") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.2.1", "3.2.2") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("3.0.0.1", "3.0.0.1.0.0.1") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("8.0.40", "9") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9.1", "9.1.2.3") < 0);
-        assertTrue(FXMLLoader.compareJFXVersions("9.1.2.3", "9.2") < 0);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/EventsTestController.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.event.ActionEvent;
-
-public class EventsTestController {
-    @FXML
-    Widget widget;
-
-    boolean called;
-
-    @FXML
-    protected void handleWidgetAction(ActionEvent event) {
-        called = true;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/ExpressionBindingController.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.beans.property.DoubleProperty;
-import javafx.beans.property.SimpleDoubleProperty;
-import javafx.beans.property.SimpleStringProperty;
-import javafx.beans.property.StringProperty;
-
-public class ExpressionBindingController {
-    private StringProperty nameProperty = new SimpleStringProperty(this, "name");
-    private DoubleProperty percentageProperty = new SimpleDoubleProperty(this, "percentage");
-
-    public ExpressionBindingController() {
-        setPercentage(0.5);
-    }
-
-    public String getName() {
-        return nameProperty.get();
-    }
-
-    public void setName(String value) {
-        nameProperty.set(value);
-    }
-
-    public StringProperty nameProperty() {
-        return nameProperty;
-    }
-
-    public Double getPercentage() {
-        return percentageProperty.get();
-    }
-
-    public void setPercentage(Double value) {
-        percentageProperty.set(value);
-    }
-
-    public DoubleProperty percentageProperty() {
-        return percentageProperty;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/javafx/fxml/FXMLLoaderShim.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package javafx.fxml;
+
+public class FXMLLoaderShim {
+
+    public static int compareJFXVersions(String rtVer, String nsVer) {
+        return FXMLLoader.compareJFXVersions(rtVer, nsVer);
+    }
+    
+}
--- a/modules/fxml/src/test/java/javafx/fxml/FXMLLoaderTest_FieldInjectionTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-package javafx.fxml;
-/*
- * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import javafx.scene.Node;
-import javafx.scene.Parent;
-import javafx.scene.shape.Rectangle;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-public class FXMLLoaderTest_FieldInjectionTest {
-
-    public static class SuperController {
-        @FXML private Parent root;
-
-        public final Parent getRoot() {
-            return root;
-        }
-
-    }
-
-    public static class SubController_1 extends SuperController {
-        @FXML private Rectangle rectangle;
-
-        public Rectangle getRectangle() {
-            return rectangle;
-        }
-    }
-    public static class SubController_2 extends SuperController {
-
-        @FXML private Node root;
-        @FXML private Rectangle rectangle;
-
-        public Rectangle getRectangle() {
-            return rectangle;
-        }
-
-        public Node getRootFromSub() {
-            return root;
-        }
-    }
-
-    @Test
-    public void testFieldInjectionInSuperClass() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("simple.fxml"));
-        SubController_1 controller = new SubController_1();
-        fxmlLoader.setController(controller);
-
-        fxmlLoader.load();
-
-        assertNotNull(controller.getRectangle());
-        assertNotNull(controller.getRoot());
-    }
-
-    @Test
-    public void testFieldInjectionInSuperClassNotSuppressed() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("simple.fxml"));
-        SubController_2 controller = new SubController_2();
-        fxmlLoader.setController(controller);
-
-        fxmlLoader.load();
-
-        assertNotNull(controller.getRectangle());
-        assertNotNull(controller.getRoot());
-        assertNotNull(controller.getRootFromSub());
-        assertEquals(controller.getRoot(), controller.getRootFromSub());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/FXMLLoader_BuilderTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-package javafx.fxml;
-/*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import javafx.scene.shape.TriangleMesh;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-
-public class FXMLLoader_BuilderTest {
-
-    @Test
-    public void testTriangleMeshBuilder() throws IOException {
-        TriangleMesh mesh = FXMLLoader.load(getClass().getResource("builders_trianglemesh.fxml"));
-        float[] refFloatArray = {0f, 1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f, 9f};
-        int[] refIntArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
-        assertArrayEquals(refIntArray, mesh.getFaces().toArray(new int[0]));
-        assertArrayEquals(refIntArray, mesh.getFaceSmoothingGroups().toArray(new int[0]));
-        assertArrayEquals(refFloatArray, mesh.getPoints().toArray(new float[0]), 1e-10f);
-        assertArrayEquals(refFloatArray, mesh.getTexCoords().toArray(new float[0]), 1e-10f);
-    }
-
-}
--- a/modules/fxml/src/test/java/javafx/fxml/FXMLLoader_EventsTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-package javafx.fxml;
-
-import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.scene.Scene;
-import javafx.scene.control.Button;
-import javafx.stage.Stage;
-import javafx.util.Callback;
-import org.junit.Test;
-
-import java.io.IOException;
-
-import static org.junit.Assert.*;
-
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-public class FXMLLoader_EventsTest {
-    @Test
-    public void testListEvents() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-        ListMapSetEventsTestController controller = (ListMapSetEventsTestController)fxmlLoader.getController();
-
-        assertFalse(controller.listWithParamCalled);
-        assertFalse(controller.listNoParamCalled);
-        // Test
-        widget.getChildren().add(new Widget("Widget 4"));
-        assertTrue(controller.listWithParamCalled);
-        assertFalse(controller.listNoParamCalled);
-    }
-
-    @Test
-    public void testMapEvents() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-        ListMapSetEventsTestController controller = (ListMapSetEventsTestController)fxmlLoader.getController();
-
-        assertFalse(controller.mapWithParamCalled);
-        assertFalse(controller.mapNoParamCalled);
-        // Test
-        widget.getProperties().put("d", 1000);
-
-        assertTrue(controller.mapWithParamCalled);
-        assertFalse(controller.mapNoParamCalled);
-    }
-
-    @Test
-    public void testSetEvents() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-        ListMapSetEventsTestController controller = (ListMapSetEventsTestController)fxmlLoader.getController();
-
-        assertFalse(controller.setWithParamCalled);
-        assertFalse(controller.setNoParamCalled);
-        // Test
-        widget.getSet().add("x");
-
-        assertTrue(controller.setWithParamCalled);
-        assertFalse(controller.setNoParamCalled);
-    }
-
-    @Test
-    public void testListEvents_NoParam() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"), null, null, new Callback<Class<?>, Object>() {
-            @Override
-            public Object call(Class<?> param) {
-                return new ListMapSetEventsTestController2();
-            }
-        });
-        Widget widget = (Widget)fxmlLoader.load();
-        ListMapSetEventsTestController2 controller = (ListMapSetEventsTestController2)fxmlLoader.getController();
-
-        assertFalse(controller.listNoParamCalled);
-        // Test
-        widget.getChildren().add(new Widget("Widget 4"));
-        assertTrue(controller.listNoParamCalled);
-    }
-
-    @Test
-    public void testMapEvents_NoParam() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"), null, null, new Callback<Class<?>, Object>() {
-            @Override
-            public Object call(Class<?> param) {
-                return new ListMapSetEventsTestController2();
-            }
-        });
-        Widget widget = (Widget)fxmlLoader.load();
-        ListMapSetEventsTestController2 controller = (ListMapSetEventsTestController2)fxmlLoader.getController();
-
-        assertFalse(controller.mapNoParamCalled);
-        // Test
-        widget.getProperties().put("d", 1000);
-
-        assertTrue(controller.mapNoParamCalled);
-    }
-
-    @Test
-    public void testSetEvents_NoParam() throws Exception {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"), null, null, new Callback<Class<?>, Object>() {
-            @Override
-            public Object call(Class<?> param) {
-                return new ListMapSetEventsTestController2();
-            }
-        });
-        Widget widget = (Widget)fxmlLoader.load();
-        ListMapSetEventsTestController2 controller = (ListMapSetEventsTestController2)fxmlLoader.getController();
-
-        assertFalse(controller.setNoParamCalled);
-        // Test
-        widget.getSet().add("x");
-
-        assertTrue(controller.setNoParamCalled);
-    }
-
-    @Test
-    public void testPropertyEvents_jfx2_deprecated() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test.fxml"));
-        fxmlLoader.setController(new PropertyEventsTestDeprecatedController());
-        fxmlLoader.load();
-
-        PropertyEventsTestDeprecatedController controller = fxmlLoader.getController();
-        assertEquals(controller.getRootName(), "abc");
-        assertEquals(controller.getChildName(), "def");
-
-        final String rootName = "123";
-        controller.getRoot().setName(rootName);
-        assertEquals(controller.getRootName(), rootName);
-
-        final String childName = "456";
-        controller.getChild().setName(childName);
-        assertEquals(controller.getChildName(), childName);
-    }
-
-    @Test
-    public void testPropertyEvents() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test.fxml"));
-        fxmlLoader.setController(new PropertyEventsTestController());
-        fxmlLoader.load();
-
-        PropertyEventsTestController controller = fxmlLoader.getController();
-        assertEquals(controller.getRootName(), "abc");
-        assertEquals(controller.getChildName(), "def");
-
-        final String rootName = "123";
-        controller.getRoot().setName(rootName);
-        assertEquals(controller.getRootName(), rootName);
-
-        final String childName = "456";
-        controller.getChild().setName(childName);
-        assertEquals(controller.getChildName(), childName);
-    }
-
-    @Test
-    public void testPropertyEvents_testNewValue() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test_value.fxml"));
-
-        fxmlLoader.load();
-        PropertyEventsTestValueController controller = fxmlLoader.getController();
-
-        assertEquals(controller.getRoot().getName(), controller.getRootName());
-        assertEquals(controller.getChild().getName(), controller.getChildName());
-    }
-
-    @Test
-    public void testPropertyEvents_testExpressionHandler() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test_expression.fxml"));
-        final boolean[] ref = new boolean[] { false };
-        fxmlLoader.getNamespace().put("manualAction", new ChangeListener<Object>() {
-            @Override
-            public void changed(ObservableValue<? extends Object> ov, Object o, Object n) {
-                ref[0] = true;
-            }
-        });
-        fxmlLoader.load();
-
-        Widget w = fxmlLoader.getRoot();
-        assertFalse(ref[0]);
-        w.setName("abc");
-        assertTrue(ref[0]);
-    }
-
-
-    @Test(expected = LoadException.class)
-    public void testPropertyEvents_testExpressionHandler_NA() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test_expression_na.fxml"));
-        fxmlLoader.load();
-    }
-
-    @Test
-    public void testEvents() throws  IOException{
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("events_test.fxml"));
-        Widget button = fxmlLoader.load();
-        EventsTestController controller = fxmlLoader.getController();
-        assertFalse(controller.called);
-        button.fire();
-        assertTrue(controller.called);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/FXMLLoader_ExpressionTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/*
- * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import com.sun.javafx.fxml.expression.Expression;
-import com.sun.javafx.fxml.expression.KeyPath;
-import javafx.collections.ObservableList;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.HashMap;
-
-import static com.sun.javafx.fxml.expression.Expression.*;
-import static com.sun.javafx.fxml.expression.Expression.set;
-import static com.sun.javafx.fxml.expression.Expression.valueOf;
-import static org.junit.Assert.assertEquals;
-
-public class FXMLLoader_ExpressionTest {
-
-    @Test
-    public void testIncompletePropertyOnPath() throws IOException {
-        ObservableList<IncompletePropertyContainer> list = FXMLLoader.load(getClass().getResource("expression_incomplete_property.fxml"));
-        list.get(0).setProp("12345");
-        assertEquals("12345", list.get(1).getProp());
-    }
-
-    @Test
-    public void testExpression() {
-        Expression add = add(3, 4);
-        assertEquals(add.evaluate(null), 7);
-
-        Expression subtract = subtract(5, 2);
-        assertEquals(subtract.evaluate(null), 3);
-
-        Expression multiply = multiply(add, subtract);
-        assertEquals(multiply.evaluate(null), 21);
-
-        Expression divide = divide(multiply, 3);
-        assertEquals(divide.evaluate(null), 7);
-
-        Expression concatenate = add("abc", "def");
-        assertEquals(concatenate.evaluate(null), "abcdef");
-
-        assertEquals(greaterThan(divide, 3).evaluate(null), true);
-        assertEquals(greaterThan(divide, 7).evaluate(null), false);
-        assertEquals(greaterThanOrEqualTo(divide, 7).evaluate(null), true);
-
-        assertEquals(lessThan(divide, 9).evaluate(null), true);
-        assertEquals(lessThan(divide, 7).evaluate(null), false);
-        assertEquals(lessThanOrEqualTo(divide, 7).evaluate(null), true);
-
-        assertEquals(equalTo("abcd", "abcd").evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression1() {
-        Expression expression = valueOf("1 + 2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 3);
-    }
-
-    @Test
-    public void testParseExpression1s() {
-        Expression expression = valueOf("1+2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 3);
-    }
-
-    @Test
-    public void testParseExpression2a() {
-        Expression expression = valueOf("3 + 4 * 2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
-    }
-
-    public void testParseExpression2as() {
-        Expression expression = valueOf("3+4*2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
-    }
-
-    @Test
-    public void testParseExpression2b() {
-        Expression expression = valueOf("3 + (4 * 2)");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
-    }
-    @Test
-    public void testParseExpression2bs() {
-        Expression expression = valueOf("3+(4*2)");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
-    }
-
-    @Test
-    public void testParseExpression2c() {
-        Expression expression = valueOf("(3 + 4) * 2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 14);
-    }
-
-    @Test
-    public void testParseExpression2d() {
-        Expression expression = valueOf("7.0 * 0.5 - 2 * 3.5");
-        assertEquals(expression.evaluate(null), -3.5);
-    }
-
-    @Test
-    public void testParseExpression2e() {
-        Expression expression = valueOf("(10 * 5) - 13");
-        assertEquals(expression.evaluate(null), 37L);
-    }
-
-    @Test
-    public void testParseExpression3a() {
-        Expression expression = valueOf("'abc' == 'abc'");
-        assertEquals(expression.evaluate(null), true);
-    }
-    @Test
-    public void testParseExpression3as() {
-        Expression expression = valueOf("'abc'=='abc'");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3b() {
-        Expression expression = valueOf("'abc' != 'abc'");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression3bc() {
-        Expression expression = valueOf("'abc'!='abc'");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression3c() {
-        Expression expression = valueOf("'abc' == 'def'");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression3d() {
-        Expression expression = valueOf("'abc' != 'def'");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3e() {
-        Expression expression = valueOf("3 > 2");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3es() {
-        Expression expression = valueOf("3>2");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression3f() {
-        Expression expression = valueOf("3 < 2");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression4() {
-        assertEquals(valueOf("null").evaluate(null), null);
-        assertEquals(valueOf("true").evaluate(null), true);
-        assertEquals(valueOf("false").evaluate(null), false);
-    }
-
-
-    @Test
-    public void testParseExpression5() {
-        HashMap<String, Object> namespace = new HashMap<String, Object>();
-
-        HashMap<String, Object> a = new HashMap<String, Object>();
-        namespace.put("a", a);
-
-        HashMap<String, Object> b = new HashMap<String, Object>();
-        a.put("b", b);
-
-        b.put("c", 5);
-
-        String path = "a['b'].c";
-
-        Expression expression = valueOf(path);
-
-        System.out.println(expression + " = " + expression.evaluate(namespace));
-        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 5);
-
-        expression = valueOf("3 * " + path + " + 2");
-        System.out.println(expression + " = " + expression.evaluate(namespace));
-        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 17);
-
-        set(namespace, KeyPath.parse(path), 10);
-        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 32);
-
-        expression = valueOf("nu['b'].c");
-        System.out.println(expression + " = " + expression.evaluate(namespace));
-        assertEquals(expression.evaluate(namespace), null);
-    }
-
-    @Test
-    public void testParseExpression6() {
-        Expression expression = valueOf("-2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), -2);
-
-        expression = valueOf("3 + -2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 1);
-        System.out.println(expression + " = " + expression.evaluate(null));
-    }
-
-    @Test
-    public void testParseExpression6a() {
-        Expression expression = valueOf("--2");
-        assertEquals(((Number)expression.evaluate(null)).intValue(), 2);
-    }
-
-    @Test
-    public void testParseExpression7() {
-        Expression expression = valueOf("!false");
-        assertEquals(expression.evaluate(null), true);
-
-        expression = valueOf("true && !false");
-        System.out.println(expression + " = " + expression.evaluate(null));
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression7a() {
-        Expression expression = valueOf("!!false");
-        assertEquals(expression.evaluate(null), false);
-    }
-
-    @Test
-    public void testParseExpression8a() {
-        Expression expression = valueOf("\"a\" + \"b\"");
-        assertEquals(expression.evaluate(null), "ab");
-    }
-
-    @Test
-    public void testParseExpression8b() {
-        Expression expression = valueOf("'a' + 'b'");
-        assertEquals(expression.evaluate(null), "ab");
-    }
-
-    @Test
-    public void testParseExpression8c() {
-        Expression expression = valueOf("'1' + 2");
-        assertEquals(expression.evaluate(null), "12");
-    }
-
-    @Test
-    public void testParseExpression8d() {
-        Expression expression = valueOf("1 + '2'");
-        assertEquals(expression.evaluate(null), "12");
-    }
-
-    @Test
-    public void testParseExpression8e() {
-        Expression expression = valueOf("1 + '2' == '12'");
-        assertEquals(expression.evaluate(null), true);
-    }
-
-    @Test
-    public void testParseExpression8f() {
-        Expression expression = valueOf("1 + 2 + ' fiddlers'");
-        assertEquals(expression.evaluate(null), "3 fiddlers");
-    }
-
-    @Test
-    public void testParseExpression8g() {
-        Expression expression = valueOf("'fiddlers ' + 1 + 2");
-        assertEquals(expression.evaluate(null), "fiddlers 12");
-    }
-
-    @Test
-    public void testMarkup() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("expression_binding.fxml"));
-        fxmlLoader.load();
-
-        ExpressionBindingController controller = (ExpressionBindingController)fxmlLoader.getController();
-
-        Widget childWidget1 = (Widget)fxmlLoader.getNamespace().get("childWidget1");
-        assertEquals(childWidget1.isEnabled(), false);
-
-        controller.setPercentage(0.85);
-        assertEquals(childWidget1.isEnabled(), true);
-    }
-
-    @Test
-    public void testEscapeSequences() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("expression_escapechars.fxml"));
-        fxmlLoader.load();
-
-        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
-        assertEquals(widget1.getName(), fxmlLoader.getNamespace().get("abc"));
-
-        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
-        assertEquals(widget2.getName(), "$abc");
-
-        Widget widget3 = (Widget)fxmlLoader.getNamespace().get("widget3");
-        assertEquals(widget3.getName(), "$abc");
-
-        Widget widget4 = (Widget)fxmlLoader.getNamespace().get("widget4");
-        assertEquals(widget4.getName(), "\\abc");
-    }
-
-
-}
--- a/modules/fxml/src/test/java/javafx/fxml/FXMLLoader_ScriptTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-package javafx.fxml;
-/*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import static org.junit.Assert.*;
-
-public class FXMLLoader_ScriptTest {
-    @Test
-    @SuppressWarnings("deprecation")
-    public void testStaticScriptLoad() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("static_script_load.fxml"));
-        fxmlLoader.impl_setStaticLoad(true);
-        AtomicBoolean scriptCalled = new AtomicBoolean();
-        AtomicBoolean scriptEndCalled = new AtomicBoolean();
-        fxmlLoader.setLoadListener(new LoadListener() {
-
-            @Override
-            public void readImportProcessingInstruction(String target) {
-            }
-
-            @Override
-            public void readLanguageProcessingInstruction(String language) {
-            }
-
-            @Override
-            public void readComment(String comment) {
-            }
-
-            @Override
-            public void beginInstanceDeclarationElement(Class<?> type) {
-            }
-
-            @Override
-            public void beginUnknownTypeElement(String name) {
-            }
-
-            @Override
-            public void beginIncludeElement() {
-            }
-
-            @Override
-            public void beginReferenceElement() {
-            }
-
-            @Override
-            public void beginCopyElement() {
-            }
-
-            @Override
-            public void beginRootElement() {
-            }
-
-            @Override
-            public void beginPropertyElement(String name, Class<?> sourceType) {
-            }
-
-            @Override
-            public void beginUnknownStaticPropertyElement(String name) {
-            }
-
-            @Override
-            public void beginScriptElement() {
-                assertFalse(scriptCalled.getAndSet(true));
-            }
-
-            @Override
-            public void beginDefineElement() {
-            }
-
-            @Override
-            public void readInternalAttribute(String name, String value) {
-            }
-
-            @Override
-            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
-            }
-
-            @Override
-            public void readUnknownStaticPropertyAttribute(String name, String value) {
-            }
-
-            @Override
-            public void readEventHandlerAttribute(String name, String value) {
-            }
-
-            @Override
-            public void endElement(Object value) {
-                if (value instanceof String && ((String) value).contains("doSomething")) {
-                    assertTrue(scriptCalled.get());
-                    assertFalse(scriptEndCalled.getAndSet(true));
-                }
-            }
-        });
-
-        fxmlLoader.load();
-        assertTrue(scriptCalled.get());
-        assertTrue(scriptEndCalled.get());
-    }
-
-    @Test
-    public void testScriptHandler() throws IOException {
-
-        FXMLLoader loader = new FXMLLoader(getClass().getResource("script_handler.fxml"));
-        loader.load();
-
-        Widget w = (Widget) loader.getNamespace().get("w");
-        assertNotNull(w);
-        loader.getNamespace().put("actionDone", new AtomicBoolean(false));
-        w.fire();
-        assertTrue(((AtomicBoolean) loader.getNamespace().get("actionDone")).get());
-    }
-
-    @Test
-    public void testExternalScriptHandler() throws IOException {
-
-        FXMLLoader loader = new FXMLLoader(getClass().getResource("script_handler_external.fxml"));
-        loader.load();
-
-        Widget w = (Widget) loader.getNamespace().get("w");
-        assertNotNull(w);
-        loader.getNamespace().put("actionDone", new AtomicBoolean(false));
-        w.fire();
-        assertTrue(((AtomicBoolean)loader.getNamespace().get("actionDone")).get());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/IncompletePropertyContainer.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.beans.property.SimpleStringProperty;
-import javafx.beans.property.StringProperty;
-
-/**
-* Created by msladecek on 3/24/14.
-*/
-public class IncompletePropertyContainer {
-
-    private StringProperty prop = new SimpleStringProperty("");
-
-    public String getProp() {
-        return prop.get();
-    }
-
-    public void setProp(String s) {
-        prop.set(s);
-    }
-
-    public StringProperty propProperty() {
-        return prop;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/ListMapSetEventsTestController.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.net.URL;
-import java.util.*;
-
-import javafx.collections.*;
-
-public class ListMapSetEventsTestController
-        implements Initializable {
-    @FXML private Widget root;
-
-    boolean listWithParamCalled = false;
-    boolean listNoParamCalled = false;
-    boolean setWithParamCalled = false;
-    boolean setNoParamCalled = false;
-    boolean mapWithParamCalled = false;
-    boolean mapNoParamCalled = false;
-
-
-    @Override
-    public void initialize(URL location, ResourceBundle resources) {
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handleChildListChange(ListChangeListener.Change<Widget> event) {
-        listWithParamCalled = true;
-    }
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handleChildListChange() {
-        listNoParamCalled = true;
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handlePropertiesChange(MapChangeListener.Change<String, Object> event) {
-        mapWithParamCalled = true;
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handlePropertiesChange() {
-        mapNoParamCalled = true;
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handleSetChange(SetChangeListener.Change<String> event) {
-        setWithParamCalled = true;
-    }
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handleSetChange() {
-        setNoParamCalled = true;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/ListMapSetEventsTestController2.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package javafx.fxml;
-
-import javafx.collections.ListChangeListener;
-import javafx.collections.MapChangeListener;
-import javafx.collections.SetChangeListener;
-
-import java.net.URL;
-import java.util.ResourceBundle;
-
-public class ListMapSetEventsTestController2 implements Initializable {
-    @FXML private Widget root;
-
-    boolean listNoParamCalled = false;
-    boolean setNoParamCalled = false;
-    boolean mapNoParamCalled = false;
-
-
-    @Override
-    public void initialize(URL location, ResourceBundle resources) {
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handleChildListChange() {
-        listNoParamCalled = true;
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handlePropertiesChange() {
-        mapNoParamCalled = true;
-    }
-
-    @FXML
-    @SuppressWarnings("unchecked")
-    protected void handleSetChange() {
-        setNoParamCalled = true;
-    }
-}
\ No newline at end of file
--- a/modules/fxml/src/test/java/javafx/fxml/MyWidget.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-
-public class MyWidget extends Widget {
-    @FXML private Widget childWidget;
-
-    private boolean childWidgetEnabledChanged = false;
-
-    public MyWidget() {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19870.fxml"));
-        fxmlLoader.setRoot(this);
-        fxmlLoader.setController(this);
-
-        try {
-            fxmlLoader.load();
-        } catch (IOException exception) {
-            throw new RuntimeException(exception);
-        }
-
-        childWidget.setEnabled(false);
-    }
-
-    public boolean getChildWidgetEnabledChanged() {
-        return childWidgetEnabledChanged;
-    }
-
-    @FXML
-    protected void handleChildWidgetEnabledChange() {
-        childWidgetEnabledChanged = true;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/PropertyEventsTestController.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.beans.value.ObservableValue;
-import javafx.event.Event;
-
-import java.net.URL;
-import java.util.ResourceBundle;
-
-public class PropertyEventsTestController implements Initializable {
-    @FXML private Widget root;
-    @FXML private Widget child;
-
-    private String rootName = null;
-    private String childName = null;
-
-    @Override
-    public void initialize(URL location, ResourceBundle resources) {
-        updateRootName();
-        updateChildName();
-    }
-
-    public Widget getRoot() {
-        return root;
-    }
-
-    public String getRootName() {
-        return rootName;
-    }
-
-    public Widget getChild() {
-        return child;
-    }
-
-    public String getChildName() {
-        return childName;
-    }
-
-    @FXML
-    protected void handleRootNameChange() {
-        updateRootName();
-    }
-
-    @FXML
-    protected void handleChildNameChange() {
-        throw new RuntimeException();
-    }
-
-    @FXML
-    protected void handleChildNameChange(ObservableValue value, String oldV, String newV) {
-        updateChildName();
-    }
-
-    private void updateRootName() {
-        rootName = root.getName();
-    }
-
-    private void updateChildName() {
-        childName = child.getName();
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/PropertyEventsTestDeprecatedController.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.event.Event;
-
-import java.net.URL;
-import java.util.ResourceBundle;
-
-public class PropertyEventsTestDeprecatedController implements Initializable {
-    @FXML private Widget root;
-    @FXML private Widget child;
-
-    private String rootName = null;
-    private String childName = null;
-
-    @Override
-    public void initialize(URL location, ResourceBundle resources) {
-        updateRootName();
-        updateChildName();
-    }
-
-    public Widget getRoot() {
-        return root;
-    }
-
-    public String getRootName() {
-        return rootName;
-    }
-
-    public Widget getChild() {
-        return child;
-    }
-
-    public String getChildName() {
-        return childName;
-    }
-
-    @FXML
-    protected void handleRootNameChange() {
-        updateRootName();
-    }
-
-    @FXML
-    protected void handleChildNameChange() {
-        throw new RuntimeException();
-    }
-
-    @FXML
-    protected void handleChildNameChange(Event event) {
-        updateChildName();
-    }
-
-    private void updateRootName() {
-        rootName = root.getName();
-    }
-
-    private void updateChildName() {
-        childName = child.getName();
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/PropertyEventsTestValueController.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.beans.property.Property;
-
-public class PropertyEventsTestValueController extends RT_16722ControllerA {
-    @FXML protected Widget child;
-
-    private String childName = null;
-
-    public Widget getChild() {
-        return child;
-    }
-
-    public String getChildName() {
-        return childName;
-    }
-
-    @FXML
-    protected void handleChildNameChange(Property prop, String oldS, String newS) {
-        childName = newS;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_15524Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.Arrays;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_15524Test {
-    @Test
-    public void testListAndArray() throws IOException {
-        Widget widget = FXMLLoader.load(getClass().getResource("rt_15524.fxml"));
-
-        assertEquals(widget.getStyles(), Arrays.asList(new String[]{"a", "b", "c"}));
-        assertTrue(Arrays.equals(widget.getRatios(), new float[] {1.0f, 2.0f, 3.0f}));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16722ControllerA.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.beans.value.ObservableValue;
-
-public abstract class RT_16722ControllerA {
-    @FXML protected Widget root;
-
-    private String rootName = null;
-
-    public Widget getRoot() {
-        return root;
-    }
-
-    public String getRootName() {
-        return rootName;
-    }
-
-    @FXML
-    // Note: Object class is used here for purpose
-    protected void handleRootNameChange(ObservableValue value, Object oldO, Object newO ) {
-        rootName = (String)newO;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16724Controller.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-public class RT_16724Controller {
-    public RT_16724Controller(boolean flag) {
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16724ControllerFactory.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.util.Callback;
-
-public class RT_16724ControllerFactory implements Callback<Class<?>, Object> {
-    @Override
-    public Object call(Class<?> type) {
-        return (type == RT_16724Controller.class) ? new RT_16724Controller(true) : null;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16724Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_16724Test {
-    @Test
-    public void testControllerFactory() throws IOException {
-        FXMLLoader.load(getClass().getResource("rt_16724.fxml"), null, null,
-            new RT_16724ControllerFactory());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16815Controller.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-public class RT_16815Controller {
-    public RT_16815Controller(boolean flag) {
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16815ControllerFactory.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.util.Callback;
-
-public class RT_16815ControllerFactory implements Callback<Class<?>, Object> {
-    @Override
-    public Object call(Class<?> type) {
-        return (type == RT_16815Controller.class) ? new RT_16815Controller(true) : null;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16815Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.ResourceBundle;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_16815Test {
-    @Test
-    public void testControllerFactory() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_16815.fxml"),
-            ResourceBundle.getBundle("javafx/fxml/rt_16815"), null,
-            new RT_16815ControllerFactory());
-
-        Widget widget = (Widget)fxmlLoader.load();
-        assertEquals(widget.getName(), "My Widget");
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_16977Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_16977Test {
-    @Test
-    public void testEmptyArrayProperty() throws Exception {
-        Widget widget = FXMLLoader.load(getClass().getResource("rt_16977.fxml"));
-        assertEquals(widget.getRatios().length, 0);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_18218Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.Map;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_18218Test {
-    @Test
-    @SuppressWarnings({"unchecked", "deprecation"})
-    public void testStaticScriptLoad() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18218.fxml"));
-        fxmlLoader.impl_setStaticLoad(true);
-        fxmlLoader.setLoadListener(new LoadListener() {
-            private String unknownStaticPropertyElementName = null;
-
-            @Override
-            public void readImportProcessingInstruction(String target) {
-            }
-
-            @Override
-            public void readLanguageProcessingInstruction(String language) {
-            }
-
-            @Override
-            public void readComment(String comment) {
-            }
-
-            @Override
-            public void beginInstanceDeclarationElement(Class<?> type) {
-            }
-
-            @Override
-            public void beginUnknownTypeElement(String name) {
-            }
-
-            @Override
-            public void beginIncludeElement() {
-            }
-
-            @Override
-            public void beginReferenceElement() {
-            }
-
-            @Override
-            public void beginCopyElement() {
-            }
-
-            @Override
-            public void beginRootElement() {
-            }
-
-            @Override
-            public void beginPropertyElement(String name, Class<?> sourceType) {
-            }
-
-            @Override
-            public void beginUnknownStaticPropertyElement(String name) {
-                unknownStaticPropertyElementName = name;
-            }
-
-            @Override
-            public void beginScriptElement() {
-            }
-
-            @Override
-            public void beginDefineElement() {
-            }
-
-            @Override
-            public void readInternalAttribute(String name, String value) {
-            }
-
-            @Override
-            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
-            }
-
-            @Override
-            public void readUnknownStaticPropertyAttribute(String name, String value) {
-                assertEquals(name, "Gadget.bar");
-                assertEquals(value, "123456");
-            }
-
-            @Override
-            public void readEventHandlerAttribute(String name, String value) {
-            }
-
-            @Override
-            public void endElement(Object value) {
-                if (unknownStaticPropertyElementName != null) {
-                    if (unknownStaticPropertyElementName.equals("Gadget.bar")) {
-                        assertEquals(value, "abcdef");
-                    } else if (unknownStaticPropertyElementName.equals("Gadget.baz")) {
-                        assertEquals(value.getClass(), Widget.class);
-                    } else {
-                        throw new RuntimeException();
-                    }
-
-                    unknownStaticPropertyElementName = null;
-                }
-            }
-        });
-
-        fxmlLoader.load();
-
-        Map<String, Object> gadget = (Map<String, Object>)fxmlLoader.getNamespace().get("gadget");
-        assertNotNull(gadget);
-
-        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
-        assertNotNull(widget2);
-        assertEquals(widget2.getName(), "Widget 2");
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_18933Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_18933Test {
-    @Test(expected=LoadException.class)
-    public void testDefaultListProperty() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_18933.fxml"));
-        fxmlLoader.load();
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_19008Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_19008Test {
-    @Test(expected=NullPointerException.class)
-    public void testMissingResource() throws IOException {
-        FXMLLoader.load(getClass().getResource("rt_19008.fxml"));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_19112Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19112Test {
-    @Test
-    public void testStaticProperty() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19112.fxml"));
-        fxmlLoader.load();
-
-        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
-        assertEquals(Widget.getAlignment(widget1), Alignment.LEFT);
-
-        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
-        assertEquals(Widget.getAlignment(widget2), Alignment.RIGHT);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_19139Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.util.Arrays;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19139Test {
-    @Test
-    public void testStaticProperty() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19139.fxml"));
-        Widget widget = (Widget)fxmlLoader.load();
-
-        assertEquals(widget.getValues(), Arrays.asList(new String[] {"One", "Two", "Three"}));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_19228Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19228Test {
-    @Test
-    public void testConstantValue() throws IOException {
-        Widget widget = (Widget)FXMLLoader.load(getClass().getResource("rt_19228.fxml"));
-        assertEquals(widget.getNumber(), Widget.TEN);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_19329Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_19329Test {
-    @Test(expected=IOException.class)
-    public void testIncludeException() throws IOException {
-        FXMLLoader.load(getClass().getResource("rt_19329.fxml"));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_19870Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_19870Test {
-    @Test
-    public void testCustomWidget() {
-        MyWidget myWidget = new MyWidget();
-        assertTrue(myWidget.getChildWidgetEnabledChanged());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_20082ClassLoader.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-public class RT_20082ClassLoader extends ClassLoader {
-    public static int loadCount = 0;
-
-    public RT_20082ClassLoader() {
-        super(getSystemClassLoader());
-    }
-
-    @Override
-    protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
-        loadCount++;
-        return super.loadClass(name, resolve);
-    }
-
-    @Override
-    public Class<?> findClass(String name) throws ClassNotFoundException {
-        return super.findClass(name);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_20082Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_20082Test {
-    @Test
-    public void testInheritedClassLoader() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_20082.fxml"));
-        fxmlLoader.setClassLoader(new RT_20082ClassLoader());
-
-        fxmlLoader.load();
-        assertEquals(RT_20082ClassLoader.loadCount, 2);
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_20471Controller.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.net.URL;
-import java.util.ResourceBundle;
-
-public class RT_20471Controller {
-    @FXML private URL location;
-    @FXML private ResourceBundle resources;
-
-    private boolean initialized = false;
-
-    @FXML protected void initialize() {
-        initialized = true;
-    }
-
-    public URL getLocation() {
-        return location;
-    }
-
-    public ResourceBundle getResources() {
-        return resources;
-    }
-
-    public boolean isInitialized() {
-        return initialized;
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_20471Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ResourceBundle;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_20471Test {
-    @Test
-    public void testControllerInjection() throws IOException {
-        URL location = getClass().getResource("rt_20471.fxml");
-        ResourceBundle resources = ResourceBundle.getBundle("javafx.fxml.rt_20471");
-        FXMLLoader fxmlLoader = new FXMLLoader(location, resources);
-
-        fxmlLoader.load();
-        RT_20471Controller controller = fxmlLoader.getController();
-        assertEquals(controller.getLocation(), location);
-        assertEquals(controller.getResources(), resources);
-        assertTrue(controller.isInitialized());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_22864.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.application.Application;
-import javafx.scene.Scene;
-import javafx.stage.Stage;
-
-public class RT_22864 extends Application {
-   @Override
-   public void start(Stage primaryStage) throws Exception {
-       FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_22864.fxml"));
-       primaryStage.setScene((Scene)fxmlLoader.load());
-       primaryStage.show();
-   }
-
-   public static void main(String[] args) {
-       launch(args);
-   }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_22971Controller.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.util.ResourceBundle;
-
-public class RT_22971Controller {
-    private ResourceBundle resources;
-
-    public RT_22971Controller() {
-        resources = ResourceBundle.getBundle(RT_22971Test.class.getPackage().getName()
-            + ".rt_22971");
-    }
-
-    public String getFoo() {
-        return resources.getString("foo");
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_22971Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.net.URL;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_22971Test {
-    @Test
-    public void testResourcesInjection() throws IOException {
-        URL location = getClass().getResource("rt_22971.fxml");
-        FXMLLoader fxmlLoader = new FXMLLoader(location);
-        fxmlLoader.load();
-        RT_22971Controller controller = fxmlLoader.getController();
-        assertEquals(controller.getFoo(), "bar");
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_23447.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.application.Application;
-import javafx.scene.Scene;
-import javafx.scene.layout.Pane;
-import javafx.stage.Stage;
-
-public class RT_23447 extends Application {
-   @Override
-   public void start(Stage primaryStage) throws Exception {
-       FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_23447.fxml"));
-       primaryStage.setScene(new Scene((Pane)fxmlLoader.load()));
-       primaryStage.show();
-   }
-
-   public static void main(String[] args) {
-       launch(args);
-   }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_23519Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import javafx.scene.control.Button;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_23519Test {
-    
-    @Test
-    public void testId() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_23519.fxml"));
-        fxmlLoader.load();
-
-        Button btn = (Button) fxmlLoader.getNamespace().get("fxid");
-        assertEquals(btn.getId(), "ButtonID");
-    }
-    
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_24380Controller.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-public class RT_24380Controller extends RT_24380ControllerBase {
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_24380ControllerBase.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-public class RT_24380ControllerBase {
-    public RT_24380ControllerBase() {
-        initialize();
-    }
-
-    private void initialize() {
-        // No-op
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_24380Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-
-import org.junit.Test;
-
-public class RT_24380Test {
-    @Test
-    public void testProtectedInitializeMethod() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_24380.fxml"));
-        fxmlLoader.load();
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_25494_Cycle_DetectionTest.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class RT_25494_Cycle_DetectionTest {
-    
-    @Test(expected=IOException.class) 
-    public void test_dummy_cycle() throws Exception {
-        FXMLLoader.load(RT_25494_Cycle_DetectionTest.class.getResource("dummy-cycle.fxml"));
-    }
-    
-    @Test(expected=IOException.class) 
-    public void test_one_2_one_cycle() throws Exception {
-        FXMLLoader.load(RT_25494_Cycle_DetectionTest.class.getResource("one-2-one-cycle.fxml"));
-    }
-    
-    @Test(expected=IOException.class) 
-    public void test_cycle() throws Exception {
-        FXMLLoader.load(RT_25494_Cycle_DetectionTest.class.getResource("cycle.fxml"));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_26449Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-
-import org.junit.Test;
-
-public class RT_26449Test {
-    @Test(expected=LoadException.class)
-    public void testRootNotSet() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_26449.fxml"));
-        fxmlLoader.load();
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_27529Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.ResourceBundle;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_27529Test {
-    
-    @Test
-    public void testListAndArrayWithResources() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_27529_1.fxml"),
-            ResourceBundle.getBundle("javafx/fxml/rt_27529"));
-            
-        Widget widget = (Widget)fxmlLoader.load();
-        assertEquals(Arrays.asList(new String[]{"a", "b", "c"}), widget.getStyles());
-        assertTrue(Arrays.equals(new String[]{"a", "b", "c"}, widget.getNames()));
-        assertTrue(Arrays.equals(new float[] {1.0f, 2.0f, 3.0f}, widget.getRatios()));
-    }
-    
-    @Test
-    public void testListAndArrayWithEscapes() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_27529_2.fxml"),
-            ResourceBundle.getBundle("javafx/fxml/rt_27529"));
-        fxmlLoader.load();
-            
-        Widget widget = (Widget)fxmlLoader.getNamespace().get("widget1");
-        assertEquals(Arrays.asList(new String[]{"@a", "%b", "$c", "@c", "%d", "$e"}), widget.getStyles());
-        assertTrue(Arrays.equals(  new String[]{"@a", "%b", "$c", "@c", "%d", "$e"}, widget.getNames()));
-    }
-    
-    @Test
-    public void testListAndArrayWithRelativePath() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_27529_3.fxml"),
-            ResourceBundle.getBundle("javafx/fxml/rt_27529"));
-            
-        Widget widget = (Widget)fxmlLoader.load();
-        assertEquals(Arrays.asList(new String[]{
-            new URL(fxmlLoader.getLocation(), "a").toString(),
-            new URL(fxmlLoader.getLocation(), "b").toString(),
-            new URL(fxmlLoader.getLocation(), "c").toString()}), widget.getStyles());
-    }
-    
-    @Test
-    public void testListAndArrayWithReference() throws IOException {
-        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_27529_4.fxml"),
-            ResourceBundle.getBundle("javafx/fxml/rt_27529"));
-            
-        fxmlLoader.load();
-        Widget widget = (Widget)fxmlLoader.getNamespace().get("widget1");
-        assertEquals(Arrays.asList(new String[]{"ABC", "ABC"}), widget.getStyles());
-        assertTrue(Arrays.equals(new String[]{"ABC", "ABC"}, widget.getNames()));
-        assertTrue(Arrays.equals(new float[] {1.0f, 1.0f}, widget.getRatios()));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_34146Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import java.io.IOException;
-import org.junit.Assert;
-import org.junit.Test;
-
-public final class RT_34146Test {
-    @Test
-    public void testCanCallAbstractMethodFromPrivateClass() throws IOException {
-        final FXMLLoader fxmlLoader =
-                new FXMLLoader(getClass().getResource("rt_34146.fxml"));
-        
-        final ConcreteController concreteController =
-                new ConcreteController();
-        fxmlLoader.setController(concreteController);
-        final Widget widget = fxmlLoader.<Widget>load();
-        widget.fire();
-
-        Assert.assertTrue(concreteController.getActionHandlerCalled());
-    }
-
-    private static abstract class AbstractController {
-        @FXML
-        protected abstract void actionHandler();
-    }
-
-    private static final class ConcreteController extends AbstractController {
-        private boolean actionHandlerCalled;
-
-        @Override
-        protected void actionHandler() {
-            actionHandlerCalled = true;
-        }
-
-        boolean getActionHandlerCalled() {
-            return actionHandlerCalled;
-        }
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_36633Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.scene.control.Menu;
-import javafx.scene.control.MenuBar;
-import javafx.scene.control.MenuItem;
-import javafx.scene.control.Tab;
-import javafx.scene.control.TabPane;
-import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableView;
-import javafx.scene.layout.VBox;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class RT_36633Test {
-    @Test public void test_rt36633_tableColumn() throws Exception {
-        VBox pane = FXMLLoader.load(getClass().getResource("rt_36633.fxml"));
-        TableView tableView = (TableView) pane.getChildren().get(0);
-        TableColumn column = (TableColumn) tableView.getColumns().get(0);
-
-        assertEquals("rt36633_tableColumn", column.getId());
-    }
-
-    @Test public void test_rt36633_tab() throws Exception {
-        VBox pane = FXMLLoader.load(getClass().getResource("rt_36633.fxml"));
-        TabPane tabPane = (TabPane) pane.getChildren().get(1);
-        Tab tab = tabPane.getTabs().get(0);
-
-        assertEquals("rt36633_tab", tab.getId());
-    }
-
-    @Test public void test_rt36633_menuItem() throws Exception {
-        VBox pane = FXMLLoader.load(getClass().getResource("rt_36633.fxml"));
-        MenuBar menuBar = (MenuBar) pane.getChildren().get(2);
-        Menu menu = menuBar.getMenus().get(0);
-        MenuItem menuItem = menu.getItems().get(0);
-
-        assertEquals("rt36633_menu", menu.getId());
-        assertEquals("rt36633_menuItem", menuItem.getId());
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/RT_40335Test.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import javafx.scene.control.Button;
-import javafx.scene.control.Spinner;
-import javafx.scene.layout.VBox;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class RT_40335Test {
-    @Test public void test_rt_40335() throws Exception {
-        VBox pane = FXMLLoader.load(getClass().getResource("rt_40335.fxml"));
-        Button button = (Button) pane.getChildren().get(0);
-        Spinner spinner = (Spinner) pane.getChildren().get(1);
-
-        assertTrue(button.getStyleClass().contains("my-button"));
-        assertTrue(spinner.getStyleClass().contains("my-spinner"));
-    }
-}
--- a/modules/fxml/src/test/java/javafx/fxml/Widget.java	Thu Dec 24 02:23:24 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package javafx.fxml;
-
-import com.sun.javafx.beans.IDProperty;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import javafx.beans.DefaultProperty;
-import javafx.beans.property.BooleanProperty;
-import javafx.beans.property.IntegerProperty;
-import javafx.beans.property.SimpleBooleanProperty;
-import javafx.beans.property.SimpleIntegerProperty;
-import javafx.beans.property.SimpleStringProperty;
-import javafx.beans.property.StringProperty;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
-import javafx.collections.ObservableMap;
-import javafx.collections.ObservableSet;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
-
-@IDProperty("id")
-@DefaultProperty("children")
-public class Widget {
-    private StringProperty id = new SimpleStringProperty();
-    private StringProperty name = new SimpleStringProperty();
-    private IntegerProperty number = new SimpleIntegerProperty();
-    private ObservableList<Widget> children = FXCollections.observableArrayList();
-    private ObservableSet<String> set = FXCollections.observableSet();
-    private ObservableMap<String, Object> properties = FXCollections.observableHashMap();
-    private BooleanProperty enabledProperty = new SimpleBooleanProperty(true);
-    private ArrayList<String> styles = new ArrayList<String>();
-    private ArrayList<String> values = new ArrayList<String>();
-    private float[] ratios = new float[]{};
-    private String[] names = new String[]{};
-
-    public static final String ALIGNMENT_KEY = "alignment";
-    public static final int TEN = 10;
-    private EventHandler<ActionEvent> actionHandler;
-
-    public Widget() {
-        this(null);
-    }
-
-    public Widget(String name) {
-        setName(name);
-    }
-
-    public String getId() {
-        return id.get();
-    }
-
-    public void setId(String value) {
-        id.set(value);
-    }
-
-    public StringProperty idProperty() {
-        return id;
-    }
-
-    public String getName() {
-        return name.get();
-    }
-
-    public void setName(String value) {
-        name.set(value);
-    }
-
-    public StringProperty nameProperty() {
-        return name;
-    }
-
-    public int getNumber() {
-        return number.get();
-    }
-
-    public void setNumber(int value) {
-        number.set(value);
-    }
-
-    public IntegerProperty numberProperty() {
-        return number;
-    }
-
-    public ObservableList<Widget> getChildren() {
-        return children;
-    }
-
-    public ObservableMap<String, Object> getProperties() {
-        return properties;
-    }
-
-    public boolean isEnabled() {
-        return enabledProperty.get();
-    }
-
-    public void setEnabled(boolean value) {
-        enabledProperty.set(value);
-    }
-
-    public BooleanProperty enabledProperty() {
-        return enabledProperty;
-    }
-
-    public List<String> getStyles() {
-        return styles;
-    }
-
-    public List<String> getValues() {
-        return values;
-    }
-
-    public void setValues(List<String> values) {
-        if (values == null) {
-            throw new IllegalArgumentException();
-        }
-
-        this.values = new ArrayList<String>();
-        this.values.addAll(values);
-    }
-
-    public float[] getRatios() {
-        return Arrays.copyOf(ratios, ratios.length);
-    }
-
-    public void setRatios(float[] ratios) {
-        this.ratios = Arrays.copyOf(ratios, ratios.length);
-    }
-    
-    public String[] getNames() {
-        return Arrays.copyOf(names, names.length);
-    }
-
-    public void setNames(String[] names) {
-        this.names = Arrays.copyOf(names, names.length);
-    }
-
-    public ObservableSet<String> getSet() {
-        return set;
-    }
-
-
-    public static Alignment getAlignment(Widget widget) {
-        return (Alignment)widget.getProperties().get(ALIGNMENT_KEY);
-    }
-
-    public static void setAlignment(Widget widget, Alignment alignment) {
-        widget.getProperties().put(ALIGNMENT_KEY, alignment);
-    }
-
-    public final void setOnAction(EventHandler<ActionEvent> value) {
-        actionHandler = value;
-    }
-
-    public final EventHandler<ActionEvent> getOnAction() {
-        return actionHandler;
-    }
-
-    public final void fire() {
-        actionHandler.handle(new ActionEvent());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/oracle/javafx/fxml/test/CompareLoadPerformance.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,397 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.com.oracle.javafx.fxml.test;
+
+import java.io.IOException;
+
+import javafx.application.Application;
+import javafx.collections.ObservableList;
+import javafx.fxml.FXMLLoader;
+import javafx.geometry.HPos;
+import javafx.geometry.Insets;
+import javafx.scene.Node;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.Separator;
+import javafx.scene.control.Tab;
+import javafx.scene.control.TabPane;
+import javafx.scene.control.TextField;
+import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
+import javafx.scene.layout.AnchorPane;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.ColumnConstraints;
+import javafx.scene.layout.FlowPane;
+import javafx.scene.layout.GridPane;
+import javafx.scene.layout.RowConstraints;
+import javafx.scene.layout.TilePane;
+import javafx.scene.layout.VBox;
+import javafx.scene.paint.Color;
+import javafx.scene.shape.Rectangle;
+import javafx.stage.Stage;
+
+public class CompareLoadPerformance extends Application {
+    private static final Image ICON_48 = new Image(CompareLoadPerformance.class.getResourceAsStream("icon-48x48.png"));
+    private static final boolean USE_FXML = true;
+
+    @Override
+    public void start(Stage primaryStage) throws Exception {
+        TabPane tabPane = new TabPane();
+
+        Tab borderPaneTab = new Tab("BorderPane");
+        borderPaneTab.setContent(USE_FXML ? createBorderPaneFXML() : createBorderPane());
+        tabPane.getTabs().add(borderPaneTab);
+
+        Tab flowPaneTab = new Tab("FlowPane");
+        flowPaneTab.setContent(USE_FXML ? createFlowPaneFXML() : createFlowPane());
+        tabPane.getTabs().add(flowPaneTab);
+
+        Tab gridPaneTab = new Tab("GridPane");
+        gridPaneTab.setContent(USE_FXML ? createGridPaneFXML() : createGridPane());
+        tabPane.getTabs().add(gridPaneTab);
+
+        Tab tilePaneTab = new Tab("TilePane");
+        tilePaneTab.setContent(USE_FXML ? createTilePaneFXML() : createTilePane());
+        tabPane.getTabs().add(tilePaneTab);
+
+        primaryStage.setScene(new Scene(tabPane));
+        primaryStage.show();
+    }
+
+    private Node createBorderPane() {
+        long t0 = System.currentTimeMillis();
+
+        BorderPane borderPane = new BorderPane();
+
+        //Top content
+        Rectangle topRectangle = new Rectangle(400, 23, Color.DARKSEAGREEN);
+        topRectangle.setStroke(Color.BLACK);
+        borderPane.setTop(topRectangle);
+
+        //Left content
+        Label label1 = new Label("Left hand");
+        Label label2 = new Label("Choice One");
+        Label label3 = new Label("Choice Two");
+        Label label4 = new Label("Choice Three");
+        VBox leftVbox = new VBox();
+        leftVbox.getChildren().addAll(label1, label2, label3, label4);
+        borderPane.setLeft(leftVbox);
+
+        //Right content
+        Label rightlabel1 = new Label("Right hand");
+        Label rightlabel2 = new Label("Thing A");
+        Label rightlabel3 = new Label("Thing B");
+        VBox rightVbox = new VBox();
+        rightVbox.getChildren().addAll(rightlabel1, rightlabel2, rightlabel3);
+        borderPane.setRight(rightVbox);
+
+        //Center content
+        Label centerLabel = new Label("We're in the center area.");
+        ImageView imageView = new ImageView(ICON_48);
+
+        //Using AnchorPane only to position items in the center
+        AnchorPane centerAP = new AnchorPane();
+        AnchorPane.setTopAnchor(centerLabel, Double.valueOf(5));
+        AnchorPane.setLeftAnchor(centerLabel, Double.valueOf(20));
+        AnchorPane.setTopAnchor(imageView, Double.valueOf(40));
+        AnchorPane.setLeftAnchor(imageView, Double.valueOf(30));
+        centerAP.getChildren().addAll(centerLabel, imageView);
+        borderPane.setCenter(centerAP);
+
+        //Bottom content
+        Label bottomLabel = new Label("I am a status message, and I am at the bottom.");
+        borderPane.setBottom(bottomLabel);
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("BorderPane " + (t1 - t0) + "ms");
+
+        return borderPane;
+    }
+
+    private Node createBorderPaneFXML() {
+        long t0 = System.currentTimeMillis();
+
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("border_pane.fxml"));
+        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
+
+        BorderPane borderPane;
+        try {
+            borderPane = (BorderPane)fxmlLoader.load();
+        } catch (IOException exception) {
+            throw new RuntimeException(exception);
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("BorderPane FXML " + (t1 - t0) + "ms");
+
+        return borderPane;
+    }
+
+    private Node createFlowPane() {
+        long t0 = System.currentTimeMillis();
+
+        final int ITEMS = 5;
+        FlowPane flowPane = new FlowPane(2, 4);
+        flowPane.setPrefWrapLength(200); //preferred wraplength
+        Label[] shortLabels = new Label[ITEMS];
+        Label[] longLabels = new Label[ITEMS];
+        ImageView[] imageViews = new ImageView[ITEMS];
+
+        for (int i = 0; i < ITEMS; i++) {
+            shortLabels[i] = new Label("Short label.");
+            longLabels[i] = new Label("I am a slightly longer label.");
+            imageViews[i] = new ImageView(ICON_48);
+            flowPane.getChildren().addAll(shortLabels[i], longLabels[i], imageViews[i]);
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("FlowPane " + (t1 - t0) + "ms");
+
+        return flowPane;
+    }
+
+    private Node createFlowPaneFXML() {
+        long t0 = System.currentTimeMillis();
+
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("flow_pane.fxml"));
+        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
+
+        FlowPane flowPane;
+        try {
+            flowPane = (FlowPane)fxmlLoader.load();
+        } catch (IOException exception) {
+            throw new RuntimeException(exception);
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("FlowPane FXML " + (t1 - t0) + "ms");
+
+        return flowPane;
+    }
+
+    private Node createGridPane() {
+        long t0 = System.currentTimeMillis();
+
+        VBox vbox = new VBox();
+
+        //grid1 places the child by specifying the rows and columns in
+        // GridPane.setContraints()
+        Label grid1Caption = new Label("The example below shows GridPane content placement by specifying rows and columns:");
+        grid1Caption.setWrapText(true);
+        GridPane grid1 = new GridPane();
+        grid1.setHgap(4);
+        grid1.setVgap(6);
+        grid1.setPadding(new Insets(18, 18, 18, 18));
+        ObservableList<Node> content = grid1.getChildren();
+
+        Label label = new Label("Name:");
+        GridPane.setConstraints(label, 0, 0);
+        GridPane.setHalignment(label, HPos.RIGHT);
+        content.add(label);
+
+        label = new Label("John Q. Public");
+        GridPane.setConstraints(label, 1, 0, 2, 1);
+        GridPane.setHalignment(label, HPos.LEFT);
+        content.add(label);
+
+        label = new Label("Address:");
+        GridPane.setConstraints(label, 0, 1);
+        GridPane.setHalignment(label, HPos.RIGHT);
+        content.add(label);
+
+        label = new Label("12345 Main Street, Some City, CA");
+        GridPane.setConstraints(label, 1, 1, 5, 1);
+        GridPane.setHalignment(label, HPos.LEFT);
+        content.add(label);
+
+        vbox.getChildren().addAll(grid1Caption, grid1, new Separator());
+
+        //grid2 places the child by influencing the rows and columns themselves
+        //via GridRowInfo and GridColumnInfo. This grid uses the preferred
+        //width/height and max/min width/height.
+        Label grid2Caption = new Label("The example below shows GridPane content placement by influencing the rows and columns themselves.");
+        grid2Caption.setWrapText(true);
+        grid2Caption.setWrapText(true);
+        GridPane grid2 = new GridPane();
+        grid2.setPadding(new Insets(18, 18, 18, 18));
+        RowConstraints rowinfo = new RowConstraints(40, 40, 40);
+        ColumnConstraints colinfo = new ColumnConstraints(90, 90, 90);
+
+        for (int i = 0; i <= 2; i++) {
+            grid2.getRowConstraints().add(rowinfo);
+        }
+
+        for (int j = 0; j <= 2; j++) {
+            grid2.getColumnConstraints().add(colinfo);
+        }
+
+        Label category = new Label("Category:");
+        GridPane.setHalignment(category, HPos.RIGHT);
+        Label categoryValue = new Label("Wines");
+        Label company = new Label("Company:");
+        GridPane.setHalignment(company, HPos.RIGHT);
+        Label companyValue = new Label("Acme Winery");
+        Label rating = new Label("Rating:");
+        GridPane.setHalignment(rating, HPos.RIGHT);
+        Label ratingValue = new Label("Excellent");
+
+        ImageView imageView = new ImageView(ICON_48);
+        GridPane.setHalignment(imageView, HPos.CENTER);
+
+        //Place content
+        GridPane.setConstraints(category, 0, 0);
+        GridPane.setConstraints(categoryValue, 1, 0);
+        GridPane.setConstraints(company, 0, 1);
+        GridPane.setConstraints(companyValue, 1, 1);
+        GridPane.setConstraints(imageView, 2, 1);
+        GridPane.setConstraints(rating, 0, 2);
+        GridPane.setConstraints(ratingValue, 1, 2);
+        grid2.getChildren().addAll(category, categoryValue, company, companyValue, imageView, rating, ratingValue);
+
+        vbox.getChildren().addAll(grid2Caption, grid2, new Separator());
+
+        //grid3 places the child by influencing the rows and columns
+        //via GridRowInfo and GridColumnInfo. This grid uses the percentages
+        Label grid3Caption = new Label("The example below shows GridPane content placement by influencing row and column percentages.  Also, grid lines are made visible in this example.  The lines can be helpful in debugging.");
+        grid3Caption.setWrapText(true);
+        GridPane grid3 = new GridPane();
+        grid3.setPadding(new Insets(18, 18, 18, 18));
+        grid3.setGridLinesVisible(true);
+        RowConstraints rowinfo3 = new RowConstraints();
+        rowinfo3.setPercentHeight(50);
+
+        ColumnConstraints colInfo2 = new ColumnConstraints();
+        colInfo2.setPercentWidth(25);
+
+        ColumnConstraints colInfo3 = new ColumnConstraints();
+        colInfo3.setPercentWidth(50);
+
+        grid3.getRowConstraints().add(rowinfo3);//2*50 percent
+        grid3.getRowConstraints().add(rowinfo3);
+
+        grid3.getColumnConstraints().add(colInfo2); //25 percent
+        grid3.getColumnConstraints().add(colInfo3); //50 percent
+        grid3.getColumnConstraints().add(colInfo2); //25 percent
+
+        Label condLabel = new Label(" Member Name:");
+        GridPane.setHalignment(condLabel, HPos.RIGHT);
+        GridPane.setConstraints(condLabel, 0, 0);
+        Label condValue = new Label("MyName");
+        GridPane.setMargin(condValue, new Insets(0, 0, 0, 10));
+        GridPane.setConstraints(condValue, 1, 0);
+
+        Label acctLabel = new Label("Member Number:");
+        GridPane.setHalignment(acctLabel, HPos.RIGHT);
+        GridPane.setConstraints(acctLabel, 0, 1);
+        TextField textBox = new TextField("Your number");
+        GridPane.setMargin(textBox, new Insets(10, 10, 10, 10));
+        GridPane.setConstraints(textBox, 1, 1);
+
+        Button button = new Button("Help");
+        GridPane.setConstraints(button, 2, 1);
+        GridPane.setMargin(button, new Insets(10, 10, 10, 10));
+        GridPane.setHalignment(button, HPos.CENTER);
+
+        GridPane.setConstraints(condValue, 1, 0);
+        grid3.getChildren().addAll(condLabel, condValue, button, acctLabel, textBox);
+
+        vbox.getChildren().addAll(grid3Caption, grid3);
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("GridPane " + (t1 - t0) + "ms");
+
+        return vbox;
+    }
+
+    private Node createGridPaneFXML() {
+        long t0 = System.currentTimeMillis();
+
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("grid_pane.fxml"));
+        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
+
+        VBox vBox;
+        try {
+            vBox = (VBox)fxmlLoader.load();
+        } catch (IOException exception) {
+            throw new RuntimeException(exception);
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("GridPane FXML " + (t1 - t0) + "ms");
+
+        return vBox;
+    }
+
+    private Node createTilePane() {
+        long t0 = System.currentTimeMillis();
+
+        TilePane tilePane = new TilePane();
+        tilePane.setPrefColumns(3); //preferred columns
+
+        Button[] buttons = new Button[18];
+        for (int j = 0; j < buttons.length; j++) {
+            buttons[j] = new Button("button" + (j + 1), new ImageView(ICON_48));
+            tilePane.getChildren().add(buttons[j]);
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("TilePane " + (t1 - t0) + "ms");
+
+        return tilePane;
+    }
+
+    private Node createTilePaneFXML() {
+        long t0 = System.currentTimeMillis();
+
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("tile_pane.fxml"));
+        fxmlLoader.getNamespace().put("ICON_48", ICON_48);
+
+        TilePane tilePane;
+        try {
+            tilePane = (TilePane)fxmlLoader.load();
+        } catch (IOException exception) {
+            throw new RuntimeException(exception);
+        }
+
+        long t1 = System.currentTimeMillis();
+
+        System.out.println("TilePane FXML " + (t1 - t0) + "ms");
+
+        return tilePane;
+    }
+
+    public static void main(String[] args) throws Exception {
+        launch(args);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/oracle/javafx/fxml/test/TestLoadPerformance.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.com.oracle.javafx.fxml.test;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.Charset;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.util.StreamReaderDelegate;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.stage.Stage;
+
+public class TestLoadPerformance extends Application {
+    private static class SAXHandler extends DefaultHandler {
+        @Override
+        public void processingInstruction(String target, String data) {
+            target.trim();
+        }
+
+        @Override
+        public void startElement(String uri, String name, String qName, Attributes atts) {
+            for (int i = 0, n = atts.getLength(); i < n; i++) {
+                atts.getLocalName(i);
+                atts.getQName(i);
+                atts.getValue(i);
+            }
+        }
+
+        @Override
+        public void endElement(String uri, String name, String qName) {
+            // No-op
+        }
+
+        @Override
+        public void characters (char ch[], int start, int length) {
+            // No-op
+        }
+    }
+
+    @Override
+    public void start(Stage primaryStage) throws Exception {
+        String[] files = new String[] {
+            "project-with-all-p2-components.fxml",
+            "stageview-drop-test.fxml",
+            "svg-complex-gear-flowers.fxml",
+            "svg-complex-tiger.fxml",
+            "svg-complex-tux.fxml",
+            "svg-complex-unhappy-sheep.fxml",
+            "svg-svgspec-paints-radialGradient.fxml"
+        };
+
+        for (int i = 0; i < files.length; i++) {
+            String file = files[i];
+            URL location = TestLoadPerformance.class.getResource(file);
+            URLConnection connection = location.openConnection();
+            int size = connection.getContentLength();
+            System.out.printf("%s (%dKB)\n", file, size / 1000);
+            // loadSAX(location);
+            // loadStAX(location);
+            loadFXML(TestLoadPerformance.class, file);
+
+            System.out.println();
+        }
+
+        System.exit(0);
+    }
+
+    protected void loadSAX(URL location) throws Exception {
+        long t0 = System.currentTimeMillis();
+
+        XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+
+        SAXHandler handler = new SAXHandler();
+        xmlReader.setContentHandler(handler);
+        xmlReader.setErrorHandler(handler);
+
+        InputStream inputStream = location.openStream();
+        xmlReader.parse(new InputSource(inputStream));
+
+        long t1 = System.currentTimeMillis();
+        System.out.printf("SAX: %dms\n", t1 - t0);
+    }
+
+    protected void loadStAX(URL location) throws Exception {
+        long t0 = System.currentTimeMillis();
+
+        XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
+        xmlInputFactory.setProperty("javax.xml.stream.isCoalescing", true);
+
+        InputStream inputStream = location.openStream();
+        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
+        XMLStreamReader xmlStreamReader = new StreamReaderDelegate(xmlInputFactory.createXMLStreamReader(inputStreamReader)) {
+            @Override
+            public String getPrefix() {
+                String prefix = super.getPrefix();
+
+                if (prefix != null && prefix.length() == 0) {
+                    prefix = null;
+                }
+
+                return prefix;
+            }
+
+            @Override
+            public String getAttributePrefix(int index) {
+                String attributePrefix = super.getAttributePrefix(index);
+
+                if (attributePrefix != null && attributePrefix.length() == 0) {
+                    attributePrefix = null;
+                }
+
+                return attributePrefix;
+            }
+        };
+
+        // Parse the XML stream
+        while (xmlStreamReader.hasNext()) {
+            int event = xmlStreamReader.next();
+
+            switch (event) {
+                case XMLStreamConstants.PROCESSING_INSTRUCTION: {
+                    xmlStreamReader.getPITarget().trim();
+                    xmlStreamReader.getPIData();
+                    break;
+                }
+
+                case XMLStreamConstants.COMMENT: {
+                    xmlStreamReader.getText();
+                    break;
+                }
+
+                case XMLStreamConstants.START_ELEMENT: {
+                    xmlStreamReader.getPrefix();
+                    xmlStreamReader.getLocalName();
+
+                    for (int i = 0, n = xmlStreamReader.getAttributeCount(); i < n; i++) {
+                        xmlStreamReader.getAttributePrefix(i);
+                        xmlStreamReader.getAttributeLocalName(i);
+                        xmlStreamReader.getAttributeValue(i);
+                    }
+
+                    break;
+                }
+
+                case XMLStreamConstants.END_ELEMENT: {
+                    break;
+                }
+
+                case XMLStreamConstants.CHARACTERS: {
+                    break;
+                }
+            }
+        }
+
+        long t1 = System.currentTimeMillis();
+        System.out.printf("StAX: %dms\n", t1 - t0);
+    }
+
+    protected void loadFXML(Class<?> type, String name) throws Exception {
+        long t0 = System.currentTimeMillis();
+        FXMLLoader fxmlLoader = new FXMLLoader(type.getResource(name));
+        fxmlLoader.load();
+
+        long t1 = System.currentTimeMillis();
+        System.out.printf("FXML: %dms\n", t1 - t0);
+    }
+
+    public static void main(String[] args) throws Exception {
+        launch(args);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/ClassWithCollection.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.com.sun.javafx.fxml.builder;
+
+import com.sun.javafx.collections.TrackableObservableList;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javafx.beans.NamedArg;
+import javafx.collections.ListChangeListener;
+import javafx.collections.ObservableList;
+
+public class ClassWithCollection {
+    public double a;
+    public double b;
+    public List<Integer> list;
+    ObservableList<Integer> propertyList = new TrackableObservableList<Integer>() {
+        @Override
+        protected void onChanged(ListChangeListener.Change<Integer> c) {}
+    };
+
+    public ClassWithCollection(@NamedArg("a") double a) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public ClassWithCollection(@NamedArg("a") double a, @NamedArg("b") double b) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public ClassWithCollection(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") List<Integer> list) {
+        this.a = a;
+        this.b = b;
+        this.list = new ArrayList<>(list);
+    }
+
+    public ClassWithCollection(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") Integer... list) {
+        this.a = a;
+        this.b = b;
+        this.list = Arrays.asList(list);
+    }
+
+    public double getB() {
+        return b;
+    }
+
+    public void setB(double b) {
+        this.b = b;
+    }
+    public List<Integer> getList() {
+        return list;
+    }
+    
+    public List<Integer> getPropertyList() {
+        return propertyList;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/ClassWithDefaultValues.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.com.sun.javafx.fxml.builder;
+
+import java.util.List;
+import javafx.beans.NamedArg;
+import javafx.scene.paint.Color;
+import javafx.scene.paint.Paint;
+import javafx.stage.StageStyle;
+
+public class ClassWithDefaultValues {
+    public double a;
+    public double b;
+    public List<Integer> list;
+    public Color color;
+    public Paint fill;
+    public StageStyle stageStyle;
+
+    public ClassWithDefaultValues(
+            @NamedArg(value="a", defaultValue="1.0") double a,
+            @NamedArg(value="b", defaultValue="2.0") double b,
+            @NamedArg(value="color", defaultValue="red") Color color,
+            @NamedArg(value="fill", defaultValue="GREEN") Paint fill,
+            @NamedArg(value="stageStyle", defaultValue="DECORATED") StageStyle stageStyle            
+            ) {
+        this.a = a;
+        this.b = b;
+        this.color = color;
+        this.fill = fill;
+        this.stageStyle = stageStyle;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/ClassWithMixedConstructors.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.com.sun.javafx.fxml.builder;
+
+import javafx.beans.NamedArg;
+
+public class ClassWithMixedConstructors {
+    public double a;
+    public double b;
+    public String c;
+    public String d;
+    
+    public ClassWithMixedConstructors(@NamedArg("a") double a, @NamedArg("b") double b) {
+        this.a = a;
+        this.b = b;
+    }    
+    
+    public ClassWithMixedConstructors(@NamedArg("c") String c, @NamedArg("d") String d) {
+        this.c = c;
+        this.d = d;
+    }    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/ClassWithReadOnlyCollection.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,33 @@
+package test.com.sun.javafx.fxml.builder;
+
+import com.sun.javafx.collections.TrackableObservableList;
+import javafx.beans.NamedArg;
+import javafx.collections.ListChangeListener;
+import javafx.collections.ObservableList;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by msladecek on 22.7.14.
+ */
+public class ClassWithReadOnlyCollection {
+    public double a;
+    ObservableList<Integer> propertyList = new TrackableObservableList<Integer>() {
+        @Override
+        protected void onChanged(ListChangeListener.Change<Integer> c) {}
+    };
+
+    public ClassWithReadOnlyCollection() {
+
+    }
+
+    public ClassWithReadOnlyCollection(@NamedArg("a") double a) {
+        this.a = a;
+    }
+
+    public List<Integer> getPropertyList() {
+        return propertyList;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/ImmutableClass.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.com.sun.javafx.fxml.builder;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javafx.beans.NamedArg;
+
+public class ImmutableClass {
+    public double a;
+    public double b;
+    public List<Integer> list;
+    
+    public ImmutableClass(@NamedArg("a") int a, @NamedArg("b") int b) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public ImmutableClass(@NamedArg("a")float a, @NamedArg("b") float b) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public ImmutableClass(@NamedArg("a")int a, @NamedArg("b") float b) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public ImmutableClass(@NamedArg("a") float a, @NamedArg("b") int b) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public ImmutableClass(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") List<Integer> list) {
+        this.a = a;
+        this.b = b;
+        this.list = new ArrayList<>(list);
+    }
+
+    public ImmutableClass(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("list") Integer... list) {
+        this.a = a;
+        this.b = b;
+        this.list = Arrays.asList(list);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/MutableClass.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.com.sun.javafx.fxml.builder;
+
+import javafx.scene.Camera;
+import javafx.scene.Cursor;
+import javafx.scene.paint.Paint;
+
+public class MutableClass {
+
+    public int intValue;
+    public double doubleValue;
+    public String stringValue;
+    public Paint paint;
+    public Camera camera;
+    public Cursor cursor;
+
+    public MutableClass() {
+
+    }
+
+    public void setIntValue(int i) {
+        this.intValue = i;
+    }
+
+    public void setDoubleValue(double d) {
+        this.doubleValue = d;
+    }
+
+    public void setStringValue(String s) {
+        this.stringValue = s;
+    }
+
+    public void setPaint(Paint p) {
+        this.paint = p;
+    }
+
+    public void setCamera(Camera c) {
+        this.camera = c;
+    }
+
+    public void setCursor(Cursor c) {
+        this.cursor = c;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/PartiallyMutableClass.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.com.sun.javafx.fxml.builder;
+
+import javafx.beans.NamedArg;
+
+public class PartiallyMutableClass {
+    public int a;
+    public int b;
+    public int intValue;
+    public double doubleValue;
+    public String stringValue;
+
+    public PartiallyMutableClass(@NamedArg("a")int a, @NamedArg("b") int b) {
+        this.a = a;
+        this.b = b;
+    }
+
+    public PartiallyMutableClass(@NamedArg("a") String a, @NamedArg("b") String b) {
+        this.a = Integer.valueOf(a);
+        this.b = Integer.valueOf(b);
+    }
+
+    public PartiallyMutableClass(@NamedArg("a") int a, @NamedArg("b") int b, @NamedArg("stringValue") String stringValue) {
+        this.a = a;
+        this.b = b;
+        this.stringValue = stringValue;
+    }
+
+    public void setIntValue(int i) {
+        this.intValue = i;
+    }
+
+    public void setDoubleValue(double d) {
+        this.doubleValue = d;
+    }
+
+    public void setStringValue(String s) {
+        this.stringValue = s;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/com/sun/javafx/fxml/builder/ProxyBuilderTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,252 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.com.sun.javafx.fxml.builder;
+
+import com.sun.javafx.fxml.builder.ProxyBuilder;
+import java.util.Arrays;
+import java.util.List;
+import javafx.scene.paint.Color;
+import javafx.scene.paint.Paint;
+import javafx.stage.StageStyle;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.junit.Ignore;
+
+public class ProxyBuilderTest {
+
+    @Test
+    public void testMutable() {
+        ProxyBuilder pb = new ProxyBuilder(MutableClass.class);
+        pb.put("intValue", 123);
+        pb.put("doubleValue", 1.23);
+        pb.put("stringValue", "This is String");
+
+        MutableClass result = (MutableClass) pb.build();
+        assertEquals(123, result.intValue);
+        assertEquals(1.23, result.doubleValue, 1e-5);
+        assertEquals("This is String", result.stringValue);
+    }
+
+    @Test
+    public void testImmutable() {
+        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        ImmutableClass result = (ImmutableClass) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertEquals(456, result.b, 1e-10);
+    }
+
+    @Test
+    public void testImmutableWithList() {
+        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        List<Integer> inputList = Arrays.asList(1, 2, 3, 4, 5);
+        pb.put("list", inputList);
+
+        ImmutableClass result = (ImmutableClass) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertEquals(456, result.b, 1e-10);
+        assertArrayEquals(inputList.toArray(), result.list.toArray());
+
+        pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        Integer[] inputArray = new Integer[]{1, 2, 3, 4, 5};
+        pb.put("list", inputArray);
+
+        result = (ImmutableClass) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertEquals(456, result.b, 1e-10);
+        assertArrayEquals(inputArray, result.list.toArray(new Integer[0]));
+
+        pb = new ProxyBuilder(ClassWithCollection.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        inputList = Arrays.asList(1, 2, 3, 4, 5);
+        pb.put("propertyList", inputList);
+
+        ClassWithCollection result2 = (ClassWithCollection) pb.build();
+        assertEquals(123, result2.a, 1e-10);
+        assertEquals(456, result2.b, 1e-10);
+        assertArrayEquals(inputList.toArray(), result2.propertyList.toArray());   
+    }
+
+    @Test
+    @Ignore
+    public void testImmutableTwoConstructorsWithSameArgNames() {
+        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        ImmutableClass result = (ImmutableClass) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertEquals(456, result.b, 1e-10);
+
+        pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456.1f);
+        result = (ImmutableClass) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertEquals(456.1, result.b, 1e-10);
+
+        pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123.1f);
+        pb.put("b", 456);
+        result = (ImmutableClass) pb.build();
+        assertEquals(123.1, result.a, 1e-10);
+        assertEquals(456, result.b, 1e-10);
+
+        pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("a", 123.1f);
+        pb.put("b", 456.1f);
+        result = (ImmutableClass) pb.build();
+        assertEquals(123.1, result.a, 1e-10);
+        assertEquals(456.1, result.b, 1e-10);
+    }
+
+    @Test
+    public void testPartiallyMutable() {
+        ProxyBuilder pb = new ProxyBuilder(PartiallyMutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        pb.put("intValue", 1);
+        pb.put("doubleValue", 1.2);
+        pb.put("stringValue", "This is String");
+
+        PartiallyMutableClass result = (PartiallyMutableClass) pb.build();
+        assertEquals(123, result.a);
+        assertEquals(456, result.b);
+        assertEquals(1, result.intValue);
+        assertEquals(1.2, result.doubleValue, 1e-5);
+        assertEquals("This is String", result.stringValue);
+    }
+
+    private void assertColorEquals(Color expected, Paint actualPaint) {
+        assertTrue(actualPaint instanceof Color);
+        final Color actual = (Color) actualPaint;
+        assertEquals(expected.getRed(), actual.getRed(), 1e-10);
+        assertEquals(expected.getGreen(), actual.getGreen(), 1e-10);
+        assertEquals(expected.getBlue(), actual.getBlue(), 1e-10);
+        assertEquals(expected.getOpacity(), actual.getOpacity(), 1e-10);
+    }
+
+    @Test
+    public void testDefaultValues() {
+        ProxyBuilder pb = new ProxyBuilder(ClassWithDefaultValues.class);
+        ClassWithDefaultValues result = (ClassWithDefaultValues) pb.build();
+        assertEquals(1, result.a, 1e-10);
+        assertEquals(2, result.b, 1e-10);
+        assertColorEquals(Color.RED, result.color);
+        assertColorEquals(Color.GREEN, result.fill);
+        assertEquals(StageStyle.DECORATED, result.stageStyle);
+
+        pb = new ProxyBuilder(ClassWithDefaultValues.class);
+        pb.put("a", 123);
+        pb.put("color", Color.BLUE);
+        result = (ClassWithDefaultValues) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertEquals(2, result.b, 1e-10);
+        assertColorEquals(Color.BLUE, result.color);
+        assertColorEquals(Color.GREEN, result.fill);
+        assertEquals(StageStyle.DECORATED, result.stageStyle);
+
+        //Integer[] inputArray = new Integer[] {1, 2, 3, 4, 5};
+        //assertArrayEquals(inputArray, result.list.toArray(new Integer[0]));
+    }
+
+    @Test
+    public void testImmutableWithValuesNotSet() {
+        ProxyBuilder pb = new ProxyBuilder(ImmutableClass.class);
+        ImmutableClass result = (ImmutableClass) pb.build();
+        assertEquals(0, result.a, 1e-10);
+        assertEquals(0, result.b, 1e-10);
+
+        pb = new ProxyBuilder(ImmutableClass.class);
+        pb.put("b", 123);
+        result = (ImmutableClass) pb.build();
+        assertEquals(0, result.a, 1e-10);
+        assertEquals(123, result.b, 1e-10);
+    }
+
+    @Test
+    public void testNonExistentProperties() {
+        ProxyBuilder pb = new ProxyBuilder(PartiallyMutableClass.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        pb.put("intValue", 1);
+        pb.put("doubleValue", 1.2);
+        pb.put("stringValue", "This is String");
+        pb.put("nonExistentValue", "This is non-existent String");
+
+        try {
+            PartiallyMutableClass result = (PartiallyMutableClass) pb.build();
+            fail("expected RuntimeException");
+        } catch (RuntimeException ex) {
+        }
+
+        pb = new ProxyBuilder(ClassWithMixedConstructors.class);
+        pb.put("a", 123);
+        pb.put("b", 456);
+        pb.put("c", "This is String C");
+        pb.put("d", "This is String D");
+        try {
+            ClassWithMixedConstructors result = (ClassWithMixedConstructors) pb.build();
+            fail("expected RuntimeException");
+        } catch (RuntimeException ex) {
+        }
+    }
+
+    @Test
+    public void testReadOnlyList() {
+        ProxyBuilder pb = new ProxyBuilder(ClassWithReadOnlyCollection.class);
+        pb.put("a", 123);
+
+        List<Integer> inputList = Arrays.asList(1, 2, 3, 4, 5);
+        pb.put("propertyList", inputList);
+
+        ClassWithReadOnlyCollection result = (ClassWithReadOnlyCollection) pb.build();
+        assertEquals(123, result.a, 1e-10);
+        assertArrayEquals(inputList.toArray(), result.propertyList.toArray());
+
+
+        pb = new ProxyBuilder(ClassWithReadOnlyCollection.class);
+
+        pb.put("propertyList", inputList);
+
+        result = (ClassWithReadOnlyCollection) pb.build();
+        assertArrayEquals(inputList.toArray(), result.propertyList.toArray());
+    }
+
+    @Test
+    public void testShortMethodNames() {
+        new ProxyBuilder<>(ShortMethodNames.class);
+    }
+
+    public static class ShortMethodNames {
+        public void get() {}
+        public void set() {}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/AlertTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.fxml.FXMLLoader;
+import javafx.scene.control.Alert;
+import javafx.scene.control.ButtonType;
+import static org.junit.Assert.assertArrayEquals;
+import org.junit.Test;
+
+public class AlertTest {
+
+    @Test
+    public void testAlertButtons() throws Exception {
+        Alert alert = FXMLLoader.load(getClass().getResource("alert.fxml"));
+
+        assertArrayEquals(new ButtonType[] {ButtonType.YES, ButtonType.NO}, alert.getButtonTypes().toArray());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/Alignment.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+public enum Alignment {
+    LEFT,
+    RIGHT,
+    CENTER
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/CompareVersionsTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import java.io.IOException;
+import javafx.fxml.FXMLLoaderShim;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class CompareVersionsTest {
+    @Test
+    public void testCompareJFXVersions() throws IOException {
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.1", "1.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.1", "0.9.9") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("2", "1.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("2", "1.1.1") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("2", "1.2.3") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("2.1", "2.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("2.1.1.1", "2.1.1.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.5.2", "1.3.5") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0-ea", "2") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0_fcs", "2.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0", "2.0.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0.1", "3.0.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.2.1", "3.2.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.2.1-ea", "1.2.3") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("2", "1") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("5", "3") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("6", "5") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0.1", "3.0.0.0") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0.1", "3.0.0.0.0.1") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("8.0.0-ea", "2.2.5") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9-ea", "8.0.40") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9", "8.0.40") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9.1.2.3", "9.1") > 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9.2", "9.1.2.3") > 0);
+
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1", "1.0") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.0", "1") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3", "1.2.3") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1", "1") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("5", "5") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3.0-fcs", "1.2.3") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3_ea", "1.2.3.0.0.0") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3.0.0.0.0", "1.2.3") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9-ea", "9") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9-ea", "9.0.0.0") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9", "9.0.0.0") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9.0.0.0", "9") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9.0.1", "9.0.1.0") == 0);
+
+        assertTrue(FXMLLoaderShim.compareJFXVersions("ABC", "1.2.3") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("a.b.c", "1.2.3") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3", "abc") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("abc", "abc") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3.a.b", "1.2.3") == 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.3", "1.2.3.*") == 0);
+
+        assertTrue(FXMLLoaderShim.compareJFXVersions("0.9", "1.0") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1", "2") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1", "3") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1", "12") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3", "3.0.0.1.2") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1", "1.2") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2", "1.2.3") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.0", "1.2.1") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("1.2.0", "1.2.0.0.0.1") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.2.1", "3.2.2") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("3.0.0.1", "3.0.0.1.0.0.1") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("8.0.40", "9") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9.1", "9.1.2.3") < 0);
+        assertTrue(FXMLLoaderShim.compareJFXVersions("9.1.2.3", "9.2") < 0);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/EventsTestController.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+
+public class EventsTestController {
+    @FXML
+    Widget widget;
+
+    boolean called;
+
+    @FXML
+    protected void handleWidgetAction(ActionEvent event) {
+        called = true;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/ExpressionBindingController.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.beans.property.DoubleProperty;
+import javafx.beans.property.SimpleDoubleProperty;
+import javafx.beans.property.SimpleStringProperty;
+import javafx.beans.property.StringProperty;
+
+public class ExpressionBindingController {
+    private StringProperty nameProperty = new SimpleStringProperty(this, "name");
+    private DoubleProperty percentageProperty = new SimpleDoubleProperty(this, "percentage");
+
+    public ExpressionBindingController() {
+        setPercentage(0.5);
+    }
+
+    public String getName() {
+        return nameProperty.get();
+    }
+
+    public void setName(String value) {
+        nameProperty.set(value);
+    }
+
+    public StringProperty nameProperty() {
+        return nameProperty;
+    }
+
+    public Double getPercentage() {
+        return percentageProperty.get();
+    }
+
+    public void setPercentage(Double value) {
+        percentageProperty.set(value);
+    }
+
+    public DoubleProperty percentageProperty() {
+        return percentageProperty;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/FXMLLoaderTest_FieldInjectionTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,97 @@
+package test.javafx.fxml;
+/*
+ * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javafx.scene.Node;
+import javafx.scene.Parent;
+import javafx.scene.shape.Rectangle;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.IOException;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+public class FXMLLoaderTest_FieldInjectionTest {
+
+    public static class SuperController {
+        @FXML private Parent root;
+
+        public final Parent getRoot() {
+            return root;
+        }
+
+    }
+
+    public static class SubController_1 extends SuperController {
+        @FXML private Rectangle rectangle;
+
+        public Rectangle getRectangle() {
+            return rectangle;
+        }
+    }
+    public static class SubController_2 extends SuperController {
+
+        @FXML private Node root;
+        @FXML private Rectangle rectangle;
+
+        public Rectangle getRectangle() {
+            return rectangle;
+        }
+
+        public Node getRootFromSub() {
+            return root;
+        }
+    }
+
+    @Test
+    public void testFieldInjectionInSuperClass() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("simple.fxml"));
+        SubController_1 controller = new SubController_1();
+        fxmlLoader.setController(controller);
+
+        fxmlLoader.load();
+
+        assertNotNull(controller.getRectangle());
+        assertNotNull(controller.getRoot());
+    }
+
+    @Test
+    public void testFieldInjectionInSuperClassNotSuppressed() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("simple.fxml"));
+        SubController_2 controller = new SubController_2();
+        fxmlLoader.setController(controller);
+
+        fxmlLoader.load();
+
+        assertNotNull(controller.getRectangle());
+        assertNotNull(controller.getRoot());
+        assertNotNull(controller.getRootFromSub());
+        assertEquals(controller.getRoot(), controller.getRootFromSub());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/FXMLLoader_BuilderTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,48 @@
+package test.javafx.fxml;
+/*
+ * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javafx.scene.shape.TriangleMesh;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import javafx.fxml.FXMLLoader;
+
+public class FXMLLoader_BuilderTest {
+
+    @Test
+    public void testTriangleMeshBuilder() throws IOException {
+        TriangleMesh mesh = FXMLLoader.load(getClass().getResource("builders_trianglemesh.fxml"));
+        float[] refFloatArray = {0f, 1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f, 9f};
+        int[] refIntArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+        assertArrayEquals(refIntArray, mesh.getFaces().toArray(new int[0]));
+        assertArrayEquals(refIntArray, mesh.getFaceSmoothingGroups().toArray(new int[0]));
+        assertArrayEquals(refFloatArray, mesh.getPoints().toArray(new float[0]), 1e-10f);
+        assertArrayEquals(refFloatArray, mesh.getTexCoords().toArray(new float[0]), 1e-10f);
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/FXMLLoader_EventsTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,223 @@
+package test.javafx.fxml;
+
+import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader;
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.stage.Stage;
+import javafx.util.Callback;
+import org.junit.Test;
+
+import java.io.IOException;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.LoadException;
+
+import static org.junit.Assert.*;
+
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+public class FXMLLoader_EventsTest {
+    @Test
+    public void testListEvents() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"));
+        Widget widget = (Widget)fxmlLoader.load();
+        ListMapSetEventsTestController controller = (ListMapSetEventsTestController)fxmlLoader.getController();
+
+        assertFalse(controller.listWithParamCalled);
+        assertFalse(controller.listNoParamCalled);
+        // Test
+        widget.getChildren().add(new Widget("Widget 4"));
+        assertTrue(controller.listWithParamCalled);
+        assertFalse(controller.listNoParamCalled);
+    }
+
+    @Test
+    public void testMapEvents() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"));
+        Widget widget = (Widget)fxmlLoader.load();
+        ListMapSetEventsTestController controller = (ListMapSetEventsTestController)fxmlLoader.getController();
+
+        assertFalse(controller.mapWithParamCalled);
+        assertFalse(controller.mapNoParamCalled);
+        // Test
+        widget.getProperties().put("d", 1000);
+
+        assertTrue(controller.mapWithParamCalled);
+        assertFalse(controller.mapNoParamCalled);
+    }
+
+    @Test
+    public void testSetEvents() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"));
+        Widget widget = (Widget)fxmlLoader.load();
+        ListMapSetEventsTestController controller = (ListMapSetEventsTestController)fxmlLoader.getController();
+
+        assertFalse(controller.setWithParamCalled);
+        assertFalse(controller.setNoParamCalled);
+        // Test
+        widget.getSet().add("x");
+
+        assertTrue(controller.setWithParamCalled);
+        assertFalse(controller.setNoParamCalled);
+    }
+
+    @Test
+    public void testListEvents_NoParam() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"), null, null, new Callback<Class<?>, Object>() {
+            @Override
+            public Object call(Class<?> param) {
+                return new ListMapSetEventsTestController2();
+            }
+        });
+        Widget widget = (Widget)fxmlLoader.load();
+        ListMapSetEventsTestController2 controller = (ListMapSetEventsTestController2)fxmlLoader.getController();
+
+        assertFalse(controller.listNoParamCalled);
+        // Test
+        widget.getChildren().add(new Widget("Widget 4"));
+        assertTrue(controller.listNoParamCalled);
+    }
+
+    @Test
+    public void testMapEvents_NoParam() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"), null, null, new Callback<Class<?>, Object>() {
+            @Override
+            public Object call(Class<?> param) {
+                return new ListMapSetEventsTestController2();
+            }
+        });
+        Widget widget = (Widget)fxmlLoader.load();
+        ListMapSetEventsTestController2 controller = (ListMapSetEventsTestController2)fxmlLoader.getController();
+
+        assertFalse(controller.mapNoParamCalled);
+        // Test
+        widget.getProperties().put("d", 1000);
+
+        assertTrue(controller.mapNoParamCalled);
+    }
+
+    @Test
+    public void testSetEvents_NoParam() throws Exception {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("list_map_set_events_test.fxml"), null, null, new Callback<Class<?>, Object>() {
+            @Override
+            public Object call(Class<?> param) {
+                return new ListMapSetEventsTestController2();
+            }
+        });
+        Widget widget = (Widget)fxmlLoader.load();
+        ListMapSetEventsTestController2 controller = (ListMapSetEventsTestController2)fxmlLoader.getController();
+
+        assertFalse(controller.setNoParamCalled);
+        // Test
+        widget.getSet().add("x");
+
+        assertTrue(controller.setNoParamCalled);
+    }
+
+    @Test
+    public void testPropertyEvents_jfx2_deprecated() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test.fxml"));
+        fxmlLoader.setController(new PropertyEventsTestDeprecatedController());
+        fxmlLoader.load();
+
+        PropertyEventsTestDeprecatedController controller = fxmlLoader.getController();
+        assertEquals(controller.getRootName(), "abc");
+        assertEquals(controller.getChildName(), "def");
+
+        final String rootName = "123";
+        controller.getRoot().setName(rootName);
+        assertEquals(controller.getRootName(), rootName);
+
+        final String childName = "456";
+        controller.getChild().setName(childName);
+        assertEquals(controller.getChildName(), childName);
+    }
+
+    @Test
+    public void testPropertyEvents() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test.fxml"));
+        fxmlLoader.setController(new PropertyEventsTestController());
+        fxmlLoader.load();
+
+        PropertyEventsTestController controller = fxmlLoader.getController();
+        assertEquals(controller.getRootName(), "abc");
+        assertEquals(controller.getChildName(), "def");
+
+        final String rootName = "123";
+        controller.getRoot().setName(rootName);
+        assertEquals(controller.getRootName(), rootName);
+
+        final String childName = "456";
+        controller.getChild().setName(childName);
+        assertEquals(controller.getChildName(), childName);
+    }
+
+    @Test
+    public void testPropertyEvents_testNewValue() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test_value.fxml"));
+
+        fxmlLoader.load();
+        PropertyEventsTestValueController controller = fxmlLoader.getController();
+
+        assertEquals(controller.getRoot().getName(), controller.getRootName());
+        assertEquals(controller.getChild().getName(), controller.getChildName());
+    }
+
+    @Test
+    public void testPropertyEvents_testExpressionHandler() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test_expression.fxml"));
+        final boolean[] ref = new boolean[] { false };
+        fxmlLoader.getNamespace().put("manualAction", new ChangeListener<Object>() {
+            @Override
+            public void changed(ObservableValue<? extends Object> ov, Object o, Object n) {
+                ref[0] = true;
+            }
+        });
+        fxmlLoader.load();
+
+        Widget w = fxmlLoader.getRoot();
+        assertFalse(ref[0]);
+        w.setName("abc");
+        assertTrue(ref[0]);
+    }
+
+
+    @Test(expected = LoadException.class)
+    public void testPropertyEvents_testExpressionHandler_NA() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("property_events_test_expression_na.fxml"));
+        fxmlLoader.load();
+    }
+
+    @Test
+    public void testEvents() throws  IOException{
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("events_test.fxml"));
+        Widget button = fxmlLoader.load();
+        EventsTestController controller = fxmlLoader.getController();
+        assertFalse(controller.called);
+        button.fire();
+        assertTrue(controller.called);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/FXMLLoader_ExpressionTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,330 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import com.sun.javafx.fxml.expression.Expression;
+import com.sun.javafx.fxml.expression.KeyPath;
+import javafx.collections.ObservableList;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.HashMap;
+import javafx.fxml.FXMLLoader;
+
+import static com.sun.javafx.fxml.expression.Expression.*;
+import static com.sun.javafx.fxml.expression.Expression.set;
+import static com.sun.javafx.fxml.expression.Expression.valueOf;
+import static org.junit.Assert.assertEquals;
+
+public class FXMLLoader_ExpressionTest {
+
+    @Test
+    public void testIncompletePropertyOnPath() throws IOException {
+        ObservableList<IncompletePropertyContainer> list = FXMLLoader.load(getClass().getResource("expression_incomplete_property.fxml"));
+        list.get(0).setProp("12345");
+        assertEquals("12345", list.get(1).getProp());
+    }
+
+    @Test
+    public void testExpression() {
+        Expression add = add(3, 4);
+        assertEquals(add.evaluate(null), 7);
+
+        Expression subtract = subtract(5, 2);
+        assertEquals(subtract.evaluate(null), 3);
+
+        Expression multiply = multiply(add, subtract);
+        assertEquals(multiply.evaluate(null), 21);
+
+        Expression divide = divide(multiply, 3);
+        assertEquals(divide.evaluate(null), 7);
+
+        Expression concatenate = add("abc", "def");
+        assertEquals(concatenate.evaluate(null), "abcdef");
+
+        assertEquals(greaterThan(divide, 3).evaluate(null), true);
+        assertEquals(greaterThan(divide, 7).evaluate(null), false);
+        assertEquals(greaterThanOrEqualTo(divide, 7).evaluate(null), true);
+
+        assertEquals(lessThan(divide, 9).evaluate(null), true);
+        assertEquals(lessThan(divide, 7).evaluate(null), false);
+        assertEquals(lessThanOrEqualTo(divide, 7).evaluate(null), true);
+
+        assertEquals(equalTo("abcd", "abcd").evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression1() {
+        Expression expression = valueOf("1 + 2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 3);
+    }
+
+    @Test
+    public void testParseExpression1s() {
+        Expression expression = valueOf("1+2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 3);
+    }
+
+    @Test
+    public void testParseExpression2a() {
+        Expression expression = valueOf("3 + 4 * 2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
+    }
+
+    public void testParseExpression2as() {
+        Expression expression = valueOf("3+4*2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
+    }
+
+    @Test
+    public void testParseExpression2b() {
+        Expression expression = valueOf("3 + (4 * 2)");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
+    }
+    @Test
+    public void testParseExpression2bs() {
+        Expression expression = valueOf("3+(4*2)");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 11);
+    }
+
+    @Test
+    public void testParseExpression2c() {
+        Expression expression = valueOf("(3 + 4) * 2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 14);
+    }
+
+    @Test
+    public void testParseExpression2d() {
+        Expression expression = valueOf("7.0 * 0.5 - 2 * 3.5");
+        assertEquals(expression.evaluate(null), -3.5);
+    }
+
+    @Test
+    public void testParseExpression2e() {
+        Expression expression = valueOf("(10 * 5) - 13");
+        assertEquals(expression.evaluate(null), 37L);
+    }
+
+    @Test
+    public void testParseExpression3a() {
+        Expression expression = valueOf("'abc' == 'abc'");
+        assertEquals(expression.evaluate(null), true);
+    }
+    @Test
+    public void testParseExpression3as() {
+        Expression expression = valueOf("'abc'=='abc'");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3b() {
+        Expression expression = valueOf("'abc' != 'abc'");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression3bc() {
+        Expression expression = valueOf("'abc'!='abc'");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression3c() {
+        Expression expression = valueOf("'abc' == 'def'");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression3d() {
+        Expression expression = valueOf("'abc' != 'def'");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3e() {
+        Expression expression = valueOf("3 > 2");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3es() {
+        Expression expression = valueOf("3>2");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression3f() {
+        Expression expression = valueOf("3 < 2");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression4() {
+        assertEquals(valueOf("null").evaluate(null), null);
+        assertEquals(valueOf("true").evaluate(null), true);
+        assertEquals(valueOf("false").evaluate(null), false);
+    }
+
+
+    @Test
+    public void testParseExpression5() {
+        HashMap<String, Object> namespace = new HashMap<String, Object>();
+
+        HashMap<String, Object> a = new HashMap<String, Object>();
+        namespace.put("a", a);
+
+        HashMap<String, Object> b = new HashMap<String, Object>();
+        a.put("b", b);
+
+        b.put("c", 5);
+
+        String path = "a['b'].c";
+
+        Expression expression = valueOf(path);
+
+        System.out.println(expression + " = " + expression.evaluate(namespace));
+        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 5);
+
+        expression = valueOf("3 * " + path + " + 2");
+        System.out.println(expression + " = " + expression.evaluate(namespace));
+        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 17);
+
+        set(namespace, KeyPath.parse(path), 10);
+        assertEquals(((Number)expression.evaluate(namespace)).intValue(), 32);
+
+        expression = valueOf("nu['b'].c");
+        System.out.println(expression + " = " + expression.evaluate(namespace));
+        assertEquals(expression.evaluate(namespace), null);
+    }
+
+    @Test
+    public void testParseExpression6() {
+        Expression expression = valueOf("-2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), -2);
+
+        expression = valueOf("3 + -2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 1);
+        System.out.println(expression + " = " + expression.evaluate(null));
+    }
+
+    @Test
+    public void testParseExpression6a() {
+        Expression expression = valueOf("--2");
+        assertEquals(((Number)expression.evaluate(null)).intValue(), 2);
+    }
+
+    @Test
+    public void testParseExpression7() {
+        Expression expression = valueOf("!false");
+        assertEquals(expression.evaluate(null), true);
+
+        expression = valueOf("true && !false");
+        System.out.println(expression + " = " + expression.evaluate(null));
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression7a() {
+        Expression expression = valueOf("!!false");
+        assertEquals(expression.evaluate(null), false);
+    }
+
+    @Test
+    public void testParseExpression8a() {
+        Expression expression = valueOf("\"a\" + \"b\"");
+        assertEquals(expression.evaluate(null), "ab");
+    }
+
+    @Test
+    public void testParseExpression8b() {
+        Expression expression = valueOf("'a' + 'b'");
+        assertEquals(expression.evaluate(null), "ab");
+    }
+
+    @Test
+    public void testParseExpression8c() {
+        Expression expression = valueOf("'1' + 2");
+        assertEquals(expression.evaluate(null), "12");
+    }
+
+    @Test
+    public void testParseExpression8d() {
+        Expression expression = valueOf("1 + '2'");
+        assertEquals(expression.evaluate(null), "12");
+    }
+
+    @Test
+    public void testParseExpression8e() {
+        Expression expression = valueOf("1 + '2' == '12'");
+        assertEquals(expression.evaluate(null), true);
+    }
+
+    @Test
+    public void testParseExpression8f() {
+        Expression expression = valueOf("1 + 2 + ' fiddlers'");
+        assertEquals(expression.evaluate(null), "3 fiddlers");
+    }
+
+    @Test
+    public void testParseExpression8g() {
+        Expression expression = valueOf("'fiddlers ' + 1 + 2");
+        assertEquals(expression.evaluate(null), "fiddlers 12");
+    }
+
+    @Test
+    public void testMarkup() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("expression_binding.fxml"));
+        fxmlLoader.load();
+
+        ExpressionBindingController controller = (ExpressionBindingController)fxmlLoader.getController();
+
+        Widget childWidget1 = (Widget)fxmlLoader.getNamespace().get("childWidget1");
+        assertEquals(childWidget1.isEnabled(), false);
+
+        controller.setPercentage(0.85);
+        assertEquals(childWidget1.isEnabled(), true);
+    }
+
+    @Test
+    public void testEscapeSequences() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("expression_escapechars.fxml"));
+        fxmlLoader.load();
+
+        Widget widget1 = (Widget)fxmlLoader.getNamespace().get("widget1");
+        assertEquals(widget1.getName(), fxmlLoader.getNamespace().get("abc"));
+
+        Widget widget2 = (Widget)fxmlLoader.getNamespace().get("widget2");
+        assertEquals(widget2.getName(), "$abc");
+
+        Widget widget3 = (Widget)fxmlLoader.getNamespace().get("widget3");
+        assertEquals(widget3.getName(), "$abc");
+
+        Widget widget4 = (Widget)fxmlLoader.getNamespace().get("widget4");
+        assertEquals(widget4.getName(), "\\abc");
+    }
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/FXMLLoader_ScriptTest.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,154 @@
+package test.javafx.fxml;
+/*
+ * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.concurrent.atomic.AtomicBoolean;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.LoadListener;
+
+import static org.junit.Assert.*;
+
+public class FXMLLoader_ScriptTest {
+    @Test
+    @SuppressWarnings("deprecation")
+    public void testStaticScriptLoad() throws IOException {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("static_script_load.fxml"));
+        fxmlLoader.impl_setStaticLoad(true);
+        AtomicBoolean scriptCalled = new AtomicBoolean();
+        AtomicBoolean scriptEndCalled = new AtomicBoolean();
+        fxmlLoader.setLoadListener(new LoadListener() {
+
+            @Override
+            public void readImportProcessingInstruction(String target) {
+            }
+
+            @Override
+            public void readLanguageProcessingInstruction(String language) {
+            }
+
+            @Override
+            public void readComment(String comment) {
+            }
+
+            @Override
+            public void beginInstanceDeclarationElement(Class<?> type) {
+            }
+
+            @Override
+            public void beginUnknownTypeElement(String name) {
+            }
+
+            @Override
+            public void beginIncludeElement() {
+            }
+
+            @Override
+            public void beginReferenceElement() {
+            }
+
+            @Override
+            public void beginCopyElement() {
+            }
+
+            @Override
+            public void beginRootElement() {
+            }
+
+            @Override
+            public void beginPropertyElement(String name, Class<?> sourceType) {
+            }
+
+            @Override
+            public void beginUnknownStaticPropertyElement(String name) {
+            }
+
+            @Override
+            public void beginScriptElement() {
+                assertFalse(scriptCalled.getAndSet(true));
+            }
+
+            @Override
+            public void beginDefineElement() {
+            }
+
+            @Override
+            public void readInternalAttribute(String name, String value) {
+            }
+
+            @Override
+            public void readPropertyAttribute(String name, Class<?> sourceType, String value) {
+            }
+
+            @Override
+            public void readUnknownStaticPropertyAttribute(String name, String value) {
+            }
+
+            @Override
+            public void readEventHandlerAttribute(String name, String value) {
+            }
+
+            @Override
+            public void endElement(Object value) {
+                if (value instanceof String && ((String) value).contains("doSomething")) {
+                    assertTrue(scriptCalled.get());
+                    assertFalse(scriptEndCalled.getAndSet(true));
+                }
+            }
+        });
+
+        fxmlLoader.load();
+        assertTrue(scriptCalled.get());
+        assertTrue(scriptEndCalled.get());
+    }
+
+    @Test
+    public void testScriptHandler() throws IOException {
+
+        FXMLLoader loader = new FXMLLoader(getClass().getResource("script_handler.fxml"));
+        loader.load();
+
+        Widget w = (Widget) loader.getNamespace().get("w");
+        assertNotNull(w);
+        loader.getNamespace().put("actionDone", new AtomicBoolean(false));
+        w.fire();
+        assertTrue(((AtomicBoolean) loader.getNamespace().get("actionDone")).get());
+    }
+
+    @Test
+    public void testExternalScriptHandler() throws IOException {
+
+        FXMLLoader loader = new FXMLLoader(getClass().getResource("script_handler_external.fxml"));
+        loader.load();
+
+        Widget w = (Widget) loader.getNamespace().get("w");
+        assertNotNull(w);
+        loader.getNamespace().put("actionDone", new AtomicBoolean(false));
+        w.fire();
+        assertTrue(((AtomicBoolean)loader.getNamespace().get("actionDone")).get());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/IncompletePropertyContainer.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.beans.property.SimpleStringProperty;
+import javafx.beans.property.StringProperty;
+
+/**
+* Created by msladecek on 3/24/14.
+*/
+public class IncompletePropertyContainer {
+
+    private StringProperty prop = new SimpleStringProperty("");
+
+    public String getProp() {
+        return prop.get();
+    }
+
+    public void setProp(String s) {
+        prop.set(s);
+    }
+
+    public StringProperty propProperty() {
+        return prop;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/ListMapSetEventsTestController.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import java.net.URL;
+import java.util.*;
+
+import javafx.collections.*;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+
+public class ListMapSetEventsTestController
+        implements Initializable {
+    @FXML private Widget root;
+
+    boolean listWithParamCalled = false;
+    boolean listNoParamCalled = false;
+    boolean setWithParamCalled = false;
+    boolean setNoParamCalled = false;
+    boolean mapWithParamCalled = false;
+    boolean mapNoParamCalled = false;
+
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handleChildListChange(ListChangeListener.Change<Widget> event) {
+        listWithParamCalled = true;
+    }
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handleChildListChange() {
+        listNoParamCalled = true;
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handlePropertiesChange(MapChangeListener.Change<String, Object> event) {
+        mapWithParamCalled = true;
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handlePropertiesChange() {
+        mapNoParamCalled = true;
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handleSetChange(SetChangeListener.Change<String> event) {
+        setWithParamCalled = true;
+    }
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handleSetChange() {
+        setNoParamCalled = true;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/ListMapSetEventsTestController2.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package test.javafx.fxml;
+
+import javafx.collections.ListChangeListener;
+import javafx.collections.MapChangeListener;
+import javafx.collections.SetChangeListener;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+
+public class ListMapSetEventsTestController2 implements Initializable {
+    @FXML private Widget root;
+
+    boolean listNoParamCalled = false;
+    boolean setNoParamCalled = false;
+    boolean mapNoParamCalled = false;
+
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handleChildListChange() {
+        listNoParamCalled = true;
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handlePropertiesChange() {
+        mapNoParamCalled = true;
+    }
+
+    @FXML
+    @SuppressWarnings("unchecked")
+    protected void handleSetChange() {
+        setNoParamCalled = true;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/MyWidget.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import java.io.IOException;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+
+public class MyWidget extends Widget {
+    @FXML private Widget childWidget;
+
+    private boolean childWidgetEnabledChanged = false;
+
+    public MyWidget() {
+        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("rt_19870.fxml"));
+        fxmlLoader.setRoot(this);
+        fxmlLoader.setController(this);
+
+        try {
+            fxmlLoader.load();
+        } catch (IOException exception) {
+            throw new RuntimeException(exception);
+        }
+
+        childWidget.setEnabled(false);
+    }
+
+    public boolean getChildWidgetEnabledChanged() {
+        return childWidgetEnabledChanged;
+    }
+
+    @FXML
+    protected void handleChildWidgetEnabledChange() {
+        childWidgetEnabledChanged = true;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/PropertyEventsTestController.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.beans.value.ObservableValue;
+import javafx.event.Event;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+
+public class PropertyEventsTestController implements Initializable {
+    @FXML private Widget root;
+    @FXML private Widget child;
+
+    private String rootName = null;
+    private String childName = null;
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        updateRootName();
+        updateChildName();
+    }
+
+    public Widget getRoot() {
+        return root;
+    }
+
+    public String getRootName() {
+        return rootName;
+    }
+
+    public Widget getChild() {
+        return child;
+    }
+
+    public String getChildName() {
+        return childName;
+    }
+
+    @FXML
+    protected void handleRootNameChange() {
+        updateRootName();
+    }
+
+    @FXML
+    protected void handleChildNameChange() {
+        throw new RuntimeException();
+    }
+
+    @FXML
+    protected void handleChildNameChange(ObservableValue value, String oldV, String newV) {
+        updateChildName();
+    }
+
+    private void updateRootName() {
+        rootName = root.getName();
+    }
+
+    private void updateChildName() {
+        childName = child.getName();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/PropertyEventsTestDeprecatedController.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.event.Event;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+
+public class PropertyEventsTestDeprecatedController implements Initializable {
+    @FXML private Widget root;
+    @FXML private Widget child;
+
+    private String rootName = null;
+    private String childName = null;
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        updateRootName();
+        updateChildName();
+    }
+
+    public Widget getRoot() {
+        return root;
+    }
+
+    public String getRootName() {
+        return rootName;
+    }
+
+    public Widget getChild() {
+        return child;
+    }
+
+    public String getChildName() {
+        return childName;
+    }
+
+    @FXML
+    protected void handleRootNameChange() {
+        updateRootName();
+    }
+
+    @FXML
+    protected void handleChildNameChange() {
+        throw new RuntimeException();
+    }
+
+    @FXML
+    protected void handleChildNameChange(Event event) {
+        updateChildName();
+    }
+
+    private void updateRootName() {
+        rootName = root.getName();
+    }
+
+    private void updateChildName() {
+        childName = child.getName();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/PropertyEventsTestValueController.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.beans.property.Property;
+import javafx.fxml.FXML;
+
+public class PropertyEventsTestValueController extends RT_16722ControllerA {
+    @FXML protected Widget child;
+
+    private String childName = null;
+
+    public Widget getChild() {
+        return child;
+    }
+
+    public String getChildName() {
+        return childName;
+    }
+
+    @FXML
+    protected void handleChildNameChange(Property prop, String oldS, String newS) {
+        childName = newS;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_15524Test.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import java.io.IOException;
+import java.util.Arrays;
+import javafx.fxml.FXMLLoader;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class RT_15524Test {
+    @Test
+    public void testListAndArray() throws IOException {
+        Widget widget = FXMLLoader.load(getClass().getResource("rt_15524.fxml"));
+
+        assertEquals(widget.getStyles(), Arrays.asList(new String[]{"a", "b", "c"}));
+        assertTrue(Arrays.equals(widget.getRatios(), new float[] {1.0f, 2.0f, 3.0f}));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16722ControllerA.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.beans.value.ObservableValue;
+import javafx.fxml.FXML;
+
+public abstract class RT_16722ControllerA {
+    @FXML protected Widget root;
+
+    private String rootName = null;
+
+    public Widget getRoot() {
+        return root;
+    }
+
+    public String getRootName() {
+        return rootName;
+    }
+
+    @FXML
+    // Note: Object class is used here for purpose
+    protected void handleRootNameChange(ObservableValue value, Object oldO, Object newO ) {
+        rootName = (String)newO;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16724Controller.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+public class RT_16724Controller {
+    public RT_16724Controller(boolean flag) {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16724ControllerFactory.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.util.Callback;
+
+public class RT_16724ControllerFactory implements Callback<Class<?>, Object> {
+    @Override
+    public Object call(Class<?> type) {
+        return (type == RT_16724Controller.class) ? new RT_16724Controller(true) : null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16724Test.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import java.io.IOException;
+import javafx.fxml.FXMLLoader;
+import org.junit.Test;
+
+public class RT_16724Test {
+    @Test
+    public void testControllerFactory() throws IOException {
+        FXMLLoader.load(getClass().getResource("rt_16724.fxml"), null, null,
+            new RT_16724ControllerFactory());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16815Controller.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+public class RT_16815Controller {
+    public RT_16815Controller(boolean flag) {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16815ControllerFactory.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package test.javafx.fxml;
+
+import javafx.util.Callback;
+
+public class RT_16815ControllerFactory implements Callback<Class<?>, Object> {
+    @Override
+    public Object call(Class<?> type) {
+        return (type == RT_16815Controller.class) ? new RT_16815Controller(true) : null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules/fxml/src/test/java/test/javafx/fxml/RT_16815Test.java	Mon Jan 04 07:34:00 2016 -0800
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or