Eclipse Kapua™ Gateway Client SDK
![Maven Central Status Maven Central](https://camo.githubusercontent.com/13d942eb0473a633763bd22e285f0c8f7327977979c2220d83478b40d105f213/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f64652e64656e7472617373692e6b617075612f6b617075612d676174657761792d636c69656e742e737667)
This project provides an SDK for connecting to Eclipse Kapua as a gateway.
Note: This is not part of the Eclipse Kapua project.
This project should provide a simple to use SDK for pushing telemetry data into Kapua and consuming command messages out of Kapua.
Note: This is a work in progress and should not be considered production ready.
How to use
The following quick steps should provide you with a working example.
Add to your Maven project
<dependency>
<groupId>de.dentrassi.kapua</groupId>
<artifactId>kapua-gateway-client-provider-mqtt-fuse</artifactId>
<version><!-- replace with current version --></version>
</dependency>
<dependency>
<groupId>de.dentrassi.kapua</groupId>
<artifactId>kapua-gateway-client-profile-kura</artifactId>
<version><!-- replace with current version --></version>
</dependency>
Example client
import static org.eclipse.kapua.gateway.client.Credentials.userAndPassword;
import static org.eclipse.kapua.gateway.client.Errors.ignore;
import org.eclipse.kapua.gateway.client.mqtt.fuse.FuseClient;
import org.eclipse.kapua.gateway.client.profile.kura.KuraMqttProfile;
try (Client client = KuraMqttProfile.newProfile(FuseClient.Builder::new)
.accountName("kapua-sys")
.clientId("foo-bar-1")
.brokerUrl("tcp://localhost:1883")
.credentials(userAndPassword("kapua-broker", "kapua-password"))
.build()) {
try (Application application = client.buildApplication("app1").build()) {
// subscribe to a topic
application.data(Topic.of("my", "receiver")).subscribe(message -> {
System.out.format("Received: %s%n", message);
});
// cache sender instance
Sender<RuntimeException> sender = application
.data(Topic.of("my", "sender"))
.errors(ignore());
int i = 0;
while (true) {
// send
sender.send(Payload.of("counter", i++));
Thread.sleep(1000);
}
}
}