org.codehaus.plexus.compiler.javac
Class JavacCompiler

java.lang.Object
  extended by org.codehaus.plexus.logging.AbstractLogEnabled
      extended by org.codehaus.plexus.compiler.AbstractCompiler
          extended by org.codehaus.plexus.compiler.javac.JavacCompiler
All Implemented Interfaces:
org.codehaus.plexus.compiler.Compiler, org.codehaus.plexus.logging.LogEnabled

public class JavacCompiler
extends org.codehaus.plexus.compiler.AbstractCompiler

Version:
$Id: JavacCompiler.java 3081 2006-03-22 06:55:18Z carlos $
Author:
Trygve Laugstøl, Matthew Pocock, Others

Field Summary
private static java.lang.String WARNING_PREFIX
           
 
Fields inherited from class org.codehaus.plexus.compiler.AbstractCompiler
EOL, PS
 
Fields inherited from interface org.codehaus.plexus.compiler.Compiler
ROLE
 
Constructor Summary
JavacCompiler()
           
 
Method Summary
static java.lang.String[] buildCompilerArguments(org.codehaus.plexus.compiler.CompilerConfiguration config, java.lang.String[] sourceFiles)
           
 java.util.List compile(org.codehaus.plexus.compiler.CompilerConfiguration config)
           
(package private)  java.util.List compileInProcess(java.lang.String[] args)
          Compile the java sources in the current JVM, without calling an external executable, using com.sun.tools.javac.Main class
(package private)  java.util.List compileOutOfProcess(java.io.File workingDirectory, java.lang.String executable, java.lang.String[] args)
          Compile the java sources in a external process, calling an external executable, like javac.
 java.lang.String[] createCommandLine(org.codehaus.plexus.compiler.CompilerConfiguration config)
           
static org.codehaus.plexus.compiler.CompilerError parseModernError(java.lang.String error)
          Construct a CompilerError object from a line of the compiler output
protected static java.util.List parseModernStream(java.io.BufferedReader input)
          Parse the output from the compiler into a list of CompilerError objects
private static boolean suppressEncoding(org.codehaus.plexus.compiler.CompilerConfiguration config)
           
private static boolean suppressSource(org.codehaus.plexus.compiler.CompilerConfiguration config)
           
 
Methods inherited from class org.codehaus.plexus.compiler.AbstractCompiler
canUpdateTarget, getCompilerOutputStyle, getInputFileEnding, getOutputFile, getOutputFileEnding, getPathString, getSourceFiles, getSourceFilesForSourceRoot, makeClassName, toStringArray
 
Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WARNING_PREFIX

private static final java.lang.String WARNING_PREFIX
See Also:
Constant Field Values
Constructor Detail

JavacCompiler

public JavacCompiler()
Method Detail

compile

public java.util.List compile(org.codehaus.plexus.compiler.CompilerConfiguration config)
                       throws org.codehaus.plexus.compiler.CompilerException
Throws:
org.codehaus.plexus.compiler.CompilerException

createCommandLine

public java.lang.String[] createCommandLine(org.codehaus.plexus.compiler.CompilerConfiguration config)
                                     throws org.codehaus.plexus.compiler.CompilerException
Throws:
org.codehaus.plexus.compiler.CompilerException

buildCompilerArguments

public static java.lang.String[] buildCompilerArguments(org.codehaus.plexus.compiler.CompilerConfiguration config,
                                                        java.lang.String[] sourceFiles)

suppressSource

private static boolean suppressSource(org.codehaus.plexus.compiler.CompilerConfiguration config)

suppressEncoding

private static boolean suppressEncoding(org.codehaus.plexus.compiler.CompilerConfiguration config)

compileOutOfProcess

java.util.List compileOutOfProcess(java.io.File workingDirectory,
                                   java.lang.String executable,
                                   java.lang.String[] args)
                             throws org.codehaus.plexus.compiler.CompilerException
Compile the java sources in a external process, calling an external executable, like javac.

Parameters:
workingDirectory - base directory where the process will be launched
executable - name of the executable to launch
args - arguments for the executable launched
Returns:
List of CompilerError objects with the errors encountered.
Throws:
org.codehaus.plexus.compiler.CompilerException

compileInProcess

java.util.List compileInProcess(java.lang.String[] args)
                          throws org.codehaus.plexus.compiler.CompilerException
Compile the java sources in the current JVM, without calling an external executable, using com.sun.tools.javac.Main class

Parameters:
args - arguments for the compiler as they would be used in the command line javac
Returns:
List of CompilerError objects with the errors encountered.
Throws:
org.codehaus.plexus.compiler.CompilerException

parseModernStream

protected static java.util.List parseModernStream(java.io.BufferedReader input)
                                           throws java.io.IOException
Parse the output from the compiler into a list of CompilerError objects

Parameters:
input - The output of the compiler
Returns:
List of CompilerError objects
Throws:
java.io.IOException

parseModernError

public static org.codehaus.plexus.compiler.CompilerError parseModernError(java.lang.String error)
Construct a CompilerError object from a line of the compiler output

Parameters:
error - output line from the compiler
Returns:
the CompilerError object