From 72983d6e09fd565f8b99764940ec51d85f8560c5 Mon Sep 17 00:00:00 2001 From: Mark Donszelmann Date: Mon, 19 Oct 2009 22:49:36 +0200 Subject: Partial fix of NAR-73 --- .../maven/plugin/nar/AbstractCompileMojo.java | 2 +- .../java/org/apache/maven/plugin/nar/Javah.java | 30 ++++++++++++++-------- .../org/apache/maven/plugin/nar/NarJavahMojo.java | 15 +++++++++++ .../java/org/apache/maven/plugin/nar/NarUtil.java | 3 --- 4 files changed, 35 insertions(+), 15 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java b/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java index ab43ddf..4359e22 100644 --- a/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java +++ b/src/main/java/org/apache/maven/plugin/nar/AbstractCompileMojo.java @@ -128,7 +128,7 @@ public abstract class AbstractCompileMojo * @parameter expression="" */ private Java java; - + private NarInfo narInfo; private List/* */dependencyLibOrder; diff --git a/src/main/java/org/apache/maven/plugin/nar/Javah.java b/src/main/java/org/apache/maven/plugin/nar/Javah.java index 2856972..8383a4f 100644 --- a/src/main/java/org/apache/maven/plugin/nar/Javah.java +++ b/src/main/java/org/apache/maven/plugin/nar/Javah.java @@ -31,7 +31,6 @@ import org.apache.bcel.classfile.ClassFormatException; import org.apache.bcel.classfile.JavaClass; import org.apache.bcel.classfile.Method; import org.apache.maven.artifact.DependencyResolutionRequiredException; -import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.toolchain.Toolchain; @@ -41,7 +40,6 @@ import org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner; import org.codehaus.plexus.compiler.util.scan.StaleSourceScanner; import org.codehaus.plexus.compiler.util.scan.mapping.SingleTargetSourceMapping; import org.codehaus.plexus.compiler.util.scan.mapping.SuffixMapping; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.StringUtils; @@ -125,15 +123,6 @@ public class Javah * @parameter */ private File timestampFile; - - /** - * The current build session instance. - * - * @parameter expression="${session}" - * @required - * @readonly - */ - private MavenSession session; private AbstractCompileMojo mojo; @@ -250,6 +239,9 @@ public class Javah File javahFile = new File( mojo.getJavaHome( mojo.getAOL() ), "bin" ); String javah = new File( javahFile, name ).getAbsolutePath(); + Toolchain tc = getToolchain(); + System.err.println( tc.findTool( "javac" ) ); + mojo.getLog().info( "Running " + javah + " compiler on " + files.size() + " classes..." ); int result = NarUtil.runCommand( javah, generateArgs( files ), null, null, mojo.getLog() ); if ( result != 0 ) @@ -308,4 +300,20 @@ public class Javah return (String[]) args.toArray( new String[args.size()] ); } + + //TODO remove the part with ToolchainManager lookup once we depend on + //2.0.9 (have it as prerequisite). Define as regular component field then. + private Toolchain getToolchain() + { + Toolchain toolChain = null; + ToolchainManager toolchainManager = ((NarJavahMojo)mojo).toolchainManager; + System.err.println("tcm: "+toolchainManager); + + if ( toolchainManager != null ) + { + toolChain = toolchainManager.getToolchainFromBuildContext( "jdk", ((NarJavahMojo)mojo).session ); + System.err.println("tc: "+toolChain); + } + return toolChain; + } } diff --git a/src/main/java/org/apache/maven/plugin/nar/NarJavahMojo.java b/src/main/java/org/apache/maven/plugin/nar/NarJavahMojo.java index 4642313..474eb8b 100644 --- a/src/main/java/org/apache/maven/plugin/nar/NarJavahMojo.java +++ b/src/main/java/org/apache/maven/plugin/nar/NarJavahMojo.java @@ -19,8 +19,10 @@ package org.apache.maven.plugin.nar; * under the License. */ +import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.toolchain.ToolchainManager; /** * Compiles class files into c/c++ headers using "javah". Any class file that contains methods that were declared @@ -33,6 +35,19 @@ import org.apache.maven.plugin.MojoFailureException; public class NarJavahMojo extends AbstractCompileMojo { + /** + * @component + */ + ToolchainManager toolchainManager; + + /** + * The current build session instance. + * + * @parameter expression="${session}" + * @required + * @readonly + */ + MavenSession session; public void execute() throws MojoExecutionException, MojoFailureException diff --git a/src/main/java/org/apache/maven/plugin/nar/NarUtil.java b/src/main/java/org/apache/maven/plugin/nar/NarUtil.java index 829b240..07e8212 100644 --- a/src/main/java/org/apache/maven/plugin/nar/NarUtil.java +++ b/src/main/java/org/apache/maven/plugin/nar/NarUtil.java @@ -28,7 +28,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; -import java.util.Vector; import java.util.regex.Pattern; import org.apache.bcel.classfile.ClassFormatException; @@ -39,8 +38,6 @@ import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugin.logging.Log; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.PropertyUtils; -import org.codehaus.plexus.util.cli.CommandLineException; -import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; /** -- cgit v1.2.3