org.apache.tools.ant.taskdefs
public class Rmic extends MatchingTask
Rmic can be run on a single class (as specified with the classname
attribute) or a number of classes at once (all classes below base that
are neither _Stub nor _Skel classes). If you want to rmic a single
class and this class is a class nested into another class, you have to
specify the classname in the form Outer$$Inner
instead of
Outer.Inner
.
It is possible to refine the set of files that are being rmiced. This can be done with the includes, includesfile, excludes, excludesfile and defaultexcludes attributes. With the includes or includesfile attribute you specify the files you want to have included by using patterns. The exclude or excludesfile attribute is used to specify the files you want to have excluded. This is also done with patterns. And finally with the defaultexcludes attribute, you can specify whether you want to use default exclusions or not. See the section on directory based tasks, on how the inclusion/exclusion of files works, and how to write patterns.
This task forms an implicit FileSet and
supports all attributes of <fileset>
(dir
becomes base
) as well as the nested
<include>
, <exclude>
and
<patternset>
elements.
It is possible to use different compilers. This can be selected
with the "build.rmic" property or the compiler
attribute. There are three choices:
Kaffe
)The miniRMI project contains a compiler implementation for this task as well, please consult miniRMI's documentation to learn how to use it.
Since: Ant 1.1
UNKNOWN: category="java"
Nested Class Summary | |
---|---|
class | Rmic.ImplementationSpecificArgument
Adds an "compiler" attribute to Commandline$Attribute used to
filter command line attributes based on the current
implementation. |
Field Summary | |
---|---|
static String | ERROR_BASE_NOT_SET base attribute not set message |
static String | ERROR_LOADING_CAUSED_EXCEPTION loaded error message |
static String | ERROR_NOT_A_DIR base not a directory message |
static String | ERROR_NOT_DEFINED not defined message |
static String | ERROR_NOT_FOUND could not be found message |
static String | ERROR_NO_BASE_EXISTS base not exists message |
static String | ERROR_RMIC_FAILED rmic failed message |
static String | ERROR_UNABLE_TO_VERIFY_CLASS unable to verify message |
Constructor Summary | |
---|---|
Rmic()
Constructor for Rmic. |
Method Summary | |
---|---|
void | add(RmicAdapter adapter)
Set the compiler adapter explicitly. |
protected void | cleanup()
Cleans up resources.
|
Path | createClasspath()
Creates a nested classpath element. |
Rmic.ImplementationSpecificArgument | createCompilerArg()
Adds an implementation specific command line argument. |
Path | createCompilerClasspath()
The classpath to use when loading the compiler implementation
if it is not a built-in one.
|
Path | createExtdirs()
Maybe creates a nested extdirs element. |
void | execute()
execute by creating an instance of an implementation
class and getting to do the work |
File | getBase()
Gets the base directory to output generated class. |
String | getClassname()
Gets the class name to compile. |
Path | getClasspath()
Gets the classpath. |
Vector | getCompileList() |
String | getCompiler()
get the name of the current compiler |
String[] | getCurrentCompilerArgs()
Get the additional implementation specific command line arguments. |
boolean | getDebug()
Gets the debug flag. |
File | getDestdir()
Gets the base directory to output the generated files. |
String | getExecutable()
Explicitly specified name of the executable to use when forking
- if any.
|
Path | getExtdirs()
Gets the extension directories that will be used during the
compilation. |
Vector | getFileList()
Gets file list to compile. |
boolean | getFiltering()
Gets whether token filtering is set |
boolean | getIdl()
Gets IDL flags. |
String | getIdlopts()
Gets additional arguments for idl compile. |
boolean | getIiop()
Gets iiop flags. |
String | getIiopopts()
Gets additional arguments for iiop. |
boolean | getIncludeantruntime()
Gets whether or not the ant classpath is to be included in the
task's classpath. |
boolean | getIncludejavaruntime()
Gets whether or not the java runtime should be included in this
task's classpath. |
ClassLoader | getLoader()
Classloader for the user-specified classpath. |
File | getOutputDir()
Gets the base directory to output the generated files,
favoring destdir if set, otherwise defaulting to basedir. |
Class | getRemoteInterface(Class testClass)
Returns the topmost interface that extends Remote for a given
class - if one exists. |
File | getSourceBase()
Gets the source dirs to find the source java files. |
String | getStubVersion()
Gets the JDK version for the generated stub code. |
boolean | getVerify()
Get verify flag. |
boolean | isValidRmiRemote(String classname)
Load named class and test whether it can be rmic'ed |
protected void | scanDir(File baseDir, String[] files, FileNameMapper mapper)
Scans the directory looking for class files to be compiled.
|
void | setBase(File base)
Sets the location to store the compiled files; required |
void | setClassname(String classname)
Sets the class to run rmic against;
optional |
void | setClasspath(Path classpath)
Set the classpath to be used for this compilation. |
void | setClasspathRef(Reference pathRef)
Adds to the classpath a reference to
a <path> defined elsewhere. |
void | setCompiler(String compiler)
Sets the compiler implementation to use; optional,
defaults to the value of the build.rmic property,
or failing that, default compiler for the current VM |
void | setDebug(boolean debug)
Generate debug info (passes -g to rmic);
optional, defaults to false |
void | setDestdir(File destdir)
Sets the base directory to output the generated files. |
void | setExecutable(String ex)
Name of the executable to use when forking.
|
void | setExtdirs(Path extDirs)
Sets the extension directories that will be used during the
compilation; optional. |
void | setFiltering(boolean filter)
Sets token filtering [optional], default=false |
void | setIdl(boolean idl)
Indicates that IDL output should be
generated. |
void | setIdlopts(String idlOpts)
pass additional arguments for IDL compile |
void | setIiop(boolean iiop)
Indicates that IIOP compatible stubs should
be generated; optional, defaults to false
if not set. |
void | setIiopopts(String iiopOpts)
Set additional arguments for iiop |
void | setIncludeantruntime(boolean include)
Sets whether or not to include ant's own classpath in this task's
classpath.
|
void | setIncludejavaruntime(boolean include)
task's classpath.
|
void | setListfiles(boolean list)
If true, list the source files being handed off to the compiler. |
void | setSourceBase(File sourceBase)
optional directory to save generated source files to. |
void | setStubVersion(String stubVersion)
Specify the JDK version for the generated stub code.
|
void | setVerify(boolean verify)
Flag to enable verification so that the classes
found by the directory match are
checked to see if they implement java.rmi.Remote.
optional; This defaults to false if not set. |
Since: Ant 1.8.0
Since: Ant 1.8.0
Returns: classpath
Returns: an object to be configured with a command line argument
Since: Ant 1.5
Since: Ant 1.8.0
Returns: path object to be configured with the extension directories
Throws: org.apache.tools.ant.BuildException if there's a problem with baseDir or RMIC
Returns: the location of the compiled files
Returns: the name of the class to compile
Returns: the classpath
Returns: the compile list.
Returns: the name of the compiler
Since: Ant 1.5
Returns: array of command line arguments, guaranteed to be non-null.
Since: Ant 1.5
Returns: debug
Returns: the base directory to output the generated files.
Since: Ant 1.8.0
Since: Ant 1.8.0
Returns: the extension directories to be used
Returns: the list of files to compile.
Returns: filtering
Returns: the idl flag
Returns: the idl options
Returns: iiop
Returns: iiopOpts
Returns: true if ant's classpath is to be included
Returns: true if default run-time libraries are included
Returns: the classloader
Returns: the actual directory to output to (either destdir or basedir)
Since: Ant 1.8.0
Parameters: testClass the class to be tested
Returns: the topmost interface that extends Remote, or null if there is none.
Returns: sourceBase the directory containing the source files.
Returns: stubVersion
Returns: verify
Parameters: classname the name of the class to be tested
Returns: true if the class can be rmic'ed
Parameters: baseDir the base direction files the list of files to scan mapper the mapper of files to target files
Parameters: base the location to store the compiled files
rmic
against;
optionalParameters: classname the name of the class for rmic to create code for
Parameters: classpath the classpath used for this compilation
Parameters: pathRef the reference to add to the classpath
build.rmic
property,
or failing that, default compiler for the current VMParameters: compiler the compiler implemention to use
Since: Ant 1.5
Parameters: debug turn on debug info
Parameters: destdir the base directory to output the generated files.
Since: Ant 1.8.0
Since: Ant 1.8.0
Parameters: extDirs the extension directories to be used
Parameters: filter turn on token filtering
Parameters: idl generate IDL output
Parameters: idlOpts additional IDL arguments
Parameters: iiop generate IIOP compatible stubs
Parameters: iiopOpts additional arguments for iiop
true
.Parameters: include if true include ant's classpath
Parameters: include if true include default run-time libraries
Parameters: list if true list the source files
Since: Ant 1.8.0
Parameters: sourceBase the directory to save source files to.
Parameters: stubVersion the JDK version
Parameters: verify turn on verification for classes