OpenNMS API 1.2.9

## org.opennms.core.concurrent
Class VMTaskFiber

    java.lang.Object
      org.opennms.core.concurrent.VMTaskFiber

All Implemented Interfaces:
  Fiber, java.lang.Runnable

public class VMTaskFiber
extends java.lang.Object
implements Fiber, java.lang.Runnable

Author:
  Brian Weaver , OpenNMS

Field Summary
`private java.lang.ClassLoader` `m_classLoader` The class loader used to resolve classes for the thread group.
`private java.lang.Class` `m_entryClass` The entry class.
`private java.lang.reflect.Method` `m_entryMethod` The entry method.
`private int` `m_fiberStatus` The fiber's status.
`private java.lang.String[]` `m_mainArgs` The entry arguments.
`private java.lang.String` `m_taskName` The name of the VM task.
`private java.lang.ThreadGroup` `m_thrGroup` The thread group for the task.
`private static java.lang.String` `MAIN_METHOD_NAME` The name of the entry method.
`private static java.lang.String[]` `MAIN_PARAMETER_TYPES` The list of classes that are passed as entry arguments.
`private static java.lang.String` `MAIN_RETURN_TYPE` The return type for the entry method.
`private static java.lang.String` `THREADGROUP_NAME_PREFIX` The name prefixed to the task name to form the name for the thread group.

Fields inherited from interface org.opennms.core.fiber.Fiber
`RUNNING, START_PENDING, STARTING, STATUS_NAMES, STOP_PENDING, STOPPED`

Constructor Summary
`VMTaskFiber(java.lang.String taskName, java.lang.String entryClassName, java.lang.String[] entryArguments, java.net.URL[] searchPaths)` Constructs a new Virtual Macine Task Fiber.

Method Summary
`private static java.lang.reflect.Method` `findMain(java.lang.Class c)` This method attempts to find the method with the signature public static void main(String[]) if it is part of the passed class.
`java.lang.String` `getName()` Returns the name for the virtual machine task.
`int` `getStatus()` Returns the current status of the fiber.
`void` `run()` This method invokes the entry method on the main class.
`void` `start()` Starts the current fiber running.
`void` `stop()` Stops the current fiber.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MAIN_METHOD_NAME

    private static final java.lang.String MAIN_METHOD_NAME

  The name of the entry method. This is the same as it is for the JVM, which is `main`.

  See Also:
    Constant Field Values

### MAIN_PARAMETER_TYPES

    private static final java.lang.String[] MAIN_PARAMETER_TYPES

  The list of classes that are passed as entry arguments.

### MAIN_RETURN_TYPE

    private static final java.lang.String MAIN_RETURN_TYPE

  The return type for the entry method.

  See Also:
    Constant Field Values

### THREADGROUP_NAME_PREFIX

    private static final java.lang.String THREADGROUP_NAME_PREFIX

  The name prefixed to the task name to form the name for the thread group.

  See Also:
    Constant Field Values

### m_taskName

    private java.lang.String m_taskName

  The name of the VM task.

### m_thrGroup

    private java.lang.ThreadGroup m_thrGroup

  The thread group for the task.

### m_classLoader

    private java.lang.ClassLoader m_classLoader

  The class loader used to resolve classes for the thread group.

### m_entryClass

    private java.lang.Class m_entryClass

  The entry class.

### m_entryMethod

    private java.lang.reflect.Method m_entryMethod

  The entry method.

### m_mainArgs

    private java.lang.String[] m_mainArgs

  The entry arguments.

### m_fiberStatus

    private int m_fiberStatus

  The fiber's status.

Constructor Detail

### VMTaskFiber

    public VMTaskFiber(java.lang.String taskName,
                       java.lang.String entryClassName,
                       java.lang.String[] entryArguments,
                       java.net.URL[] searchPaths)
                throws java.lang.ClassNotFoundException,
                       java.lang.NoSuchMethodException

  Constructs a new Virtual Macine Task Fiber. The task has a name and is passed all the information to invoke the class' main method. When the class is loaded it is allocated a new class loader used to locate all of it's resources.

Parameters:
  `taskName` - The name of the task
  `entryClassName` - The name of the entry class.
  `entryArguments` - The String array passed to main.
  `searchPaths` - The URL's used to locate resources and classes.
Throws:
  `java.lang.ClassNotFoundException` - Thrown if the entry class is not found.
  `java.lang.NoSuchMethodException` - Thrown if the `main` is not found on the entry class.
See Also:
  `URLClassLoader`

Method Detail

### findMain

    private static java.lang.reflect.Method findMain(java.lang.Class c)

  This method attempts to find the method with the signature public static void main(String[]) if it is part of the passed class. The first matching method is returned to the caller.

  Parameters:
    `c` - The class to search for the main method.
  Returns:
    The matching method if one is found. If one is not found then a null is returned.

### run

    public void run()

  This method invokes the entry method on the main class. The method is called after the internal thread starts up, and returns when the entry method's thread exits.

  Specified by:
    `run` in interface `java.lang.Runnable`

### start

    public void start()

  Starts the current fiber running.

  Specified by:
    `start` in interface `Fiber`

### stop

    public void stop()

  Stops the current fiber. Since the JVM does not provide way to kill threads, the thread group is interrupted and the status is set to `STOP_PENDING`. When the main thread exits then the service is considered stopped!

  Specified by:
    `stop` in interface `Fiber`

### getStatus

    public int getStatus()

  Returns the current status of the fiber.

  Specified by:
    `getStatus` in interface `Fiber`
  Returns:
    The current status of the fiber.

### getName

    public java.lang.String getName()

  Returns the name for the virtual machine task.

  Specified by:
    `getName` in interface `Fiber`
  Returns:
    The VM Task's name.

OpenNMS API 1.2.9

Generated by ranger on May 19 2007 2335.