Compilation control flags and coordination stuff.
| Modifiers | Name | Description |
|---|---|---|
static CompilerConfiguration |
DEFAULT |
A convenience for getting a default configuration. |
static String |
JDK4 |
This ("1.4") is the value for targetBytecode to compile for a JDK 1.4 |
static String |
JDK5 |
This ("1.5") is the value for targetBytecode to compile for a JDK 1.5 |
static String |
JDK6 |
This ("1.6") is the value for targetBytecode to compile for a JDK 1.6 |
static String |
JDK7 |
This ("1.7") is the value for targetBytecode to compile for a JDK 1.7 |
static String |
JDK8 |
This ("1.8") is the value for targetBytecode to compile for a JDK 1.8 |
static String |
POST_JDK5 |
This ("1.5") is the value for targetBytecode to compile for a JDK 1.5 or later JVM |
static String |
PRE_JDK5 |
This ("1.4" |
static String |
currentJVMVersion |
| Constructor and description |
|---|
CompilerConfiguration
() |
CompilerConfiguration
(CompilerConfiguration configuration)Copy constructor. |
CompilerConfiguration
(Properties configuration)Sets the Flags to the specified configuration, with defaults for those not supplied. |
| Type | Name and description |
|---|---|
CompilerConfiguration |
addCompilationCustomizers(CompilationCustomizer... customizers) |
void |
configure(Properties configuration) |
List |
getClasspath()Returns true if debugging operation has been requested. |
List |
getCompilationCustomizers() |
boolean |
getDebug() |
String |
getDefaultScriptExtension() |
Set |
getDisabledGlobalASTTransformations() |
Map |
getJointCompilationOptions()Adds compilation customizers to the compilation process. |
int |
getMinimumRecompilationInterval() |
Map |
getOptimizationOptions()Returns the list of disabled global AST transformation class names. |
PrintWriter |
getOutput() |
ParserPluginFactory |
getPluginFactory() |
boolean |
getRecompileGroovySource() |
String |
getScriptBaseClass() |
Set |
getScriptExtensions() |
String |
getSourceEncoding()Gets the target directory for writing classes. |
String |
getTargetBytecode()Gets the optimization options for this configuration. |
File |
getTargetDirectory() |
int |
getTolerance() |
boolean |
getVerbose() |
int |
getWarningLevel()Gets the currently configured warning level. |
static boolean |
isPostJDK5(String bytecodeVersion)Checks if the specified bytecode version string represents a JDK 1.7+ compatible bytecode version. |
static boolean |
isPostJDK7(String bytecodeVersion)Method to configure a this CompilerConfiguration by using Properties. |
void |
setClasspath(String classpath)Turns debugging operation on or off. |
void |
setClasspathList(List parts)Returns the requested error tolerance. |
void |
setDebug(boolean debug) |
void |
setDefaultScriptExtension(String defaultScriptExtension) |
void |
setDisabledGlobalASTTransformations(Set disabledGlobalASTTransformations) |
void |
setJointCompilationOptions(Map options)Returns the list of compilation customizers. |
void |
setMinimumRecompilationInterval(int time) |
void |
setOptimizationOptions(Map options)Disables global AST transformations. |
void |
setOutput(PrintWriter output) |
void |
setPluginFactory(ParserPluginFactory pluginFactory) |
void |
setRecompileGroovySource(boolean recompile) |
void |
setScriptBaseClass(String scriptBaseClass) |
void |
setScriptExtensions(Set scriptExtensions) |
void |
setSourceEncoding(String encoding) |
void |
setTargetBytecode(String version)Sets the joint compilation options for this configuration. |
void |
setTargetDirectory(String directory) |
void |
setTargetDirectory(File directory)Turns verbose operation on or off. |
void |
setTolerance(int tolerance) |
void |
setVerbose(boolean verbose) |
void |
setWarningLevel(int level) |
A convenience for getting a default configuration. Do not modify it!
See CompilerConfiguration(Properties) for an example on how to
make a suitable copy to modify. But if you're really starting from a
default context, then you probably just want new CompilerConfiguration().
This ("1.4") is the value for targetBytecode to compile for a JDK 1.4. *
This ("1.5") is the value for targetBytecode to compile for a JDK 1.5. *
This ("1.6") is the value for targetBytecode to compile for a JDK 1.6. *
This ("1.7") is the value for targetBytecode to compile for a JDK 1.7. *
This ("1.8") is the value for targetBytecode to compile for a JDK 1.8. *
This ("1.5") is the value for targetBytecode to compile for a JDK 1.5 or later JVM. *
This ("1.4") is the value for targetBytecode to compile for a JDK 1.4 JVM. *
Copy constructor. Use this if you have a mostly correct configuration for your compilation but you want to make a some changes programatically. An important reason to prefer this approach is that your code will most likely be forward compatible with future changes to this configuration API.
An example of this copy constructor at work:
// In all likelihood there is already a configuration in your code's context
// for you to copy, but for the sake of this example we'll use the global default.
CompilerConfiguration myConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT);
myConfiguration.setDebug(true);
configuration - The configuration to copy.Sets the Flags to the specified configuration, with defaults for those not supplied. Note that those "defaults" here do not include checking the settings in System.getProperties in general, only file.encoding, groovy.target.directory and groovy.source.encoding are.
If you want to set a few flags but keep Groovy's default
configuration behavior then be sure to make your settings in
a Properties that is backed by System.getProperties() (which
is done using this constructor). That might be done like this:
Properties myProperties = new Properties(System.getProperties());
myProperties.setProperty("groovy.output.debug", "true");
myConfiguration = new CompilerConfiguration(myProperties);
And you also have to contend with a possible SecurityException when
getting the system properties (See System.getProperties).
A safer approach would be to copy a default
CompilerConfiguration and make your changes there using the setter:
// In all likelihood there is already a configuration for you to copy, // but for the sake of this example we'll use the global default. CompilerConfiguration myConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT); myConfiguration.setDebug(true);Another reason to use the copy constructor rather than this one is that you must call setOutput. Calling
setOutput(null) is valid and will
set up a PrintWriter to a bit bucket. The copy constructor will of course set
the same one as the original.
| Property Key | Get/Set Property Name |
|---|---|
"groovy.warnings" | getWarningLevel |
"groovy.source.encoding" | getSourceEncoding |
"groovy.target.directory" | getTargetDirectory |
"groovy.target.bytecode" | getTargetBytecode |
"groovy.classpath" | getClasspath |
"groovy.output.verbose" | getVerbose |
"groovy.output.debug" | getDebug |
"groovy.errors.tolerance" | getTolerance |
"groovy.script.extension" | getDefaultScriptExtension |
"groovy.script.base" | getScriptBaseClass |
"groovy.recompile" | getRecompileGroovySource |
"groovy.recompile.minimumInterval" | getMinimumRecompilationInterval |
configuration - The properties to get flag values from.Returns true if debugging operation has been requested.
Adds compilation customizers to the compilation process. A compilation customizer is a class node operation which performs various operations going from adding imports to access control.
customizers - the list of customizers to be addedReturns the list of disabled global AST transformation class names.
Gets the target directory for writing classes.
Gets the optimization options for this configuration.
Gets the currently configured warning level. See WarningMessage for level details.
Checks if the specified bytecode version string represents a JDK 1.7+ compatible bytecode version.
bytecodeVersion - the bytecode version string (1.4, 1.5, 1.6, 1.7 or 1.8)Method to configure a this CompilerConfiguration by using Properties. For a list of available properties look at {link CompilerConfiguration(Properties).
configuration - The properties to get flag values from.Turns debugging operation on or off.
Returns the requested error tolerance.
Returns the list of compilation customizers.
Disables global AST transformations. In order to avoid class loading side effects, it is not recommended to use MyASTTransformation.class.getName() by directly use the class name as a string. Disabled AST transformations only apply to automatically loaded global AST transformations, that is to say transformations defined in a META-INF/org.codehaus.groovy.transform.ASTTransformation file. If you explicitly add a global AST transformation in your compilation process, for example using the ASTTransformationCustomizer or using a org.codehaus.groovy.control.CompilationUnit.PrimaryClassNodeOperation, then nothing will prevent the transformation from being loaded.
disabledGlobalASTTransformations - a set of fully qualified class names of global AST transformations
which should not be loaded.Sets the joint compilation options for this configuration. Using null will disable joint compilation.
options - the optionsTurns verbose operation on or off.
Copyright © 2003-2014 The Codehaus. All rights reserved.