SmartFrog 3.10.000

org.smartfrog.examples.counter
Class CounterImpl

java.lang.Object
  extended by org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
      extended by org.smartfrog.sfcore.prim.PrimImpl
          extended by org.smartfrog.examples.counter.CounterImpl
All Implemented Interfaces:
java.lang.Runnable, java.rmi.Remote, Counter, MessageKeys, Diagnostics, Liveness, Prim, RemoteReferenceResolver, RemoteReferenceResolverHelper
Direct Known Subclasses:
PersistentCounterImpl

public class CounterImpl
extends PrimImpl
implements Prim, Counter, java.lang.Runnable

Basic example component. The Counter component (in components.sf) is a basic primitive component so its component description class CounterImpl extends PrimImpl (the base class for all the deployed components) which provides the default lifecycle template methods for a primitive component. Although PrimImpl itself implements Prim (the base interface for all the deployed components) CounterImpl also implements Prim because it is necessary for RMI that component also does so; the rmic compiler will otherwise not behave correctly. The CounterImpl class needs to be prepared for RMI for remote deployment This is done by creating and compiling the stubs and skeletons using the rmic compiler. This class is included in rmitargets that is read by the rmic compiler.


Field Summary
protected  java.lang.Thread action
          Thread object
protected  int counter
          Counter component data - counter.
protected  boolean debug
          Shows debug messages.
protected  int limit
          Counter component data - limit.
protected  LogSF logApp
           
protected  LogSF logCore
           
protected  java.lang.String message
          Counter component data - message.
protected  java.lang.String myName
          Component name used for debug messages.
protected  boolean pause
          Should pause during sfDeploy and sfStart?
protected  int sleeptime
          sleep time
protected  boolean terminate
          Terminates component when counter reaches limit
 
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.examples.counter.Counter
ATR_COUNTER, ATR_DEBUG, ATR_LIMIT, ATR_MESSAGE, ATR_PAUSE, ATR_SLEEP, ATR_TERMINATE
 
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
CounterImpl()
          Constructor for the Counter object.
 
Method Summary
protected  void readSFAttributes()
          Reads optional and mandatory attributes.
 void run()
          Main processing method for the Counter object (implements 'Runnable').
 void sfDeploy()
          sfDeploy: reads Counter attributes and configures counter thread The superclass implementation of sfDeploy is called before the component specific initialization code (reading Counter attributes and configuring counter thread) to maintain correct behaviour of initial deployment and starting the heartbeat monitoring of this component.
 void sfStart()
          sfStart: starts counter thread.
 void sfTerminateWith(TerminationRecord t)
          sfTerminate: The superclass implementation of sfTerminateWith is called after the component specific termination code to implement useful termination behaviour of the component.
 
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

counter

protected int counter
Counter component data - counter.


message

protected java.lang.String message
Counter component data - message.


limit

protected int limit
Counter component data - limit.


action

protected java.lang.Thread action
Thread object


sleeptime

protected int sleeptime
sleep time


logCore

protected LogSF logCore

logApp

protected LogSF logApp

debug

protected boolean debug
Shows debug messages.


pause

protected boolean pause
Should pause during sfDeploy and sfStart?


terminate

protected boolean terminate
Terminates component when counter reaches limit


myName

protected java.lang.String myName
Component name used for debug messages.

Constructor Detail

CounterImpl

public CounterImpl()
            throws java.rmi.RemoteException
Constructor for the Counter object.

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

sfDeploy

public void sfDeploy()
              throws SmartFrogException,
                     java.rmi.RemoteException
sfDeploy: reads Counter attributes and configures counter thread The superclass implementation of sfDeploy is called before the component specific initialization code (reading Counter attributes and configuring counter thread) to maintain correct behaviour of initial deployment and starting the heartbeat monitoring of this component.

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

sfStart

public void sfStart()
             throws SmartFrogException,
                    java.rmi.RemoteException
sfStart: starts counter thread. The superclass implementation of sfStart is called before the component specific code (starting counter thread) to maintain correct behaviour of starting the active threads for components.

Specified by:
sfStart in interface Prim
Overrides:
sfStart in class PrimImpl
Throws:
SmartFrogException - In case of error while starting
java.rmi.RemoteException - In case of network/rmi error

sfTerminateWith

public void sfTerminateWith(TerminationRecord t)
sfTerminate: The superclass implementation of sfTerminateWith is called after the component specific termination code to implement useful termination behaviour of the component.

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

readSFAttributes

protected void readSFAttributes()
                         throws SmartFrogException,
                                java.rmi.RemoteException
Reads optional and mandatory attributes.

Throws:
SmartFrogException - error while reading attributes
java.rmi.RemoteException - In case of network/rmi error

run

public void run()
Main processing method for the Counter object (implements 'Runnable').

Specified by:
run in interface java.lang.Runnable

SmartFrog CORE 3.10.000

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