SmartFrog 3.10.000

org.smartfrog.services.shellscript
Class SFScriptExecutionImpl

java.lang.Object
  extended by org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
      extended by org.smartfrog.sfcore.prim.PrimImpl
          extended by org.smartfrog.services.shellscript.SFScriptExecutionImpl
All Implemented Interfaces:
java.rmi.Remote, ScriptExecution, SFExecution, SFReadConfig, SFScriptExecution, MessageKeys, Diagnostics, Liveness, Prim, RemoteReferenceResolver, RemoteReferenceResolverHelper

public class SFScriptExecutionImpl
extends PrimImpl
implements Prim, SFScriptExecution, SFReadConfig


Field Summary
 
Fields inherited from class org.smartfrog.sfcore.prim.PrimImpl
refLivenessDelay, refLivenessFactor, sfCompleteName, sfContext, sfDeployHooks, sfDeployWithHooks, sfExportRef, sfIsDeployed, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessCount, sfLivenessDelay, sfLivenessFactor, sfLivenessSender, sfParent, sfStartHooks, sfTerminateWithHooks, termLock
 
Fields inherited from interface org.smartfrog.services.shellscript.SFExecution
ATR_EXEC, ATR_EXEC_EXIT_CODE, ATR_EXEC_EXIT_CODES, ATR_NAME, ATR_NUMBER_OF_EXECS
 
Fields inherited from interface org.smartfrog.sfcore.common.MessageKeys
CANNOT_LINK_TO_PREDICATE, COMPONENT_TERMINATED, COPY_FAILED, COPY_SERIALIZE_FAILED, ERROR_NO_SECURITY_BUT_REQUIRED, ILLEGAL_BOOLEAN_PARAMETER, ILLEGAL_NUMERIC_PARAMETER, ILLEGAL_STRING_PARAMETER, ILLEGAL_VECTOR_PARAMETER, LIVENESS_SEND_FAILURE, LIVENESS_SEND_FAILURE_IN, MISSING_PARAMETER, MSG_CLASS_NOT_FOUND, MSG_CONNECT_ERR, MSG_CONT_OTHER_DEPLOY, MSG_DEPLOY_COMP_TERMINATED, MSG_DEPLOY_SUCCESS, MSG_DEPLOYWITH_PHASE_FAILED, MSG_DETACH_SUCCESS, MSG_DETACH_TERMINATE_SUCCESS, MSG_ERR_DEPLOY_FROM_URL, MSG_ERR_PARSE, MSG_ERR_RESOLVE_PHASE, MSG_ERR_SF_RUNNING, MSG_ERR_TERM, MSG_FAILED_INET_ADDRESS_LOOKUP, MSG_FAILED_TO_CONTACT_PARENT, MSG_FILE_NOT_FOUND, MSG_HOOK_ACTION_FAILED, MSG_ILLEGAL_ACCESS, MSG_ILLEGAL_CLASS_TYPE, MSG_ILLEGAL_CLASS_TYPE_EXPECTING_GOT, MSG_ILLEGAL_REFERENCE, MSG_INPUTSTREAM_NULL, MSG_INSTANTIATION_ERROR, MSG_INVALID_OBJECT_TYPE, MSG_INVOCATION_TARGET, MSG_LANG_NOT_FOUND, MSG_LIVENESS_START_FAILED, MSG_LOADING_URL, MSG_METHOD_NOT_FOUND, MSG_NON_REP_ATTRIB, MSG_NOT_COMPONENT_REFERENCE, MSG_NOT_FOUND_ATTRIBUTE, MSG_NOT_FOUND_REFERENCE, MSG_NOT_VALUE_REFERENCE, MSG_NULL_DEF_METHOD, MSG_NULL_URL, MSG_OBJECT_REGISTRATION_FAILED, MSG_PARENT_LOCATION_FAILED, MSG_PING_SUCCESS, MSG_RANDM_ERR, MSG_REMOTE_CONNECT_ERR, MSG_REPEATED_ATTRIBUTE, MSG_SF_DEAD, MSG_SF_READY, MSG_SF_TERMINATED, MSG_STACKTRACE_FOLLOWS, MSG_START_COMP_TERMINATED, MSG_TERMINATE_SUCCESS, MSG_UNHANDLED_EXCEPTION, MSG_UNKNOWN_HOST, MSG_UNRESOLVED_REFERENCE, MSG_UNRESOLVED_REFERENCE_IN, MSG_UPDATE_SUCCESS, MSG_URL_NOT_FOUND, MSG_URL_TO_PARSE_NOT_FOUND, MSG_WARNING_LIVENESS_ENABLED, MSG_WARNING_STACKTRACE_DISABLED, MSG_WARNING_STACKTRACE_ENABLED, ROOT_MUST_BE_COMPONENT, WARN_NO_SECURITY
 
