From b9dc38741887a8daea1f894741c2070c58901752 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Thu, 16 Apr 2015 10:18:25 +0200 Subject: [PATCH 1/5] Disable doclint in javadoc:aggregate MOJO executions Java 8 detection code assumes that toolchains are not in use -- the same JDK version is used to run XMvn and generate javadocs. --- .../aether/XMvnMojoExecutionListener.java | 34 +++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/xmvn-connector-aether/src/main/java/org/fedoraproject/xmvn/connector/aether/XMvnMojoExecutionListener.java b/xmvn-connector-aether/src/main/java/org/fedoraproject/xmvn/connector/aether/XMvnMojoExecutionListener.java index a9cac0e..e6b3e36 100644 --- a/xmvn-connector-aether/src/main/java/org/fedoraproject/xmvn/connector/aether/XMvnMojoExecutionListener.java +++ b/xmvn-connector-aether/src/main/java/org/fedoraproject/xmvn/connector/aether/XMvnMojoExecutionListener.java @@ -33,6 +33,8 @@ import org.apache.maven.plugin.Mojo; import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.project.MavenProject; +import org.eclipse.sisu.bean.BeanProperties; +import org.eclipse.sisu.bean.BeanProperty; /** * Listens to various MOJO executions and captures useful information. @@ -44,6 +46,25 @@ import org.apache.maven.project.MavenProject; public class XMvnMojoExecutionListener implements MojoExecutionListener { + private static final boolean IS_JAVA8_OR_LATER; + + static + { + boolean isJava8; + + try + { + Class.forName( "java.lang.reflect.Executable" ); + isJava8 = true; + } + catch ( Throwable t ) + { + isJava8 = false; + } + + IS_JAVA8_OR_LATER = isJava8; + } + private static class MojoGoal { private final String groupId; @@ -191,7 +212,18 @@ public class XMvnMojoExecutionListener @Override public void beforeMojoExecution( MojoExecutionEvent event ) { - // Nothing to do + Mojo mojo = event.getMojo(); + MojoExecution execution = event.getExecution(); + + // Disable doclint on Java 8+ + if ( IS_JAVA8_OR_LATER && JAVADOC_AGGREGATE.equals( execution ) ) + { + for ( BeanProperty property : new BeanProperties( mojo.getClass() ) ) + { + if ( property.getName().equals( "additionalparam" ) ) + property.set( mojo, "-Xdoclint:none" ); + } + } } @Override -- 2.7.4