Skip to content
This repository has been archived by the owner on Aug 18, 2020. It is now read-only.

telenordigital/nbiot-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nbiot-java

Travis-CI

NBIoT-Java provides a Java client for the REST API for Telenor NB-IoT.

Java 8 is required.

Configuration

The configuration file is located at ${HOME}/.telenor-nbiot. The file is a simple list of key/value pairs. Additional values are ignored. Comments must start with a #:

#
# This is the URL of the Telenor NB-IoT REST API. The default value is
# https://api.nbiot.telenor.io and can usually be omitted.
address=https://api.nbiot.telenor.io

#
# This is the API token. Create new token by logging in to the Telenor NB-IoT
# front-end at https://nbiot.engineering and create a new token there.
token=<your api token goes here>

The configuration file settings can be overridden by setting the environment variables TELENOR_NBIOT_ADDRESS and TELENOR_NBIOT_TOKEN. If you only use environment variables the configuration file can be ignored. Finally, there is a Client constructor that accepts the address and token directly.

How do I use it?

Just include the following in your pom.xml:

    <dependency>
        <groupId>engineering.exploratory</groupId>
        <artifactId>nbiot-java</artifactId>
        <version>0.2.0</version>
    </dependency>

Updating resources

The various Client.update* methods work via HTTP PATCH, which means they will only modify or set fields, not delete them. There are special Client.delete*Tag methods for deleting tags.

Sample code

Below you will find some examples on how to use the client.

Fetching data

Collection with default params

Client client = new Client();

OutputDataMessage[] data = client.data("<YOUR_COLLECTION_ID>");

Collection with custom params

Client client = new Client();

OutputDataMessage[] data = client.data("<YOUR_COLLECTION_ID>", new ImmutableDataSearchParameters.Builder()
    .limit(500)
    .until(Instant.now())
    .build()
);

Device with default params

Client client = new Client();

OutputDataMessage[] data = client.data("<YOUR_COLLECTION_ID>", "<YOUR_DEVICE_ID>");

Device with custom params

Client client = new Client();

OutputDataMessage[] data = client.data("<YOUR_COLLECTION_ID>", "<YOUR_DEVICE_ID>", new ImmutableDataSearchParameters.Builder()
    .limit(500)
    .until(Instant.now())
    .build()
);

Setting up a data stream through the client

Client client = new Client();

client.outputStream("<YOUR_COLLECTION_ID>", handler -> {
    handler.onConnect((session -> logger.info("Handler connect")));
    handler.onError(((session, error) -> logger.warning("Handler error")));
    handler.onClose((code, reason) -> logger.info("Handler close"));
    handler.onMessage((message) -> {
        logger.info("Handler message");
        logger.info(message.toString());
    });
});

Development

Testing

Run mvn test to run the tests.

Dependencies

Run mvn versions:display-plugin-updates to check if any plugins have newer versions available.

Run mvn versions:display-dependency-updates to check if any dependencies have newer versions available.

Deployment

In order to release our components to the Central Repository, we deploy them to OSSRH.

Our OSSRH credentials and GPG key can be found in AWS Systems Manager Parameter Store. Import the GPG key into your keyring.

Make sure your $HOME/.m2/settings.xml file contains the following, with OSSRH password and gpg.passphrase inserted:

<settings>
    <servers>
        <server>
            <id>ossrh</id>
            <username>Exploratory Engineering</username>
            <password></password>
        </server>
    </servers>

    <profiles>
        <profile>
            <id>ossrh</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <gpg.executable>gpg</gpg.executable>
                <gpg.passphrase></gpg.passphrase>
            </properties>
        </profile>
    </profiles>
</settings>

Finally, run this command to deploy to OSSRH. It will automatically be released to the Central Repository.

GPG_TTY=$(tty) mvn clean deploy -P release

For more information see:

Releases

No releases published

Packages

No packages published

Languages