mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Moved repository master into its own directory
This commit is contained in:
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,37 @@
|
||||
@startuml
|
||||
|
||||
title Actions: Asynchronous Actions Classes (V5.1 Current)
|
||||
|
||||
interface ActionService {
|
||||
+ void executeAction(Action action, NodeRef actionedUponNodeRef, boolean checkConditions, boolean executeAsychronously)
|
||||
}
|
||||
class ActionServiceImpl implements ActionService {
|
||||
- ActionTransactionListener transactionListener
|
||||
- Map<String, AsynchronousActionExecutionQueue> asynchronousActionExecutionQueues
|
||||
+ void registerAsynchronousActionExecutionQueue(String key, AsynchronousActionExecutionQueue asyncExecQueue)
|
||||
+ void executeAction(...)
|
||||
- void addPostTransactionPendingAction(action, actionedUponNodeRef, checkConditions, actionChain)
|
||||
- List<PendingAction> getPostTransactionPendingActions()
|
||||
+ postCommit()
|
||||
- queueAction(PendingAction action)
|
||||
+ etc(...)
|
||||
}
|
||||
|
||||
interface AsynchronousActionExecutionQueue {
|
||||
+ void executeAction(RuntimeActionService actionService, Action action, NodeRef actionedUponNodeRef, boolean checkConditions, Set<String> actionChain);
|
||||
}
|
||||
class AsynchronousActionExecutionQueueImpl implements AsynchronousActionExecutionQueue {
|
||||
- ThreadPoolExecutor threadPoolExecutor
|
||||
- TransactionService transactionService
|
||||
- PolicyComponent policyComponent
|
||||
- Map<String, AbstractAsynchronousActionFilter> actionFilters
|
||||
- String id
|
||||
+ void init()
|
||||
+ void executeAction(...)
|
||||
+ etc(...)
|
||||
}
|
||||
|
||||
AsynchronousActionExecutionQueueImpl o- "1" ActionServiceImpl
|
||||
AsynchronousActionExecutionQueueImpl "0..*" -o ActionServiceImpl
|
||||
|
||||
@enduml
|
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
@@ -0,0 +1,61 @@
|
||||
@startuml
|
||||
|
||||
title Actions: Queued Actions Classes (V5.2 Proposal)
|
||||
|
||||
interface ActionService {
|
||||
+ void executeAction(Action action, NodeRef actionedUponNodeRef, boolean checkConditions, boolean executeAsychronously)
|
||||
}
|
||||
class ActionServiceImpl implements ActionService {
|
||||
- ActionTransactionListener transactionListener
|
||||
- Map<String, AsynchronousActionExecutionQueue> asynchronousActionExecutionQueues
|
||||
+ void registerAsynchronousActionExecutionQueue(String key, AsynchronousActionExecutionQueue asyncExecQueue)
|
||||
+ void executeAction(...)
|
||||
- <b>void bindPendingActionToTransaction(action, actionedUponNodeRef, checkConditions, actionChain)</b>
|
||||
- <s>void addPostTransactionPendingAction(action, actionedUponNodeRef, checkConditions, actionChain)</s>
|
||||
- List<PendingAction> getPostTransactionPendingActions()
|
||||
+ <b>beforeCommit()</b>
|
||||
+ <s>postCommit()</s>
|
||||
- queueAction(PendingAction action)
|
||||
+ etc(...)
|
||||
}
|
||||
|
||||
interface AsynchronousActionExecutionQueue {
|
||||
+ void executeAction(RuntimeActionService actionService, Action action, NodeRef actionedUponNodeRef, boolean checkConditions, Set<String> actionChain);
|
||||
}
|
||||
class AsynchronousActionExecutionQueueImpl implements AsynchronousActionExecutionQueue {
|
||||
- <b>ProducerTemplate producerTemplate</b>
|
||||
- <s>ThreadPoolExecutor threadPoolExecutor</s>
|
||||
- TransactionService transactionService
|
||||
- PolicyComponent policyComponent
|
||||
- Map<String, AbstractAsynchronousActionFilter> actionFilters
|
||||
- String id
|
||||
+ void init()
|
||||
+ void executeAction(...)
|
||||
+ etc(...)
|
||||
}
|
||||
|
||||
package org::apache::camel {
|
||||
class ProducerTemplate {
|
||||
+ void sendBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers)
|
||||
}
|
||||
class RouteBuilder {
|
||||
+ void configure()
|
||||
+ etc(...)
|
||||
}
|
||||
class JacksonDataFormat
|
||||
}
|
||||
|
||||
class QueuedActionProducer extends RouteBuilder {
|
||||
+ void configure()
|
||||
}
|
||||
class QueuedActionReceiver extends RouteBuilder {
|
||||
+ void configure()
|
||||
}
|
||||
|
||||
AsynchronousActionExecutionQueueImpl o- "1" ActionServiceImpl
|
||||
AsynchronousActionExecutionQueueImpl "0..*" -o ActionServiceImpl
|
||||
AsynchronousActionExecutionQueueImpl o- "1" ProducerTemplate
|
||||
QueuedActionProducer --> "uses" JacksonDataFormat
|
||||
QueuedActionReceiver --> "uses" JacksonDataFormat
|
||||
|
||||
@enduml
|
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
@@ -0,0 +1,63 @@
|
||||
@startuml
|
||||
class RuleType {
|
||||
String name
|
||||
String displayLabel
|
||||
}
|
||||
|
||||
class Rule {
|
||||
NodeRef nodeRef
|
||||
String title
|
||||
String description
|
||||
boolean ruleDisabled
|
||||
boolean executeAsynchronously
|
||||
boolean isAppliedToChildren
|
||||
}
|
||||
|
||||
class Action
|
||||
|
||||
class RuleTrigger
|
||||
|
||||
|
||||
Rule --> "1..*" RuleType
|
||||
Rule --> "1" Action
|
||||
|
||||
RuleType --> "*" RuleTrigger
|
||||
|
||||
note left of RuleType
|
||||
There are three rule types defined by default:
|
||||
- inbound
|
||||
- outbound
|
||||
- update
|
||||
end note
|
||||
|
||||
together {
|
||||
class BeforeDeleteChildAssociationRuleTrigger
|
||||
class CreateNodeRuleTrigger
|
||||
class OnCreateChildAssociationRuleTrigger
|
||||
class OnMoveNodeRuleTrigger
|
||||
class OnPropertyUpdateRuleTrigger
|
||||
class RestoreNodeRuleTrigger
|
||||
class SingleAssocRefPolicyRuleTrigger
|
||||
class SingleNodeRefPolicyRuleTrigger
|
||||
}
|
||||
|
||||
CreateNodeRuleTrigger -[hidden]--> BeforeDeleteChildAssociationRuleTrigger
|
||||
OnMoveNodeRuleTrigger -[hidden]--> OnCreateChildAssociationRuleTrigger
|
||||
OnPropertyUpdateRuleTrigger -[hidden]--> RestoreNodeRuleTrigger
|
||||
SingleAssocRefPolicyRuleTrigger -[hidden]--> SingleNodeRefPolicyRuleTrigger
|
||||
|
||||
RuleTrigger <|-- BeforeDeleteChildAssociationRuleTrigger
|
||||
RuleTrigger <|-- CreateNodeRuleTrigger
|
||||
RuleTrigger <|-- OnCreateChildAssociationRuleTrigger
|
||||
RuleTrigger <|-- OnMoveNodeRuleTrigger
|
||||
RuleTrigger <|-- OnPropertyUpdateRuleTrigger
|
||||
RuleTrigger <|-- RestoreNodeRuleTrigger
|
||||
RuleTrigger <|-- SingleAssocRefPolicyRuleTrigger
|
||||
RuleTrigger <|-- SingleNodeRefPolicyRuleTrigger
|
||||
|
||||
|
||||
note right of Action
|
||||
See separate diagram for info about Actions
|
||||
end note
|
||||
|
||||
@enduml
|
Reference in New Issue
Block a user