Beruflich Dokumente
Kultur Dokumente
Table of Contents
Model Detail .................................................................................................................................. 6
NServiceBus_Source ................................................................................................................. 6
Grid ......................................................................................................................................... 6
ManagedEndpoint .............................................................................................................. 7
Manager ............................................................................................................................. 9
Worker ............................................................................................................................. 11
MsmqWorkerAvailabilityManager ...................................................................................... 12
MsmqWorkerAvailabilityManager .................................................................................. 13
NServiceBus ......................................................................................................................... 14
CompletionResult ............................................................................................................ 15
IBus .................................................................................................................................. 16
ICallback .......................................................................................................................... 19
IMessage .......................................................................................................................... 19
IMessageCreator .............................................................................................................. 20
IMessageHandler ............................................................................................................. 21
IMessageModule .............................................................................................................. 22
IStartableBus .................................................................................................................... 23
Attributes ........................................................................................................................... 23
RecoverableAttribute .................................................................................................... 24
TimeToBeReceivedAttribute ........................................................................................ 25
Config ................................................................................................................................ 26
Configure ...................................................................................................................... 26
DbSubscriptionStorageConfig ...................................................................................... 28
MessageEndpointMapping ........................................................................................... 28
MessageEndpointMappingCollection ........................................................................... 29
MsmqSubscriptionStorageConfig ................................................................................. 30
MsmqTransportConfig .................................................................................................. 31
UnicastBusConfig ......................................................................................................... 31
Grid .................................................................................................................................... 32
MessageHandlers ........................................................................................................... 32
ChangeNumberOfWorkerThreadsMessageHandler .................................................. 32
GetNumberOfWorkerThreadsMessageHandler ........................................................ 34
GridInterceptingMessageHandler .............................................................................. 35
Messages ........................................................................................................................ 37
ChangeNumberOfWorkerThreadsMessage ............................................................... 37
GetNumberOfWorkerThreadsMessage ..................................................................... 38
GotNumberOfWorkerThreadsMessage ..................................................................... 38
MessageInterfaces ............................................................................................................. 39
IMessageMapper ........................................................................................................... 40
MessageMapper ............................................................................................................. 40
Reflection .................................................................................................................... 40
MessageMapper ...................................................................................................... 41
Messages ........................................................................................................................... 43
Model Specification Phase 01 Page: 2
ReadyMessage .............................................................................................................. 44
Multicast ............................................................................................................................ 45
Bus ................................................................................................................................ 45
Transport ........................................................................................................................ 46
IMulticastTransport.................................................................................................... 47
ObjectBuilder .................................................................................................................... 48
CastleWindsor ................................................................................................................ 48
ConfigureComponentAdapter .................................................................................... 48
RecordPropertySet ..................................................................................................... 49
WindsorObjectBuilder ............................................................................................... 50
Common ......................................................................................................................... 52
CommonObjectBuilder .............................................................................................. 53
IBuilderInternal .......................................................................................................... 54
IContainInternalBuilder ............................................................................................. 55
Config .......................................................................................................................... 56
ConfigureCommon ................................................................................................. 56
Spring ............................................................................................................................. 57
ComponentConfig ...................................................................................................... 58
ConfigAdvice ............................................................................................................. 59
ConfigAdvisor............................................................................................................ 60
SetterPointcut .......................................................................................................... 60
SpringObjectBuilder .................................................................................................. 61
Synchronized .................................................................................................................. 63
SynchronizedObjectBuilder ....................................................................................... 64
Proxy ................................................................................................................................. 65
Proxy ............................................................................................................................. 66
ProxyData ..................................................................................................................... 69
IProxyDataStorage ........................................................................................................ 70
ISubscriberStorage ........................................................................................................ 70
Host ................................................................................................................................ 71
NServiceBusProxyConfig .......................................................................................... 71
Program ...................................................................................................................... 72
InMemoryImpl ............................................................................................................... 72
ProxyDataStorage ...................................................................................................... 73
SubscriberStorage ...................................................................................................... 74
Saga ................................................................................................................................... 75
Configure ...................................................................................................................... 75
IFindSagas..................................................................................................................... 80
Using .......................................................................................................................... 80
Saga ............................................................................................................................... 81
TimeoutMessage ........................................................................................................... 83
HasCompleted ............................................................................................................... 85
IFinder ........................................................................................................................... 85
ISaga ............................................................................................................................. 86
ISaga ............................................................................................................................. 86
ISagaEntity.................................................................................................................... 87
Model Specification Phase 01 Page: 3
ISagaMessage ............................................................................................................... 87
ISagaPersister ................................................................................................................ 88
ISagaStartedBy ............................................................................................................. 89
ITimeoutable ................................................................................................................. 89
Impl ................................................................................................................................ 90
EmptySagaFinder ....................................................................................................... 90
GuidCombGenerator .................................................................................................. 91
SagaEntityFinder........................................................................................................ 92
SagaMessageHandler ................................................................................................. 93
SagaPersisters .................................................................................................................... 95
NHibernate ..................................................................................................................... 95
NHibernateMessageModule ...................................................................................... 96
SagaPersister .............................................................................................................. 97
Serialization ....................................................................................................................... 98
IMessageSerializer ........................................................................................................ 98
Serializers .......................................................................................................................... 99
Binary ............................................................................................................................. 99
MessageSerializer .................................................................................................... 100
XML ............................................................................................................................. 101
MessageSerializer .................................................................................................... 102
Risk .......................................................................................................................... 106
IM1 ........................................................................................................................... 107
Test ............................................................................................................................ 108
Class1 .................................................................................................................... 108
M1 ......................................................................................................................... 110
M2 ......................................................................................................................... 110
SomeEnum ............................................................................................................ 111
IM2 ........................................................................................................................ 112
XsdGenerator ............................................................................................................ 113
ComplexType ........................................................................................................ 113
ComplexTypeWriter ............................................................................................. 115
Element ................................................................................................................. 116
ElementWriter ....................................................................................................... 119
Events .................................................................................................................... 120
Program ................................................................................................................. 121
Reflect ................................................................................................................... 122
Repository ............................................................................................................. 123
SimpleTypeWriter................................................................................................. 124
Strings ................................................................................................................... 124
Testing ............................................................................................................................. 126
Saga ............................................................................................................................. 127
Tools ................................................................................................................................ 131
Management ................................................................................................................. 131
Errors ......................................................................................................................... 132
ReturnToSourceQueue ........................................................................................... 132
Class1 ................................................................................................................. 132
Model Specification Phase 01 Page: 4
Model Documentation
Model Detail
This document provides a complete overview of all element details. For simpler and more focused reports, simply
copy this initial template and turn off the sections not required.
NServiceBus_Source
Type: Package
Status: Proposed. Version . Phase 1.0.
Package: Model
Detail: Created on 21/12/2008 09:35:55. Last modified on 21/12/2008 09:35:55
GUID: {8C2FA27E-1C90-43d3-A2B4-EA81F5DC8D1C}
Grid
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Detail: Created on 21/12/2008 09:37:47. Last modified on 21/12/2008 09:37:47
GUID: {5F40370F-3466-43eb-84F3-89E343221492}
class Grid
Manager
- bus: IBus
- endpoints: List<ManagedEndpoint> = new List<Manage...
- path: string = "storage.txt" {readOnly}
- refreshInterval: int = 5 {readOnly}
- timer: Timer = new Timer(Check... {readOnly}
- CheckNumberOfMessages(object) : void
+ GetManagedEndpoints() : List<ManagedEndpoint>
- Manager()
+ RefreshNumberOfWorkerThreads(string) : void
+ Save() : void
+ SetBus(IBus) : void
+ SetNumberOfWorkerThreads(string, int) : void
+ StoreManagedEndpoints(List<ManagedEndpoint>) : void
~ UpdateNumberOfWorkerThreads(string, int) : void
«property»
+ RefreshInterval() : int
ManagedEndpoint
- name: string
- numberOfMessages: int
- queue: string
- workers: List<Worker> = new List<Worker>()
+ SetNumberOfMessages(int) : void
+ ToString() : string
«property»
+ Name() : string
+ NumberOfMessages() : int
+ Queue() : string
+ Workers() : IList<Worker>
Worker
- numberOfWorkerThreads: int
- queue: string
+ SetNumberOfWorkerThreads(int) : void
+ ToString() : string
«property»
+ NumberOfWorkerThreads() : int
+ Queue() : string
Figure: 1
ManagedEndpoint
Model Specification Phase 01 Page: 8
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Grid Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {1D1D949E-65E2-4c9e-8428-6A2953D2A55C}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Association Public Private current
Source -> Destination Form1 ManagedEndpoint
Attributes
Attribute Notes Constraints and tags
name string Default:
Private
Operations
Method Notes Parameters
Name() string
Public
NumberOfMessages() int
Public
Queue() string
Public
SetNumberOfMessages() int number
void [in]
Public
ToString() string
Public
Workers() IList<Worker>
Public
Manager
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Grid Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {6B390BA7-2544-4cb8-A0A9-85176539B091}
Custom Properties
isActive = False
Tagged Values
static = true.
Connections
Connector Source Target Notes
Association Public Private bus
Source -> Destination Manager IBus
Model Specification Phase 01 Page: 10
Attributes
Attribute Notes Constraints and tags
bus IBus Default:
Private Static
Operations
Method Notes Parameters
Static object state
CheckNumberOfMessage [in]
s() void
Private
Model Specification Phase 01 Page: 11
Worker
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Grid Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A0A7E091-7F55-4bad-B132-AAC05535F411}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 12
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Association Public Private worker
Source -> Destination Form1 Worker
Attributes
Attribute Notes Constraints and tags
numberOfWorkerThread Default:
s int
Private
Operations
Method Notes Parameters
NumberOfWorkerThrea
ds() int
Public
Queue() string
Public
SetNumberOfWorkerThr int number
eads() void [in]
Public
ToString() string
Public
MsmqWorkerAvailabilityManager
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Model Specification Phase 01 Page: 13
MsmqWorkerAv ailabilityManager
+ ClearAvailabilityForWorker(string) : void
+ PopAvailableWorker() : string
+ WorkerAvailable(string) : void
«property»
+ StorageQueue() : string
Figure: 2
MsmqWorkerAvailabilityManager
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: MsmqWorkerAvailabilityManager Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {24A1CAC4-1B5F-46d4-999E-8A9BA38B9201}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MsmqWorkerAvailabili IWorkerAvailabilityMa
tyManager nager
Model Specification Phase 01 Page: 14
Attributes
Attribute Notes Constraints and tags
locker object Default: new object()
Private new object()
storageQueue Default:
MessageQueue
Private
Operations
Method Notes Parameters
ClearAvailabilityForWor Removes all entries from the worker string address
ker() void availability queue with the specified address. [in] The address of the worker to
Public remove from the availability list.
StorageQueue() string Sets the path to the queue that will be used for
Public storing worker availability.
NServiceBus
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Detail: Created on 21/12/2008 09:37:09. Last modified on 21/12/2008 09:37:09
Model Specification Phase 01 Page: 15
GUID: {BDED8190-154A-480f-AE9B-90AFAC8AA85E}
«interface» «interface»
IBus ICallback
+ DoNotContinueDispatchingCurrentMessageToHandlers() : void + Register(AsyncCallback, object) : IAsyncResult
+ HandleCurrentMessageLater() : void
+ Publish(T[]) : void
+ Publish(Action<T>) : void
+ Reply(IMessage[]) : void
+ Reply(Action<T>) : void
+ Return(int) : void
+ Send(IMessage[]) : ICallback CompletionResult
+ Send(Action<T>) : ICallback
+ Send(string, IMessage[]) : ICallback «property»
+ Send(string, Action<T>) : ICallback + ErrorCode() : int
+ SendLocal(IMessage[]) : void + Messages() : IMessage[]
+ SendLocal(Action<T>) : void + State() : object
+ Subscribe(Type) : void
+ Subscribe() : void
+ Subscribe(Type, Predicate<IMessage>) : void
+ Subscribe(Predicate<T>) : void
+ Unsubscribe(Type) : void
+ Unsubscribe() : void «interface» «interface»
«property» IMessageHandler IMessage
+ IncomingHeaders() : IDictionary<string, string>
+ OutgoingHeaders() : IDictionary<string, string> + Handle(T) : void
+ SourceOfMessageBeingHandled() : string
Figure: 3
CompletionResult
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9C14FC52-459C-4727-912D-E61328486851}
The object found in <see cref="IAsyncResult"/>.AsyncState returned by the <see cref="AsyncCallback"/> passed to
the Send method of the bus.
Model Specification Phase 01 Page: 16
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private result
Source -> Destination BusAsyncResult CompletionResult
Operations
Method Notes Parameters
ErrorCode() int If <see cref="IBus.Return"/> was called, this
Public contains the value passed to it.
IBus
Type: Interface IMessageCreator
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C82B10E4-7560-4f96-8B24-8BBBF8E66C9F}
Connections
Connector Source Target Notes
Dependency Public Public
Source -> Destination IStartableBus IBus
Operations
Method Notes Parameters
DoNotContinueDispatchi Tells the bus to stop dispatching the current
ngCurrentMessageToHa message to additional handlers.
ndlers() void
Public
HandleCurrentMessageL Moves the message being handled to the back
ater() void of the list of available messages so it can be
Public handled later.
Reply() void Sends all messages to the destination found in IMessage[] messages
Public <see [in] The messages to send.
cref="SourceOfMessageBeingHandled"/>.
Send() ICallback Instantiates a message of type T and sends it. Action<T> messageConstructor
Public [in] An action which initializes
@remark The message will be sent to the properties of the message
destination configured for T
IMessage[] messages
[in] The list of messages to send.
SendLocal() void Sends the list of messages back to the current IMessage[] messages
Public bus. [in] The messages to send.
ICallback
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A947EBE1-ABB3-4ad4-AF8D-7740C3C741D8}
Connections
Connector Source Target Notes
Dependency Public Public
Source -> Destination IBus ICallback
Operations
Method Notes Parameters
Register() IAsyncResult AsyncCallback callback
Public [in]
object state
[in]
IMessage
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Model Specification Phase 01 Page: 20
Marker interface to indicate that a class is a message suitable for transmission and handling by an NServiceBus.
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ChangeNumberOfWork IMessage
erThreadsMessage
IMessageCreator
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {68615874-022F-4769-80AD-657D003B439D}
Model Specification Phase 01 Page: 21
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination IBus IMessageCreator
Operations
Method Notes Parameters
CreateInstance() T
Public
CreateInstance() T Action<T> action
Public [in]
IMessageHandler
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {8245939C-DD7C-4668-ABFB-505AFE574B8F}
Tagged Values
genericConstraints = where T : IMessage.
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ChangeNumberOfWork IMessageHandler
erThreadsMessageHand
Model Specification Phase 01 Page: 22
Operations
Method Notes Parameters
Handle() void Handles a message. T message
Public [in] The message to handle.
@remark This method will be called when a
message arrives on the bus and should contain
the custom logic to execute when the message
is received.
IMessageModule
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {B82684CF-4CCC-4e75-9EB5-E645BB331F6D}
This interface describes a message module - an object that will be called before and after all message handlers.
Connections
Model Specification Phase 01 Page: 23
Operations
Method Notes Parameters
HandleBeginMessage() This method is called before any message
void handlers are called.
Public
HandleEndMessage() This method is called after all message handlers
void have been called.
Public
IStartableBus
Type: Interface IDisposable
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0343580E-7753-472d-8027-29D069C524B1}
Connections
Connector Source Target Notes
Dependency Public Public
Source -> Destination IStartableBus IBus
Operations
Method Notes Parameters
Start() IBus Starts the bus. Action<IBuilder>[] startupActions
Public [in]
Attributes
Type: Package
Model Specification Phase 01 Page: 24
class Attributes
Attribute
Recov erableAttribute
Attribute
TimeToBeReceiv edAttribute
+ TimeToBeReceivedAttribute()
+ TimeToBeReceivedAttribute(string)
«property»
+ TimeToBeReceived() : TimeSpan
Figure: 4
RecoverableAttribute
Type: Class Attribute
Status: Proposed. Version 1.0. Phase 1.0.
Package: Attributes Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0B1C95CE-C0E6-42b6-B3A4-E107622431FF}
@remark This attribute should be applied to classes that implement <see cref="IMessage"/> to indicate that they
should be treated as a recoverable message. A recoverable message is stored locally at every step along the route so
that in the event of a failure of a machine along the route a copy of the message will be recovered and delivery will
continue when the machine is brought back online.
Model Specification Phase 01 Page: 25
Custom Properties
isActive = False
Tagged Values
Attribute = [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)].
TimeToBeReceivedAttribute
Type: Class Attribute
Status: Proposed. Version 1.0. Phase 1.0.
Package: Attributes Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {02A1A2B9-8CD4-4010-A28A-B554A0C4BADA}
Custom Properties
isActive = False
Tagged Values
Attribute = [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)].
Attributes
Attribute Notes Constraints and tags
timeToBeReceived Default: TimeSpan.MaxValue
TimeSpan
Private Const
TimeSpan.MaxValue
Operations
Method Notes Parameters
TimeToBeReceived() Gets the maximum time in which a message
TimeSpan must be received.
Public
@remark If the interval specified by the
TimeToBeReceived property expires before the
Model Specification Phase 01 Page: 26
Config
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:33. Last modified on 21/12/2008 09:37:33
GUID: {BA5510C1-442D-455e-96EB-9A23C9DEF25F}
class Config
ConfigurationSection ConfigurationSection
DbSubscriptionStorageConfig MsmqTransportConfig
«property» «property»
+ ConnectionString() : string + ErrorQueue() : string
+ ProviderInvariantName() : string + InputQueue() : string
+ MaxRetries() : int
+ NumberOfWorkerThreads() : int
Figure: 5
Model Specification Phase 01 Page: 27
Configure
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {85ACAADA-D8E2-4249-B44A-2728611AA762}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private instance
Source -> Destination Configure Configure
Attributes
Attribute Notes Constraints and tags
instance Configure Default:
Private Static
Operations
Method Notes Parameters
Builder() IBuilder
Public
Configure()
Protected
Model Specification Phase 01 Page: 28
DbSubscriptionStorageConfig
Type: Class ConfigurationSection
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {3DBE2DDE-907F-442d-BCAD-63C68F0B48EA}
Custom Properties
isActive = False
Operations
Method Notes Parameters
ConnectionString() string
Public
ProviderInvariantName()
string
Public
MessageEndpointMapping
Type: Class ConfigurationElement
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {DA90C4C6-EA43-495b-A5DD-FD9F2A8875BC}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 29
Operations
Method Notes Parameters
Endpoint() string
Public
Messages() string
Public
MessageEndpointMappingCollection
Type: Class ConfigurationElementCollection
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {6AD29664-661D-407c-8AE2-69C7EACEBBD3}
Custom Properties
isActive = False
Operations
Method Notes Parameters
Add() void MessageEndpointMapping
Public mapping
[in]
AddElementName() string
Public
BaseAdd() void ConfigurationElement element
Protected [in]
Clear() void
Public
ClearElementName()
string
Public
CollectionType()
ConfigurationElementColl
ectionType
Public
Count() int
Public
CreateNewElement()
ConfigurationElement
Protected
CreateNewElement() string elementName
ConfigurationElement [in]
Model Specification Phase 01 Page: 30
MessageEndpointMappin
gCollection()
Public
Remove() void MessageEndpointMapping
Public mapping
[in]
RemoveElementName()
string
Public
this() int index
MessageEndpointMapping [in]
Public
MsmqSubscriptionStorageConfig
Type: Class ConfigurationSection
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {42D33A8E-96E1-41cc-B37E-1C6916A32342}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 31
Operations
Method Notes Parameters
Queue() string
Public
MsmqTransportConfig
Type: Class ConfigurationSection
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {544FC285-2E21-4c0d-87E1-3F21E43110E2}
Custom Properties
isActive = False
Operations
Method Notes Parameters
ErrorQueue() string
Public
InputQueue() string
Public
MaxRetries() int
Public
NumberOfWorkerThrea
ds() int
Public
UnicastBusConfig
Type: Class ConfigurationSection
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {48F9C162-33B7-4cac-A3D4-D486ACF4D26C}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 32
Operations
Method Notes Parameters
DistributorControlAddre
ss() string
Public
DistributorDataAddress()
string
Public
MessageEndpointMappin
gs()
MessageEndpointMapping
Collection
Public
Grid
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:19. Last modified on 21/12/2008 09:37:19
GUID: {56DD094B-E75C-4636-BAF2-8EAE19BDF53E}
MessageHandlers
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Grid
Detail: Created on 21/12/2008 09:37:19. Last modified on 21/12/2008 09:37:19
GUID: {BD6C9AFD-F0F0-439a-8BC8-F2FAFD929065}
class MessageHandlers
- disabled: bool - logger: ILog = LogManager.GetL... {readOnly} - logger: ILog = LogManager.GetL... {readOnly}
- logger: ILog = LogManager.GetL... {readOnly} - transport: ITransport - transport: ITransport
- unicastBus: IUnicastBus - unicastBus: IUnicastBus
+ Handle(GetNumberOfWorkerThreadsMessage) : void
+ Handle(IMessage) : void «property» + Handle(ChangeNumberOfWorkerThreadsMessage) : void
«property» + Bus() : IBus «property»
+ Bus() : IBus + Transport() : ITransport + Transport() : ITransport
+ Disabled() : bool + UnicastBus() : IUnicastBus
+ UnicastBus() : IUnicastBus
«event»
+ DisabledChanged() : EventHandler
Figure: 6
Model Specification Phase 01 Page: 33
ChangeNumberOfWorkerThreadsMessageHandler
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageHandlers Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {50018BFC-6D44-498d-9042-4CED0A1EC0F0}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private transport
Source -> Destination ChangeNumberOfWork ITransport
erThreadsMessageHand
ler
Attributes
Attribute Notes Constraints and tags
logger ILog Default:
Private Static Const LogManager.GetLogger("NService
LogManager.GetLogger(" bus.Grid")
NServicebus.Grid")
Operations
Method Notes Parameters
Handle() void ChangeNumberOfWorkerThread
Public sMessage message
[in]
Transport() ITransport This is kept separate from the bus because the
Public distributor will be using this class on its control
bus to change the number of worker threads on
its data bus. For regular cases, the transport
should be the same as is configured for the bus.
UnicastBus() IUnicastBus
Public
GetNumberOfWorkerThreadsMessageHandler
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageHandlers Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {E97AE45B-9DE6-4abe-BC5E-ECABFF816622}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private transport
Source -> Destination GetNumberOfWorkerT ITransport
hreadsMessageHandler
Attributes
Attribute Notes Constraints and tags
logger ILog Default:
Private Static Const LogManager.GetLogger("NService
LogManager.GetLogger(" bus.Grid")
NServicebus.Grid")
Operations
Method Notes Parameters
Bus() IBus
Public
Handle() void GetNumberOfWorkerThreadsMe
Public ssage message
[in]
Transport() ITransport
Public
GridInterceptingMessageHandler
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageHandlers Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0603AD73-1A53-46f8-A689-89BE7DC46095}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Model Specification Phase 01 Page: 36
Attributes
Attribute Notes Constraints and tags
disabled bool Default:
Private Static
[volatile = true ]
Operations
Method Notes Parameters
Bus() IBus
Public
Static Disabled() bool
Public
Static DisabledChanged()
EventHandler
Public
Handle() void IMessage message
Public [in]
UnicastBus() IUnicastBus
Public
Model Specification Phase 01 Page: 37
Messages
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Grid
Detail: Created on 21/12/2008 09:37:20. Last modified on 21/12/2008 09:37:20
GUID: {1F59993C-F45E-433e-910C-AC8D39E697BF}
class Messages
«property» «property»
+ NumberOfWorkerThreads() : int + NumberOfWorkerThreads() : int
Figure: 7
ChangeNumberOfWorkerThreadsMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Messages Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {6172F4B5-DA8D-4f07-B246-23C78AD76E81}
Message sent to request that the bus change the number of worker threads handling messages.
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ChangeNumberOfWork IMessage
Model Specification Phase 01 Page: 38
Operations
Method Notes Parameters
NumberOfWorkerThrea
ds() int
Public
GetNumberOfWorkerThreadsMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Messages Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {237AF6CC-81B9-4f76-BBD1-0F5875BFAC7B}
Request message sent to a bus to get the number of worker threads. Response is a <see
cref="GotNumberOfWorkerThreadsMessage"/>.
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination GetNumberOfWorkerT IMessage
hreadsMessage
GotNumberOfWorkerThreadsMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Messages Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {20D8AC20-58FC-4a79-B349-BE4BEC07DC4B}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination GotNumberOfWorkerT IMessage
hreadsMessage
Operations
Method Notes Parameters
NumberOfWorkerThrea
ds() int
Public
MessageInterfaces
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:20. Last modified on 21/12/2008 09:37:20
GUID: {FD4F1765-C295-42cb-A3BD-3502EBBED8EF}
class MessageInterfaces
IMessageCreator
«interface»
IMessageMapper
+ GetMappedTypeFor(Type) : Type
+ GetMappedTypeFor(string) : Type
+ Initialize(Type[]) : void
Figure: 8
IMessageMapper
Type: Interface IMessageCreator
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageInterfaces Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {46D1D251-D9F4-49b0-AF12-FA9E92459DDB}
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MessageMapper IMessageMapper
Operations
Method Notes Parameters
GetMappedTypeFor() Type t
Type [in]
Public
MessageMapper
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageInterfaces
Detail: Created on 21/12/2008 09:37:20. Last modified on 21/12/2008 09:37:20
GUID: {5BAA1050-BE3C-4f99-8D27-240E95771B3D}
Reflection
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageMapper
Detail: Created on 21/12/2008 09:37:20. Last modified on 21/12/2008 09:37:20
GUID: {90682306-5801-4e27-B707-5DA7E6612913}
class Reflection
MessageMapper
+ CreateInstance(Action<T>) : T
+ CreateInstance() : T
+ CreateInstance(Type) : object
+ CreateTypeFrom(Type, ModuleBuilder) : Type
- GetAllProperties(Type) : IEnumerable<PropertyInfo>
+ GetMappedTypeFor(Type) : Type
+ GetMappedTypeFor(string) : Type
+ GetNewTypeName(Type) : string
+ Initialize(Type[]) : void
+ InitType(Type, ModuleBuilder) : void
Figure: 9
MessageMapper
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Model Specification Phase 01 Page: 42
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MessageMapper IMessageMapper
Attributes
Attribute Notes Constraints and tags
concreteToInterfaceType Default: new Dictionary<Type,
Mapping Type>()
Dictionary<Type, Type>
Private Static Const
new Dictionary<Type,
Type>()
Operations
Method Notes Parameters
CreateInstance() T Action<T> action
Public [in]
CreateInstance() T
Public
CreateInstance() object Type t
Public [in]
ModuleBuilder moduleBuilder
[in]
GetAllProperties() Type t
IEnumerable<PropertyInfo [in]
>
Private
GetMappedTypeFor() Type t
Type [in]
Public
GetNewTypeName() Type t
string [in]
Public
ModuleBuilder moduleBuilder
[in]
Model Specification Phase 01 Page: 44
Messages
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:12. Last modified on 21/12/2008 09:37:12
GUID: {7EB0645F-25C7-434a-8CEC-458C7EBD29EB}
class Messages
ReadyMessage
«property»
+ ClearPreviousFromThisAddress() : bool
Figure: 10
ReadyMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Messages Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {D3D954D3-7A0C-48f2-AD77-3CC14F59F08D}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Model Specification Phase 01 Page: 45
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ReadyMessage IMessage
Operations
Method Notes Parameters
ClearPreviousFromThis Exposes whether or not previous ready
Address() bool messages from the same sender should be
Public cleared.
Multicast
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:39. Last modified on 21/12/2008 09:37:39
GUID: {C8AA5508-9285-4464-8477-FC13166EF186}
class Multicast
UnicastBus
Bus
+ Publish(T[]) : void
+ Start(Action<IBuilder>[]) : IBus
+ Subscribe(Type) : void
+ Subscribe(Type, Predicate<IMessage>) : void
+ Unsubscribe(Type) : void
«property»
+ SubscribeToTopics() : IList<string>
Figure: 11
Bus
Model Specification Phase 01 Page: 46
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination Bus UnicastBus
Attributes
Attribute Notes Constraints and tags
subscribeToTopics Default: new List<string>()
IList<string>
Private new
List<string>()
Operations
Method Notes Parameters
Publish() void T[] messages
Public [in]
Predicate<IMessage> condition
[in]
Model Specification Phase 01 Page: 47
Transport
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Multicast
Detail: Created on 21/12/2008 09:37:39. Last modified on 21/12/2008 09:37:39
GUID: {CB104039-ABB3-42e2-B239-775C88583B6C}
class Transport
ITransport
«interface»
IMulticastTransport
+ Publish(TransportMessage, string) : void
+ Subscribe(string) : void
+ Unsubscribe(string) : void
Figure: 12
IMulticastTransport
Type: Interface ITransport
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {033DDD0C-C624-4b97-9AFD-A172CAAEB3E5}
Connections
Connector Source Target Notes
Model Specification Phase 01 Page: 48
Operations
Method Notes Parameters
Publish() void TransportMessage message
Public [in]
string address
[in]
ObjectBuilder
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:21. Last modified on 21/12/2008 09:37:21
GUID: {A6A232B2-5913-46dd-A4FB-093F8301566D}
CastleWindsor
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: ObjectBuilder
Detail: Created on 21/12/2008 09:37:21. Last modified on 21/12/2008 09:37:21
GUID: {780E1D4C-44B7-4d33-BEFB-7C2531A3B8C1}
class CastleWindsor
IInterceptor
WindsorObj ectBuilder ConfigureComponentAdapter
RecordPropertySet
- proxyGenerator: ProxyGenerator = new ProxyGenerator() {readOnly} - handler: IHandler {readOnly}
- componentConfig: IComponentConfig {readOnly}
+ Build(Type) : object + ConfigureComponentAdapter(IHandler)
+ BuildAll(Type) : IEnumerable<object> + Intercept(IInvocation) : void + ConfigureProperty(string, object) : IComponentConfig
+ BuildAndDispatch(Type, Action<object>) : void + RecordPropertySet(IComponentConfig)
+ Configure(Type, ComponentCallModelEnum) : object
+ ConfigureComponent(Type, ComponentCallModelEnum) : IComponentConfig
- GetAllServiceTypesFor(Type) : IEnumerable<Type>
- GetLifestyleTypeFrom(ComponentCallModelEnum) : LifestyleType
+ WindsorObjectBuilder()
+ WindsorObjectBuilder(IWindsorContainer)
«property»
+ Container() : IWindsorContainer
Figure: 13
ConfigureComponentAdapter
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: CastleWindsor Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {2327DB9C-FE4E-464c-8490-BFD75822C57E}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ConfigureComponentA IComponentConfig
dapter
Attributes
Attribute Notes Constraints and tags
handler IHandler Default:
Private Const
Operations
Method Notes Parameters
ConfigureComponentAd IHandler handler
apter() [in]
Public
Model Specification Phase 01 Page: 50
RecordPropertySet
Type: Class IInterceptor
Status: Proposed. Version 1.0. Phase 1.0.
Package: CastleWindsor Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A126E100-9DCE-4f0c-8ED2-B883CDFAC6CD}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private
Source -> Destination RecordPropertySet componentConfig
IComponentConfig
Attributes
Attribute Notes Constraints and tags
componentConfig Default:
IComponentConfig
Private Const
Operations
Method Notes Parameters
Intercept() void IInvocation invocation
Public [in]
RecordPropertySet() IComponentConfig
Model Specification Phase 01 Page: 51
WindsorObjectBuilder
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: CastleWindsor Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {FD288768-3D6D-48c2-980B-C5C2B30E4E0E}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination WindsorObjectBuilder IBuilderInternal
Attributes
Attribute Notes Constraints and tags
proxyGenerator Default: new ProxyGenerator()
ProxyGenerator
Private Const new
ProxyGenerator()
Operations
Method Notes Parameters
Build() object Type typeToBuild
Public [in]
Action<object> action
[in]
ComponentCallModelEnum
callModel
[in]
Container()
IWindsorContainer
Public
GetAllServiceTypesFor() Type t
IEnumerable<Type> [in]
Private
GetLifestyleTypeFrom() ComponentCallModelEnum
LifestyleType callModel
Private [in]
WindsorObjectBuilder()
Public
WindsorObjectBuilder() IWindsorContainer container
Public [in]
Common
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: ObjectBuilder
Detail: Created on 21/12/2008 09:37:22. Last modified on 21/12/2008 09:37:22
GUID: {277E16C3-1DF9-4169-8735-9C2DCF4EDAF8}
class Common
«interface»
«interface»
IBuilderInternal
IContainInternalBuilder
+ Build(Type) : object
«property» + BuildAll(Type) : IEnumerable<object>
+ Builder() : IBuilderInternal + BuildAndDispatch(Type, Action<object>) : void
+ Configure(Type, ComponentCallModelEnum) : object
+ ConfigureComponent(Type, ComponentCallModelEnum) : IComponentConfig
CommonObj ectBuilder
+ Build() : T
+ Build(Type) : object
+ BuildAll(Type) : IEnumerable<object>
+ BuildAll() : IEnumerable<T>
+ BuildAndDispatch(Type, Action<object>) : void
+ ConfigureComponent(ComponentCallModelEnum) : T
+ ConfigureComponent(Type, ComponentCallModelEnum) : IComponentConfig
«property»
+ Builder() : IBuilderInternal
Figure: 14
CommonObjectBuilder
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Common Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0A1E07AA-D20A-44c4-8FD8-6DBB76B47226}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination CommonObjectBuilder IBuilder
Operations
Method Notes Parameters
Build() T
Public
Build() object Type typeToBuild
Public [in]
BuildAll()
IEnumerable<T>
Public
BuildAndDispatch() void Type typeToBuild
Public [in]
Action<object> action
[in]
Builder() IBuilderInternal
Public
ConfigureComponent() T ComponentCallModelEnum
Public callModel
[in]
IBuilderInternal
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Common Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {418F3FCB-F68F-4eee-8BBE-5C2289FE1417}
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination WindsorObjectBuilder IBuilderInternal
Model Specification Phase 01 Page: 55
Operations
Method Notes Parameters
Build() object Type typeToBuild
Public [in]
Action<object> action
[in]
ComponentCallModelEnum
callModel
[in]
IContainInternalBuilder
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Common Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {FBC6B638-0332-4d3c-A775-0CE562C15317}
Model Specification Phase 01 Page: 56
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination CommonObjectBuilder IContainInternalBuilder
Operations
Method Notes Parameters
Builder() IBuilderInternal
Public
Config
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Common
Detail: Created on 21/12/2008 09:37:23. Last modified on 21/12/2008 09:37:23
GUID: {5FE83544-4E86-44e2-B245-6C7B30C207AF}
class Config
ConfigureCommon
Figure: 15
ConfigureCommon
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9AB1C594-48E9-446a-A032-B1C9A0DAC516}
Model Specification Phase 01 Page: 57
Custom Properties
isActive = False
Tagged Values
static = true.
Operations
Method Notes Parameters
Static With() void Configure config
Public [in]
IBuilderInternal builder
[in]
Action<IConfigureComponents>[
] configActions
[in]
Spring
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: ObjectBuilder
Detail: Created on 21/12/2008 09:37:24. Last modified on 21/12/2008 09:37:24
GUID: {98AD12B4-5670-4aa1-B881-8D0A01F9A571}
class Spring
IPointcut DefaultPointcutAdvisor
SpringObj ectBuilder
ConfigAdv isor::SetterPointcut ConfigAdv isor
- componentProperties: Dictionary<Type, ComponentConfig> = new Dictionary<... {readOnly}
- context: GenericApplicationContext - methodMatcher: IMethodMatcher = TrueMethodMatch... + ConfigAdvisor(Type, IComponentConfig)
- factory: DefaultObjectDefinitionFactory = new DefaultObje... - typeFilter: ITypeFilter
- initialized: bool
- typeHandleLookup: Dictionary<Type, ComponentCallModelEnum> = new Dictionary<... {readOnly} + SetterPointcut(Type)
«property»
+ Build(Type) : object + MethodMatcher() : IMethodMatcher
+ BuildAll(Type) : IEnumerable<object> + TypeFilter() : ITypeFilter
+ BuildAndDispatch(Type, Action<object>) : void
+ Configure(Type, ComponentCallModelEnum) : object
+ ConfigureComponent(Type, ComponentCallModelEnum) : IComponentConfig
- Init() : void
+ SpringObjectBuilder()
+ SpringObjectBuilder(GenericApplicationContext)
- WarnAboutNonVirtualProperties(Type) : void
IMethodInterceptor
ComponentConfig
ConfigAdv ice
- properties: Dictionary<string, object> = new Dictionary<... {readOnly}
- config: IComponentConfig {readOnly}
+ Configure(ObjectDefinitionBuilder) : void
+ ConfigAdvice(IComponentConfig) + ConfigureProperty(string, object) : IComponentConfig
- GetName(string) : string
+ Invoke(IMethodInvocation) : Object
- IsSetter(MethodInfo) : bool
Figure: 16
ComponentConfig
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Spring Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {61CDBA0D-E5DB-46cc-8067-6BFB4EF397E5}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ComponentConfig IComponentConfig
Attributes
Attribute Notes Constraints and tags
properties Default: new Dictionary<string,
Dictionary<string, object> object>()
Private Const new
Dictionary<string,
object>()
Model Specification Phase 01 Page: 59
Operations
Method Notes Parameters
Configure() void ObjectDefinitionBuilder builder
Public [in]
ConfigAdvice
Type: Class IMethodInterceptor
Status: Proposed. Version 1.0. Phase 1.0.
Package: Spring Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {97D9A280-F85C-4379-91FC-668AC1F7BD51}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private config
Source -> Destination ConfigAdvice IComponentConfig
Attributes
Attribute Notes Constraints and tags
config IComponentConfig Default:
Private Const
Operations
Method Notes Parameters
ConfigAdvice() IComponentConfig config
Model Specification Phase 01 Page: 60
ConfigAdvisor
Type: Class DefaultPointcutAdvisor
Status: Proposed. Version 1.0. Phase 1.0.
Package: Spring Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {47533757-256C-4986-A975-3D7321FDBD01}
Custom Properties
isActive = False
Operations
Method Notes Parameters
ConfigAdvisor() Type type
Public [in]
IComponentConfig config
[in]
SetterPointcut
Type: Class IPointcut
Status: Proposed. Version 1.0. Phase 1.0.
Package: Spring Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {4417058C-6054-4604-8FF9-2519470DCE7D}
Model Specification Phase 01 Page: 61
Custom Properties
isActive = False
Attributes
Attribute Notes Constraints and tags
methodMatcher Default: TrueMethodMatcher.True
IMethodMatcher
Private
TrueMethodMatcher.True
Operations
Method Notes Parameters
MethodMatcher()
IMethodMatcher
Public
SetterPointcut() Type type
Public [in]
TypeFilter() ITypeFilter
Public
SpringObjectBuilder
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Spring Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {77DE202E-DEE8-4b1d-BB03-DB43231B417A}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 62
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination SpringObjectBuilder IBuilderInternal
Attributes
Attribute Notes Constraints and tags
componentProperties Default: new Dictionary<Type,
Dictionary<Type, ComponentConfig>()
ComponentConfig>
Private Const new
Dictionary<Type,
ComponentConfig>()
context Default:
GenericApplicationContext
Private Static
Operations
Method Notes Parameters
Build() object Type typeToBuild
Public [in]
Action<object> action
[in]
ComponentCallModelEnum
callModel
[in]
Init() void
Private
SpringObjectBuilder()
Public
SpringObjectBuilder() GenericApplicationContext
Public container
[in]
Synchronized
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: ObjectBuilder
Detail: Created on 21/12/2008 09:37:25. Last modified on 21/12/2008 09:37:25
Model Specification Phase 01 Page: 64
GUID: {39E5B8B4-9E22-40c3-BFA8-0DD965A55D25}
class Synchronized
ContextBoundObject
SynchronizedObj ectBuilder
+ Build(Type) : object
+ BuildAll(Type) : IEnumerable<object>
+ BuildAndDispatch(Type, Action<object>) : void
+ Configure(Type, ComponentCallModelEnum) : object
+ ConfigureComponent(Type, ComponentCallModelEnum) : IComponentConfig
«property»
+ Builder() : IBuilderInternal
Figure: 17
SynchronizedObjectBuilder
Type: Class ContextBoundObject
Status: Proposed. Version 1.0. Phase 1.0.
Package: Synchronized Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {423DBDAB-A9E0-49f8-8E2D-4CD8B8578E83}
Custom Properties
isActive = False
Tagged Values
Attribute = [Synchronization(SynchronizationAttribute.REQUIRED)].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination SynchronizedObjectBui IBuilderInternal
lder
Model Specification Phase 01 Page: 65
Operations
Method Notes Parameters
Build() object Type typeToBuild
Public [in]
Action<object> action
[in]
Builder() IBuilderInternal
Public
Configure() object Type concreteComponent
Public [in]
ComponentCallModelEnum
callModel
[in]
Proxy
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:41. Last modified on 21/12/2008 09:37:41
GUID: {3099A909-78EF-4d46-AB2D-D605C6712DEC}
Model Specification Phase 01 Page: 66
class Proxy
«interface» «interface»
ISubscriberStorage IProxyDataStorage ProxyData
+ GetAllSubscribers() : IEnumerable<string> + GetAndRemove(string) : ProxyData + ClientAddress: string
+ Remove(string) : void + Save(ProxyData) : void + CorrelationId: string
+ Store(string) : void + Id: string
-subscribers -storage
Proxy
- externalTransport: ITransport
- internalTransport: ITransport
- remoteServer: string
- storage: IProxyDataStorage
- subscribers: ISubscriberStorage
Figure: 18
Proxy
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Proxy Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {4A223A98-344C-4caa-89F7-881DA4DE022D}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private
Source -> Destination Proxy externalTransport
Model Specification Phase 01 Page: 67
Attributes
Attribute Notes Constraints and tags
externalTransport Default:
ITransport
Private
internalTransport Default:
ITransport
Private
Operations
Method Notes Parameters
ExternalTransport()
ITransport
Public
externalTransport_Trans object sender
portMessageReceived() [in]
void
Private TransportMessageReceivedEvent
Args e
[in]
@returns
HandledSubscription() TransportMessage
bool transportMessage
Private [in]
InternalTransport()
ITransport
Public
internalTransport_Trans object sender
portMessageReceived() [in]
void
Private TransportMessageReceivedEvent
Args e
[in]
RemoteServer() string
Public
Start() void
Public
Storage()
IProxyDataStorage
Public
Subscribers()
Model Specification Phase 01 Page: 69
ProxyData
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Proxy Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {09BC21D2-F380-430a-B394-1344AB97ECA6}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Attributes
Attribute Notes Constraints and tags
ClientAddress string Default:
Public
Id string Default:
Public
Model Specification Phase 01 Page: 70
IProxyDataStorage
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Proxy Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A094D1AF-74B3-439d-AF53-D05BAC311CC8}
Connections
Connector Source Target Notes
Association Public Private storage
Source -> Destination Proxy IProxyDataStorage
Operations
Method Notes Parameters
GetAndRemove() string id
ProxyData [in]
Public
ISubscriberStorage
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Proxy Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9D358C91-2352-4fc9-935A-8C737DBB3D2D}
Connections
Connector Source Target Notes
Association Public Private subscribers
Source -> Destination Proxy ISubscriberStorage
Operations
Method Notes Parameters
GetAllSubscribers()
IEnumerable<string>
Public
Remove() void string subscriber
Public [in]
Host
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Proxy
Detail: Created on 21/12/2008 09:37:42. Last modified on 21/12/2008 09:37:42
GUID: {0A3DDDC5-D292-47fa-A7D0-F6426C7A5930}
class Host
ConfigurationSection
Program
NServ iceBusProxyConfig
- ConfigureSelfWith(IBuilder) : Proxy
- Main(string[]) : void «property»
+ RemoteServer() : string
Figure: 19
NServiceBusProxyConfig
Type: Class ConfigurationSection
Status: Proposed. Version 1.0. Phase 1.0.
Package: Host Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {80D25E0D-ECF8-4e8e-8D52-FC21FF51DDF8}
Model Specification Phase 01 Page: 72
Custom Properties
isActive = False
Operations
Method Notes Parameters
RemoteServer() string
Public
Program
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Host Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {5B791D44-6947-4b85-9D66-1165B0C5086B}
Custom Properties
isActive = False
Operations
Method Notes Parameters
Static IBuilder builder
ConfigureSelfWith() [in]
Proxy
Private
Static Main() void string[] args
Private [in]
InMemoryImpl
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Proxy
Detail: Created on 21/12/2008 09:37:42. Last modified on 21/12/2008 09:37:42
GUID: {E151DD97-03D4-4f89-B4DC-7E65EBA6210A}
GUID: {2AA8975A-2F36-4da6-B269-E649E26A92E9}
class InMemoryImpl
SubscriberStorage ProxyDataStorage
- storage: IList<string> = new List<string>() {readOnly} - storage: IDictionary<string, ProxyData> = new Dictionary<...
Figure: 20
ProxyDataStorage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: InMemoryImpl Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {21A5541B-A9CC-4449-B4AD-1EBF2A5269E4}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ProxyDataStorage IProxyDataStorage
Attributes
Attribute Notes Constraints and tags
storage IDictionary<string, Default: new Dictionary<string,
ProxyData> ProxyData>()
Private new
Dictionary<string,
ProxyData>()
Operations
Method Notes Parameters
GetAndRemove() string id
ProxyData [in]
Public
Model Specification Phase 01 Page: 74
SubscriberStorage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: InMemoryImpl Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {453BA323-07EF-4c42-84B7-687B786D7486}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination SubscriberStorage ISubscriberStorage
Attributes
Attribute Notes Constraints and tags
storage IList<string> Default: new List<string>()
Private Const new
List<string>()
Operations
Method Notes Parameters
GetAllSubscribers()
IEnumerable<string>
Public
Remove() void string subscriber
Public [in]
Saga
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:12. Last modified on 21/12/2008 09:37:12
GUID: {4A5BEC9E-7C65-46dd-B967-57EF8932F534}
Configure
- builderStatic: IBuilder
- configurer: IConfigureComponents
- finderTypeToMessageToMethodInfoLookup: IDictionary<Type, IDictionary<Type, MethodInfo>> = new Dictionary<... {readOnly}
- finderTypeToSagaEntityTypeLookup: IDictionary<Type, Type> = new Dictionary<... {readOnly}
- messageTypeToSagaTypesLookup: IDictionary<Type, List<Type>> = new Dictionary<... {readOnly}
- sagaEntityTypeToSagaTypeLookup: IDictionary<Type, Type> = new Dictionary<... {readOnly}
- sagaTypeToHandleMethodLookup: IDictionary<Type, IDictionary<Type, MethodInfo>> = new Dictionary<... {readOnly}
- sagaTypeToMessagTypesRequiringSagaStartLookup: IDictionary<Type, List<Type>> = new Dictionary<... {readOnly}
- sagaTypeToSagaEntityTypeLookup: IDictionary<Type, Type> = new Dictionary<... {readOnly}
- Configure()
- ConfigureFinder(Type) : void
T
«interface» «interface» «interface» «interface» IMessage - ConfigureSaga(Type) : void «interface» «interface» IMessageHandler
HasCompleted ITimeoutable IFinder ISagaPersister «interface» - CreateAdditionalFindersAsNecessary() : void Impl:: ISaga ISagaEntity «interface»
IFindSagas + GetFindByMethodForFinder(IFinder, IMessage) : MethodInfo
ISagaMessage GuidCombGenerator ISagaStartedBy
«property» + Timeout(object) : void + Complete(ISagaEntity) : void + GetFindersFor(IMessage) : IEnumerable<IFinder> «property» «property»
+ Completed() : bool + Get(Guid) : ISagaEntity + GetHandleMethodForSagaAndMessage(object, IMessage) : MethodInfo + Data() : T + Id() : Guid
«property» + Generate() : Guid
+ Save(ISagaEntity) : void - GetMessagesCorrespondingToFilterOnSaga(Type, Type) : IEnumerable<Type> + Originator() : string
+ SagaId() : Guid
+ Update(ISagaEntity) : void - GetMessageTypesHandledBySaga(Type) : IEnumerable<Type>
-persister-persister - GetMessageTypesThatRequireStartingTheSaga(Type) : IEnumerable<Type>
+ GetSagaEntityTypeForSagaType(Type) : Type
+ GetSagaTypeForSagaEntityType(Type) : Type
+ GetSagaTypesForMessageType(Type) : List<Type>
+ GetSagaTypeToStartIfMessageNotFoundByFinder(IMessage, IFinder) : Type
- IsCompatible(Type, Type) : bool
- IsFinderType(Type) : bool
+ IsMessageTypeHandledBySaga(Type) : bool
- IsSagaType(Type) : bool
- MapMessageTypeToSagaType(Type, Type) : void
- MapSagaTypeToSagaEntityType(Type, Type) : void
- MessageTypeRequiresStartingSaga(Type, Type) : void
+ SagasInAssemblies(Assembly[]) : void
+ With(IConfigureComponents, IBuilder) : Configure
Impl::SagaMessageHandler
Saga
- bus: IBus
- completed: bool
- data: T
# MarkAsComplete() : void
# ReplyToOriginator(IMessage[]) : void
# ReplyToOriginator(Action<K>) : void
# RequestTimeout(TimeSpan, object) : void
# RequestTimeout(DateTime, object) : void
+ Timeout(object) : void
«property»
+ Bus() : IBus
+ Completed() : bool
+ Data() : T
+ Entity() : ISagaEntity
Figure: 21
Configure
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {935F49B7-3584-4029-94D0-9AF368FE42FF}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 76
Connections
Connector Source Target Notes
Association Public Private builderStatic
Source -> Destination Configure IBuilder
Attributes
Attribute Notes Constraints and tags
builderStatic IBuilder Default:
Private Static
configurer Default:
IConfigureComponents
Private
Operations
Method Notes Parameters
Configure()
Private
Static ConfigureFinder() Type t
void [in]
Private
CreateAdditionalFinders
AsNecessary() void
Private
Static IFinder finder
GetFindByMethodForFin [in]
der() MethodInfo
Model Specification Phase 01 Page: 78
Static Returns the saga type configured for the given Type sagaEntityType
GetSagaTypeForSagaEnt entity type. [in]
ityType() Type
Public @returns
Static Finds the types of sagas that can handle the Type messageType
GetSagaTypesForMessag given concrete message type. [in] A concrete type for a message
eType() List<Type> object
Public @returns The list of saga types.
Type source
[in]
IBuilder builder
[in]
IFindSagas
Model Specification Phase 01 Page: 80
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {7FDAFC2F-583C-48a3-A58F-C16A2FF20FAF}
Custom Properties
isActive = False
Tagged Values
genericConstraints = where T : ISagaEntity.
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination EmptySagaFinder IFindSagas
Using
Type: Interface IFinder
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {5AE582B2-63C3-4329-92D5-2952D1549FA0}
Tagged Values
genericConstraints = where M : IMessage.
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination Using IFinder
Operations
Method Notes Parameters
FindBy() T M message
Model Specification Phase 01 Page: 81
Saga
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C7A3F17F-881E-41af-9CF8-B76293284A90}
This class is used to define sagas containing data and handling a message. To handle more message types,
implement <see cref="IMessageHandler{T}"/> for the relevant types. To signify that the receipt of a message
should start this saga, implement <see cref="ISagaStartedBy{T}"/> for the relevant message type.
Custom Properties
isActive = False
Tagged Values
genericConstraints = where T : ISagaEntity.
Connections
Connector Source Target Notes
Association Public Private bus
Source -> Destination Saga IBus
Attributes
Attribute Notes Constraints and tags
bus IBus Default:
Private
Model Specification Phase 01 Page: 82
data T Default:
Private
Operations
Method Notes Parameters
Bus() IBus
Public
Completed() bool
Public
Data() T
Public
Entity() ISagaEntity
Public
MarkAsComplete() void
Protected
ReplyToOriginator() void IMessage[] messages
Protected [in]
object withState
[in]
object withState
[in]
Timeout() void Notifies that the timeout it previously requested object state
Public occurred. [in] The object passed as the
Model Specification Phase 01 Page: 83
TimeoutMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {F755A404-151B-4e3b-AFD9-E241765FD5A1}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable];[Recoverable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination TimeoutMessage ISagaMessage
Attributes
Attribute Notes Constraints and tags
expires DateTime Default:
Private
Operations
Method Notes Parameters
ClearTimeout() bool When true, signals to the timeout manager that
Public all other <see cref="TimeoutMessage"/>
objects can be cleared for the given <see
Model Specification Phase 01 Page: 84
Expires() DateTime Gets/sets the date and time at which the timeout
Public message is due to expire.
TimeoutMessage()
Public
TimeoutMessage() DateTime expiration
Public [in]
ISagaEntity saga
[in]
object state
[in]
ISagaEntity saga
[in]
object state
[in]
TimeoutMessage() Signal to the timeout manager that all other ISagaEntity saga
Public <see cref="TimeoutMessage"/> objects can be [in]
cleared for the given <see cref="saga"/>.
bool clear
[in]
HasCompleted
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C24D2447-B139-4a08-8273-AEAA9AB5594B}
Model Specification Phase 01 Page: 85
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ISaga HasCompleted
Operations
Method Notes Parameters
Completed() bool
Public
IFinder
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {7AF2EBBE-2371-4c84-8C55-3CD20CCBF276}
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination Using IFinder
ISaga
Type: Interface ISaga
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {514132F5-5745-49e4-A6E3-90A27D6AD2EF}
Tagged Values
genericConstraints = where T : ISagaEntity.
Connections
Model Specification Phase 01 Page: 86
Operations
Method Notes Parameters
Data() T
Public
ISaga
Type: Interface ITimeoutable
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {F8240D0C-5558-45b4-98E5-15F90068644A}
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination ISaga ITimeoutable
Operations
Method Notes Parameters
Bus() IBus
Public
Entity() ISagaEntity
Public
ISagaEntity
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {27EE2AC6-D40E-4629-96F2-B5DEF63370B8}
Model Specification Phase 01 Page: 87
Connections
Connector Source Target Notes
Association Public Private sagaData
Source -> Destination Saga ISagaEntity
Operations
Method Notes Parameters
Id() Guid Gets/sets the Id of the process. Do NOT
Public generate this value in your code. The value of
the Id will be generated automatically to
provide the best performance for saving in a
database.
ISagaMessage
Type: Interface IMessage
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {3B17B254-BB51-4477-84DD-475EB2410EC3}
A marker interface that also defines the properties of a message involved in an NServiceBus workflow.
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination TimeoutMessage ISagaMessage
Operations
Model Specification Phase 01 Page: 88
ISagaPersister
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {472F85E7-826A-44c6-B825-F9F290405FD8}
Defines the basic functionality of a persister for storing and retrieving a saga.
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination SagaPersister ISagaPersister
Operations
Method Notes Parameters
Complete() void Sets a saga as completed and removes it from ISagaEntity saga
Public the active saga list in the persistence store. [in] The saga to complete.
Get() ISagaEntity Gets a saga entity from the persistence store by Guid sagaId
Public its Id. [in] The Id of the saga entity to get.
@returns
Save() void Saves the saga entity to the persistence store. ISagaEntity saga
Public [in] The saga entity to save.
ISagaStartedBy
Type: Interface IMessageHandler
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {AB0193FD-DD36-4247-A38F-4EDAB15DF135}
Use this interface to signify that when a message of the given type is received, if a saga cannot be found by an <see
cref="IFindSagas{T}"/> the saga will be created.
Tagged Values
genericConstraints = where T : IMessage.
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination ISagaStartedBy IMessageHandler
ITimeoutable
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C640BEF7-F932-445f-A784-3864E49A3BA7}
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination ISaga ITimeoutable
Operations
Method Notes Parameters
Timeout() void object state
Public [in]
Model Specification Phase 01 Page: 90
Impl
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Saga
Detail: Created on 21/12/2008 09:51:12. Last modified on 21/12/2008 09:51:12
GUID: {563A300F-7F14-4b7d-A47E-A9992181F7EF}
class Impl
T
SagaMessageHandler
GuidCombGenerator
IFindSagas
- builder: IBuilder
+ Generate() : Guid EmptySagaFinder
# logger: ILog = LogManager.GetL... {readOnly}
- persister: ISagaPersister
+ FindBy(IMessage) : T
# CallHandleMethodOnSaga(object, IMessage) : void
+ GenerateSagaId() : Guid
+ Handle(IMessage) : void
# HaveSagaHandleMessage(ISaga, IMessage, bool) : void IFindSagas
# LogIfSagaIsFinished(ISaga) : void SagaEntityFinder
+ NeedToHandle(IMessage) : bool
- persister: ISagaPersister
# NotifyTimeoutManagerThatSagaHasCompleted(ISaga) : void
- UseFinderToFindSaga(IFinder, IMessage) : ISagaEntity
+ FindBy(ISagaMessage) : ISagaEntity
«property»
«property»
+ Builder() : IBuilder
+ Persister() : ISagaPersister
+ Persister() : ISagaPersister
Figure: 22
EmptySagaFinder
Type: Class IFindSagas
Status: Proposed. Version 1.0. Phase 1.0.
Package: Impl Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A40827BC-6D3F-4088-B5B6-C76E7AD81159}
Generated for sagas that don't come with their own finder.
Custom Properties
isActive = False
Tagged Values
genericConstraints = where T : ISagaEntity.
Model Specification Phase 01 Page: 91
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination EmptySagaFinder IFindSagas
Operations
Method Notes Parameters
FindBy() T IMessage message
Public [in]
GuidCombGenerator
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Impl Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {DF232043-ED3B-4b75-A604-B54263714FEE}
@remark <p> The <c>comb</c> algorithm is designed to make the use of GUIDs as Primary Keys, Foreign Keys,
and Indexes nearly as efficient as ints.
</p>
<p> This code was modifed based on Donald Mull's contributor to the NHibernate source.
</p>
Custom Properties
isActive = False
Tagged Values
static = true.
Operations
Method Notes Parameters
Static Generate() Guid Generate a new <see cref="Guid"/> using the
Public comb algorithm.
SagaEntityFinder
Model Specification Phase 01 Page: 92
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private persister
Source -> Destination SagaEntityFinder ISagaPersister
Attributes
Attribute Notes Constraints and tags
persister ISagaPersister Default:
Private
Operations
Method Notes Parameters
FindBy() ISagaEntity ISagaMessage message
Public [in]
Persister() ISagaPersister
Public
SagaMessageHandler
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Impl Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {CCAE02AD-5A59-4058-898E-B7497A680AB3}
Model Specification Phase 01 Page: 93
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private builder
Source -> Destination SagaMessageHandler IBuilder
Attributes
Attribute Notes Constraints and tags
builder IBuilder Default:
Private
Operations
Method Notes Parameters
Builder() IBuilder Gets/sets an <see cref="IBuilder"/> that will be
Model Specification Phase 01 Page: 94
CallHandleMethodOnSa Invokes the handler method on the saga for the object saga
ga() void message. [in] The saga on which to call the
Protected handle method.
IMessage message
[in] The message to pass to the
handle method.
GenerateSagaId() Guid
Public
Handle() void Handles a message. IMessage message
Public [in] The message to handle.
@remark If the message received needs to start
a new saga, then a new saga instance will be
created and will be saved using the <see
cref="ISagaPersister"/> implementation
provided in the configuration. Any other
message implementing
<see cref="ISagaMessage"/> will cause the
existing saga instance with which it is
associated to continue.
bool sagaIsPersistent
[in]
SagaPersisters
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:26. Last modified on 21/12/2008 09:37:26
GUID: {55B6D08E-9D8A-4c67-B45B-B2F8B3737193}
NHibernate
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: SagaPersisters
Detail: Created on 21/12/2008 09:37:26. Last modified on 21/12/2008 09:37:26
GUID: {D32FD400-2B5E-4549-8C7D-C6EA81B2280B}
class NHibernate
SagaPersister NHibernateMessageModule
Figure: 23
NHibernateMessageModule
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Model Specification Phase 01 Page: 96
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination NHibernateMessageMo IMessageModule
dule
Attributes
Attribute Notes Constraints and tags
sessionFactory Default:
ISessionFactory
Private
Operations
Method Notes Parameters
HandleBeginMessage()
void
Public
HandleEndMessage()
void
Public
SessionFactory()
ISessionFactory
Public
SagaPersister
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: NHibernate Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9B025641-B3B9-4698-8EAE-4D831096488F}
Model Specification Phase 01 Page: 97
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination SagaPersister ISagaPersister
Attributes
Attribute Notes Constraints and tags
sessionFactory Default:
ISessionFactory
Private
Operations
Method Notes Parameters
Complete() void ISagaEntity saga
Public [in]
SessionFactory()
ISessionFactory
Public
Update() void ISagaEntity saga
Public [in]
Serialization
Type: Package
Model Specification Phase 01 Page: 98
class Serialization
«interface»
IMessageSerializer
+ Deserialize(Stream) : IMessage[]
+ Initialize(Type[]) : void
+ Serialize(IMessage[], Stream) : void
Figure: 24
IMessageSerializer
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Serialization Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9A0FAE63-5309-40f3-B43C-1BA182417333}
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MessageSerializer IMessageSerializer
Operations
Method Notes Parameters
Deserialize() IMessage Stream stream
Public [in]
Model Specification Phase 01 Page: 99
Stream stream
[in]
Serializers
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:28. Last modified on 21/12/2008 09:37:28
GUID: {289729DA-6F81-47b6-A9DE-5A26991DBA60}
Binary
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Serializers
Detail: Created on 21/12/2008 09:37:28. Last modified on 21/12/2008 09:37:28
GUID: {02ED98B2-251C-457b-8BB1-1EE0C3F9073B}
class Binary
MessageSerializer
+ Deserialize(Stream) : IMessage[]
+ Initialize(Type[]) : void
+ Serialize(IMessage[], Stream) : void
Model Specification Phase 01 Page: 100
Figure: 25
MessageSerializer
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Binary Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {5E2CDBD1-58A0-4d19-A9B9-2CCCF933DDE8}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MessageSerializer IMessageSerializer
Attributes
Attribute Notes Constraints and tags
binaryFormatter Default: new BinaryFormatter()
BinaryFormatter
Private Const new
BinaryFormatter()
Operations
Method Notes Parameters
Deserialize() IMessage Stream stream
Public [in]
Stream stream
[in]
Model Specification Phase 01 Page: 101
XML
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Serializers
Detail: Created on 21/12/2008 09:37:29. Last modified on 21/12/2008 09:37:29
GUID: {61EA04F1-0DF8-402c-BF8B-03C8004759D3}
class XML
IMessage
Risk MessageSerializer
«interface»
IM1 - defaultNameSpace: string
«property» - nameSpace: string = "http://tempuri.net"
+ Accuracy() : decimal
«property» - namespacesToPrefix: IDictionary<string, string>
+ Annum() : bool - prefixesToNamespaces: IDictionary<string, string>
+ Address() : string
+ Percent() : double - typesToCreateForArrays: Dictionary<Type, Type> = new Dictionary<... {readOnly}
+ Age() : float
+ Int() : int - typeToFields: Dictionary<Type, IEnumerable<FieldInfo>> = new Dictionary<... {readOnly}
+ Name() : string - typeToProperties: Dictionary<Type, IEnumerable<PropertyInfo>> = new Dictionary<... {readOnly}
+ Risk() : Risk - XMLPREFIX: string = "d1p1" {readOnly}
- XMLTYPE: string = XMLPREFIX + ":type" {readOnly}
+ Deserialize(Stream) : IMessage[]
- FormatAsString(object) : string
- GetAllFieldsForType(Type) : IEnumerable<FieldInfo>
- GetAllPropertiesForType(Type) : IEnumerable<PropertyInfo>
+ GetField(Type, string) : FieldInfo
- GetNamespaces(IMessage[], IMessageMapper) : List<string>
+ GetObjectOfTypeFromNode(Type, XmlNode) : object
+ GetProperty(Type, string) : PropertyInfo
+ GetPropertyValue(Type, XmlNode, object) : object
+ Initialize(Type[]) : void
+ InitType(Type) : void
- Process(XmlNode, object) : object
+ Serialize(IMessage[], Stream) : void
+ Write(StringBuilder, Type, object) : void
+ WriteEntry(string, Type, object, StringBuilder) : void
+ WriteObject(string, Type, object, StringBuilder) : void
«property»
+ AdditionalTypes() : List<Type>
+ MessageMapper() : IMessageMapper
+ Namespace() : string
Figure: 26
MessageSerializer
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XML Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0BC0292E-E759-4502-B0E9-6DE353E8D7BE}
Model Specification Phase 01 Page: 102
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MessageSerializer IMessageSerializer
Attributes
Attribute Notes Constraints and tags
defaultNameSpace string Default:
Private Static
[Attribute = [ThreadStatic] ]
Operations
Method Notes Parameters
AdditionalTypes()
List<Type>
Public
Deserialize() IMessage Stream stream
Public [in]
GetAllFieldsForType() Type t
IEnumerable<FieldInfo> [in]
Private
GetAllPropertiesForType Type t
() [in]
IEnumerable<PropertyInfo
>
Private
GetField() FieldInfo Type t
Public [in]
string name
[in]
GetObjectOfTypeFromN Type t
ode() object [in]
Public
XmlNode node
[in]
GetProperty() Type t
PropertyInfo [in]
Public
string name
[in]
object parent
[in]
MessageMapper()
IMessageMapper
Public
Namespace() string
Public
Process() object XmlNode node
Private [in]
object parent
[in]
Stream stream
[in]
Type t
[in]
object obj
[in]
Type type
[in]
object value
[in]
StringBuilder builder
[in]
Type type
[in]
object value
[in]
StringBuilder builder
[in]
Model Specification Phase 01 Page: 106
Risk
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XML Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {5FDC8792-E832-4d3b-851F-D1F168B7325B}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Operations
Method Notes Parameters
Accuracy() decimal
Public
Annum() bool
Public
Percent() double
Public
IM1
Type: Interface IMessage
Status: Proposed. Version 1.0. Phase 1.0.
Package: XML Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {6FACCA68-53BA-4c65-9D17-2B264EF13890}
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination IM2 IM1
Operations
Method Notes Parameters
Address() string
Public
Age() float
Public
Int() int
Public
Name() string
Public
Risk() Risk
Public
Test
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: XML
Detail: Created on 21/12/2008 09:37:29. Last modified on 21/12/2008 09:37:29
GUID: {25E4978F-F408-454f-92FF-DA6DEABBA39C}
class Test
IM1
Class1 «interface»
M1 IM2
- number: int = 1
- numberOfIterations: int = 100
«property» «enumeratio...
«property»
+ Duration() : TimeSpan SomeEnum
+ Address() : string - CreateM2() : M2
+ Id() : Guid
+ Age() : float - DataContractSerialize(XmlWriterSettings, DataContractSerializer, IMessage[], Stream) : void
+ MoreNames() : IM1[] A
+ Int() : int + Test() : void
+ Names() : List<IM1> B
+ Name() : string - TestDataContractSerializer() : void
+ Parent() : IM1
+ Risk() : Risk + TestInterfaces() : void
+ Some() : SomeEnum
+ TestSchemaValidation() : void
+ Start() : DateTime
- Time(IMessage[], IMessageSerializer) : void
+ State() : object
M2
«property»
+ Duration() : TimeSpan
+ Id() : Guid
+ Names() : List<M1>
+ Parent() : M1
+ Some() : SomeEnum
+ Start() : DateTime
Figure: 27
Model Specification Phase 01 Page: 108
Class1
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Test Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A30B315B-CE39-42d1-9D9A-28514F39CAF7}
Custom Properties
isActive = False
Attributes
Attribute Notes Constraints and tags
number int Default: 1
Private 1
Operations
Method Notes Parameters
CreateM2() M2
Private
DataContractSerialize() XmlWriterSettings xws
void [in]
Private
DataContractSerializer dcs
[in]
IMessage[] messages
[in]
Stream str
[in]
Model Specification Phase 01 Page: 109
IMessageSerializer serializer
[in]
M1
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Test Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {E7262F6B-E48B-44e8-959B-A8987885103C}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination M1 IM1
Operations
Method Notes Parameters
Address() string
Public
Model Specification Phase 01 Page: 110
M2
Type: Class M1
Status: Proposed. Version 1.0. Phase 1.0.
Package: Test Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {4380E9BB-A022-4bc0-80C1-68FA17C4CDC8}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination M2 M1
Operations
Method Notes Parameters
Duration() TimeSpan
Public
Id() Guid
Public
Names() List<M1>
Public
Parent() M1
Public
Some() SomeEnum
Public
Start() DateTime
Public
Model Specification Phase 01 Page: 111
SomeEnum
Type: Enumeration
Status: Proposed. Version 1.0. Phase 1.0.
Package: Test Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {3EBDC84D-6922-4a86-BDD0-81B56CAB2938}
Custom Properties
isActive = False
Attributes
Attribute Notes Constraints and tags
A Default:
Public
B Default:
Public
IM2
Type: Interface IM1
Status: Proposed. Version 1.0. Phase 1.0.
Package: Test Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0863D443-408A-4d0f-B3C4-804F1AD98A7C}
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination IM2 IM1
Model Specification Phase 01 Page: 112
Operations
Method Notes Parameters
Duration() TimeSpan
Public
Id() Guid
Public
MoreNames() IM1
Public
Names() List<IM1>
Public
Parent() IM1
Public
Some() SomeEnum
Public
Start() DateTime
Public
State() object
Public
XsdGenerator
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: XML
Detail: Created on 21/12/2008 09:37:30. Last modified on 21/12/2008 09:37:30
GUID: {F77B8AA9-4B81-4378-AF8E-2651B1EB40A5}
Element
- minOccurs: int = 1
- name: string
ComplexType - nameSpace: string
- nillable: bool Program Repository
- baseName: string - type: string
- elements: IList<Element> = new List<Element>() {readOnly} - unboundedMaxOccurs: bool - baseNameSpace: string = "http://tempuri.net" - simpleTypesToCreate: IList<Type> = new List<Type>() {readOnly}
- name: string Events - nameSpace: string - types: IDictionary<Type, ComplexType> = new Dictionary<... {readOnly}
- needToGenerateGuid: bool Reflect SimpleTypeWriter Strings
+ DoesNotNeedToOccur() : void
- ComplexType() - Element() + FoundGuid() : void + Handle(Type) : void + ArrayOf: string = "ArrayOf" {readOnly}
- CurrentDomain_UnhandledException(object, UnhandledExceptionEventArgs) : void + GetEnumeratedTypeFrom(Type) : Type + IsNormalizedList(Type) : bool + Write(Type) : string
- IsInList(PropertyInfo, ICollection<PropertyInfo>) : bool + MakeNillable() : void «event» + GuidXsd: string = "<?xml version=... {readOnly}
- GenerateXsdString() : string + GetTypeNameFrom(Type) : string - Normalize(Type) : Type
+ Scan(Type) : ComplexType + Scan(Type, string) : Element + GuidDetected() : EventHandler + NamespacePrefix: string = "q1" {readOnly}
+ UnboundMaxOccurs() : void - GetFileName() : string
«property» «property»
- Main(string[]) : void
+ BaseName() : string «property» + ComplexTypes() : IEnumerable<ComplexType>
+ Scan(Type) : void
+ Elements() : IEnumerable<Element> + MinOccurs() : int + SimpleTypes() : IEnumerable<Type>
+ TopLevelScan(Type) : void
+ Name() : string + Name() : string
+ NameSpace() : string
-complex
+ Nillable() : bool
+ Type() : string
+ UnboundedMaxOccurs() : bool
-
e
ComplexTypeWriter
ElementWriter
- beginBaseFormat: string = "<xs:complexCon... {readOnly}
- beginSequence: string = "<xs:sequence>" {readOnly} - e: Element {readOnly}
- beginTopFormat: string = "<xs:complexTyp... {readOnly} - nameFormat: string = "\" name=\"{0}\" " {readOnly}
- complex: ComplexType {readOnly} - namespaceFormat: string = "xmlns:" + Stri... {readOnly}
- endBaseFormat: string = "</xs:extension... {readOnly} - startFormat: string = "<xs:element mi... {readOnly}
- endSequence: string = "</xs:sequence>" {readOnly} - typeFormat: string = "type=\"{0}\" />\n" {readOnly}
- endTopFormat: string = "</xs:complexTy... {readOnly}
- ElementWriter(Element)
- ComplexTypeWriter(ComplexType) + Write(Element) : string
+ Write(ComplexType) : string + Write() : string
+ Write() : string
Figure: 28
ComplexType
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {17F7FF12-57F4-4431-92CF-CB3C81D2BE24}
Model Specification Phase 01 Page: 113
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private complex
Source -> Destination ComplexTypeWriter ComplexType
Attributes
Attribute Notes Constraints and tags
baseName string Default:
Private
Operations
Method Notes Parameters
BaseName() string
Public
ComplexType()
Private
Elements()
IEnumerable<Element>
Public
Static IsInList() bool PropertyInfo prop
Model Specification Phase 01 Page: 114
ICollection<PropertyInfo>
propsToIgnore
[in]
Name() string
Public
Static Scan() Type type
ComplexType [in]
Public
ComplexTypeWriter
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {F3715A06-9FE1-4dbd-971F-51D9EF7E6D73}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private complex
Source -> Destination ComplexTypeWriter ComplexType
Attributes
Attribute Notes Constraints and tags
beginBaseFormat string Default: "<xs:complexContent
Private Const mixed=\"false\">\n<xs:extension
"<xs:complexContent base=\"{0}\">\n"
mixed=\"false\">\n<xs:exte
nsion base=\"{0}\">\n"
Model Specification Phase 01 Page: 115
Operations
Method Notes Parameters
ComplexTypeWriter() ComplexType complex
Model Specification Phase 01 Page: 116
Write() string
Public
Element
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {7D3883E5-4005-4b7e-AD8B-AABCD39ED931}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private e
Source -> Destination ElementWriter Element
Attributes
Attribute Notes Constraints and tags
minOccurs int Default: 1
Private 1
unboundedMaxOccurs Default:
bool
Private
Operations
Method Notes Parameters
DoesNotNeedToOccur()
void
Public
Element()
Private
MakeNillable() void
Public
MinOccurs() int
Public
Name() string
Public
NameSpace() string
Public
Nillable() bool
Public
Static Scan() Element Type t
Public [in]
Model Specification Phase 01 Page: 118
string name
[in]
Type() string
Public
UnboundedMaxOccurs()
bool
Public
UnboundMaxOccurs()
void
Public
ElementWriter
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C5D8534C-B66E-447f-8A76-E495919D78A9}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private e
Source -> Destination ElementWriter Element
Attributes
Attribute Notes Constraints and tags
e Element Default:
Private Const
Model Specification Phase 01 Page: 119
Operations
Method Notes Parameters
ElementWriter() Element e
Private [in]
Write() string
Public
Events
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Model Specification Phase 01 Page: 120
Custom Properties
isActive = False
Tagged Values
static = true.
Operations
Method Notes Parameters
Static FoundGuid() void
Public
Static GuidDetected()
EventHandler
Public
Program
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {720A9561-48BA-4427-B9DC-5289DC37FA86}
Custom Properties
isActive = False
Attributes
Attribute Notes Constraints and tags
baseNameSpace string Default: "http://tempuri.net"
Private Static
"http://tempuri.net"
Model Specification Phase 01 Page: 121
needToGenerateGuid Default:
bool
Private Static
Operations
Method Notes Parameters
Static object sender
CurrentDomain_Unhand [in]
ledException() void
Private UnhandledExceptionEventArgs e
[in]
Static
GenerateXsdString()
string
Private
Static GetFileName()
string
Private
Static Main() void string[] args
Private [in]
Reflect
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Model Specification Phase 01 Page: 122
Custom Properties
isActive = False
Tagged Values
static = true.
Operations
Method Notes Parameters
Static Type t
GetEnumeratedTypeFro [in]
m() Type
Public
Static Type t
GetTypeNameFrom() [in]
string
Public
Repository
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {0139A4AF-3B9F-4796-9AB2-A017CCD5E47A}
Custom Properties
isActive = False
Tagged Values
static = true.
Attributes
Attribute Notes Constraints and tags
Model Specification Phase 01 Page: 123
Operations
Method Notes Parameters
Static ComplexTypes() Returns types in the order they were handled
IEnumerable<ComplexTyp
e>
Public
Static Handle() void Type type
Public [in]
Static SimpleTypes()
IEnumerable<Type>
Public
SimpleTypeWriter
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {1066F5E4-8480-4efb-B5B2-F351A6C171F9}
Custom Properties
Model Specification Phase 01 Page: 124
Custom Properties
isActive = False
Operations
Method Notes Parameters
Static Write() string Type t
Public [in]
Strings
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: XsdGenerator Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {09DD34BA-DBEC-457a-8624-A76B4F27CDAD}
Custom Properties
isActive = False
Tagged Values
static = true.
Attributes
Attribute Notes Constraints and tags
ArrayOf string Default: "ArrayOf"
Public Static Const
"ArrayOf"
"\t\t\t<xs:pattern "\t\t</xs:restriction>\n" +
value=\"[0-9a-fA-F]{8}-[0-
9a-fA-F]{4}-[0-9a-fA-F]{4 "\t</xs:simpleType>\n" +
}-[0-9a-fA-F]{4}-[0-9a-fA
-F]{12}\" />\n" + "</xs:schema>\n"
"\t\t</xs:restriction>\n" +
"\t</xs:simpleType>\n" +
"</xs:schema>\n"
NamespacePrefix string Default: "q1"
Public Static Const
"q1"
Testing
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:43. Last modified on 21/12/2008 09:37:43
GUID: {7F5D42E2-49E6-4751-AD5D-FACA702F682E}
class Testing
Saga
+ CreateInstance() : T
+ CreateInstance(Action<T>) : T
- ExpectCallToPublish(BusPublishDelegate<T>) : void
- ExpectCallToReply(BusSendDelegate) : void
- ExpectCallToReturn(ReturnPredicate) : void
- ExpectCallToSend(BusSendDelegate) : void
- ExpectCallToSend(BusSendWithDestinationDelegate) : void
- ExpectCallToSendLocal(BusSendDelegate) : void
+ ExpectPublish(PublishPredicate<T>) : Saga
+ ExpectReply(SendPredicate<T>) : Saga
+ ExpectReturn(ReturnPredicate) : Saga
+ ExpectSend(SendPredicate<T>) : Saga
+ ExpectSendLocal(SendPredicate<T>) : Saga
+ ExpectSendToDestination(SendToDestinationPredicate<T>) : Saga
+ PrepareBusGenericMethods() : void
- Saga(MockRepository, IBus, ISagaEntity, IMessageCreator, List<Type>)
+ SetIncomingHeaders(IDictionary<string, string>) : Saga
+ Test(T*) : Saga
+ When(HandleMessageDelegate) : void
+ WhenReceivesMessageFrom(string) : Saga
«property»
+ OutgoingHeaders() : IDictionary<string, string>
Figure: 29
Saga
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Testing Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {24F11527-CCC2-4e59-8361-62D0252B37BB}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 127
Connections
Connector Source Target Notes
Association Public Private bus
Source -> Destination Saga IBus
Attributes
Attribute Notes Constraints and tags
bus IBus Default:
Private Const
messageCreator Default:
IMessageCreator
Private Const
Operations
Method Notes Parameters
CreateInstance() T
Public
CreateInstance() T Action<T> action
Public [in]
ExpectSendToDestinatio SendToDestinationPredicate<T>
n() Saga check
Public [in]
OutgoingHeaders()
IDictionary<string, string>
Public
PrepareBusGenericMeth
ods() void
Public
Saga() MockRepository mocks
Model Specification Phase 01 Page: 130
IBus b
[in]
ISagaEntity sagaData
[in]
IMessageCreator messageCreator
[in]
List<Type> types
[in]
Tools
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:45. Last modified on 21/12/2008 09:37:45
GUID: {C702677E-31F1-47b3-A5F9-34B1F91E6B95}
Management
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Tools
Detail: Created on 21/12/2008 09:37:45. Last modified on 21/12/2008 09:37:45
GUID: {111FC81D-D9D3-4b8a-B01D-FB8A9B5775E3}
Model Specification Phase 01 Page: 131
Errors
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Management
Detail: Created on 21/12/2008 09:37:45. Last modified on 21/12/2008 09:37:45
GUID: {70EF948F-01C9-4cb2-A568-9056C68CBC25}
ReturnToSourceQueue
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Errors
Detail: Created on 21/12/2008 09:37:45. Last modified on 21/12/2008 09:37:45
GUID: {610C5662-47EF-4802-BD77-8F1DA53A3D54}
class ReturnToSourceQueue
Class1
- queue: MessageQueue
+ ReturnAll() : void
+ ReturnMessageToSourceQueue(string) : void
«property»
+ InputQueue() : string
Figure: 30
Class1
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: ReturnToSourceQueue Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {2AB8E3FB-1ABC-4628-BEF7-6D495CE67617}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 132
Attributes
Attribute Notes Constraints and tags
queue MessageQueue Default:
Private
Operations
Method Notes Parameters
InputQueue() string
Public
ReturnAll() void
Public
ReturnMessageToSource May throw a timeout exception if a message string messageId
Queue() void with the given id cannot be found. [in]
Public
Unicast
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:17. Last modified on 21/12/2008 09:37:17
GUID: {624B809B-3A87-4f0f-860E-A213B9B9DFE5}
class Unicast
IDictionary
HeaderAdapter
UnicastBus
+ AddMessageType(Type) : void
+ AddTypesFromAssembly(Assembly) : void
# AssertBusIsStarted() : void
- ConfigureMessageOwners(IDictionary) : void
+ ContinueSendingReadyMessages() : void
+ CreateInstance() : T
+ CreateInstance(Action<T>) : T
+ CreateInstance(Type) : object
- DispatchMessageToHandlersBasedOnType(IMessage, Type) : void
+ Dispose() : void
+ DoNotContinueDispatchingCurrentMessageToHandlers() : void
- ForwardMessageIfNecessary(TransportMessage) : void
- GetAction(T) : Action<object>
# GetDestinationForMessageType(Type) : string
- GetHandlerTypes(Type) : IEnumerable<Type>
EventArgs - GetInnermostException(Exception) : Exception
BusAsyncResultEv entArgs - GetMessageTypesIfIsMessageHandler(Type) : IEnumerable<Type>
- GetReturnAddressFor(string) : string
- messageId: string {readOnly} # GetTransportMessageFor(string, IMessage[]) : TransportMessage
- result: BusAsyncResult {readOnly} - HandleCorellatedMessage(TransportMessage) : void
+ HandleCurrentMessageLater() : void
+ BusAsyncResultEventArgs(BusAsyncResult, string) + HandleMessage(TransportMessage) : void
- If_Type_Is_MessageHandler_Then_Load(Type) : void
«property»
- InitializeSelf() : void
+ MessageId() : string
- IsInitializationMessage(TransportMessage) : bool
+ Result() : BusAsyncResult
+ MessageReceivedDelegate(TransportMessage) : void
- MustNotOverrideExistingConfiguration(Type, bool) : bool
+ Publish(Action<T>) : void
+ Publish(T[]) : void
+ RegisterMessageType(Type, string, bool) : void
+ Reply(IMessage[]) : void
+ Reply(Action<T>) : void
+ Return(int) : void
+ Send(Action<T>) : ICallback
+ Send(IMessage[]) : ICallback
+ Send(string, Action<T>) : ICallback
+ Send(string, IMessage[]) : ICallback
+ SendLocal(Action<T>) : void
+ SendLocal(IMessage[]) : void
- SendReadyMessage(bool) : void
+ SkipSendingReadyMessageOnce() : void
+ Start(Action<IBuilder>[]) : IBus
+ StopSendingReadyMessages() : void
+ Subscribe() : void
+ Subscribe(Type) : void
+ Subscribe(Predicate<T>) : void
+ Subscribe(Type, Predicate<IMessage>) : void
- transport_FinishedMessageProcessing(object, EventArgs) : void
- transport_StartedMessageProcessing(object, EventArgs) : void
- transport_TransportMessageReceived(object, TransportMessageReceivedEventArgs) : void
+ Unsubscribe() : void
+ Unsubscribe(Type) : void
«property»
+ AutoSubscribe() : bool
+ Builder() : IBuilder
+ DisableMessageHandling() : bool
+ DistributorControlAddress() : string
+ DistributorDataAddress() : string
+ ForwardReceivedMessagesTo() : string
+ ImpersonateSender() : bool
+ IncomingHeaders() : IDictionary<string, string>
+ MessageHandlerAssemblies() : IList
+ MessageMapper() : IMessageMapper
+ MessageOwners() : IDictionary
+ OutgoingHeaders() : IDictionary<string, string>
+ PropogateReturnAddressOnSend() : bool
+ SourceOfMessageBeingHandled() : string
+ SubscriptionStorage() : ISubscriptionStorage
+ Transport() : ITransport
«event»
+ MessageReceived() : MessageReceivedDelegate
Figure: 31
BusAsyncResult
Type: Class IAsyncResult
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C972BCFD-3CE0-42d2-BE9F-721113E6C276}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 134
Connections
Connector Source Target Notes
Association Public Private result
Source -> Destination BusAsyncResult CompletionResult
Attributes
Attribute Notes Constraints and tags
callback AsyncCallback Default:
Private Const
Operations
Method Notes Parameters
AsyncState() object
Public
AsyncWaitHandle()
WaitHandle
Public
Model Specification Phase 01 Page: 135
object state
[in]
IMessage[] messages
[in]
CompletedSynchronously
() bool
Public
IsCompleted() bool
Public
BusAsyncResultEventArgs
Type: Class EventArgs
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9BCDADE6-06FF-492f-A38B-70F377AF0EE8}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private result
Source -> Destination BusAsyncResultEventA BusAsyncResult
rgs
Attributes
Attribute Notes Constraints and tags
Model Specification Phase 01 Page: 136
Operations
Method Notes Parameters
BusAsyncResultEventAr BusAsyncResult result
gs() [in]
Public
string messageId
[in]
MessageId() string
Public
Result() BusAsyncResult
Public
Callback
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C4F7DC28-048A-45bd-8A97-DDD0EC309031}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination Callback ICallback
Model Specification Phase 01 Page: 137
Attributes
Attribute Notes Constraints and tags
messageId string Default:
Private Const
Operations
Method Notes Parameters
Callback() string messageId
Public [in]
MessageId() string
Public
Register() IAsyncResult AsyncCallback callback
Public [in]
object state
[in]
Registered()
EventHandler<BusAsyncR
esultEventArgs>
Public
HeaderAdapter
Type: Class IDictionary
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {546A20F0-6349-4943-8367-5C649B9EBE84}
Custom Properties
isActive = False
Model Specification Phase 01 Page: 138
Attributes
Attribute Notes Constraints and tags
headers List<HeaderInfo> Default: new List<HeaderInfo>()
Private Const new
List<HeaderInfo>()
Operations
Method Notes Parameters
Add() void string key
Public [in]
string value
[in]
Clear() void
Public
Contains() bool KeyValuePair<string, string>
Public item
[in]
int arrayIndex
[in]
Count() int
Public
Static From() IDictionary<string, string> source
List<HeaderInfo> [in]
Public
GetEnumerator()
Model Specification Phase 01 Page: 139
IsReadOnly() bool
Public
Keys() ICollection<string>
Public
Remove() bool string key
Public [in]
string value
[out]
Values()
ICollection<string>
Public
SubscriptionsManager
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {B90A7CEC-9D87-4913-B9AB-E132428553B1}
Manages subscriptions and predicates for messages published by other endpoints and subscribed to by the local bus.
Custom Properties
Model Specification Phase 01 Page: 140
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Protected
Source -> Destination UnicastBus subscriptionsManager
SubscriptionsManager
Attributes
Attribute Notes Constraints and tags
locker object Default: new object()
Private Const new
object()
Operations
Method Notes Parameters
AddConditionForSubscri Adds a condition to a message type. Type messageType
ptionToMessageType() [in] The message type to add a
void @remark All conditions added to a message condition to.
Public type must be met if the messages of that type
are to be published to a subscriber. Predicate<IMessage> condition
[in] The condition to add.
UnicastBus
Model Specification Phase 01 Page: 141
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {60CCDB2B-0E29-4603-8CA1-D6F069162A64}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private messageMapper
Source -> Destination UnicastBus IMessageMapper
Attributes
Model Specification Phase 01 Page: 142
distributorControlAddre Default:
ss string
Private
distributorDataAddress Default:
string
Private
Model Specification Phase 01 Page: 143
forwardReceivedMessage Default:
sTo string
Private
messageMapper Default:
IMessageMapper
Private
outgoingHeaders Default:
IDictionary<string, string>
Private Static [Attribute = [ThreadStatic] ]
Model Specification Phase 01 Page: 145
subscriptionStorage Default:
ISubscriptionStorage
Protected
Operations
Method Notes Parameters
AddMessageType() void Should be used by programmer, not Type messageType
Public administrator. [in]
AssertBusIsStarted() void
Protected
AutoSubscribe() bool When set, when starting up, the bus performs a
Model Specification Phase 01 Page: 147
ContinueSendingReadyM
essages() void
Public
CreateInstance() T Creates an instance of the specified type. Used
Public primarily for instantiating interface-based
messages.
@returns
CreateInstance() object Creates an instance of the specified type. Used Type messageType
Public primarily for instantiating interface-based [in] The type to instantiate.
messages.
DispatchMessageToHand Finds the message handlers associated with the IMessage toHandle
lersBasedOnType() void message type and dispatches the message to the [in] The message to dispatch to the
Private found handlers. handlers.
Dispose() void
Model Specification Phase 01 Page: 148
GetAction() T message
Action<object> [in]
Private
GetDestinationForMessa Gets the destination address for a message type. Type messageType
geType() string [in] The message type to get the
Protected @returns The address of the destination destination for.
associated with the message type.
GetMessageTypesIfIsMes If the type is a message handler, returns all the Type type
sageHandler() message types that it handles [in]
IEnumerable<Type>
Private @returns
IncomingHeaders()
IDictionary<string, string>
Public
InitializeSelf() void
Private
IsInitializationMessage() Checks whether a received message is an TransportMessage msg
bool initialization message. [in] The message to check.
Private
@returns true if the message is an initialization
message, otherwise false.
@remark A <see cref="CompletionMessage"/>
Model Specification Phase 01 Page: 150
OutgoingHeaders()
IDictionary<string, string>
Public
PropogateReturnAddress Should be used by programmer, not
OnSend() bool administrator. Sets whether or not the return
Public address of a received message should be
propogated when the message is forwarded.
This field is used primarily for the Distributor.
Reply() void Sends all messages to the destination found in IMessage[] messages
Public <see [in] The messages to send.
cref="SourceOfMessageBeingHandled"/>.
Send() ICallback Sends the list of provided messages and calls IMessage[] messages
Public the provided <see cref="AsyncCallback"/> [in] The list of messages to send.
delegate when the message is completed.
Action<T> messageConstructor
[in]
Send() ICallback Sends the list of provided messages and calls string destination
Public the provided <see cref="AsyncCallback"/> [in] The address of the destination
delegate when the message is completed. to send the messages to.
IMessage[] messages
Model Specification Phase 01 Page: 152
SendLocal() void Sends the list of messages back to the current IMessage[] messages
Public bus. [in] The messages to send.
SkipSendingReadyMessa
geOnce() void
Public
SourceOfMessageBeingH Gets the address from which the message being
andled() string handled was sent.
Public
Start() IBus Starts the bus. Action<IBuilder>[] startupActions
Public [in]
StopSendingReadyMessa
ges() void
Public
Subscribe() void
Public
Subscribe() void Subcribes to recieve published messages of the Type messageType
Public specified type. [in] The type of message to
subscribe to.
Predicate<IMessage> condition
[in] The condition under which to
receive the message.
Unsubscribe() void
Public
Unsubscribe() void Unsubscribes from receiving published Type messageType
Public messages of the specified type. [in]
IUnicastBus
Type: Interface IBus
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {64B6ED89-3BFD-4430-8C9C-3D621C86FB1A}
Connections
Connector Source Target Notes
Association Public Private unicastBus
Source -> Destination ChangeNumberOfWork IUnicastBus
Model Specification Phase 01 Page: 154
Operations
Method Notes Parameters
ContinueSendingReadyM Instructs the bus to continue sending <see
essages() void cref="ReadyMessage"/>s when it has a
Public distributor configured.
Config
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast
Detail: Created on 21/12/2008 09:37:51. Last modified on 21/12/2008 09:37:51
GUID: {42077161-AD9D-49c5-A90C-EF63806781C2}
class Config
Configure
ConfigUnicastBus
- bus: UnicastBus
+ ConfigUnicastBus()
+ Configure(Configure) : void
- ConfigureSagasAndMessageHandlersIn(Assembly[]) : void
+ DoNotAutoSubscribe() : ConfigUnicastBus
+ ForwardReceivedMessagesTo(string) : ConfigUnicastBus
+ GetMessageTypeFromMessageHandler(Type) : Type
+ ImpersonateSender(bool) : ConfigUnicastBus
+ IsMessageHandler(Type) : bool
+ PropogateReturnAddressOnSend(bool) : ConfigUnicastBus
+ SetMessageHandlersFromAssembliesInOrder(Assembly[]) : ConfigUnicastBus
Figure: 32
ConfigUnicastBus
Type: Class Configure
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {D7E05EA5-1361-4e80-9E0B-9780302C52AC}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private bus
Source -> Destination ConfigUnicastBus UnicastBus
Attributes
Attribute Notes Constraints and tags
Model Specification Phase 01 Page: 156
Operations
Method Notes Parameters
ConfigUnicastBus()
Public
Configure() void Configure config
Public [in]
DoNotAutoSubscribe()
ConfigUnicastBus
Public
ForwardReceivedMessag string value
esTo() ConfigUnicastBus [in]
Public
Static Type t
GetMessageTypeFromM [in]
essageHandler() Type
Public
ImpersonateSender() bool value
ConfigUnicastBus [in]
Public
Static Type t
IsMessageHandler() bool [in]
Public
Distributor
Model Specification Phase 01 Page: 157
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast
Detail: Created on 21/12/2008 09:37:17. Last modified on 21/12/2008 09:37:17
GUID: {D9007915-DDFE-43dd-B333-EC105A25776F}
class Distributor
«interface»
IWorkerAvailabilityManager
+ ClearAvailabilityForWorker(string) : void
+ PopAvailableWorker() : string
+ WorkerAvailable(string) : void
-workerManager -workerManager
Distributor
- controlBus: IStartableBus
- disabled: bool
- logger: ILog = LogManager.GetL... {readOnly}
ReadyMessageHandler
- messageBusTransport: ITransport
- millisToWaitIfCannotDispatchToWorker: int = 50 - logger: ILog = LogManager.GetL... {readOnly}
- workerManager: IWorkerAvailabilityManager - workerManager: IWorkerAvailabilityManager
Figure: 33
Distributor
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Distributor Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {10D14B77-C2BF-4d45-B98E-F075C9AB8DA5}
Provides functionality for distributing messages from a bus to multiple workers when using a unicast transport.
Custom Properties
isActive = False
Connections
Model Specification Phase 01 Page: 158
Attributes
Attribute Notes Constraints and tags
controlBus IStartableBus Default:
Private
messageBusTransport Default:
ITransport
Private
Model Specification Phase 01 Page: 159
workerManager Default:
IWorkerAvailabilityManag
er
Private
Operations
Method Notes Parameters
ControlBus() Sets the <see cref="IBus"/> implementation
IStartableBus that will be used for transporting control
Public information.
MillisToWaitIfCannotDis
patchToWorker() int
Public
Rollback() void
Private
Start() void Starts the Distributor.
Public
Stop() void Stops the Distributor.
Public
WorkerManager() Sets the <see
IWorkerAvailabilityManag cref="IWorkerAvailabilityManager"/>
er implementation that will be used to determine
Public whether or not a worker is available.
ReadyMessageHandler
Model Specification Phase 01 Page: 160
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Distributor Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9F9A0E79-3293-4355-8A22-EDE1241D53AB}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination ReadyMessageHandler IMessageHandler
Attributes
Attribute Notes Constraints and tags
logger ILog Default:
Private Static Const LogManager.GetLogger(typeof(Rea
LogManager.GetLogger(ty dyMessageHandler))
peof(ReadyMessageHandle
r))
workerManager Default:
IWorkerAvailabilityManag
er
Private
Operations
Method Notes Parameters
Bus() IBus
Public
Handle() void ReadyMessage message
Public [in]
WorkerManager()
Model Specification Phase 01 Page: 161
IWorkerAvailabilityManager
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Distributor Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {78626693-78FA-44f2-B2B2-DBA74A6BDCEA}
Defines a manager class that determines the availability of a worker for the <see cref="Distributor"/>.
Connections
Connector Source Target Notes
Association Public Private workerManager
Source -> Destination Distributor IWorkerAvailabilityMa
nager
Operations
Method Notes Parameters
ClearAvailabilityForWor Removes all entries from the worker string address
ker() void availability list with the specified address. [in] The address of the worker to
Public remove from the availability list.
Runner
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Distributor
Detail: Created on 21/12/2008 09:37:18. Last modified on 21/12/2008 09:37:18
GUID: {17A81183-2BFB-45c3-997D-905BC1284773}
class Runner
Program Initalizer
Figure: 34
Initalizer
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Runner Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {6A1109E8-CADD-4f0b-AC7A-F5F0AA0097F2}
Custom Properties
isActive = False
Tagged Values
static = true.
Operations
Method Notes Parameters
Static Init() void Assumes that an <see Func<Configure, Configure>
Public cref="IMessageSerializer"/> was already setupSerialization
configured in the given builder. [in]
Model Specification Phase 01 Page: 163
@param ="builder"
@returns
Program
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Runner Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {014CF452-D562-4cc4-847E-2C9B5609D8A9}
Custom Properties
isActive = False
Operations
Method Notes Parameters
Static Main() void
Private
Subscriptions
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast
Detail: Created on 21/12/2008 09:37:35. Last modified on 21/12/2008 09:37:35
GUID: {68622DD0-1D89-41d0-A70D-EFD0857F3549}
class Subscriptions
«interface»
ISubscriptionStorage
+ GetSubscribersForMessage(Type) : IList<string>
+ HandleSubscriptionMessage(TransportMessage) : void
+ Init(IList<Type>) : void
Figure: 35
ISubscriptionStorage
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: Subscriptions Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {91704F42-5915-4aed-A415-A3D9B0D60748}
Connections
Connector Source Target Notes
Association Public Protected
Source -> Destination UnicastBus subscriptionStorage
ISubscriptionStorage
Operations
Method Notes Parameters
GetSubscribersForMessa Returns a list of addresses of subscribers that Type messageType
ge() IList<string> previously requested to be notified of messages [in] The logical message type that
Public of the same type as <see the bus wishes to publish.
cref="messageType"/>.
Init() void Notifies the subscription storage that now is the IList<Type> messageTypes
Public time to perform any initialization work [in] The logical message types that
the bus will be publishing.
DB
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Subscriptions
Detail: Created on 21/12/2008 09:37:35. Last modified on 21/12/2008 09:37:35
GUID: {B7816044-9507-446b-8461-AEB0831BE030}
DB - (Logical diagram)
Created By: on 21/12/2008
Last Modified: 21/12/2008
Version: 1.0. False
GUID: {4D850E45-5662-4c88-8FDE-3DB3D06A0DE1}
class DB
SubscriptionStorage
Figure: 36
SubscriptionStorage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: DB Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {6DFAF410-73F1-4a86-BD77-77BB5B8E125F}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private storage
Source -> Destination ConfigDbSubscriptionS SubscriptionStorage
torage
Attributes
Attribute Notes Constraints and tags
compatibleTypes Default: new Dictionary<Type,
IDictionary<Type, IList<Type>>()
IList<Type>>
Private new
Dictionary<Type,
IList<Type>>()
isolationLevel Default:
IsolationLevel IsolationLevel.ReadCommitted
Private
IsolationLevel.ReadCommi
tted
messageTypeParameterN Default:
ame string
Private
subscriberParameterNa Default:
me string
Private
Operations
Method Notes Parameters
ConnectionString() string
Public
Execute() void DbTransaction tx
Private [in]
string sql
[in]
string subscriber
Model Specification Phase 01 Page: 168
string messageType
[in]
GetConnection()
DbConnection
Private
GetSubscribersForMessa Type messageType
ge() IList<string> [in]
Public
IsolationLevel()
IsolationLevel
Public
MessageTypeParameterN
ame() string
Public
ProviderInvariantName()
string
Public
RegisterMapping() void Type specific
Private [in]
Type generic
[in]
SubscriberParameterNa
me() string
Public
Table() string
Public
Config
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: DB
Model Specification Phase 01 Page: 169
class Config
Configure
ConfigDbSubscriptionStorage
- storage: SubscriptionStorage
+ ConfigDbSubscriptionStorage()
+ Configure(Configure) : void
+ IsolationLevel(IsolationLevel) : ConfigDbSubscriptionStorage
+ MessageTypeParameterName(string) : ConfigDbSubscriptionStorage
+ SubscriberEndpointParameterName(string) : ConfigDbSubscriptionStorage
+ Table(string) : ConfigDbSubscriptionStorage
Figure: 37
ConfigDbSubscriptionStorage
Type: Class Configure
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {D7A6F774-37B1-4a93-BE37-D93B60FD22A7}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private storage
Source -> Destination ConfigDbSubscriptionS SubscriptionStorage
torage
Attributes
Attribute Notes Constraints and tags
storage Default:
SubscriptionStorage
Private
Operations
Method Notes Parameters
ConfigDbSubscriptionSto
rage()
Public
Configure() void Configure config
Public [in]
Msmq
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Subscriptions
Detail: Created on 21/12/2008 09:37:37. Last modified on 21/12/2008 09:37:37
GUID: {F8D9640A-43F7-4bcc-BE9F-004BE91D746D}
class Msmq
MsmqSubscriptionStorage Entry
Figure: 38
Entry
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Msmq Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {896C73A2-019D-42a5-AEE3-137C80901090}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Attributes
Attribute Notes Constraints and tags
Model Specification Phase 01 Page: 172
Operations
Method Notes Parameters
Entry() Type messageType
Public [in]
TransportMessage msg
[in]
string subscriber
[in]
Entry()
Public
Matches() bool object message
Public [in]
MsmqSubscriptionStorage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Msmq Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C3F1D21C-ACA2-4df4-9796-3750B2363917}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination MsmqSubscriptionStora ISubscriptionStorage
ge
Attributes
Attribute Notes Constraints and tags
dontUseExternalTransact Default:
ion bool
Private
lookup Dictionary<string, lookup from subscriber, to message type, to Default: new Dictionary<string,
Dictionary<string, string>> message id Dictionary<string, string>>()
Private new
Dictionary<string,
Dictionary<string,
string>>()
q MessageQueue Default:
Private
Operations
Method Notes Parameters
Add() void Adds a message to the subscription store. string subscriber
Public [in]
string typeName
[in]
AddToLookup() void Adds a message to the lookup to find message string subscriber
Private from subscriber, to message type, to message id [in]
string typeName
[in]
string messageId
[in]
Model Specification Phase 01 Page: 175
GetTransactionType()
MessageQueueTransaction
Type
Private
HandleAddSubscription() Checks the subscription type, and if it is 'Add', TransportMessage msg
void then adds the subscriber. [in] The message to handle.
Private
Type messageType
[in] The message type being
subscribed to.
SubscriptionMessage subMessage
[in] A subscription message.
bool updateQueue
[in] Whether or not to update the
subscription persistence store.
SubscriptionMessage subMessage
[in] A subscription message.
bool updateQueue
[in] Whether or not to update the
subscription persistence store.
string typeName
[in]
Config
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Msmq
Detail: Created on 21/12/2008 09:37:37. Last modified on 21/12/2008 09:37:37
GUID: {B818F386-EB39-4967-975D-773337F9CE36}
class Config
Configure
ConfigMsmqSubscriptionStorage
+ ConfigMsmqSubscriptionStorage()
+ Configure(Configure) : void
Figure: 39
ConfigMsmqSubscriptionStorage
Type: Class Configure
Status: Proposed. Version 1.0. Phase 1.0.
Model Specification Phase 01 Page: 177
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Generalization Public Public
Source -> Destination ConfigMsmqSubscripti Configure
onStorage
Operations
Method Notes Parameters
ConfigMsmqSubscription
Storage()
Public
Configure() void Configure config
Public [in]
Transport
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Unicast
Detail: Created on 21/12/2008 09:37:33. Last modified on 21/12/2008 09:37:33
GUID: {94EC1B9E-1694-4efa-9E4E-84A34EFC4D64}
class Transport
TransportMessage
IDisposable
- body: IMessage ([]) «interface»
- bodyStream: Stream ITransport
- messages: List<object>
+ AbortHandlingCurrentMessage() : void
- timeToBeReceived: TimeSpan = TimeSpan.MaxValue
+ ChangeNumberOfWorkerThreads(int) : void
SubscriptionMessage
HeaderInfo + GetNumberOfPendingMessages() : int
+ CopyMessagesToBody() : void
CompletionMessage + ReceiveMessageLater(TransportMessage) : void «enumeratio...
«property» + Key: string + SubscriptionMessage()
+ Send(TransportMessage, string) : void SubscriptionType
+ Body() : IMessage[] + Value: string + SubscriptionMessage(string, SubscriptionType)
«property» + Start() : void
+ BodyStream() : Stream «property» Add
+ CorrelationId() : string + ErrorCode() : int «property»
+ HeaderInfo(string, string) + SubscriptionType() : SubscriptionType Remove
+ Headers() : List<HeaderInfo> + Address() : string
+ HeaderInfo() + TypeName() : string
+ Id() : string + MessageTypesToBeReceived() : IList<Type>
+ IdForCorrelation() : string + NumberOfWorkerThreads() : int
+ Messages() : List<object> «event»
+ Recoverable() : bool + FinishedMessageProcessing() : EventHandler
+ ReturnAddress() : string + StartedMessageProcessing() : EventHandler
+ TimeToBeReceived() : TimeSpan + TransportMessageReceived() : EventHandler<TransportMessageReceivedEventArgs>
+ WindowsIdentityName() : string
-message
EventArgs
TransportMessageReceiv edEv entArgs
+ TransportMessageReceivedEventArgs(TransportMessage)
«property»
+ Message() : TransportMessage
Figure: 40
CompletionMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {E0915EAB-8B6B-486f-BD6A-709DF211ED47}
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination CompletionMessage IMessage
Operations
Method Notes Parameters
ErrorCode() int Gets/sets a code specifying the type of error
Public that occurred.
HeaderInfo
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Model Specification Phase 01 Page: 179
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Attributes
Attribute Notes Constraints and tags
Key string Default:
Public
Operations
Method Notes Parameters
HeaderInfo() string key
Public [in]
string value
[in]
HeaderInfo()
Public
SubscriptionMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Model Specification Phase 01 Page: 180
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination SubscriptionMessage IMessage
Operations
Method Notes Parameters
SubscriptionMessage() Initializes a new SubscriptionMessage.
Public
SubscriptionMessage() Initializes a new SubscriptionMessage for the string typeName
Public specified message type that indicates whether [in]
to add or remove a subscription.
SubscriptionType
subscriptionType
[in]
SubscriptionType
Type: Enumeration
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {430CC9C2-98CF-4ce9-B882-57890501C24B}
Custom Properties
isActive = False
Attributes
Attribute Notes Constraints and tags
Add Add a subscription. Default:
Public
TransportMessage
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {34AA1604-2050-4864-AFAD-5A40B3E678A9}
@remark All messages sent and received by NServiceBus are wrapped in this class. More than one message can be
bundled in the envelope to be transmitted or received by the bus.
Custom Properties
isActive = False
Tagged Values
Attribute = [Serializable].
Model Specification Phase 01 Page: 182
Connections
Connector Source Target Notes
Association Public Private body
Source -> Destination TransportMessage IMessage
Attributes
Attribute Notes Constraints and tags
body IMessage Default:
Private Collection
Operations
Method Notes Parameters
Model Specification Phase 01 Page: 183
TransportMessageReceivedEventArgs
Type: Class EventArgs
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {9AEEE01D-9D72-4b18-9ADD-2C16C0341D76}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private message
Source -> Destination TransportMessageRecei TransportMessage
vedEventArgs
Attributes
Attribute Notes Constraints and tags
message Default:
TransportMessage
Private Const
Operations
Method Notes Parameters
Message() Gets the message received.
TransportMessage
Public
TransportMessageReceiv Initializes a new TransportMessage m
edEventArgs() TransportMessageReceivedEventArgs. [in] The message that was received.
Public
ITransport
Type: Interface IDisposable
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {A1EECFDA-9AB4-4518-8425-85B400D58699}
Connections
Connector Source Target Notes
Association Public Private transport
Source -> Destination ChangeNumberOfWork ITransport
erThreadsMessageHand
ler
Operations
Method Notes Parameters
AbortHandlingCurrentM Causes the current message being handled to
essage() void return to the queue.
Public
Address() string Gets the address at which the transport receives
Public messages.
string destination
[in] The address to send the
message to.
Msmq
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Transport
Detail: Created on 21/12/2008 09:37:33. Last modified on 21/12/2008 09:37:33
GUID: {2836D8B5-5F6A-4ac3-9ED9-AB263E0EA325}
class Msmq
Exception
MsmqTransport
AbortHandlingCurrentMessageException
- _numberOfWorkerThreads: int
- builder: IBuilder
- DIRECTPREFIX: string = "DIRECT=OS:" {readOnly}
- errorQueue: MessageQueue
- errorQueuePath: string
- FAILEDQUEUE: string = "FailedQ" {readOnly}
- failuresPerMessage: IDictionary<string, int> = new Dictionary<... {readOnly}
- failuresPerMessageLocker: ReaderWriterLockSlim = new ReaderWrite... {readOnly}
- headerSerializer: XmlSerializer = new XmlSerializ...
- IDFORCORRELATION: string = "CorrId" {readOnly}
- isolationLevel: IsolationLevel
- isTransactional: bool
- logger: ILog = LogManager.GetL... {readOnly}
- maxRetries: int = 5
- messageSerializer: IMessageSerializer
# modules: List<IMessageModule> = new List<IMessa... {readOnly}
- needToAbort: bool
- PREFIX: string = "FormatName:" +... {readOnly}
- purgeOnStartup: bool = false
- queue: MessageQueue
- secondsToWaitForMessage: int = 10
- skipDeserialization: bool
- transactionTimeout: TimeSpan
- WINDOWSIDENTITYNAME: string = "WinIdName" {readOnly}
- workerThreads: IList<WorkerThread> = new List<Worker... {readOnly}
+ AbortHandlingCurrentMessage() : void
# ActivateEndMethodOnMessageModules() : IList<Exception>
- AddWorkerThread() : WorkerThread
+ ChangeNumberOfWorkerThreads(int) : void
+ Convert(Message) : TransportMessage
+ Dispose() : void
- Extract(Message) : IMessage[]
- FillIdForCorrelationAndWindowsIdentity(TransportMessage, Message) : void
- FillLabel(Message, TransportMessage) : void
- GetExtraTypes(IEnumerable<Type>) : Type[]
+ GetFailedQueue(Message) : string
+ GetFullPath(string) : string
+ GetIndependentAddressForQueue(MessageQueue) : string
+ GetLabelWithoutFailedQueue(Message) : string
+ GetNumberOfPendingMessages() : int
- GetTransactionTypeForReceive() : MessageQueueTransactionType
- GetTransactionTypeForSend() : MessageQueueTransactionType
- MessageHasFailedMaxRetries(Message) : bool
# MoveToErrorQueue(Message) : void
- OnFinishedMessageProcessing() : void
- OnStartedMessageProcessing() : void
+ QueueIsLocal(string) : bool
- Receive() : void
+ ReceiveFromQueue() : void
+ ReceiveMessageLater(TransportMessage) : void
+ Send(TransportMessage, string) : void
- SetLocalQueue(MessageQueue) : void
+ Start() : void
«property»
+ Address() : string
+ Builder() : IBuilder
+ ErrorQueue() : string
+ InputQueue() : string
+ IsolationLevel() : IsolationLevel
+ IsTransactional() : bool
+ MaxRetries() : int
+ MessageSerializer() : IMessageSerializer
+ MessageTypesToBeReceived() : IList<Type>
+ NumberOfWorkerThreads() : int
+ PurgeOnStartup() : bool
+ SecondsToWaitForMessage() : int
+ SkipDeserialization() : bool
+ TransactionTimeout() : TimeSpan
«event»
+ FinishedMessageProcessing() : EventHandler
+ StartedMessageProcessing() : EventHandler
+ TransportMessageReceived() : EventHandler<TransportMessageReceivedEventArgs>
Model Specification Phase 01 Page: 188
Figure: 41
AbortHandlingCurrentMessageException
Type: Class Exception
Status: Proposed. Version 1.0. Phase 1.0.
Package: Msmq Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {8EEE8795-D2E4-4e79-B91C-48051B9B3430}
Custom Properties
isActive = False
MsmqTransport
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Msmq Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {374CE770-D52C-4c19-A48D-1C1E89395882}
@remark A transport is used by NServiceBus as a high level abstraction from the underlying messaging service
being used to transfer messages.
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private transport
Source -> Destination ConfigMsmqTransport MsmqTransport
Attributes
Attribute Notes Constraints and tags
_numberOfWorkerThrea Default:
ds int
Private
errorQueue Default:
MessageQueue
Private
isolationLevel Default:
IsolationLevel
Private
messageSerializer Default:
IMessageSerializer
Private
secondsToWaitForMessa Default: 10
ge int
Private 10
transactionTimeout Default:
TimeSpan
Private
Operations
Method Notes Parameters
AbortHandlingCurrentM
essage() void
Public
ActivateEndMethodOnM
essageModules()
IList<Exception>
Protected
Address() string Gets the address of the input queue.
Public
AddWorkerThread()
WorkerThread
Private
Builder() IBuilder
Public
ChangeNumberOfWorke int targetNumberOfWorkerThreads
rThreads() void [in]
Public
ErrorQueue() string Sets the path to the queue the transport will
Public transfer errors to.
Extract() IMessage Extracts the messages from an MSMQ <see Message message
Private cref="Message"/>. [in] The MSMQ message to extract
from.
@returns An array of handleable messages.
TransportMessage m
[in]
FinishedMessageProcessi
ng() EventHandler
Public
Static GetExtraTypes() Get a list of serializable types from the list of IEnumerable<Type> value
Type types provided. [in] A list of types process.
Private
@returns A list of serializable types.
Static GetFullPath() string Turns a '@' separated value into a full msmq string value
Public path. Format is 'queue@machine'. [in]
@returns
Static MessageQueue q
GetIndependentAddressF [in]
orQueue() string
Public
Static Message m
GetLabelWithoutFailedQ [in]
ueue() string
Public
GetNumberOfPendingM
essages() int
Public
GetTransactionTypeFor Gets the transaction type to use when receiving
Receive() a message from the queue.
MessageQueueTransaction
Type @returns The transaction type to use.
Private
GetTransactionTypeForS Gets the transaction type to use when sending a
end() message.
MessageQueueTransaction
Type @returns The transaction type to use.
Private
InputQueue() string Sets the path to the queue the transport will
Public read from. Only specify the name of the queue
- msmq specific address not required. When
using MSMQ v3, only local queues are
supported.
MessageHasFailedMaxRe Message m
tries() bool [in]
Private
OnFinishedMessageProce
ssing() void
Private
OnStartedMessageProces
sing() void
Private
PurgeOnStartup() bool Sets whether or not the transport should purge
Public the input queue when it is started.
Static QueueIsLocal() Checks whether or not a queue is local by its string value
bool path. [in] The path to the queue to check.
Public
@returns true if the queue is local, otherwise
false.
string destination
[in] The address of the destination
to send the message to.
SetLocalQueue() void Sets the queue on the transport to the specified MessageQueue q
Private MSMQ queue. [in] The MSMQ queue to set.
Config
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Msmq
Detail: Created on 21/12/2008 09:37:33. Last modified on 21/12/2008 09:37:33
GUID: {211C09BB-292D-4767-AA5F-6B1D1F3E6580}
class Config
Configure
ConfigMsmqTransport
- transport: MsmqTransport
+ ConfigMsmqTransport()
+ Configure(Configure) : void
+ IsolationLevel(IsolationLevel) : ConfigMsmqTransport
+ IsTransactional(bool) : ConfigMsmqTransport
+ PurgeOnStartup(bool) : ConfigMsmqTransport
+ TransactionTimeout(TimeSpan) : ConfigMsmqTransport
Figure: 42
ConfigMsmqTransport
Type: Class Configure
Status: Proposed. Version 1.0. Phase 1.0.
Package: Config Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {F1DB3D70-DFAA-48c9-A6B8-E3A4A6DF5236}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private transport
Source -> Destination ConfigMsmqTransport MsmqTransport
Attributes
Attribute Notes Constraints and tags
transport MsmqTransport Default:
Private
Operations
Method Notes Parameters
ConfigMsmqTransport()
Public
Configure() void Configure config
Public [in]
Utils
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus
Detail: Created on 21/12/2008 09:37:55. Last modified on 21/12/2008 09:37:55
GUID: {B85BB387-5936-468e-A95E-CCE9484850A5}
class Utils
WorkerThread TransactionWrapper
# Loop() : void
+ Start() : void
+ Stop() : void
+ WorkerThread(Callback)
«event»
+ Stopped() : EventHandler
«property»
# StopRequested() : bool
Figure: 43
TransactionWrapper
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Utils Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {92C8663D-A984-4a63-AFFB-DCDEF0F02157}
Custom Properties
isActive = False
Operations
Method Notes Parameters
RunInTransaction() void Executes the provided delegate method in a Callback callback
Public transaction. [in] The delegate method to call.
IsolationLevel isolationLevel
[in] The isolation level of the
transaction.
Model Specification Phase 01 Page: 200
TimeSpan transactionTimeout
[in] The timeout period of the
transaction.
WorkerThread
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Utils Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {15EC6C88-8CEB-4977-828A-86AC04905F00}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Association Public Private
Source -> Destination WorkerThread methodToRunInLoop
Callback
Attributes
Attribute Notes Constraints and tags
_stopRequested bool Default:
Private
[volatile = true ]
methodToRunInLoop Default:
Callback
Private Const
Operations
Method Notes Parameters
Loop() void Executes the delegate method until the <see
Protected cref="Stop"/> method is called.
ObjectBuilder
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Model Specification Phase 01 Page: 202
«interface»
IBuilder
+ Build(Type) : object
+ Build() : T
+ BuildAll() : IEnumerable<T>
+ BuildAll(Type) : IEnumerable<object>
+ BuildAndDispatch(Type, Action<object>) : void
«interface»
IConfigureComponents
+ ConfigureComponent(Type, ComponentCallModelEnum) : IComponentConfig
+ ConfigureComponent(ComponentCallModelEnum) : T
«interface»
IComponentConfig
+ ConfigureProperty(string, object) : IComponentConfig
«enumeration»
ComponentCallModelEnum
None
Singleton
Singlecall
Figure: 44
ComponentCallModelEnum
Type: Enumeration
Model Specification Phase 01 Page: 203
Custom Properties
isActive = False
Attributes
Attribute Notes Constraints and tags
None Default:
Public
Singleton Default:
Public
Singlecall Default:
Public
IBuilder
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: ObjectBuilder Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {23E330CA-F5BA-4d34-A14B-8D8B6EEAC5EE}
Model Specification Phase 01 Page: 204
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination CommonObjectBuilder IBuilder
Operations
Method Notes Parameters
Build() object Creates an instance of the given type, injecting Type typeToBuild
Public it with all defined dependencies. [in]
@returns
@returns
@returns
BuildAll() For each type that is compatible with the given Type typeToBuild
IEnumerable<object> type, an instance is created with all [in]
Public dependencies injected.
@returns
BuildAndDispatch() void Builds an instance of the defined type injecting Type typeToBuild
Public it with all defined dependencies and invokes [in]
the given action on the instance.
Action<object> action
[in]
IComponentConfig
Type: Interface
Model Specification Phase 01 Page: 205
Connections
Connector Source Target Notes
Association Public Private
Source -> Destination RecordPropertySet componentConfig
IComponentConfig
Operations
Method Notes Parameters
ConfigureProperty() string name
IComponentConfig [in]
Public
object value
[in]
IConfigureComponents
Type: Interface
Status: Proposed. Version 1.0. Phase 1.0.
Package: ObjectBuilder Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {5504DBDE-DEB7-418d-A7AD-11D8A9E70913}
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination CommonObjectBuilder IConfigureComponents
Model Specification Phase 01 Page: 206
Operations
Method Notes Parameters
ConfigureComponent() Configures the given type. Can be used to Type concreteComponent
IComponentConfig configure all kinds of properties. [in]
Public
@returns ComponentCallModelEnum
callModel
[in] Defines whether the type should
have singleton or single call
sematnics.
ReturnToSourceQueue
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Detail: Created on 21/12/2008 09:37:46. Last modified on 21/12/2008 09:37:46
GUID: {FA210A34-2198-4fdc-99E6-072496974138}
class ReturnToSourceQueue
Program
- Main(string[]) : void
Figure: 45
Model Specification Phase 01 Page: 207
Program
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: ReturnToSourceQueue Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {EFB80022-5D1C-4efe-B5E8-0A8E00626604}
Custom Properties
isActive = False
Operations
Method Notes Parameters
Static Main() void string[] args
Private [in]
Timeout
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Detail: Created on 21/12/2008 09:37:44. Last modified on 21/12/2008 09:37:44
GUID: {0EDB0309-68FC-4c04-BEE2-C8199B033D6B}
Manager
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Timeout
Detail: Created on 21/12/2008 09:37:44. Last modified on 21/12/2008 09:37:44
GUID: {1F597323-69E0-4fe7-8D25-16F889DB99B6}
class Manager
Program
- Main() : void
Figure: 46
Program
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Manager Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {E860515E-DADF-40d8-A783-C38EEB097EA3}
Custom Properties
isActive = False
Operations
Method Notes Parameters
Static Main() void
Private
MessageHandlers
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: Timeout
Detail: Created on 21/12/2008 09:37:45. Last modified on 21/12/2008 09:37:45
GUID: {B9EE7D19-7CE0-4aa1-9D45-F913AF8C516B}
class MessageHandlers
TimeoutMessageHandler
+ Handle(TimeoutMessage) : void
«property»
+ Bus() : IBus
+ MaxSagaIdsToStore() : int
Figure: 47
TimeoutMessageHandler
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: MessageHandlers Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {12951066-2DB2-494d-BAC3-F6A696F0AF00}
Custom Properties
isActive = False
Connections
Connector Source Target Notes
Realisation Public Public
Source -> Destination TimeoutMessageHandl IMessageHandler
er
Attributes
Attribute Notes Constraints and tags
maxSagaIdsToStore int Default: 100
Private 100
Model Specification Phase 01 Page: 210
Operations
Method Notes Parameters
Bus() IBus
Public
Handle() void TimeoutMessage message
Public [in]
UI
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: NServiceBus_Source
Detail: Created on 21/12/2008 09:37:48. Last modified on 21/12/2008 09:37:48
GUID: {9C0975C0-B7AD-449f-A830-3E3828F5C953}
UI - (Logical diagram)
Created By: on 21/12/2008
Last Modified: 21/12/2008
Version: 1.0. False
GUID: {E6AF13B3-1194-4da2-A8B5-1A93120FEC44}
Model Specification Phase 01 Page: 211
class UI
Form
Program Form1
Form1
- Main() : void - ClearManagedEndpoint: System.Windows.Forms.Button
- ClearWorker: System.Windows.Forms.Button - current: ManagedEndpoint
- components: System.ComponentModel.IContainer = null - endpoints: List<ManagedEndpoint>
- DecreaseWorkerThreads: System.Windows.Forms.Button - worker: Worker
- DeleteManagedEndpoint: System.Windows.Forms.Button
- DeleteWorker: System.Windows.Forms.Button - ClearManagedEndpoint_Click(object, EventArgs) : void
- exitToolStripMenuItem: System.Windows.Forms.ToolStripMenuItem - ClearWorker_Click(object, EventArgs) : void
- fileToolStripMenuItem: System.Windows.Forms.ToolStripMenuItem - DecreaseWorkerThreads_Click(object, EventArgs) : void
- groupBox1: System.Windows.Forms.GroupBox - DeleteManagedEndpoint_Click(object, EventArgs) : void
- groupBox2: System.Windows.Forms.GroupBox - DeleteWorker_Click(object, EventArgs) : void
- IncreaseWorkerThreads: System.Windows.Forms.Button - DoAdd() : void
- label1: System.Windows.Forms.Label - DoUpdate() : void
- label2: System.Windows.Forms.Label - DoWorkerAdd() : void
- label3: System.Windows.Forms.Label - DoWorkerUpdate() : void
- label4: System.Windows.Forms.Label - exitToolStripMenuItem_Click(object, EventArgs) : void
- label5: System.Windows.Forms.Label + Form1()
- ManagedEndpointButton: System.Windows.Forms.Button - Form1_FormClosing(object, FormClosingEventArgs) : void
- ManagedEndpointList: System.Windows.Forms.ListBox - IncreaseWorkerThreads_Click(object, EventArgs) : void
- ManagedEndpointName: System.Windows.Forms.TextBox - ManagedEndpointButton_Click(object, EventArgs) : void
- ManagedEndpointQueue: System.Windows.Forms.TextBox - ManagedEndpointList_SelectedIndexChanged(object, EventArgs) : void
- menuStrip1: System.Windows.Forms.MenuStrip # OnLoad(EventArgs) : void
- MessagesInEndpoint: System.Windows.Forms.Label - PrepareForAdd() : void
- NumberOfWorkerThreads: System.Windows.Forms.Label - PrepareForUpdate() : void
- RefreshNumberOfWorkerThreads: System.Windows.Forms.Button - PrepareWorkerForAdd() : void
- saveToolStripMenuItem: System.Windows.Forms.ToolStripMenuItem - PrepareWorkerForUpdate() : void
- splitContainer1: System.Windows.Forms.SplitContainer - RefreshList() : void
- splitContainer2: System.Windows.Forms.SplitContainer - RefreshNumberOfWorkerThreads_Click(object, EventArgs) : void
- splitContainer3: System.Windows.Forms.SplitContainer - RefreshWorkerList() : void
- timer1: System.Windows.Forms.Timer - saveToolStripMenuItem_Click(object, EventArgs) : void
- WorkerButton: System.Windows.Forms.Button - timer1_Tick(object, EventArgs) : void
- WorkerList: System.Windows.Forms.ListBox - UpdateManagedEndpoint() : void
- WorkerQueue: System.Windows.Forms.TextBox - UpdateWorker() : void
- WorkerButton_Click(object, EventArgs) : void
# Dispose(bool) : void - WorkersList_SelectedIndexChanged(object, EventArgs) : void
- InitializeComponent() : void
Figure: 48
Form1
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: UI Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {770FEA40-013F-4b3e-A1B7-78B8B58D899D}
Custom Properties
isActive = False
Tagged Values
partial = true.
Attributes
Attribute Notes Constraints and tags
Model Specification Phase 01 Page: 212
ClearWorker Default:
System.Windows.Forms.B
utton
Private
DecreaseWorkerThreads Default:
System.Windows.Forms.B
utton
Private
DeleteManagedEndpoint Default:
System.Windows.Forms.B
utton
Private
DeleteWorker Default:
System.Windows.Forms.B
utton
Private
Model Specification Phase 01 Page: 213
fileToolStripMenuItem Default:
System.Windows.Forms.T
oolStripMenuItem
Private
groupBox1 Default:
System.Windows.Forms.G
roupBox
Private
groupBox2 Default:
System.Windows.Forms.G
roupBox
Private
IncreaseWorkerThreads Default:
System.Windows.Forms.B
utton
Private
label1 Default:
System.Windows.Forms.L
abel
Private
Model Specification Phase 01 Page: 214
label3 Default:
System.Windows.Forms.L
abel
Private
label4 Default:
System.Windows.Forms.L
abel
Private
label5 Default:
System.Windows.Forms.L
abel
Private
ManagedEndpointButton Default:
System.Windows.Forms.B
utton
Private
ManagedEndpointList Default:
System.Windows.Forms.Li
stBox
Private
Model Specification Phase 01 Page: 215
ManagedEndpointQueue Default:
System.Windows.Forms.T
extBox
Private
menuStrip1 Default:
System.Windows.Forms.M
enuStrip
Private
MessagesInEndpoint Default:
System.Windows.Forms.L
abel
Private
NumberOfWorkerThrea Default:
ds
System.Windows.Forms.L
abel
Private
RefreshNumberOfWorke Default:
rThreads
System.Windows.Forms.B
utton
Private
Model Specification Phase 01 Page: 216
splitContainer1 Default:
System.Windows.Forms.S
plitContainer
Private
splitContainer2 Default:
System.Windows.Forms.S
plitContainer
Private
splitContainer3 Default:
System.Windows.Forms.S
plitContainer
Private
timer1 Default:
System.Windows.Forms.Ti
mer
Private
WorkerButton Default:
System.Windows.Forms.B
utton
Private
Model Specification Phase 01 Page: 217
WorkerQueue Default:
System.Windows.Forms.T
extBox
Private
Operations
Method Notes Parameters
Dispose() void Clean up any resources being used. bool disposing
Protected [in] true if managed resources
should be disposed; otherwise, false.
Form1
Type: Class Form
Status: Proposed. Version 1.0. Phase 1.0.
Package: UI Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {47248163-C2AC-4827-AB5A-3B301FED68B7}
Custom Properties
isActive = False
Tagged Values
partial = true.
Connections
Model Specification Phase 01 Page: 218
Attributes
Attribute Notes Constraints and tags
current ManagedEndpoint Default:
Private
endpoints Default:
List<ManagedEndpoint>
Private
Operations
Method Notes Parameters
ClearManagedEndpoint_ object sender
Click() void [in]
Private
EventArgs e
[in]
DoAdd() void
Private
DoUpdate() void
Private
DoWorkerAdd() void
Private
DoWorkerUpdate() void
Private
exitToolStripMenuItem_ object sender
Click() void [in]
Private
EventArgs e
[in]
Form1()
Public
Form1_FormClosing() object sender
void [in]
Private
FormClosingEventArgs e
[in]
PrepareForAdd() void
Private
PrepareForUpdate() void
Private
PrepareWorkerForAdd()
void
Private
PrepareWorkerForUpdat
e() void
Private
RefreshList() void
Private
RefreshNumberOfWorke object sender
rThreads_Click() void [in]
Private
EventArgs e
[in]
RefreshWorkerList() void
Private
saveToolStripMenuItem_ object sender
Click() void [in]
Private
EventArgs e
[in]
EventArgs e
[in]
UpdateManagedEndpoin
t() void
Private
UpdateWorker() void
Private
Model Specification Phase 01 Page: 221
Program
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: UI Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {D81E70A5-69D5-4474-BAA0-9F3C3989A2CF}
Custom Properties
isActive = False
Tagged Values
static = true.
Operations
Method Notes Parameters
Static Main() void The main entry point for the application.
Private
Properties
Type: Package
Status: Proposed. Version 1.0. Phase 1.0.
Package: UI
Detail: Created on 21/12/2008 09:37:48. Last modified on 21/12/2008 09:37:48
GUID: {4915399E-52E7-4385-BEDB-B386632DA721}
Model Specification Phase 01 Page: 222
class Properties
Resources System.Configuration.ApplicationSettingsBase
- resourceCulture: global::System.Globalization.CultureInfo Settings
-defaultInstance
{leaf}
- resourceMan: global::System.Resources.ResourceManager
Figure: 49
Resources
Type: Class
Status: Proposed. Version 1.0. Phase 1.0.
Package: Properties Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {B5EE841B-90C8-403b-AE1E-5F19AB194FB0}
Custom Properties
isActive = False
Tagged Values
Attribute =
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedRe
sourceBuilder",
"2.0.0.0")];[global::System.Diagnostics.DebuggerNonUserCodeAttribute()];[global::System.Runtime.Com
pilerServices.CompilerGeneratedAttribute()].
Attributes
Attribute Notes Constraints and tags
resourceCulture Default:
global::System.Globalizati
on.CultureInfo
Private Static
Model Specification Phase 01 Page: 223
Operations
Method Notes Parameters
Static Culture() Overrides the current thread's CurrentUICulture
global::System.Globalizati property for all resource lookups using this
on.CultureInfo strongly typed resource class.
Internal
Static ResourceManager() Returns the cached ResourceManager instance
global::System.Resources. used by this class.
ResourceManager
Internal
Resources()
Internal
Settings
Type: Class System.Configuration.ApplicationSettingsBase
Status: Proposed. Version 1.0. Phase 1.0.
Package: Properties Keywords:
Detail: Created on 21/12/2008. Last modified on.21/12/2008.
GUID: {C37490F4-DCF6-4af3-981D-FA8BB83E8BCA}
Custom Properties
isActive = False
Tagged Values
Attribute =
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()];[global::System.CodeDom.Co
mpiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGene
rator", "9.0.0.0")].
partial = true.
Connections
Connector Source Target Notes
Association Public Private defaultInstance
Source -> Destination Settings Settings
Model Specification Phase 01 Page: 224
Attributes
Attribute Notes Constraints and tags
defaultInstance Settings Default:
Private Static ((Settings)(global::System.Configur
((Settings)(global::System. ation.ApplicationSettingsBase.Sync
Configuration.Application hronized(new Settings())))
SettingsBase.Synchronized
(new Settings())))
Operations
Method Notes Parameters
Static Default() Settings
Public