Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.martiansoftware.nailgun
Class NGServer

    java.lang.Object
      com.martiansoftware.nailgun.NGServer

All Implemented Interfaces:
  Runnable

public class NGServer
extends Object
implements Runnable

Listens for new connections from NailGun clients and launches NGSession threads to process them.

This class can be run as a standalone server or can be embedded within larger applications as a means of providing command-line interaction with the application.

Author:
  Marty Lamb

Field Summary
`PrintStream` | `err` `System.err` at the time of the NGServer's creation
`InputStream` | `in` `System.in` at the time of the NGServer's creation
`PrintStream` | `out` `System.out` at the time of the NGServer's creation

Constructor Summary
`NGServer()` Creates a new NGServer that will listen on the default port (defined in `NGConstants.DEFAULT_PORT`).
`NGServer(InetAddress addr, int port)` Creates a new NGServer that will listen at the specified address and on the specified port.

Method Summary
`boolean` | `allowsNailsByClassName()` Returns a flag that indicates whether Nail lookups by classname are allowed.
`AliasManager` | `getAliasManager()` Returns the AliasManager in use by this NGServer.
`Class` | `getDefaultNailClass()` Returns the default class that will be used if no Nails can be found via alias or classname.
`Map` | `getNailStats()` Returns a snapshot of this NGServer's nail statistics.
`int` | `getPort()` Returns the port on which this server is (or will be) listening.
`boolean` | `isRunning()` Returns true iff the server is currently running.
`static void` | `main(String[] args)` Creates and starts a new `NGServer`.
`void` | `run()` Listens for new connections and launches NGSession threads to process them.
`void` | `setAllowNailsByClassName(boolean allowNailsByClassName)` Sets a flag that determines whether Nails can be executed by class name.
`void` | `setDefaultNailClass(Class defaultNailClass)` Sets the default class to use for the Nail if no Nails can be found via alias or classname.
`void` | `shutdown(boolean exitVM)` Shuts down the server.

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

Field Detail

### out

    public final PrintStream out

  `System.out` at the time of the NGServer's creation

### err

    public final PrintStream err

  `System.err` at the time of the NGServer's creation

### in

    public final InputStream in

  `System.in` at the time of the NGServer's creation

Constructor Detail

### NGServer

    public NGServer(InetAddress addr,
                    int port)

  Creates a new NGServer that will listen at the specified address and on the specified port. This does not cause the server to start listening. To do so, create a new `Thread` wrapping this `NGServer` and start it.

Parameters:
  `addr` - the address at which to listen, or `null` to bind to all local addresses
  `port` - the port on which to listen.

### NGServer

    public NGServer()

  Creates a new NGServer that will listen on the default port (defined in `NGConstants.DEFAULT_PORT`). This does not cause the server to start listening. To do so, create a new `Thread` wrapping this `NGServer` and start it.

Method Detail

### setAllowNailsByClassName

    public void setAllowNailsByClassName(boolean allowNailsByClassName)

  Sets a flag that determines whether Nails can be executed by class name. If this is false, Nails can only be run via aliases (and you should probably remove ng-alias from the AliasManager).

  Parameters:
    `allowNailsByClassName` - true iff Nail lookups by classname are allowed

### allowsNailsByClassName

    public boolean allowsNailsByClassName()

  Returns a flag that indicates whether Nail lookups by classname are allowed. If this is false, Nails can only be run via aliases.

  Returns:
    a flag that indicates whether Nail lookups by classname are allowed.

### setDefaultNailClass

    public void setDefaultNailClass(Class defaultNailClass)

  Sets the default class to use for the Nail if no Nails can be found via alias or classname. (may be `null`, in which case NailGun will use its own default)

  Parameters:
    `defaultNailClass` - the default class to use for the Nail if no Nails can be found via alias or classname. (may be `null`, in which case NailGun will use its own default)

### getDefaultNailClass

    public Class getDefaultNailClass()

  Returns the default class that will be used if no Nails can be found via alias or classname.

  Returns:
    the default class that will be used if no Nails can be found via alias or classname.

### getNailStats

    public Map getNailStats()

  Returns a snapshot of this NGServer's nail statistics. The result is a `java.util.Map`, keyed by class name, with NailStats objects as values.

  Returns:
    a snapshot of this NGServer's nail statistics.

### getAliasManager

    public AliasManager getAliasManager()

  Returns the AliasManager in use by this NGServer.

  Returns:
    the AliasManager in use by this NGServer.

### shutdown

    public void shutdown(boolean exitVM)

  Shuts down the server. The server will stop listening and its thread will finish. Any running nails will be allowed to finish.

  Any nails that provide a

      public static void nailShutdown(NGServer)

  method will have this method called with this NGServer as its sole parameter.

  Parameters:
    `exitVM` - if true, this method will also exit the JVM after calling nailShutdown() on any nails. This may prevent currently running nails from exiting gracefully, but may be necessary in order to perform some tasks, such as shutting down any AWT or Swing threads implicitly launched by your nails.

### isRunning

    public boolean isRunning()

  Returns true iff the server is currently running.

  Returns:
    true iff the server is currently running.

### getPort

    public int getPort()

  Returns the port on which this server is (or will be) listening.

  Returns:
    the port on which this server is (or will be) listening.

### run

    public void run()

  Listens for new connections and launches NGSession threads to process them.

  Specified by:
    `run` in interface `Runnable`

### main

    public static void main(String[] args)
                     throws NumberFormatException,
                            UnknownHostException

  Creates and starts a new `NGServer`. A single optional argument is valid, specifying the port on which this `NGServer` should listen. If omitted, `NGServer.DEFAULT_PORT` will be used.

  Parameters:
    `args` - a single optional argument specifying the port on which to listen.
  Throws:
    `NumberFormatException` - if a non-numeric port is specified
    `UnknownHostException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

© 2004, Martian Software, Inc.