public static function visit(ApplicationInterface $application, ManagerNodeInterface $managerConfiguration)
{
// initialize the stackable containers
$queues = new GenericStackable();
$workers = new GenericStackable();
$messages = new GenericStackable();
// initialize the queue locator
$queueLocator = new QueueLocator();
// initialize the default settings for message queue
$queueManagerSettings = new QueueManagerSettings();
$queueManagerSettings->mergeWithParams($managerConfiguration->getParamsAsArray());
// initialize the queue manager
$queueManager = new QueueManager();
$queueManager->injectQueues($queues);
$queueManager->injectWorkers($workers);
$queueManager->injectMessages($messages);
$queueManager->injectApplication($application);
$queueManager->injectResourceLocator($queueLocator);
$queueManager->injectManagerSettings($queueManagerSettings);
// attach the instance
$application->addManager($queueManager, $managerConfiguration);
}