You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2011/05/27 13:17:08 UTC

svn commit: r1128261 - in /james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet: AbstractMailetdocsReport.java AggregateMailetdocsReport.java MailetdocsReport.java

Author: rdonkin
Date: Fri May 27 11:17:08 2011
New Revision: 1128261

URL: http://svn.apache.org/viewvc?rev=1128261&view=rev
Log:
MAILETDOCS-4 Factor out superclass and add aggregate reporting class.

Added:
    james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java
      - copied, changed from r1128259, james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java
    james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java   (with props)
Modified:
    james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java

Copied: james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java (from r1128259, james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java)
URL: http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java?p2=james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java&p1=james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java&r1=1128259&r2=1128261&rev=1128261&view=diff
==============================================================================
--- james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java (original)
+++ james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java Fri May 27 11:17:08 2011
@@ -32,18 +32,11 @@ import org.apache.maven.reporting.Abstra
 import org.apache.maven.reporting.MavenReportException;
 
 /**
- * <p>Generates catalog and reports on mailets and matchers.</p>
- * <h4>Notes</h4>
- * <ul>
- * <li>Should only used as a report.</li>
- * <li>Mailets are instantiated during report production. </li>
- * </ul>
- * @goal mailetdocs
- * @since 0.1
- * @requiresDependencyResolution compile
- * @aggregator
+ * <p>
+ * Base for singleton and aggregate reports on mailets and matchers.
+ * </p>
  */
