You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by ma...@apache.org on 2006/07/25 01:59:27 UTC
svn commit: r425254 [3/5] -
/incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/
Modified: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFacesConfigMojo.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFacesConfigMojo.java?rev=425254&r1=425253&r2=425254&view=diff
==============================================================================
--- incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFacesConfigMojo.java (original)
+++ incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFacesConfigMojo.java Mon Jul 24 18:59:25 2006
@@ -13,211 +13,211 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.myfaces.trinidadbuild.plugin.faces;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
+package org.apache.myfaces.trinidadbuild.plugin.faces;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
import org.apache.myfaces.trinidadbuild.plugin.faces.util.XIncludeFilter;
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-/**
- * @version $Id$
- * @requiresDependencyResolution compile
- * @goal generate-faces-config
- * @phase generate-resources
- */
-public class GenerateFacesConfigMojo extends AbstractFacesMojo
-{
- /**
- * Execute the Mojo.
- */
- public void execute() throws MojoExecutionException
- {
- try
- {
- // always add resources directory to project resource root
- addResourceRoot(project, targetDirectory.getCanonicalPath());
-
- File targetFile = new File(targetDirectory, targetPath);
-
- URL[] index = readIndex(project);
-
- if (!force && !isModifiedSince(index, targetFile.lastModified()))
- {
- getLog().info("Nothing to generate - " + targetPath + " is up to date");
- }
- else
- {
- List configURLs = getMasterConfigs(project);
-
- File configFile = new File(configDirectory, configPath);
- if (configFile.exists())
- {
- configURLs = new LinkedList(configURLs);
- // base config goes first
- configURLs.add(0, configFile.toURL());
- }
-
- if (!configURLs.isEmpty())
- {
- URL baseURL = GenerateFacesConfigMojo.class.getResource("resources/faces-config.xml");
- DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
- Document document = docBuilder.parse(baseURL.openStream());
- Element root = document.getDocumentElement();
-
- // embed each <xi:include> element
- for (Iterator i = configURLs.iterator(); i.hasNext(); )
- {
- URL url = (URL)i.next();
- Element include = document.createElementNS("http://www.w3.org/2001/XInclude",
- "xi:include");
- include.setAttribute("href", url.toExternalForm());
- include.setAttribute("xpointer", "/faces-config/*");
- root.insertBefore(include, root.getFirstChild());
- }
-
- // Note: use a direct DOM->SAX reader
- // rather than transforming to string
- TransformerFactory transFactory = TransformerFactory.newInstance();
- Transformer identity = transFactory.newTransformer();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- identity.transform(new DOMSource(document), new StreamResult(out));
-
- InputStream mergedStream = new ByteArrayInputStream(out.toByteArray());
- // expand all the xi:include elements
- SAXParserFactory saxFactory = SAXParserFactory.newInstance();
- saxFactory.setNamespaceAware(true);
- saxFactory.setValidating(false);
- SAXParser saxParser = saxFactory.newSAXParser();
- XMLReader mergedReader = saxParser.getXMLReader();
- mergedReader = new XIncludeFilter(mergedReader, baseURL);
- mergedReader.setEntityResolver(new EntityResolver()
- {
- public InputSource resolveEntity(
- String publicId,
- String systemId)
- {
- return new InputSource(new ByteArrayInputStream(new byte[0]));
- }
- });
- InputSource mergedInput = new InputSource(mergedStream);
- Source mergedSource = new SAXSource(mergedReader, mergedInput);
-
- // Transform the combined faces-config.xml file to resolve
- // component-supertype, inject the DTD and ensure that
- // metadata is represented compatibly with JSF 1.1 syntax.
- targetFile.delete();
- targetFile.getParentFile().mkdirs();
- Result mergedResult = new StreamResult(new FileOutputStream(targetFile));
-
- URL xslURL = getClass().getResource("resources/transform.xsl");
- InputStream xsl = xslURL.openStream();
- StreamSource xslSource = new StreamSource(xsl);
- Transformer transformer = transFactory.newTransformer(xslSource);
- transformer.setParameter("packageContains", packageContains);
- transformer.setParameter("typePrefix", typePrefix);
- transformer.transform(mergedSource, mergedResult);
-
- targetFile.setReadOnly();
-
- getLog().info("Generated " + targetPath);
- }
- }
- }
- catch (SAXException e)
- {
- throw new MojoExecutionException("Error during generation", e);
- }
- catch (TransformerException e)
- {
- throw new MojoExecutionException("Error during generation", e);
- }
- catch (ParserConfigurationException e)
- {
- throw new MojoExecutionException("Error during generation", e);
- }
- catch (IOException e)
- {
- throw new MojoExecutionException("Error during generation", e);
- }
- }
-
- /**
- * @parameter expression="${project}"
- * @readonly
- */
- private MavenProject project;
-
- /**
- * @parameter expression="src/main/conf"
- * @required
- */
- private File configDirectory;
-
- /**
- * @parameter
- */
- private String configPath = "META-INF/faces-config-base.xml";
-
- /**
- * @parameter
- */
- private String packageContains = "";
-
- /**
- * @parameter expression="${project.build.directory}/maven-faces-plugin/main/resources"
- * @required
- */
- private File targetDirectory;
-
- /**
- * @parameter
- */
- private String targetPath = "META-INF/faces-config.xml";
-
- /**
- * @parameter
- */
- private boolean force;
-
- /**
- * @parameter
- * @required
- */
- private String typePrefix;
-}
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+/**
+ * @version $Id$
+ * @requiresDependencyResolution compile
+ * @goal generate-faces-config
+ * @phase generate-resources
+ */
+public class GenerateFacesConfigMojo extends AbstractFacesMojo
+{
+ /**
+ * Execute the Mojo.
+ */
+ public void execute() throws MojoExecutionException
+ {
+ try
+ {
+ // always add resources directory to project resource root
+ addResourceRoot(project, targetDirectory.getCanonicalPath());
+
+ File targetFile = new File(targetDirectory, targetPath);
+
+ URL[] index = readIndex(project);
+
+ if (!force && !isModifiedSince(index, targetFile.lastModified()))
+ {
+ getLog().info("Nothing to generate - " + targetPath + " is up to date");
+ }
+ else
+ {
+ List configURLs = getMasterConfigs(project);
+
+ File configFile = new File(configDirectory, configPath);
+ if (configFile.exists())
+ {
+ configURLs = new LinkedList(configURLs);
+ // base config goes first
+ configURLs.add(0, configFile.toURL());
+ }
+
+ if (!configURLs.isEmpty())
+ {
+ URL baseURL = GenerateFacesConfigMojo.class.getResource("resources/faces-config.xml");
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+ Document document = docBuilder.parse(baseURL.openStream());
+ Element root = document.getDocumentElement();
+
+ // embed each <xi:include> element
+ for (Iterator i = configURLs.iterator(); i.hasNext(); )
+ {
+ URL url = (URL)i.next();
+ Element include = document.createElementNS("http://www.w3.org/2001/XInclude",
+ "xi:include");
+ include.setAttribute("href", url.toExternalForm());
+ include.setAttribute("xpointer", "/faces-config/*");
+ root.insertBefore(include, root.getFirstChild());
+ }
+
+ // Note: use a direct DOM->SAX reader
+ // rather than transforming to string
+ TransformerFactory transFactory = TransformerFactory.newInstance();
+ Transformer identity = transFactory.newTransformer();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ identity.transform(new DOMSource(document), new StreamResult(out));
+
+ InputStream mergedStream = new ByteArrayInputStream(out.toByteArray());
+ // expand all the xi:include elements
+ SAXParserFactory saxFactory = SAXParserFactory.newInstance();
+ saxFactory.setNamespaceAware(true);
+ saxFactory.setValidating(false);
+ SAXParser saxParser = saxFactory.newSAXParser();
+ XMLReader mergedReader = saxParser.getXMLReader();
+ mergedReader = new XIncludeFilter(mergedReader, baseURL);
+ mergedReader.setEntityResolver(new EntityResolver()
+ {
+ public InputSource resolveEntity(
+ String publicId,
+ String systemId)
+ {
+ return new InputSource(new ByteArrayInputStream(new byte[0]));
+ }
+ });
+ InputSource mergedInput = new InputSource(mergedStream);
+ Source mergedSource = new SAXSource(mergedReader, mergedInput);
+
+ // Transform the combined faces-config.xml file to resolve
+ // component-supertype, inject the DTD and ensure that
+ // metadata is represented compatibly with JSF 1.1 syntax.
+ targetFile.delete();
+ targetFile.getParentFile().mkdirs();
+ Result mergedResult = new StreamResult(new FileOutputStream(targetFile));
+
+ URL xslURL = getClass().getResource("resources/transform.xsl");
+ InputStream xsl = xslURL.openStream();
+ StreamSource xslSource = new StreamSource(xsl);
+ Transformer transformer = transFactory.newTransformer(xslSource);
+ transformer.setParameter("packageContains", packageContains);
+ transformer.setParameter("typePrefix", typePrefix);
+ transformer.transform(mergedSource, mergedResult);
+
+ targetFile.setReadOnly();
+
+ getLog().info("Generated " + targetPath);
+ }
+ }
+ }
+ catch (SAXException e)
+ {
+ throw new MojoExecutionException("Error during generation", e);
+ }
+ catch (TransformerException e)
+ {
+ throw new MojoExecutionException("Error during generation", e);
+ }
+ catch (ParserConfigurationException e)
+ {
+ throw new MojoExecutionException("Error during generation", e);
+ }
+ catch (IOException e)
+ {
+ throw new MojoExecutionException("Error during generation", e);
+ }
+ }
+
+ /**
+ * @parameter expression="${project}"
+ * @readonly
+ */
+ private MavenProject project;
+
+ /**
+ * @parameter expression="src/main/conf"
+ * @required
+ */
+ private File configDirectory;
+
+ /**
+ * @parameter
+ */
+ private String configPath = "META-INF/faces-config-base.xml";
+
+ /**
+ * @parameter
+ */
+ private String packageContains = "";
+
+ /**
+ * @parameter expression="${project.build.directory}/maven-faces-plugin/main/resources"
+ * @required
+ */
+ private File targetDirectory;
+
+ /**
+ * @parameter
+ */
+ private String targetPath = "META-INF/faces-config.xml";
+
+ /**
+ * @parameter
+ */
+ private boolean force;
+
+ /**
+ * @parameter
+ * @required
+ */
+ private String typePrefix;
+}
Propchange: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/GenerateFacesConfigMojo.java
------------------------------------------------------------------------------
svn:eol-style = native