private void initialize()

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;
            });
        }
    }