Constructor Summary
SFScriptExecutionImpl()
           
 
Method Summary
 ScriptResults execute(java.util.List commands, long timeout)
          submit a list of commands to the shell
 ScriptResults execute(java.util.List commands, long timeout, boolean verbose)
          submit a list of commands to the shell
 ScriptResults execute(java.util.List commands, ScriptLock lock)
          submit a list of commands to the shell
 ScriptResults execute(java.util.List commands, ScriptLock lock, boolean verbose)
          submit a list of commands to the shell
 ScriptResults execute(java.lang.String command, long timeout)
          submit a command to the shell
 ScriptResults execute(java.lang.String command, long timeout, boolean verbose)
          submit a command to the shell
 ScriptResults execute(java.lang.String command, ScriptLock lock)
          submit a command to the shell
 ScriptResults execute(java.lang.String command, ScriptLock lock, boolean verbose)
          submit a command to the shell
 ScriptLock lockShell(long timeout)
          obtain a lock on the shell, will block until it is available
 void readConfig()
          Reads SF description = initial configuration.
 void releaseShell(ScriptLock lock)
          release the lock on the shell and resets verbose to false.
 void sfDeploy()
          This method retrieves the paramters from the .sf file.
 void sfStart()
          This sets a flag that will start the httpd process running.
 void sfTerminateWith(TerminationRecord tr)
          This shuts down Apache by requesting that the ApacheState variable be set to false.
 
Methods inherited from class org.smartfrog.sfcore.prim.PrimImpl
equals, hashCode, registerWithProcessCompound, sfAddAttribute, sfAttributeKeyFor, sfAttributes, sfCompleteName, sfCompleteNameSafe, sfContainsAttribute, sfContainsValue, sfContext, sfDeployedHost, sfDeployedProcessName, sfDeployWith, sfDetach, sfDetachAndTerminate, sfDiagnosticsReport, sfDumpState, sfExport, sfExportRef, sfExportRef, sfGetApplicationLog, sfGetCoreLog, sfGetLog, sfIsDeployed, sfIsRemote, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessFailure, sfLog, sfParent, sfParentageChanged, sfPing, sfRemoveAttribute, sfReplaceAttribute, sfResolve, sfResolve, sfResolveHere, sfResolveHere, sfResolveParent, sfSetLog, sfStartLivenessSender, sfStopLivenessSender, sfTerminate, sfTerminatedWith, sfTerminateQuietlyWith, sfValues, terminateComponent, terminateNotifying, toString
 
Methods inherited from class org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.smartfrog.sfcore.prim.Prim
sfAddAttribute, sfAttributeKeyFor, sfAttributes, sfCompleteName, sfContainsAttribute, sfContainsValue, sfContext, sfDeployedHost, sfDeployedProcessName, sfDeployWith, sfDetach, sfDetachAndTerminate, sfDumpState, sfIsDeployed, sfIsStarted, sfIsTerminated, sfIsTerminating, sfParent, sfParentageChanged, sfRemoveAttribute, sfReplaceAttribute, sfTerminate, sfTerminatedWith, sfTerminateQuietlyWith, sfValues
 
Methods inherited from interface org.smartfrog.sfcore.prim.Liveness
sfPing
 
Methods inherited from interface org.smartfrog.sfcore.reference.RemoteReferenceResolver
sfResolve, sfResolve, sfResolveHere, sfResolveHere, sfResolveParent
 
Methods inherited from interface org.smartfrog.sfcore.reference.RemoteReferenceResolverHelper
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser
 
Methods inherited from interface org.smartfrog.sfcore.prim.Diagnostics
sfDiagnosticsReport
 

Constructor Detail

SFScriptExecutionImpl

public SFScriptExecutionImpl()
                      throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException
Method Detail

readConfig

public void readConfig()
                throws SmartFrogException,
                       java.rmi.RemoteException
Reads SF description = initial configuration. Override this to read/set properties before we read ours, but remember to call the superclass afterwards

Specified by:
readConfig in interface SFExecution
Specified by:
readConfig in interface SFReadConfig
Throws:
SmartFrogException
java.rmi.RemoteException

sfDeploy

public void sfDeploy()
              throws SmartFrogException,
                     java.rmi.RemoteException
This method retrieves the paramters from the .sf file. For the purposes of a demo default paramteres could be hard coded.

