org.apache.tools.ant.taskdefs.optional.ejb

## Class IPlanetEjbcTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask

- All Implemented Interfaces:
    java.lang.Cloneable

      public class IPlanetEjbcTask
      extends Task

  Compiles EJB stubs and skeletons for the iPlanet Application Server. The EJBs to be processed are specified by the EJB 1.1 standard XML descriptor, and additional attributes are obtained from the iPlanet Application Server-specific XML descriptor. Since the XML descriptors can include multiple EJBs, this is a convenient way of specifying many EJBs in a single Ant task. The following attributes are allowed:
  - ejbdescriptor -- Standard EJB 1.1 XML descriptor (typically titled "ejb-jar.xml"). This attribute is required.
  - iasdescriptor -- EJB XML descriptor for iPlanet Application Server (typically titled "ias-ejb-jar.xml). This attribute is required.
  - dest -- The is the base directory where the RMI stubs and skeletons are written. In addition, the class files for each bean (home interface, remote interface, and EJB implementation) must be found in this directory. This attribute is required.
  - classpath -- The classpath used when generating EJB stubs and skeletons. This is an optional attribute (if omitted, the classpath specified when Ant was started will be used). Nested "classpath" elements may also be used.
  - keepgenerated -- Indicates whether or not the Java source files which are generated by ejbc will be saved or automatically deleted. If "yes", the source files will be retained. This is an optional attribute (if omitted, it defaults to "no").
  - debug -- Indicates whether or not the ejbc utility should log additional debugging statements to the standard output. If "yes", the additional debugging statements will be generated (if omitted, it defaults to "no").
  - iashome -- May be used to specify the "home" directory for this iPlanet Application Server installation. This is used to find the ejbc utility if it isn't included in the user's system path. This is an optional attribute (if specified, it should refer to the `[install-location]/iplanet/ias6/ias` directory). If omitted, the ejbc utility must be on the user's system path.

  For each EJB specified, this task will locate the three classes that comprise the EJB. If these class files cannot be located in the `dest` directory, the task will fail. The task will also attempt to locate the EJB stubs and skeletons in this directory. If found, the timestamps on the stubs and skeletons will be checked to ensure they are up to date. Only if these files cannot be found or if they are out of date will ejbc be called to generate new stubs and skeletons.

  See Also:
    `IPlanetEjbc`

- - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IPlanetEjbcTask()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Path` | `createClasspath()` Adds to the classpath used when compiling the EJB stubs and skeletons.
    `void` | `execute()` Does the work.
    `void` | `setClasspath(Path classpath)` Sets the classpath to be used when compiling the EJB stubs and skeletons.
    `void` | `setDebug(boolean debug)` If true, debugging output will be generated when ejbc is executed.
    `void` | `setDest(java.io.File dest)` Sets the destination directory where the EJB source classes must exist and where the stubs and skeletons will be written.
    `void` | `setEjbdescriptor(java.io.File ejbdescriptor)` Sets the location of the standard XML EJB descriptor.
    `void` | `setIasdescriptor(java.io.File iasdescriptor)` Sets the location of the iAS-specific XML EJB descriptor.
    `void` | `setIashome(java.io.File iashome)` May be used to specify the "home" directory for this iAS installation.
    `void` | `setKeepgenerated(boolean keepgenerated)` If true, the Java source files which are generated by ejbc will be saved .

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### IPlanetEjbcTask

          public IPlanetEjbcTask()

  - ### Method Detail

    - #### setEjbdescriptor

          public void setEjbdescriptor(java.io.File ejbdescriptor)

      Sets the location of the standard XML EJB descriptor. Typically, this file is named "ejb-jar.xml".
      Parameters:
        `ejbdescriptor` - The name and location of the EJB descriptor.

    - #### setIasdescriptor

          public void setIasdescriptor(java.io.File iasdescriptor)

      Sets the location of the iAS-specific XML EJB descriptor. Typically, this file is named "ias-ejb-jar.xml".
      Parameters:
        `iasdescriptor` - The name and location of the iAS-specific EJB descriptor.

    - #### setDest

          public void setDest(java.io.File dest)

      Sets the destination directory where the EJB source classes must exist and where the stubs and skeletons will be written. The destination directory must exist before this task is executed.
      Parameters:
        `dest` - The directory where the compiled classes will be written.

    - #### setClasspath

          public void setClasspath(Path classpath)

      Sets the classpath to be used when compiling the EJB stubs and skeletons.
      Parameters:
        `classpath` - The classpath to be used.

    - #### createClasspath

          public Path createClasspath()

      Adds to the classpath used when compiling the EJB stubs and skeletons.
      Returns:
        the class path.

    - #### setKeepgenerated

          public void setKeepgenerated(boolean keepgenerated)

      If true, the Java source files which are generated by ejbc will be saved .
      Parameters:
        `keepgenerated` - A boolean indicating if the Java source files for the stubs and skeletons should be retained.

    - #### setDebug

          public void setDebug(boolean debug)

      If true, debugging output will be generated when ejbc is executed.
      Parameters:
        `debug` - A boolean indicating if debugging output should be generated

    - #### setIashome

          public void setIashome(java.io.File iashome)

      May be used to specify the "home" directory for this iAS installation. The directory specified should typically be `[install-location]/iplanet/ias6/ias`.
      Parameters:
        `iashome` - The home directory for the user's iAS installation.

    - #### execute

          public void execute()
                       throws BuildException

      Does the work.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if there is a problem.