Using the Default RabbitMQ Middleman and Trigger

The RabbitMQ Middleman can be called from any location using the following command-line syntax:

node rabbitmq-amqp-middleman CONNECTION_STRING ARCHITECURE_GET_URL GENERATION_QUEUE_NAME [OPTIONS_FILE_PATH]

The middleman's parameters are as follows:

  • CONNECTION_STRING: the RabbitMQ connection string to connect to

  • ARCHITECTURE_GET_URL: the URL to get the serialized template architecture from

  • GENERATION_QUEUE_NAME: the name of the generation queue to add the serialized response to

  • OPTIONS_FILE_PATH: (optional) Path to a JSON file that contains an object that may include a documentation configuration object property and/or completion handlers array property with objects representing the handler ID and parameters for each handler that should be used; For example:

SampleOptions.json
{
"DocumentationConfiguration": {
"CommitAuthor": "Zachary Kniebel",
"CommitHash": "0FE1D344",
"CommitLink": "http://mygit.com/repo/myrepo/commits/0FE1D344",
"DeployLink": "http://mydocs.com/foo/bar"
},
"CompletionHandlers": [
{
"ID": "MyHandler1",
"Params": {
"foo": "bar"
}
},
{
"ID": "MyHandler2"
}
]
}

The following examples show how you can call the RabbitMQ middleman on a Habitat instance with the SitecoreUML Service (1.3.6+) installed:

To retrieve the architecture and add the result to the documentation queue for generation...

node rabbitmq-amqp-middleman amqp://localhost http://local.habitat.com/sitecoreuml/sitecoredxg/GetTemplateArchitecture "generation_queue__documentation"

To retrieve the architecture and add the result to the metadata-json queue for generation...

node rabbitmq-amqp-middleman amqp://localhost http://local.habitat.com/sitecoreuml/sitecoredxg/GetTemplateArchitecture "generation_queue__mdj"

To retrieve the architecture and add the result to the documentation queue for generation and will tell the Generation Service to call a completion handler named "helloWorld" when finished...

hello-world-sample.json
{"CompletionHandlers":[
{
"ID":"helloWorld"
}]
}
node rabbitmq-amqp-middleman amqp://localhost http://local.habitat.com/sitecoreuml/sitecoredxg/GetTemplateArchitecture "generation_queue__documentation" "./hello-world-sample.json"

To retrieve the architecture and add the result to the documentation queue for generation and will tell the Generation Service to call the "MyHandler1" completion handler with a parameters object; and then the "MyHandler2" completion handler with no parameters when finished...

handlers-1-2-sample.json
{
"CompletionHandlers": [
{
"ID": "MyHandler1",
"Params": {
"Count": 1,
"Max": 2,
"Hello": "world!",
"Foo": [ "bar", "baz", 12345 ]
}
},
{
"ID": "MyHandler2"
}
]
}
node rabbitmq-amqp-middleman amqp://localhost http://local.habitat.com/sitecoreuml/sitecoredxg/GetTemplateArchitecture "generation_queue__documentation" "./handlers-1-2-sample.json"