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]