Specified by:
sfDeploy in interface Prim
Overrides:
sfDeploy in class PrimImpl
Throws:
SmartFrogException - deployment failure
java.rmi.RemoteException - In case of network/rmi error

sfStart

public void sfStart()
             throws SmartFrogException,
                    java.rmi.RemoteException
This sets a flag that will start the httpd process running.

Specified by:
sfStart in interface Prim
Overrides:
sfStart in class PrimImpl
Throws:
SmartFrogException - starting failure
java.rmi.RemoteException - In cas eof network/rmi error

sfTerminateWith

public void sfTerminateWith(TerminationRecord tr)
This shuts down Apache by requesting that the ApacheState variable be set to false.

Overrides:
sfTerminateWith in class PrimImpl
Parameters:
tr - TerminationRecord object

execute

public ScriptResults execute(java.lang.String command,
                             ScriptLock lock)
                      throws SmartFrogException
Description copied from interface: ScriptExecution
submit a command to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
command - String
lock - ScriptLock
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock object is not valid, i.e. if it is not currently holding the lock

execute

public ScriptResults execute(java.lang.String command,
                             ScriptLock lock,
                             boolean verbose)
                      throws SmartFrogException
Description copied from interface: ScriptExecution
submit a command to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
command - String
lock - ScriptLock
verbose - determines if results output will be shown using out/err streams.
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock object is not valid, i.e. if it is not currently holding the lock

execute

public ScriptResults execute(java.util.List commands,
                             long timeout,
                             boolean verbose)
                      throws SmartFrogException
submit a list of commands to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
commands - the list of commands
timeout - max number of miliseconds to obtain the lock: 0 is don't wait, -1 is wait forever
verbose - determines if the shell output will be shown using out/err streams.
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock is not obtained in the requisite time

execute

public ScriptResults execute(java.util.List commands,
                             long timeout)
                      throws SmartFrogException
submit a list of commands to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
commands - the list of commands
timeout - max number of miliseconds to obtain the lock: 0 is don't wait, -1 is wait forever
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock is not obtained in the requisite time

execute

public ScriptResults execute(java.lang.String command,
                             long timeout)
                      throws SmartFrogException
submit a command to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
command - the command
timeout - max number of miliseconds to obtain the lock: 0 is don't wait, -1 is wait forever
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock is not obtained in the requisite time

execute

public ScriptResults execute(java.lang.String command,
                             long timeout,
                             boolean verbose)
                      throws SmartFrogException
submit a command to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
command - the command
timeout - max number of miliseconds to obtain the lock: 0 is don't wait, -1 is wait forever
verbose - determines if the shell output will be shown using out/err streams.
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock is not obtained in the requisite time

execute

public ScriptResults execute(java.util.List commands,
                             ScriptLock lock)
                      throws SmartFrogException
Description copied from interface: ScriptExecution
submit a list of commands to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
commands - List
lock - ScriptLock
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock object is not valid, i.e.
SmartFrogException - if the lock object is not valid, i.e. if it is not currently holding the lock

execute

public ScriptResults execute(java.util.List commands,
                             ScriptLock lock,
                             boolean verbose)
                      throws SmartFrogException
Description copied from interface: ScriptExecution
submit a list of commands to the shell

Specified by:
execute in interface ScriptExecution
Parameters:
commands - List
lock - ScriptLock
verbose - determines if results output will be shown using out/err streams.
Returns:
ScriptResults
Throws:
SmartFrogException - if the lock object is not valid, i.e.
SmartFrogException - if the lock object is not valid, i.e. if it is not currently holding the lock

lockShell

public ScriptLock lockShell(long timeout)
                     throws SmartFrogException
Description copied from interface: ScriptExecution
obtain a lock on the shell, will block until it is available

Specified by:
lockShell in interface ScriptExecution
Parameters:
timeout - max number of miliseconds to obtain the lock: 0 is don't wait, -1 is wait forever
Returns:
ScriptLock
Throws:
SmartFrogException - if the lock is not obtained in the requisite time

releaseShell

public void releaseShell(ScriptLock lock)
                  throws SmartFrogException
Description copied from interface: ScriptExecution
release the lock on the shell and resets verbose to false.

Specified by:
releaseShell in interface ScriptExecution
Parameters:
lock - the lock object receieved from the lockShell
Throws:
SmartFrogException - if the lock object is not valid, i.e.
SmartFrogException - if the lock object is not valid, i.e. if it is not currently holding the l0ck

SmartFrog CORE 3.10.000

(C) Copyright 1998-2006 Hewlett-Packard Development Company, LP