edu.ucdavis.rj.VM
Class RJX_impl

java.lang.Object
  extended by java.rmi.server.RemoteObject
      extended by java.rmi.server.RemoteServer
          extended by java.rmi.server.UnicastRemoteObject
              extended by edu.ucdavis.rj.VM.RJX_impl
All Implemented Interfaces:
RJX, java.io.Serializable, java.rmi.Remote

public class RJX_impl
extends java.rmi.server.UnicastRemoteObject
implements RJX

See Also:
Serialized Form

Nested Class Summary
private  class RJX_impl.Idler
           
private  class RJX_impl.Pinger
           
private  class RJX_impl.ProcessChecker
           
private static class RJX_impl.VMElement
           
 
Field Summary
(package private) static java.lang.String cmdsep
           
private static java.lang.String codebase
           
private  java.util.Hashtable<java.lang.String,VMRegInfo> creating
           
private static int defaultVerbosityWhenSet
           
private  boolean doIdleCheck
           
private  boolean ecLocked
           
private  boolean exiting
           
private  long hostnums
           
private  java.lang.Object idleMutex
           
private  RJX_impl.Idler idler
           
private static boolean implicitTermination
           
(package private) static java.lang.String LOCAL_HOST
           
(package private) static java.lang.String LOCAL_IP
           
private static java.lang.String localname
           
private  java.lang.Object lockObj
           
private static java.lang.String name
           
(package private) static int PING_SLEEP_TIME
           
private  RJX_impl.Pinger pinger
           
private static java.lang.String policy
           
private  java.util.Hashtable printers
           
private static long PRINTMILLIS
           
private static int PRINTNANOS
           
private  java.util.Vector<java.lang.Process> processes
           
(package private)  OpProxy qOpProxy
           
private static java.rmi.registry.Registry registry
           
private static java.lang.String remoteVMClass
           
private static java.lang.String rjjo
           
private static java.lang.String rjrsh
           
private static java.lang.String rjsh
           
private static java.lang.String rjshc
           
private  boolean rjxIdle
           
private  RemoteLoader rl
           
private  java.lang.Runtime rt
           
(package private) static long serialVersionUID
           
private  RemoteOutputStream stderr
           
private  RemoteInputStream stdin
           
private  RemoteOutputStream stdout
           
private static int thePort
           
private static int V_QUIESCENCE_MESSAGE
           
private static int verbosity
           
private static java.util.ResourceBundle versionRB
           
private  java.util.Hashtable<java.lang.String,RJX_impl.VMElement> vms
           
(package private) static java.lang.String wincmdsep
           
(package private) static java.lang.String windows
           
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Fields inherited from interface edu.ucdavis.rj.VM.RJX
MAX_MISSED
 
Constructor Summary
private RJX_impl(RemoteLoader rl)
           
 
Method Summary
private  void checkAllIdle()
           
private  void createMainVM(java.lang.String[] args)
           
 InLock createRemoteLock()
           
private  VM createVM(boolean parameterizedVM, java.lang.String onHost, java.lang.String fromHost, java.lang.String vmType, java.lang.Class[] vmParamType, java.lang.Object[] vmParam)
           
 VM createVM(java.lang.String onHost, java.lang.String fromHost)
           
 VM createVM(java.lang.String onHost, java.lang.String fromHost, java.lang.String vmType, java.lang.Class[] vmParamType, java.lang.Object[] vmParam)
           
 VM createVM(VM host, java.lang.String fromHost)
           
 VM createVM(VM host, java.lang.String fromHost, java.lang.String vmType, java.lang.Class[] vmParamType, java.lang.Object[] vmParam)
           
 boolean destroyVM(java.lang.String host)
           
private  java.lang.String determineActualHost(java.lang.String onHost, java.lang.String fromHost)
           
