Last updated: 1/24/2013
XMLInputFactory looks up its current implementation class name in META-INF/services/javax.xml.stream.XMLInputFactory. If such entry exists in one of application jars the request to the server doesn't happen because the resource is already available from loaded jar. Create an empty file META-INF/services/javax.xml.stream.XMLInputFactory and package it within your application. Factory finder will then get the file but because it is empty providerId==null which causes fallback to the default implementation of XMLInputFactory on jre bootclasspath.
Look at description of custom components. Setting root before loading fxml file wasn't required. Root was created and set if custom component had default constructor. To be consistent with documentation setRoot() is always required before loading fxml file.
FXMLLoader is able to initialize list or array property from a string value containing ',' (comma) delimited tokens.
<VBox stylesheets="style1.css,style2.css,style3.css"/>
FXMLLoader is able to set a list or an array property from a value containing string tokens delimited by "," (list="a, b, c, d"). It can resolve properly tokens prefixed with "@", "%" or "\" Something like this list_property="%resource1, %resource2, ..." or stylesheets="@style1.css, @style2.css, ..." where % is resource and @ is relative path.
If you want to wire in events into the FXML elements the event needs to come from the controller or from the embedded scripts. This has been extended so that fxmloader looks to the namespace for event handler.
How to put event handler implementation into namespace:fxmlLoader.getNamespace().put("manualAction", new EventHandlerReference event handler in fxml:>() { public void handle(PropertyChangeEvent stringPropertyChangeEvent) { //handle code here } });
<Widget onNameChange="$manualAction"/>