SmartFrog 3.10.000

org.smartfrog.services.os.runshell
Class RunShellImpl

java.lang.Object
  extended by org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
      extended by org.smartfrog.sfcore.prim.PrimImpl
          extended by org.smartfrog.services.os.runshell.RunShellImpl
All Implemented Interfaces:
java.lang.Runnable, java.rmi.Remote, RunShell, MessageKeys, Diagnostics, Liveness, Prim, RemoteReferenceResolver, RemoteReferenceResolverHelper
Direct Known Subclasses:
RunJavaImpl

public class RunShellImpl
extends PrimImpl
implements Prim, RunShell, java.lang.Runnable

This class implements the Compound interface because it can "contain" Virtual Hosts components. The Apache interface is the Remoteable interface and the Runnable interface is used to monitor the httpd process. The httpd process is started in sfStart by setting the apacheState variable to true and ended in sfTerminate by setting the apacheState variable to false. The Internet Activator scripts are used to edit the httpd.conf file. These rely on certain environment variables being set, these variables are defined in the sf file and are passed to the common.executeScript() method. Adding them to the sf file avoids the need to hard code these paramters. The scripts are downloaded from a webserver and are then saved locally.


Field Summary
protected  OutputStreamIntf outputStreamObj
          Output stream consumer.
protected  java.lang.String workDir
          The String for working directory.
 
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.os.runshell.RunShell
varCMDs, varDelayBetweenCmds, varEnvProp, varErrorMsgTo, varErrorStreamTo, varExitCmd, varExitValue, varLineReturn, varLogger, varOutputMsgTo, varOutputStreamTo, varPrintStack, varSFProcessId, varSFProcessName, varSFWorkDir, varShellArguments, varShellCommand, varShouldDetach, varShouldTerminate, varStatus, varTerminateOnFailure, varUseExitCmd, varWaitSignalGoAhead
 
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
RunShellImpl()
          Constructor.
 
Method Summary
 void execBatch(java.util.Vector cmds)
          Exceutes the batch of commands.
 void execCmd(java.lang.String cmd)
          Executes the given command.
 java.lang.String getNotifierId()
          Gets the identity of the notifier process.
protected  void readSFAttributes()
          Reads SF description = initial configuration.
 void run()
          Main processing method for the RunProcess object.
 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
 

Field Detail

workDir

protected java.lang.String workDir
The String for working directory.


outputStreamObj

protected OutputStreamIntf outputStreamObj
Output stream consumer.

Constructor Detail

RunShellImpl

public RunShellImpl()
             throws java.rmi.RemoteException
Constructor.

Throws:
java.rmi.RemoteException - In case of network/rmi error
Method Detail

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

run

public void run()
Main processing method for the RunProcess object.

Specified by:
run in interface java.lang.Runnable

readSFAttributes

protected void readSFAttributes()
                         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

Throws:
SmartFrogException
java.rmi.RemoteException

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

execCmd

public void execCmd(java.lang.String cmd)
Executes the given command.

Specified by:
execCmd in interface RunShell
Parameters:
cmd - command to be exceuted

execBatch

public void execBatch(java.util.Vector cmds)
Exceutes the batch of commands.

Specified by:
execBatch in interface RunShell
Parameters:
cmds - vector of commands to be executed

getNotifierId

public java.lang.String getNotifierId()
Gets the identity of the notifier process.

Returns:
process identity

SmartFrog CORE 3.10.000

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