in src/main/java/com/azure/servicebus/jms/ServiceBusJmsConnectionFactory.java [146:199]
private void initialize(String userName, String password, String host) {
if (userName == null || password == null || host == null) {
throw new IllegalArgumentException("Authentication settings and host cannot be null for a Service Bus connection factory.");
}
this.remoteConnectionUri = this.getServiceBusRemoteConnectionUri();
this.factory = new JmsConnectionFactory(userName, password, this.remoteConnectionUri);
this.factory.setExtension(JmsConnectionExtensions.AMQP_OPEN_PROPERTIES.toString(), (connection, uri) -> {
Map<String, Object> properties = new HashMap<>();
properties.put(ServiceBusJmsConnectionFactorySettings.IsClientProvider, true);
String servicebusJmsVersion = "";
Properties applicationProperties = new Properties();
try {
applicationProperties.load(this.getClass().getClassLoader().getResourceAsStream("application.properties"));
servicebusJmsVersion = applicationProperties.getProperty("azure.servicebus.jms.version");
} catch (IOException e) {
servicebusJmsVersion = "unknown";
}
StringBuilder userAgent = new StringBuilder("ServiceBusJms");
userAgent.append("-").append(servicebusJmsVersion);
if (customUserAgent != null && customUserAgent.length() > 0) {
userAgent.append("/").append(customUserAgent);
}
properties.put("user-agent", userAgent.toString());
long queueAutoDeleteOnIdleDurationInSeconds = this.settings.getQueueAutoDeleteOnIdleDurationInSeconds();
if (queueAutoDeleteOnIdleDurationInSeconds > 0) {
properties.put(ServiceBusJmsConnectionFactorySettings.QueueAutoDeleteOnIdleDurationInSecondsName, queueAutoDeleteOnIdleDurationInSeconds);
}
long topicAutoDeleteOnIdleDurationInSeconds = this.settings.getTopicAutoDeleteOnIdleDurationInSeconds();
if (topicAutoDeleteOnIdleDurationInSeconds > 0) {
properties.put(ServiceBusJmsConnectionFactorySettings.TopicAutoDeleteOnIdleDurationInSecondsName, topicAutoDeleteOnIdleDurationInSeconds);
}
long subscriberAutoDeleteOnIdleDurationInSeconds = this.settings.getSubscriberAutoDeleteOnIdleDurationInSeconds();
if (subscriberAutoDeleteOnIdleDurationInSeconds > 0) {
properties.put(ServiceBusJmsConnectionFactorySettings.SubscriberAutoDeleteOnIdleDurationInSecondsName, subscriberAutoDeleteOnIdleDurationInSeconds);
}
return properties;
});
Supplier<ProxyHandler> proxyHandlerSupplier = this.settings.getProxyHandlerSupplier();
if (proxyHandlerSupplier != null) {
factory.setExtension(JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(), (connection, remote) -> {
return proxyHandlerSupplier;
});
}
}