-public class MailetdocsReport extends AbstractMavenReport {
+public abstract class AbstractMailetdocsReport extends AbstractMavenReport {
     
     /**
      * @parameter expression="${reactorProjects}"

Added: james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java
URL: http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java?rev=1128261&view=auto
==============================================================================
--- james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java (added)
+++ james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java Fri May 27 11:17:08 2011
@@ -0,0 +1,37 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailet;
+
+
+/**
+ * <p>Generates catalog and reports on mailets and matchers.</p>
+ * <h4>Notes</h4>
+ * <ul>
+ * <li>Should only used as a report.</li>
+ * <li>Mailets are instantiated during report production. </li>
+ * </ul>
+ * @goal aggregate
+ * @since 0.2
+ * @requiresDependencyResolution compile
+ * @aggregator
+ */
+public class AggregateMailetdocsReport extends AbstractMailetdocsReport {
+    
+}

Propchange: james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java
URL: http://svn.apache.org/viewvc/james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java?rev=1128261&r1=1128260&r2=1128261&view=diff
==============================================================================
--- james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java (original)
+++ james/mailet/maven-mailetdocs-plugin/trunk/src/main/java/org/apache/james/mailet/MailetdocsReport.java Fri May 27 11:17:08 2011
@@ -19,17 +19,6 @@
 
 package org.apache.james.mailet;
 
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Locale;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Predicate;
-import org.apache.maven.doxia.siterenderer.Renderer;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.reporting.AbstractMavenReport;
-import org.apache.maven.reporting.MavenReportException;
 
 /**
  * <p>Generates catalog and reports on mailets and matchers.</p>
@@ -41,249 +30,7 @@ import org.apache.maven.reporting.MavenR
  * @goal mailetdocs
  * @since 0.1
  * @requiresDependencyResolution compile
- * @aggregator
  */
-public class MailetdocsReport extends AbstractMavenReport {
-    
-    /**
-     * @parameter expression="${reactorProjects}"
-     * @readonly
-     */
-    private List<MavenProject> reactorProjects; 
+public class MailetdocsReport extends AbstractMailetdocsReport {
     
-    /**
-     * Directory where reports will go.
-     * 
-     * @parameter expression="${project.reporting.outputDirectory}"
-     * @required
-     * @readonly
-     */
-    private String outputDirectory;
-
-    /**
-     * @parameter default-value="${project}"
-     * @required
-     * @readonly
-     */
-    private MavenProject project;
-
-    /**
-     * @component
-     * @required
-     * @readonly
-     */
-    private Renderer siteRenderer;
-
-    /**
-     * Extracts only a given type from a list.
-     */
-    private static final class TypePredicate implements Predicate {
-        
-        private MailetMatcherDescriptor.Type type;
-
-        public TypePredicate(MailetMatcherDescriptor.Type typeMatcher) {
-            this.type = typeMatcher;
-        }
-
-        public boolean evaluate(Object subject) {
-            return ((MailetMatcherDescriptor) subject).getType() == type;
-        }
-    }
-
-    protected void executeReport(Locale locale) throws MavenReportException {
-        
-        getLog().info("Executing Mailets/Matchers Report");
-
-        getSink().head();
-        getSink().title();
-        getSink().text("Mailet and Matchers Reference");
-        getSink().title_();
-        getSink().head_();
-
-        getSink().body();
-
-        getSink().section1();
-        getSink().sectionTitle1();
-        getSink().text("Mailets and Matchers Reference");
-        getSink().sectionTitle1_();
-        getSink().section1_();
-        
-        writeDescriptions();
-
-        getSink().body_();
-
-        getSink().flush();
-        getSink().close();
-    }
-
-    private void writeDescriptions() {
-        
-        final List<MailetMatcherDescriptor> descriptors = buildDescriptors();
-        
-        @SuppressWarnings("unchecked")
-        final List<MailetMatcherDescriptor> matchers = (List<MailetMatcherDescriptor>) CollectionUtils.select(descriptors,
-                new TypePredicate(MailetMatcherDescriptor.Type.MATCHER));
-        @SuppressWarnings("unchecked")
-        final List<MailetMatcherDescriptor> mailets = (List<MailetMatcherDescriptor>) CollectionUtils.select(descriptors,
-                new TypePredicate(MailetMatcherDescriptor.Type.MAILET));
-        
-        final boolean matchersExist = matchers.size() > 0;
-        final boolean mailetsExist = mailets.size() > 0;
-        if (matchersExist && mailetsExist) {
-            getSink().table();
-            getSink().tableRow();
-            getSink().tableCell();
-        }
-        if (matchersExist) {
-            outputDescriptorIndex(matchers, "Matchers");
-        }
-        if (matchersExist && mailetsExist) {
-            getSink().tableCell_();
-            getSink().tableCell();
-        }
-        if (mailetsExist) {
-            outputDescriptorIndex(mailets, "Mailets");
-        }
-        if (matchersExist && mailetsExist) {
-            getSink().tableCell_();
-            getSink().tableRow_();
-            getSink().table_();
-        }
-
-        if (matchersExist) {
-            outputDescriptorList(matchers, "Matchers");
-        }
-        if (mailetsExist) {
-            outputDescriptorList(mailets, "Mailets");
-        }
-    }
-
-    private List<MailetMatcherDescriptor> buildDescriptors() {
-        
-        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>() {
-
-            public int compare(MailetMatcherDescriptor one, MailetMatcherDescriptor two) {
-                return one.getName().compareTo(two.getName());
-            }
-
-        });
-        return descriptors;
-    }
-
-    private void outputDescriptorIndex(List<MailetMatcherDescriptor> descriptors, String title) {
-        
-        getSink().section2();
-        getSink().sectionTitle2();
-        getSink().text(title);
-        getSink().sectionTitle2_();
-
-        getSink().list();
-        for (int i = 0; i < descriptors.size(); i++) {
-            getSink().listItem();
-            getSink().link("#"+descriptors.get(i).getName());
-            getSink().text(descriptors.get(i).getName());
-            getSink().link_();
-            getSink().listItem_();
-        }
-        getSink().list_();
-
-        getSink().section2_();
-
-    }
-
-    private void outputDescriptorList(List<MailetMatcherDescriptor> descriptors, String title) {
-        
-        getSink().section1();
-        getSink().sectionTitle1();
-        getSink().text(title);
-        getSink().sectionTitle1_();
-
-        for (int i = 0; i < descriptors.size(); i++) {
-            getSink().section2();
-
-            getSink().sectionTitle2();
-            getSink().anchor(descriptors.get(i).getName());
-            getSink().text(descriptors.get(i).getName());
-            getSink().anchor_();
-            getSink().sectionTitle2_();
-
-            if (descriptors.get(i).getInfo() != null) {
-              getSink().paragraph();
-	            if (descriptors.get(i).getType() == MailetMatcherDescriptor.Type.MAILET) {
-	                getSink().text("Mailet Info: ");
-	            } else if (descriptors.get(i).getType() == MailetMatcherDescriptor.Type.MATCHER) {
-	                getSink().text("Matcher Info: ");
-	            } else {
-	                getSink().text("Info: ");
-	            }
-	            getSink().bold();
-	            getSink().text(descriptors.get(i).getInfo());
-	            getSink().bold_();
-	            getSink().lineBreak();
-	            getSink().paragraph_();
-            }
-
-            getSink().paragraph();
-            getSink().rawText(descriptors.get(i).getClassDocs());
-            getSink().paragraph_();
-
-            getSink().section2_();
-
-        }
-
-        getSink().section1_();
-    }
-
-    protected MavenProject getProject() {
-        return project;
-    }
-
-    protected String getOutputDirectory() {
-        return outputDirectory;
-    }
-
-    protected Renderer getSiteRenderer() {
-        return siteRenderer;
-    }
-
-    public String getDescription(Locale arg0) {
-        return "Documentation about bundled mailets";
-    }
-
-    public String getName(Locale arg0) {
-        return "Mailet Reference";
-    }
-
-    public String getOutputName() {
-        return "mailet-report";
-    }
-
-    /**
-     * @param siteRenderer
-     *                The siteRenderer to set.
-     */
-    public void setSiteRenderer(Renderer siteRenderer) {
-        this.siteRenderer = siteRenderer;
-    }
-
-    /**
-     * For testing purpose only.
-     * 
-     * @param project
-     *                The project to set.
-     */
-    public void setProject(MavenProject project) {
-        this.project = project;
-    }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org