Author: hlship
Date: Mon Sep  8 10:44:47 2008
New Revision: 693176

URL: http://svn.apache.org/viewvc?rev=693176&view=rev
Log:
TAPESTRY-2243: Component report crashes when project have too many dependencies

Modified:
    
tapestry/tapestry5/trunk/tapestry-component-report/src/main/java/org/apache/tapestry/mojo/ComponentReport.java

Modified: 
tapestry/tapestry5/trunk/tapestry-component-report/src/main/java/org/apache/tapestry/mojo/ComponentReport.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-component-report/src/main/java/org/apache/tapestry/mojo/ComponentReport.java?rev=693176&r1=693175&r2=693176&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-component-report/src/main/java/org/apache/tapestry/mojo/ComponentReport.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-component-report/src/main/java/org/apache/tapestry/mojo/ComponentReport.java
 Mon Sep  8 10:44:47 2008
@@ -44,7 +44,7 @@
  * @requiresDependencyResolution compile
  * @execute phase="generate-sources"
  */
[EMAIL PROTECTED]({ "unchecked" })
[EMAIL PROTECTED]({"unchecked"})
 public class ComponentReport extends AbstractMavenReport
 {
     /**
@@ -52,8 +52,8 @@
      */
     private static final String REFERENCE_DIR = "ref";
 
-    private final static String[] PARAMETER_HEADERS = { "Name", "Type", 
"Flags", "Default", "Default Prefix",
-            "Description" };
+    private final static String[] PARAMETER_HEADERS = {"Name", "Type", 
"Flags", "Default", "Default Prefix",
+            "Description"};
 
 
     /**
@@ -237,7 +237,6 @@
                 sink.list_();
                 sink.section2_();
             }
-
         }
         catch (Exception ex)
         {
@@ -530,7 +529,7 @@
 
         String parametersPath = workDirectory + File.separator + 
"component-parameters.xml";
 
-        String[] arguments = { "-private", "-o", parametersPath,
+        String[] arguments = {"-private", "-o", parametersPath,
 
                 "-subpackages", rootPackage,
 
@@ -540,15 +539,40 @@
 
                 "-sourcepath", sourcePath(),
 
-                "-classpath", classPath() };
+                "-classpath", classPath()};
+
+        String argumentsFile = writeArgumentsFile(arguments);
 
-        command.addArguments(arguments);
+        command.addArguments(new String[] {"@" + argumentsFile});
 
         executeCommand(command);
 
         return readXML(parametersPath);
     }
 
+    private String writeArgumentsFile(String[] arguments) throws 
MavenReportException
+    {
+        String fileName = workDirectory + 
"/component-report-javadoc-arguments.txt";
+
+        try
+        {
+            PrintWriter pw = new PrintWriter(fileName);
+
+            for (String arg : arguments)
+            {
+                pw.println(arg);
+            }
+
+            pw.close();
+        }
+        catch (IOException ex)
+        {
+            throw new MavenReportException(ex.getMessage());
+        }
+
+        return fileName;
+    }
+
     @SuppressWarnings("unchecked")
     private String sourcePath()
     {


Reply via email to