TRINIDAD-1681 - Generated Facelets taglib.xml files contain the OLD DTD
Thanks for the patch, Max
diff --git a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java
index 0e82ce0..627d4d9 100644
--- a/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java
+++ b/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFaceletsTaglibsMojo.java
@@ -163,10 +163,13 @@
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer identity = transFactory.newTransformer();
- identity.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
- _FACELETS_TAG_LIBRARY_DOCTYPE_PUBLIC);
- identity.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,
- _FACELETS_TAG_LIBRARY_DOCTYPE_SYSTEM);
+ if (!_isJSF20PLus())
+ {
+ identity.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
+ _FACELETS_TAG_LIBRARY_DOCTYPE_PUBLIC);
+ identity.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,
+ _FACELETS_TAG_LIBRARY_DOCTYPE_SYSTEM);
+ }
identity.transform(mergedSource, mergedResult);
targetFile.setReadOnly();
@@ -247,10 +250,28 @@
{
stream.writeStartDocument("1.0");
stream.writeCharacters("\n");
- stream.writeDTD(dtd);
- stream.writeCharacters("\n");
+
+ boolean isJSF20PLus = _isJSF20PLus();
+
+ String ns = _FACELETS_NAMESPACE_URI_20;
+
+ if (!isJSF20PLus)
+ {
+ ns = _FACELETS_NAMESPACE_URI;
+ stream.writeDTD(dtd);
+ stream.writeCharacters("\n");
+ }
+
stream.writeStartElement("facelet-taglib");
- stream.writeDefaultNamespace(_FACELETS_NAMESPACE_URI);
+ stream.writeDefaultNamespace(ns);
+
+ if (isJSF20PLus)
+ {
+ stream.writeNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
+ stream.writeAttribute("http://www.w3.org/2001/XMLSchema-instance", "schemaLocation",
+ "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd");
+ stream.writeAttribute("version", "2.0");
+ }
stream.writeCharacters("\n ");
}
@@ -636,6 +657,9 @@
static private final String _FACELETS_NAMESPACE_URI =
"http://java.sun.com/JSF/Facelet";
+
+ static private final String _FACELETS_NAMESPACE_URI_20 =
+ "http://java.sun.com/xml/ns/javaee";
static final private String _FACELETS_TAG_LIBRARY_DOCTYPE_PUBLIC =
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN";