Class Rmic
- All Implemented Interfaces:
- Cloneable,- SelectorContainer
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:
- sun (the standard compiler of the JDK)
- kaffe (the standard compiler of Kaffe)
- weblogic
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
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionclassAdds an "compiler" attribute to Commandline$Attribute used to filter command line attributes based on the current implementation.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final Stringbase attribute not set messagestatic final Stringloaded error messagestatic final Stringbase not exists messagestatic final Stringbase not a directory messagestatic final Stringnot defined messagestatic final Stringcould not be found messagestatic final Stringrmic failed messagestatic final Stringunable to verify messageFields inherited from class org.apache.tools.ant.taskdefs.MatchingTaskfilesetFields inherited from class org.apache.tools.ant.ProjectComponentdescription, location, project
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidadd(RmicAdapter adapter) Set the compiler adapter explicitly.protected voidcleanup()Cleans up resources.Creates a nested classpath element.Adds an implementation specific command line argument.The classpath to use when loading the compiler implementation if it is not a built-in one.Maybe creates a nested extdirs element.voidexecute()execute by creating an instance of an implementation class and getting to do the workgetBase()Gets the base directory to output generated class.Gets the class name to compile.Gets the classpath.get the name of the current compilerString[]Get the additional implementation specific command line arguments.booleangetDebug()Gets the debug flag.Gets the base directory to output the generated files.Explicitly specified name of the executable to use when forking - if any.Gets the extension directories that will be used during the compilation.Gets file list to compile.booleanGets whether token filtering is setbooleangetIdl()Gets IDL flags.Gets additional arguments for idl compile.booleangetIiop()Gets iiop flags.Gets additional arguments for iiop.booleanGets whether or not the ant classpath is to be included in the task's classpath.booleanGets whether or not the java runtime should be included in this task's classpath.Classloader for the user-specified classpath.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.Gets the source dirs to find the source java files.Gets the JDK version for the generated stub code.booleanGet verify flag.booleanisValidRmiRemote(String classname) Load named class and test whether it can be rmic'edprotected voidscanDir(File baseDir, String[] files, FileNameMapper mapper) Scans the directory looking for class files to be compiled.voidSets the location to store the compiled files; requiredvoidsetClassname(String classname) Sets the class to runrmicagainst; optionalvoidsetClasspath(Path classpath) Set the classpath to be used for this compilation.voidsetClasspathRef(Reference pathRef) Adds to the classpath a reference to a <path> defined elsewhere.voidsetCompiler(String compiler) Sets the compiler implementation to use; optional, defaults to the value of thebuild.rmicproperty, or failing that, default compiler for the current VMvoidsetDebug(boolean debug) Generate debug info (passes -g to rmic); optional, defaults to falsevoidsetDestdir(File destdir) Sets the base directory to output the generated files.voidsetExecutable(String ex) Name of the executable to use when forking.voidsetExtdirs(Path extDirs) Sets the extension directories that will be used during the compilation; optional.voidsetFiltering(boolean filter) Sets token filtering [optional], default=falsevoidsetIdl(boolean idl) Indicates that IDL output should be generated.voidsetIdlopts(String idlOpts) pass additional arguments for IDL compilevoidsetIiop(boolean iiop) Indicates that IIOP compatible stubs should be generated; optional, defaults to false if not set.voidsetIiopopts(String iiopOpts) Set additional arguments for iiopvoidsetIncludeantruntime(boolean include) Sets whether or not to include ant's own classpath in this task's classpath.voidsetIncludejavaruntime(boolean include) task's classpath.voidsetListfiles(boolean list) If true, list the source files being handed off to the compiler.voidsetSourceBase(File sourceBase) optional directory to save generated source files to.voidsetStubVersion(String stubVersion) Specify the JDK version for the generated stub code.voidsetVerify(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.Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTaskadd, 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, XsetItemsMethods inherited from class org.apache.tools.ant.TaskbindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskTypeMethods inherited from class org.apache.tools.ant.ProjectComponentclone, getDescription, getLocation, getProject, setDescription, setLocation
- 
Field Details- 
ERROR_RMIC_FAILEDrmic failed message- See Also:
 
- 
ERROR_UNABLE_TO_VERIFY_CLASSunable to verify message- See Also:
 
- 
ERROR_NOT_FOUNDcould not be found message- See Also:
 
- 
ERROR_NOT_DEFINEDnot defined message- See Also:
 
- 
ERROR_LOADING_CAUSED_EXCEPTIONloaded error message- See Also:
 
- 
ERROR_NO_BASE_EXISTSbase not exists message- See Also:
 
- 
ERROR_NOT_A_DIRbase not a directory message- See Also:
 
- 
ERROR_BASE_NOT_SETbase attribute not set message- See Also:
 
 
- 
- 
Constructor Details- 
Rmicpublic Rmic()Constructor for Rmic.
 
- 
- 
Method Details- 
setBaseSets the location to store the compiled files; required- Parameters:
- base- the location to store the compiled files
 
- 
setDestdirSets the base directory to output the generated files.- Parameters:
- destdir- the base directory to output the generated files.
- Since:
- Ant 1.8.0
 
- 
getDestdirGets the base directory to output the generated files.- Returns:
- the base directory to output the generated files.
- Since:
- Ant 1.8.0
 
- 
getOutputDirGets the base directory to output the generated files, favoring destdir if set, otherwise defaulting to basedir.- Returns:
- the actual directory to output to (either destdir or basedir)
- Since:
- Ant 1.8.0
 
- 
getBaseGets the base directory to output generated class.- Returns:
- the location of the compiled files
 
- 
setClassnameSets the class to runrmicagainst; optional- Parameters:
- classname- the name of the class for rmic to create code for
 
- 
getClassnameGets the class name to compile.- Returns:
- the name of the class to compile
 
- 
setSourceBaseoptional directory to save generated source files to.- Parameters:
- sourceBase- the directory to save source files to.
 
- 
getSourceBaseGets the source dirs to find the source java files.- Returns:
- sourceBase the directory containing the source files.
 
- 
setStubVersionSpecify the JDK version for the generated stub code. Specify "1.1" to pass the "-v1.1" option to rmic.- Parameters:
- stubVersion- the JDK version
 
- 
getStubVersionGets the JDK version for the generated stub code.- Returns:
- stubVersion
 
- 
setFilteringpublic void setFiltering(boolean filter) Sets token filtering [optional], default=false- Parameters:
- filter- turn on token filtering
 
- 
getFilteringpublic boolean getFiltering()Gets whether token filtering is set- Returns:
- filtering
 
- 
setDebugpublic void setDebug(boolean debug) Generate debug info (passes -g to rmic); optional, defaults to false- Parameters:
- debug- turn on debug info
 
- 
getDebugpublic boolean getDebug()Gets the debug flag.- Returns:
- debug
 
- 
setClasspathSet the classpath to be used for this compilation.- Parameters:
- classpath- the classpath used for this compilation
 
- 
createClasspathCreates a nested classpath element.- Returns:
- classpath
 
- 
setClasspathRefAdds to the classpath a reference to a <path> defined elsewhere.- Parameters:
- pathRef- the reference to add to the classpath
 
- 
getClasspathGets the classpath.- Returns:
- the classpath
 
- 
setVerifypublic 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.- Parameters:
- verify- turn on verification for classes
 
- 
getVerifypublic boolean getVerify()Get verify flag.- Returns:
- verify
 
- 
setIioppublic void setIiop(boolean iiop) Indicates that IIOP compatible stubs should be generated; optional, defaults to false if not set.- Parameters:
- iiop- generate IIOP compatible stubs
 
- 
getIioppublic boolean getIiop()Gets iiop flags.- Returns:
- iiop
 
- 
setIiopoptsSet additional arguments for iiop- Parameters:
- iiopOpts- additional arguments for iiop
 
- 
getIiopoptsGets additional arguments for iiop.- Returns:
- iiopOpts
 
- 
setIdlpublic void setIdl(boolean idl) Indicates that IDL output should be generated. This defaults to false if not set.- Parameters:
- idl- generate IDL output
 
- 
getIdlpublic boolean getIdl()Gets IDL flags.- Returns:
- the idl flag
 
- 
setIdloptspass additional arguments for IDL compile- Parameters:
- idlOpts- additional IDL arguments
 
- 
getIdloptsGets additional arguments for idl compile.- Returns:
- the idl options
 
- 
getFileListGets file list to compile.- Returns:
- the list of files to compile.
 
- 
setIncludeantruntimepublic void setIncludeantruntime(boolean include) Sets whether or not to include ant's own classpath in this task's classpath. Optional; default istrue.- Parameters:
- include- if true include ant's classpath
 
- 
getIncludeantruntimepublic boolean getIncludeantruntime()Gets whether or not the ant classpath is to be included in the task's classpath.- Returns:
- true if ant's classpath is to be included
 
- 
setIncludejavaruntimepublic void setIncludejavaruntime(boolean include) task's classpath. Enables or disables including the default run-time libraries from the executing VM; optional, defaults to false- Parameters:
- include- if true include default run-time libraries
 
- 
getIncludejavaruntimepublic boolean getIncludejavaruntime()Gets whether or not the java runtime should be included in this task's classpath.- Returns:
- true if default run-time libraries are included
 
- 
setExtdirsSets the extension directories that will be used during the compilation; optional.- Parameters:
- extDirs- the extension directories to be used
 
- 
createExtdirsMaybe creates a nested extdirs element.- Returns:
- path object to be configured with the extension directories
 
- 
getExtdirsGets the extension directories that will be used during the compilation.- Returns:
- the extension directories to be used
 
- 
getCompileList- Returns:
- the compile list.
 
- 
setCompilerSets the compiler implementation to use; optional, defaults to the value of thebuild.rmicproperty, or failing that, default compiler for the current VM- Parameters:
- compiler- the compiler implementation to use
- Since:
- Ant 1.5
 
- 
getCompilerget the name of the current compiler- Returns:
- the name of the compiler
- Since:
- Ant 1.5
 
- 
createCompilerArgAdds an implementation specific command line argument.- Returns:
- an object to be configured with a command line argument
- Since:
- Ant 1.5
 
- 
getCurrentCompilerArgsGet the additional implementation specific command line arguments.- Returns:
- array of command line arguments, guaranteed to be non-null.
- Since:
- Ant 1.5
 
- 
setExecutableName of the executable to use when forking.- Parameters:
- ex- String
- Since:
- Ant 1.8.0
 
- 
getExecutableExplicitly specified name of the executable to use when forking - if any.- Returns:
- String
- Since:
- Ant 1.8.0
 
- 
createCompilerClasspathThe classpath to use when loading the compiler implementation if it is not a built-in one.- Returns:
- Path
- Since:
- Ant 1.8.0
 
- 
setListfilespublic void setListfiles(boolean list) If true, list the source files being handed off to the compiler.- Parameters:
- list- if true list the source files
- Since:
- Ant 1.8.0
 
- 
addSet the compiler adapter explicitly.- Parameters:
- adapter- RmicAdapter
- Since:
- Ant 1.8.0
 
- 
executeexecute by creating an instance of an implementation class and getting to do the work- Overrides:
- executein class- Task
- Throws:
- BuildException- if there's a problem with baseDir or RMIC
 
- 
cleanupprotected void cleanup()Cleans up resources.- Since:
- Ant 1.8.0
 
- 
scanDirScans the directory looking for class files to be compiled. The result is returned in the class variable compileList.- Parameters:
- baseDir- the base direction
- files- the list of files to scan
- mapper- the mapper of files to target files
 
- 
isValidRmiRemoteLoad named class and test whether it can be rmic'ed- Parameters:
- classname- the name of the class to be tested
- Returns:
- true if the class can be rmic'ed
 
- 
getRemoteInterfaceReturns the topmost interface that extends Remote for a given class - if one exists.- Parameters:
- testClass- the class to be tested
- Returns:
- the topmost interface that extends Remote, or null if there is none.
 
- 
getLoaderClassloader for the user-specified classpath.- Returns:
- the classloader
 
 
-