You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
41 lines
1.0 KiB
<?php |
|
|
|
namespace Drupal\islandora; |
|
|
|
use Drupal\Core\Config\ConfigFactoryInterface; |
|
use Drupal\islandora\Form\IslandoraSettingsForm; |
|
use Stomp\Client; |
|
use Stomp\StatefulStomp; |
|
|
|
/** |
|
* StatefulStomp static factory. |
|
*/ |
|
class StompFactory { |
|
|
|
/** |
|
* Factory function. |
|
* |
|
* @param \Drupal\Core\Config\ConfigFactoryInterface $config |
|
* Config. |
|
* |
|
* @return \Stomp\StatefulStomp |
|
* Stomp client. |
|
*/ |
|
public static function create(ConfigFactoryInterface $config) { |
|
// Get broker url from config. |
|
$settings = $config->get(IslandoraSettingsForm::CONFIG_NAME); |
|
$brokerUrl = $settings->get(IslandoraSettingsForm::BROKER_URL); |
|
$brokerUser = $settings->get(IslandoraSettingsForm::BROKER_USER); |
|
// Try a sensible default if one hasn't been configured. |
|
if (empty($brokerUrl)) { |
|
$brokerUrl = "tcp://localhost:61613"; |
|
} |
|
|
|
$client = new Client($brokerUrl); |
|
if ($brokerUser) { |
|
$client->setLogin($brokerUser, $settings->get(IslandoraSettingsForm::BROKER_PASSWORD)); |
|
} |
|
return new StatefulStomp($client); |
|
} |
|
|
|
}
|
|
|