private  java.lang.String determineConnectHost(java.lang.String onHost, java.lang.String fromHost, java.lang.String rjxHost)
           
 void exit(int exitval)
           
 java.lang.Class[] getParamTypes(java.lang.String host)
           
 java.lang.Object[] getParamValues(java.lang.String host)
           
 RemoteOutputStream getStdErr()
           
 RemoteInputStream getStdIn()
           
 RemoteOutputStream getStdOut()
           
 void hello(java.lang.String host, VM rjVM, boolean idle)
           
 void idle(java.lang.String vmName)
           
 void lockEC()
           
static void main(java.lang.String[] args)
           
 void notIdle(java.lang.String vmName)
           
 void ping()
           
 void registerQuiescenceAction(OpProxy opProxy)
           
 void unlockEC()
           
 
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

thePort

private static int thePort

registry

private static java.rmi.registry.Registry registry

PRINTMILLIS

private static long PRINTMILLIS

PRINTNANOS

private static int PRINTNANOS

hostnums

private long hostnums

rt

private java.lang.Runtime rt

creating

private java.util.Hashtable<java.lang.String,VMRegInfo> creating

vms

private java.util.Hashtable<java.lang.String,RJX_impl.VMElement> vms

printers

private java.util.Hashtable printers

exiting

private boolean exiting

processes

private java.util.Vector<java.lang.Process> processes

name

private static java.lang.String name

localname

private static java.lang.String localname

codebase

private static java.lang.String codebase

policy

private static java.lang.String policy

rjrsh

private static java.lang.String rjrsh

rjsh

private static java.lang.String rjsh

rjshc

private static java.lang.String rjshc

rjjo

private static java.lang.String rjjo

remoteVMClass

private static java.lang.String remoteVMClass

stdout

private RemoteOutputStream stdout

stderr

private RemoteOutputStream stderr

stdin

private RemoteInputStream stdin

rl

private RemoteLoader rl

pinger

private RJX_impl.Pinger pinger

idler

private RJX_impl.Idler idler

idleMutex

private java.lang.Object idleMutex

implicitTermination

private static boolean implicitTermination

verbosity

private static int verbosity

defaultVerbosityWhenSet

private static final int defaultVerbosityWhenSet
See Also:
Constant Field Values

V_QUIESCENCE_MESSAGE

private static final int V_QUIESCENCE_MESSAGE
See Also:
Constant Field Values

PING_SLEEP_TIME

static final int PING_SLEEP_TIME
See Also:
Constant Field Values

windows

static final java.lang.String windows
See Also:
Constant Field Values

wincmdsep

static final java.lang.String wincmdsep
See Also:
Constant Field Values

cmdsep

static java.lang.String cmdsep

LOCAL_HOST

static final java.lang.String LOCAL_HOST
See Also:
Constant Field Values

LOCAL_IP

static final java.lang.String LOCAL_IP
See Also:
Constant Field Values

versionRB

private static java.util.ResourceBundle versionRB

ecLocked

private boolean ecLocked

lockObj

private java.lang.Object lockObj

doIdleCheck

private boolean doIdleCheck

rjxIdle

private boolean rjxIdle

qOpProxy

OpProxy qOpProxy
Constructor Detail

RJX_impl

private RJX_impl(RemoteLoader rl)
          throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException
Method Detail

createVM

public VM createVM(java.lang.String onHost,
                   java.lang.String fromHost)
            throws java.rmi.RemoteException
Specified by:
createVM in interface RJX
Throws:
java.rmi.RemoteException

createVM

public VM createVM(java.lang.String onHost,
                   java.lang.String fromHost,
                   java.lang.String vmType,
                   java.lang.Class[] vmParamType,
                   java.lang.Object[] vmParam)
            throws java.rmi.RemoteException
Specified by:
createVM in interface RJX
Throws:
java.rmi.RemoteException

createVM

private VM createVM(boolean parameterizedVM,
                    java.lang.String onHost,
                    java.lang.String fromHost,
                    java.lang.String vmType,
                    java.lang.Class[] vmParamType,
                    java.lang.Object[] vmParam)
             throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getParamValues

