Package org.alfresco.repo.action
Class ActionTrackingServiceImpl
- java.lang.Object
-
- org.alfresco.repo.action.ActionTrackingServiceImpl
-
- All Implemented Interfaces:
ActionTrackingService
public class ActionTrackingServiceImpl extends java.lang.Object implements ActionTrackingService
Action execution tracking service implementation- Author:
- Nick Burch
-
-
Constructor Summary
Constructors Constructor Description ActionTrackingServiceImpl()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static ExecutionDetailsbuildExecutionDetails(Action action)Builds up the details to be stored in a cache for a specific actionprotected static ExecutionDetailsbuildExecutionDetails(Action action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)Builds up the details to be stored in a cache for a specific actionprotected static ExecutionSummarybuildExecutionSummary(java.lang.String key)Turns a cache key back into its constituent parts, for easier access.protected static ExecutionSummarybuildExecutionSummary(Action action)protected static java.lang.StringgenerateCacheKey(Action action)Generates the cache key for the specified action.protected static java.lang.StringgenerateCacheKey(ExecutionSummary summary)java.util.List<ExecutionSummary>getAllExecutingActions()Retrieve summary details of all the actions currently executing.java.util.List<ExecutionSummary>getExecutingActions(java.lang.String type)Retrieve summary details of all the actions of the given type that are currently executing.java.util.List<ExecutionSummary>getExecutingActions(java.lang.String type, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)Retrieve summary details of all the actions of the given type acting on the givenNodeRefthat are currently executing.java.util.List<ExecutionSummary>getExecutingActions(Action action)Retrieve summary details of all instances of the specified action that are currently executing.ExecutionDetailsgetExecutionDetails(ExecutionSummary executionSummary)Retrieves the execution details on the given executing action, such as when it started, and what machine it is executing on.booleanisCancellationRequested(CancellableAction action)Has cancellation been requested for the given action? This method is most commonly called by the action in question, to check to see if someone has calledActionTrackingService.requestActionCancellation(CancellableAction)for them.voidrecordActionComplete(Action action)Record that an action has completed execution without error.voidrecordActionExecuting(Action action)Record that an action has begun execution.voidrecordActionExecuting(Action action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)Record that an action has begun execution.voidrecordActionFailure(Action action, java.lang.Throwable exception)Schedule the recording of the action failure to occur in another transactionvoidrecordActionPending(ActionImpl action)voidrecordActionPending(ActionImpl action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)voidrecordActionPending(Action action)Record that an action has been scheduled for asynchronous execution, and is pending being executed.voidrecordActionPending(Action action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)Record that an action against aNodeRefhas been scheduled for asynchronous execution, and is pending being executed.voidrequestActionCancellation(CancellableAction action)Requests that the specified Action cancel itself and aborts execution, as soon as possible.voidrequestActionCancellation(ExecutionSummary executionSummary)Requests that the specified Action cancel itself and aborts execution, as soon as possible.protected voidresetNextExecutionId()Used by unit tests onlyvoidsetExecutingActionsCache(org.alfresco.repo.cache.SimpleCache<java.lang.String,ExecutionDetails> executingActionsCache)Sets the cache used to store details of currently executing actions, cluster wide.voidsetNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)Set the node servicevoidsetRuntimeActionService(RuntimeActionService runtimeActionService)Set the runtime action servicevoidsetTransactionService(TransactionService transactionService)Set the transaction service
-
-
-
Method Detail
-
setTransactionService
public void setTransactionService(TransactionService transactionService)
Set the transaction service- Parameters:
transactionService- the transaction service
-
setNodeService
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
Set the node service- Parameters:
nodeService- the node service
-
setRuntimeActionService
public void setRuntimeActionService(RuntimeActionService runtimeActionService)
Set the runtime action service- Parameters:
runtimeActionService- the runtime action service
-
setExecutingActionsCache
public void setExecutingActionsCache(org.alfresco.repo.cache.SimpleCache<java.lang.String,ExecutionDetails> executingActionsCache)
Sets the cache used to store details of currently executing actions, cluster wide.
-
resetNextExecutionId
protected void resetNextExecutionId()
Used by unit tests only
-
recordActionPending
public void recordActionPending(Action action)
Description copied from interface:ActionTrackingServiceRecord that an action has been scheduled for asynchronous execution, and is pending being executed.- Specified by:
recordActionPendingin interfaceActionTrackingService- Parameters:
action- the action that has been scheduled
-
recordActionPending
public void recordActionPending(Action action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)
Description copied from interface:ActionTrackingServiceRecord that an action against aNodeRefhas been scheduled for asynchronous execution, and is pending being executed.- Specified by:
recordActionPendingin interfaceActionTrackingService- Parameters:
action- the action that has been scheduledactionedUponNodeRef- theNodeRefthe action is acting on
-
recordActionPending
public void recordActionPending(ActionImpl action)
-
recordActionPending
public void recordActionPending(ActionImpl action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)
-
recordActionComplete
public void recordActionComplete(Action action)
Description copied from interface:ActionTrackingServiceRecord that an action has completed execution without error.- Specified by:
recordActionCompletein interfaceActionTrackingService- Parameters:
action- the action that has been finished
-
recordActionExecuting
public void recordActionExecuting(Action action)
Description copied from interface:ActionTrackingServiceRecord that an action has begun execution.- Specified by:
recordActionExecutingin interfaceActionTrackingService- Parameters:
action- the action that has begun execution
-
recordActionExecuting
public void recordActionExecuting(Action action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)
Description copied from interface:ActionTrackingServiceRecord that an action has begun execution.- Specified by:
recordActionExecutingin interfaceActionTrackingService- Parameters:
action- the action that has been scheduledactionedUponNodeRef- theNodeRefthe action is acting on
-
recordActionFailure
public void recordActionFailure(Action action, java.lang.Throwable exception)
Schedule the recording of the action failure to occur in another transaction- Specified by:
recordActionFailurein interfaceActionTrackingService- Parameters:
action- the action that has failed
-
isCancellationRequested
public boolean isCancellationRequested(CancellableAction action)
Description copied from interface:ActionTrackingServiceHas cancellation been requested for the given action? This method is most commonly called by the action in question, to check to see if someone has calledActionTrackingService.requestActionCancellation(CancellableAction)for them.- Specified by:
isCancellationRequestedin interfaceActionTrackingService- Parameters:
action- The action to check about- Returns:
- if cancellation has been requested or not
-
requestActionCancellation
public void requestActionCancellation(CancellableAction action)
Description copied from interface:ActionTrackingServiceRequests that the specified Action cancel itself and aborts execution, as soon as possible. Cancellable actions periodically check to see if a cancel has been requested, and will take note of the cancel request once seen.- Specified by:
requestActionCancellationin interfaceActionTrackingService- Parameters:
action- The action to request the cancel of
-
requestActionCancellation
public void requestActionCancellation(ExecutionSummary executionSummary)
Description copied from interface:ActionTrackingServiceRequests that the specified Action cancel itself and aborts execution, as soon as possible. Cancellable actions periodically check to see if a cancel has been requested, and will take note of the cancel request once seen. If the specified action is not a cancellable action, nothing will happen.- Specified by:
requestActionCancellationin interfaceActionTrackingService- Parameters:
executionSummary- ExecutionSummary
-
getAllExecutingActions
public java.util.List<ExecutionSummary> getAllExecutingActions()
Description copied from interface:ActionTrackingServiceRetrieve summary details of all the actions currently executing.- Specified by:
getAllExecutingActionsin interfaceActionTrackingService- Returns:
- the execution summaries
-
getExecutingActions
public java.util.List<ExecutionSummary> getExecutingActions(Action action)
Description copied from interface:ActionTrackingServiceRetrieve summary details of all instances of the specified action that are currently executing.- Specified by:
getExecutingActionsin interfaceActionTrackingService- Returns:
- the execution summaries
-
getExecutingActions
public java.util.List<ExecutionSummary> getExecutingActions(java.lang.String type)
Description copied from interface:ActionTrackingServiceRetrieve summary details of all the actions of the given type that are currently executing.- Specified by:
getExecutingActionsin interfaceActionTrackingService- Parameters:
type- the action type- Returns:
- the execution summaries
-
getExecutingActions
public java.util.List<ExecutionSummary> getExecutingActions(java.lang.String type, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)
Description copied from interface:ActionTrackingServiceRetrieve summary details of all the actions of the given type acting on the givenNodeRefthat are currently executing.- Specified by:
getExecutingActionsin interfaceActionTrackingService- Parameters:
type- the action typeactionedUponNodeRef- the node the action is acting on- Returns:
- the execution summaries
-
getExecutionDetails
public ExecutionDetails getExecutionDetails(ExecutionSummary executionSummary)
Description copied from interface:ActionTrackingServiceRetrieves the execution details on the given executing action, such as when it started, and what machine it is executing on.- Specified by:
getExecutionDetailsin interfaceActionTrackingService- Parameters:
executionSummary- the execution summary- Returns:
- the execution details
-
generateCacheKey
protected static java.lang.String generateCacheKey(Action action)
Generates the cache key for the specified action.
-
generateCacheKey
protected static java.lang.String generateCacheKey(ExecutionSummary summary)
-
buildExecutionDetails
protected static ExecutionDetails buildExecutionDetails(Action action)
Builds up the details to be stored in a cache for a specific action
-
buildExecutionDetails
protected static ExecutionDetails buildExecutionDetails(Action action, org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef)
Builds up the details to be stored in a cache for a specific action
-
buildExecutionSummary
protected static ExecutionSummary buildExecutionSummary(java.lang.String key)
Turns a cache key back into its constituent parts, for easier access.
-
buildExecutionSummary
protected static ExecutionSummary buildExecutionSummary(Action action)
-
-