public class Rmic extends MatchingTask
Runs the rmic compiler against classes.
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:
The miniRMI project contains a compiler implementation for this task as well, please consult miniRMI's documentation to learn how to use it.
Modifier and Type | Class and Description |
---|---|
class |
Rmic.ImplementationSpecificArgument
Adds an "compiler" attribute to Commandline$Attribute used to
filter command line attributes based on the current
implementation.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ERROR_BASE_NOT_SET
base attribute not set message
|
static java.lang.String |
ERROR_LOADING_CAUSED_EXCEPTION
loaded error message
|
static java.lang.String |
ERROR_NO_BASE_EXISTS
base not exists message
|
static java.lang.String |
ERROR_NOT_A_DIR
base not a directory message
|
static java.lang.String |
ERROR_NOT_DEFINED
not defined message
|
static java.lang.String |
ERROR_NOT_FOUND
could not be found message
|
static java.lang.String |
ERROR_RMIC_FAILED
rmic failed message
|
static java.lang.String |
ERROR_UNABLE_TO_VERIFY_CLASS
unable to verify message
|
fileset
description, location, project
Constructor and Description |
---|
Rmic()
Constructor for Rmic.
|
Modifier and Type | Method and Description |
---|---|
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
|
java.io.File |
getBase()
Gets the base directory to output generated class.
|
java.lang.String |
getClassname()
Gets the class name to compile.
|
Path |
getClasspath()
Gets the classpath.
|
java.util.Vector |
getCompileList() |
java.lang.String |
getCompiler()
get the name of the current compiler
|
java.lang.String[] |
getCurrentCompilerArgs()
Get the additional implementation specific command line arguments.
|
boolean |
getDebug()
Gets the debug flag.
|
java.io.File |
getDestdir()
Gets the base directory to output the generated files.
|
java.lang.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.
|
java.util.Vector |
getFileList()
Gets file list to compile.
|
boolean |
getFiltering()
Gets whether token filtering is set
|
boolean |
getIdl()
Gets IDL flags.
|
java.lang.String |
getIdlopts()
Gets additional arguments for idl compile.
|
boolean |
getIiop()
Gets iiop flags.
|
java.lang.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.
|
java.lang.ClassLoader |
getLoader()
Classloader for the user-specified classpath.
|
java.io.File |
getOutputDir()
Gets the base directory to output the generated files,
favoring destdir if set, otherwise defaulting to basedir.
|
java.lang.Class |
getRemoteInterface(java.lang.Class testClass)
Returns the topmost interface that extends Remote for a given
class - if one exists.
|
java.io.File |
getSourceBase()
Gets the source dirs to find the source java files.
|
java.lang.String |
getStubVersion()
Gets the JDK version for the generated stub code.
|
boolean |
getVerify()
Get verify flag.
|
boolean |
isValidRmiRemote(java.lang.String classname)
Load named class and test whether it can be rmic'ed
|
protected void |
scanDir(java.io.File baseDir,
java.lang.String[] files,
FileNameMapper mapper)
Scans the directory looking for class files to be compiled.
|
void |
setBase(java.io.File base)
Sets the location to store the compiled files; required
|
void |
setClassname(java.lang.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(java.lang.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(java.io.File destdir)
Sets the base directory to output the generated files.
|
void |
setExecutable(java.lang.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(java.lang.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(java.lang.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(java.io.File sourceBase)
optional directory to save generated source files to.
|
void |
setStubVersion(java.lang.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.
|
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
clone, getDescription, getLocation, getProject, setDescription, setLocation
public static final java.lang.String ERROR_RMIC_FAILED
public static final java.lang.String ERROR_UNABLE_TO_VERIFY_CLASS
public static final java.lang.String ERROR_NOT_FOUND
public static final java.lang.String ERROR_NOT_DEFINED
public static final java.lang.String ERROR_LOADING_CAUSED_EXCEPTION
public static final java.lang.String ERROR_NO_BASE_EXISTS
public static final java.lang.String ERROR_NOT_A_DIR
public static final java.lang.String ERROR_BASE_NOT_SET
public void setBase(java.io.File base)
base
- the location to store the compiled filespublic void setDestdir(java.io.File destdir)
destdir
- the base directory to output the generated files.public java.io.File getDestdir()
public java.io.File getOutputDir()
public java.io.File getBase()
public void setClassname(java.lang.String classname)
rmic
against;
optionalclassname
- the name of the class for rmic to create code forpublic java.lang.String getClassname()
public void setSourceBase(java.io.File sourceBase)
sourceBase
- the directory to save source files to.public java.io.File getSourceBase()
public void setStubVersion(java.lang.String stubVersion)
stubVersion
- the JDK versionpublic java.lang.String getStubVersion()
public void setFiltering(boolean filter)
filter
- turn on token filteringpublic boolean getFiltering()
public void setDebug(boolean debug)
debug
- turn on debug infopublic boolean getDebug()
public void setClasspath(Path classpath)
classpath
- the classpath used for this compilationpublic Path createClasspath()
public void setClasspathRef(Reference pathRef)
pathRef
- the reference to add to the classpathpublic Path getClasspath()
public void setVerify(boolean verify)
verify
- turn on verification for classespublic boolean getVerify()
public void setIiop(boolean iiop)
iiop
- generate IIOP compatible stubspublic boolean getIiop()
public void setIiopopts(java.lang.String iiopOpts)
iiopOpts
- additional arguments for iioppublic java.lang.String getIiopopts()
public void setIdl(boolean idl)
idl
- generate IDL outputpublic boolean getIdl()
public void setIdlopts(java.lang.String idlOpts)
idlOpts
- additional IDL argumentspublic java.lang.String getIdlopts()
public java.util.Vector getFileList()
public void setIncludeantruntime(boolean include)
true
.include
- if true include ant's classpathpublic boolean getIncludeantruntime()
public void setIncludejavaruntime(boolean include)
include
- if true include default run-time librariespublic boolean getIncludejavaruntime()
public void setExtdirs(Path extDirs)
extDirs
- the extension directories to be usedpublic Path createExtdirs()
public Path getExtdirs()
public java.util.Vector getCompileList()
public void setCompiler(java.lang.String compiler)
build.rmic
property,
or failing that, default compiler for the current VMcompiler
- the compiler implementation to usepublic java.lang.String getCompiler()
public Rmic.ImplementationSpecificArgument createCompilerArg()
public java.lang.String[] getCurrentCompilerArgs()
public void setExecutable(java.lang.String ex)
ex
- Stringpublic java.lang.String getExecutable()
public Path createCompilerClasspath()
public void setListfiles(boolean list)
list
- if true list the source filespublic void add(RmicAdapter adapter)
adapter
- RmicAdapterpublic void execute() throws BuildException
execute
in class Task
BuildException
- if there's a problem with baseDir or RMICprotected void cleanup()
protected void scanDir(java.io.File baseDir, java.lang.String[] files, FileNameMapper mapper)
baseDir
- the base directionfiles
- the list of files to scanmapper
- the mapper of files to target filespublic boolean isValidRmiRemote(java.lang.String classname)
classname
- the name of the class to be testedpublic java.lang.Class getRemoteInterface(java.lang.Class testClass)
testClass
- the class to be testedpublic java.lang.ClassLoader getLoader()