Author: rdonkin
Date: Fri May 27 07:53:43 2011
New Revision: 1128186

URL: http://svn.apache.org/viewvc?rev=1128186&view=rev
Log:
MAILETDOCS-4 Load classes once per module and iterate through all modules.

Modified:
    
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
    
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java

Modified: 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
URL: 
http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java?rev=1128186&r1=1128185&r2=1128186&view=diff
==============================================================================
--- 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
 (original)
+++ 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
 Fri May 27 07:53:43 2011
@@ -68,21 +68,30 @@ public class DefaultDescriptorsExtractor
         final JavaClass[] classes = javaClasses(project);
 
         final URLClassLoader classLoader = classLoader(project, log);
-        
         logProjectDependencies(project, log);
         logDirectories(project, log);
-
-        for (int i = 0; i < classes.length; i++) {
-            final JavaClass nextClass = classes[i];
-            addDescriptor(log, classLoader, nextClass);
-        }
         
+        try {
+            final Class<?> mailetClass = 
classLoader.loadClass(MAILET_CLASS_NAME);
+            final Class<?> matcherClass = 
classLoader.loadClass(MATCHER_CLASS_NAME); 
+    
+            for (int i = 0; i < classes.length; i++) {
+                final JavaClass nextClass = classes[i];
+                addDescriptor(log, classLoader, mailetClass, matcherClass, 
nextClass);
+            }
+        } catch (ClassNotFoundException e) {
+            log.debug(e);
+            log.info("No mailets in " + project.getName());
+        }
         return this;
     }
 
 
     private void addDescriptor(Log log, 
-            final URLClassLoader classLoader, final JavaClass nextClass) {
+            final URLClassLoader classLoader,
+            final Class<?> mailetClass,
+            final Class<?> matcherClass,
+            final JavaClass nextClass) {
         final String nameOfNextClass = nextClass.getFullyQualifiedName();
         if (log.isDebugEnabled()) {
             log.debug("Class: " + nameOfNextClass);
@@ -94,8 +103,6 @@ public class DefaultDescriptorsExtractor
             logConstructor(log, klass);
 
             final List<Class<?>> allInterfaces = getAllInterfaces(klass);
-            final Class<?> mailetClass = 
classLoader.loadClass(MAILET_CLASS_NAME);
-            final Class<?> matcherClass = 
classLoader.loadClass(MATCHER_CLASS_NAME);
             
             if (allInterfaces.contains(mailetClass)) {
                 final MailetMatcherDescriptor descriptor = describeMailet(log, 
nextClass,
@@ -267,10 +274,13 @@ public class DefaultDescriptorsExtractor
 
 
     private void logProjectDependencies(MavenProject project, Log log) {
+        log.debug("Logging project dependencies");
         if (log.isDebugEnabled()) {
             @SuppressWarnings("unchecked")
             final Set<Artifact> dependencies = 
project.getDependencyArtifacts();
-            if (dependencies != null) {
+            if (dependencies == null) {
+                log.debug("No project dependencies");
+            } else {
                 for (final Artifact artifact: dependencies) {
                     log.debug("DEP: " + artifact);
                 }

Modified: 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java
URL: 
http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java?rev=1128186&r1=1128185&r2=1128186&view=diff
==============================================================================
--- 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java
 (original)
+++ 
james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsMojo.java
 Fri May 27 07:53:43 2011
@@ -41,9 +41,16 @@ import org.apache.maven.reporting.MavenR
  * @goal mailetdocs
  * @since 0.1
  * @requiresDependencyResolution compile
+ * @aggregator
  */
 public class MailetdocsMojo extends AbstractMavenReport {
-
+    
+    /**
+     * @parameter expression="${reactorProjects}"
+     * @readonly
+     */
+    private List<MavenProject> reactorProjects; 
+    
     /**
      * Directory where reports will go.
      * 
@@ -152,7 +159,16 @@ public class MailetdocsMojo extends Abst
     }
 
     private List<MailetMatcherDescriptor> buildDescriptors() {
-        final List<MailetMatcherDescriptor> descriptors = new 
DefaultDescriptorsExtractor().extract(project, getLog()).descriptors();
+        
+        final DefaultDescriptorsExtractor extractor = new 
DefaultDescriptorsExtractor();
+        if (project.isExecutionRoot()) {
+            for (final MavenProject project : reactorProjects) {
+                extractor.extract(project, getLog());
+            }
+        } else {
+            extractor.extract(project, getLog());
+        }
+        final List<MailetMatcherDescriptor> descriptors = 
extractor.descriptors();
         
         Collections.sort(descriptors, new 
Comparator<MailetMatcherDescriptor>() {
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to