Search in sources :

Example 1 with MqttClientConnectionOptions

use of org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions 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;
}
Also used : MqttClientSetting(org.eclipse.kapua.transport.mqtt.setting.MqttClientSetting) MqttClient(org.eclipse.kapua.transport.mqtt.MqttClient) MqttClientPoolSetting(org.eclipse.kapua.transport.mqtt.pooling.setting.MqttClientPoolSetting) KapuaException(org.eclipse.kapua.KapuaException) MqttClientConnectionOptions(org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions) URI(java.net.URI)

Example 2 with MqttClientConnectionOptions

use of org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions in project kapua by eclipse.

the class MqttClientTest method testMqttClientPublish.

/**
 * Ignoring this test for a while. We should fix the build in the first place and then use embedded ActiveMQ
 * broker for tests.
 */
@Ignore
@Test
public void testMqttClientPublish() throws Exception {
    MqttClientConnectionOptions clientConnectOptions = new MqttClientConnectionOptions();
    clientConnectOptions.setClientId(ClientIdGenerator.getInstance().next(MqttClientTest.class.getSimpleName()));
    clientConnectOptions.setUsername(username);
    clientConnectOptions.setPassword(password.toCharArray());
    clientConnectOptions.setEndpointURI(SystemUtils.getBrokerURI());
    // 
    // Connect
    MqttClient mqttClient = new MqttClient();
    try {
        mqttClient.connectClient(clientConnectOptions);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    assertTrue("client.connected", mqttClient.isConnected());
    // 
    // Send
    String sendTopic = "$EDC/kapua-sys/" + mqttClient.getClientId() + "/" + MqttClientTest.class.getSimpleName() + "/testMqttClientSendTopic";
    MqttTopic mqttTopic = new MqttTopic(sendTopic);
    MqttPayload mqttPayload = new MqttPayload("testMqttClientSendPayload".getBytes());
    MqttMessage mqttMessage = new MqttMessage(mqttTopic, new Date(), mqttPayload);
    try {
        mqttClient.publish(mqttMessage);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    // Disconnect
    try {
        mqttClient.disconnectClient();
    } catch (Exception e) {
        fail(e.getMessage());
    }
    assertFalse("client.connected", mqttClient.isConnected());
}
Also used : MqttClient(org.eclipse.kapua.transport.mqtt.MqttClient) MqttMessage(org.eclipse.kapua.transport.message.mqtt.MqttMessage) MqttTopic(org.eclipse.kapua.transport.message.mqtt.MqttTopic) MqttPayload(org.eclipse.kapua.transport.message.mqtt.MqttPayload) MqttClientConnectionOptions(org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions) Date(java.util.Date) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 3 with MqttClientConnectionOptions

use of org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions in project kapua by eclipse.

the class MqttClientTest method testMqttClientConnectDisconnect.

/**
 * Ignoring this test for a while. We should fix the build in the first place and then use embedded ActiveMQ
 * broker for tests.
 */
@Ignore
@Test
public void testMqttClientConnectDisconnect() throws Exception {
    MqttClientConnectionOptions clientConnectOptions = new MqttClientConnectionOptions();
    clientConnectOptions.setClientId(ClientIdGenerator.getInstance().next(MqttClientTest.class.getSimpleName()));
    clientConnectOptions.setUsername(username);
    clientConnectOptions.setPassword(password.toCharArray());
    clientConnectOptions.setEndpointURI(SystemUtils.getBrokerURI());
    // 
    // Connect
    MqttClient mqttClient = new MqttClient();
    try {
        mqttClient.connectClient(clientConnectOptions);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    // 
    // Verify
    assertTrue("client.connected", mqttClient.isConnected());
    assertEquals("client.clientId", clientConnectOptions.getClientId(), mqttClient.getClientId());
    // Disconnect
    try {
        mqttClient.disconnectClient();
    } catch (Exception e) {
        fail(e.getMessage());
    }
    assertFalse("client.connected", mqttClient.isConnected());
}
Also used : MqttClient(org.eclipse.kapua.transport.mqtt.MqttClient) MqttClientConnectionOptions(org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

MqttClient (org.eclipse.kapua.transport.mqtt.MqttClient)3 MqttClientConnectionOptions (org.eclipse.kapua.transport.mqtt.MqttClientConnectionOptions)3 Ignore (org.junit.Ignore)2 Test (org.junit.Test)2 URI (java.net.URI)1 Date (java.util.Date)1 KapuaException (org.eclipse.kapua.KapuaException)1 MqttMessage (org.eclipse.kapua.transport.message.mqtt.MqttMessage)1 MqttPayload (org.eclipse.kapua.transport.message.mqtt.MqttPayload)1 MqttTopic (org.eclipse.kapua.transport.message.mqtt.MqttTopic)1 MqttClientPoolSetting (org.eclipse.kapua.transport.mqtt.pooling.setting.MqttClientPoolSetting)1 MqttClientSetting (org.eclipse.kapua.transport.mqtt.setting.MqttClientSetting)1