You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2008/04/02 01:01:21 UTC
svn commit: r643636 - in
/myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder:
IOUtils.java MakeTagsMojo.java
Author: lu4242
Date: Tue Apr 1 16:01:17 2008
New Revision: 643636
URL: http://svn.apache.org/viewvc?rev=643636&view=rev
Log:
get metadata from artifacts
Modified:
myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/IOUtils.java
myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/MakeTagsMojo.java
Modified: myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/IOUtils.java
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/IOUtils.java?rev=643636&r1=643635&r2=643636&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/IOUtils.java (original)
+++ myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/IOUtils.java Tue Apr 1 16:01:17 2008
@@ -23,15 +23,24 @@
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import org.apache.commons.digester.Digester;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
import org.apache.myfaces.buildtools.maven2.plugin.builder.io.XmlWriter;
import org.apache.myfaces.buildtools.maven2.plugin.builder.model.Model;
import org.xml.sax.SAXException;
@@ -41,6 +50,9 @@
*/
public class IOUtils
{
+
+ private final static String MYFACES_METADATA = "META-INF/myfaces-metadata.xml";
+
/**
* Write the contents of the model to an xml file.
*/
@@ -125,7 +137,96 @@
}
}
}
+
+ public static List getModelsFromArtifacts(MavenProject project)
+ throws MojoExecutionException
+ {
+ List models = new ArrayList();
+
+ for (Iterator it = project.getArtifacts().iterator(); it.hasNext();)
+ {
+
+ Artifact artifact = (Artifact) it.next();
+
+ //This is safe since we have all depencencies on the
+ //pom, so they are downloaded first by maven.
+ File jarFile = artifact.getFile();
+
+ URLClassLoader archetypeJarLoader;
+ InputStream is = null;
+ try
+ {
+ URL[] urls = new URL[1];
+ urls[0] = jarFile.toURL();
+ archetypeJarLoader = new URLClassLoader(urls);
+
+ is = getStream(MYFACES_METADATA, archetypeJarLoader);
+
+ if (is == null)
+ {
+
+ //System.out.println("Artifact: "
+ // + artifact.getFile().getName()
+ // + " does not have META-INF/myfaces-metadata.xml");
+ }
+ else
+ {
+ Reader r = null;
+ try {
+ r = new InputStreamReader(is);
+ Model m = readModel(r);
+ models.add(m);
+ r.close();
+ }catch(IOException e){
+ throw new MojoExecutionException(
+ "Error reading myfaces-metadata.xml form "
+ + artifact.getFile().getName(), e);
+ }finally{
+ if (r != null){
+ try {
+ r.close();
+ }catch(IOException e){
+ //ignore
+ }
+ }
+ }
+
+ System.out.println("Artifact: "
+ + artifact.getFile().getName()
+ + " have META-INF/myfaces-metadata.xml");
+ }
+ }
+ catch (IOException e)
+ {
+ throw new MojoExecutionException(
+ "Error reading myfaces-metadata.xml form "
+ + artifact.getFile().getName(), e);
+ }
+ finally
+ {
+ if (is != null){
+ try {
+ is.close();
+ }catch(IOException ex){
+ //ignore
+ }
+ }
+ }
+ }
+ return models;
+ }
+
+ private static InputStream getStream( String name,
+ ClassLoader loader )
+ {
+ if ( loader == null )
+ {
+ return Thread.currentThread().getContextClassLoader().getResourceAsStream( name );
+ }
+ return loader.getResourceAsStream( name );
+ }
+
/**
* Read the contents of the model from a provided Reader object.
*/
Modified: myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/MakeTagsMojo.java
URL: http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/MakeTagsMojo.java?rev=643636&r1=643635&r2=643636&view=diff
==============================================================================
--- myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/MakeTagsMojo.java (original)
+++ myfaces/myfaces-build-tools/branches/builder_plugin/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/MakeTagsMojo.java Tue Apr 1 16:01:17 2008
@@ -24,6 +24,7 @@
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Iterator;
+import java.util.List;
import java.util.Properties;
import java.util.logging.Logger;
@@ -115,7 +116,7 @@
* @parameter
*/
private String jsfVersion;
-
+
/**
* Execute the Mojo.
*/
@@ -123,10 +124,12 @@
{
// This command makes Maven compile the generated source:
// getProject().addCompileSourceRoot( absoluteGeneratedPath.getPath() );
+
try
- {
+ {
Model model = IOUtils.loadModel(new File(buildDirectory,
metadataFile));
+ List models = IOUtils.getModelsFromArtifacts(project);
new Flattener(model).flatten();
generateComponents(model);
}
@@ -139,7 +142,7 @@
throw new MojoExecutionException("Error generating components", e);
}
}
-
+
private VelocityEngine initVelocity() throws MojoExecutionException
{
@@ -197,7 +200,7 @@
_generateComponent(velocityEngine, component);
}
}
- throw new MojoExecutionException("stopping..");
+ //throw new MojoExecutionException("stopping..");
}
/**