public java.lang.Object[] getParamValues(java.lang.String host)
                                  throws java.rmi.RemoteException
Specified by:
getParamValues in interface RJX
Throws:
java.rmi.RemoteException

getParamTypes

public java.lang.Class[] getParamTypes(java.lang.String host)
                                throws java.rmi.RemoteException
Specified by:
getParamTypes in interface RJX
Throws:
java.rmi.RemoteException

determineConnectHost

private java.lang.String determineConnectHost(java.lang.String onHost,
                                              java.lang.String fromHost,
                                              java.lang.String rjxHost)

determineActualHost

private java.lang.String determineActualHost(java.lang.String onHost,
                                             java.lang.String fromHost)

createVM

public VM createVM(VM host,
                   java.lang.String fromHost)
            throws java.rmi.RemoteException
Specified by:
createVM in interface RJX
Throws:
java.rmi.RemoteException

createVM

public VM createVM(VM host,
                   java.lang.String fromHost,
                   java.lang.String vmType,
                   java.lang.Class[] vmParamType,
                   java.lang.Object[] vmParam)
            throws java.rmi.RemoteException
Specified by:
createVM in interface RJX
Throws:
java.rmi.RemoteException

hello

public void hello(java.lang.String host,
                  VM rjVM,
                  boolean idle)
           throws java.rmi.RemoteException
Specified by:
hello in interface RJX
Throws:
java.rmi.RemoteException

destroyVM

public boolean destroyVM(java.lang.String host)
                  throws java.rmi.RemoteException
Specified by:
destroyVM in interface RJX
Throws:
java.rmi.RemoteException

exit

public void exit(int exitval)
          throws java.rmi.RemoteException
Specified by:
exit in interface RJX
Throws:
java.rmi.RemoteException

createMainVM

private void createMainVM(java.lang.String[] args)
                   throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

main

public static void main(java.lang.String[] args)

getStdOut

public RemoteOutputStream getStdOut()
                             throws java.rmi.RemoteException
Specified by:
getStdOut in interface RJX
Throws:
java.rmi.RemoteException

getStdErr

public RemoteOutputStream getStdErr()
                             throws java.rmi.RemoteException
Specified by:
getStdErr in interface RJX
Throws:
java.rmi.RemoteException

getStdIn

public RemoteInputStream getStdIn()
                           throws java.rmi.RemoteException
Specified by:
getStdIn in interface RJX
Throws:
java.rmi.RemoteException

createRemoteLock

public InLock createRemoteLock()
                        throws java.rmi.RemoteException
Specified by:
createRemoteLock in interface RJX
Throws:
java.rmi.RemoteException

lockEC

public void lockEC()
            throws java.rmi.RemoteException
Specified by:
lockEC in interface RJX
Throws:
java.rmi.RemoteException

unlockEC

public void unlockEC()
              throws java.rmi.RemoteException
Specified by:
unlockEC in interface RJX
Throws:
java.rmi.RemoteException

ping

public void ping()
          throws java.rmi.RemoteException
Specified by:
ping in interface RJX
Throws:
java.rmi.RemoteException

idle

public void idle(java.lang.String vmName)
          throws java.rmi.RemoteException
Specified by:
idle in interface RJX
Throws:
java.rmi.RemoteException

notIdle

public void notIdle(java.lang.String vmName)
             throws java.rmi.RemoteException
Specified by:
notIdle in interface RJX
Throws:
java.rmi.RemoteException

checkAllIdle

private void checkAllIdle()

registerQuiescenceAction

public void registerQuiescenceAction(OpProxy opProxy)
                              throws java.rmi.RemoteException,
                                     QuiescenceRegistrationException
Specified by:
registerQuiescenceAction in interface RJX
Throws:
java.rmi.RemoteException
QuiescenceRegistrationException