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