use of org.eclipse.kapua.transport.mqtt.setting.MqttClientSetting in project kapua by eclipse.
the class PooledMqttClientFactory method create.
/**
* Creates the {@link MqttClient} for the {@link MqttClientPool}.
*
* <p>
* The client is initialized and connected. In case of any failure on connect operation, an exception is thrown and the the created client is destroyed.
* </p>
*
* @throws Exception
* FIXME [javadoc] document exception.
* @since 1.0.0
*/
@Override
public MqttClient create() throws Exception {
//
// User pwd generation
MqttClientSetting mqttClientSettings = MqttClientSetting.getInstance();
MqttClientPoolSetting mqttClientPoolSettings = MqttClientPoolSetting.getInstance();
String username = mqttClientSettings.getString(MqttClientSettingKeys.TRANSPORT_CREDENTIAL_USERNAME);
char[] password = mqttClientSettings.getString(MqttClientSettingKeys.TRANSPORT_CREDENTIAL_PASSWORD).toCharArray();
String clientId = ClientIdGenerator.getInstance().next(mqttClientPoolSettings.getString(MqttClientPoolSettingKeys.CLIENT_POOL_CLIENT_ID_PREFIX));
URI brokerURI = SystemUtils.getBrokerURI();
//
// Get new client and connection options
MqttClientConnectionOptions connectionOptions = new MqttClientConnectionOptions();
connectionOptions.setClientId(clientId);
connectionOptions.setUsername(username);
connectionOptions.setPassword(password);
connectionOptions.setEndpointURI(brokerURI);
//
// Connect client
MqttClient kapuaClient = new MqttClient();
try {
kapuaClient.connectClient(connectionOptions);
} catch (KapuaException ke) {
kapuaClient.terminateClient();
throw ke;
}
return kapuaClient;
}
Aggregations