agrirouter-sdk-java
Abstract
The agrirouter is a universal data exchange platform for farmers and agricultural contractors that makes it possible to connect machinery and agricultural software, regardless of vendor or manufacturer. Agrirouter does not save data; it transfers data. As a universal data exchange platform, agrirouter fills a gap on the way to Farming 4.0. Its underlying concept unites cross-vendor and discrimination-free data transfer. You retain full control over your data. Even data exchange with service providers (e.g. agricultural contractors) and other partners is uncomplicated: Data are very rapidly transferred via the online connection, and if you wish, is intelligently connected to other datasets.
Supporters & Maintainers
The LMIS AG is a recognised german IT service company, certified according to DIN EN ISO 9001:2015 and based in Osnabrück, Berlin, Friedland and Wuppertal. Our core competence is the individual development, optimisation and support of IT solutions. We also provide professional IT consulting services and training courses. We have been supporting the whole project during the development in the field of test management and are currently responsible for the development support of the platform.
We are active maintainers of the SDK and are using the SDK for internal testing purposes as well. Therefore we have a high interest in a stable and usable interface to connect to the agrirouter.
Feel free to get in touch by visiting our website or contacting us via GitHub.
The current project you’re looking at
This project contains the SDK for the communication with the agrirouter. Everything you need for the onboarding process, secure communication and much more.
Releases
The release workflow follows the Microsoft DevOps Release Model where a release shows up as a branch in the repository.
Modules
api
Module
The api
module contains interfaces, common helper classes and DTOs as well as exceptions.
impl
Module
The impl
module contains the implementation of the given SDK defined by the api
module.
convenience
Module
The convenience
module contains common implementations for different problems which are not located within the SDK. Those could be capability setting, MQTT client creation or other common problems that are normally not part of the SDK.
test
Module
The test
module contains integration tests not only for the SDK, but also for different scenarios.
Integration
If you want to add a dependency feel free to fetch the latest release from Github Packages. Please find the documentation right here. We are supporting JDK 8 and later, releases are build using a JDK 8 to have compatibility for most users. If you need to build the current development branch, please feel free build the branch on yourself and install it to your local repository.
Certificates for the communication
We do not longer maintain the certificates within the SDK. Maintaining them in the SDK would mean, that we have to release the SDK with every change of the certificate. Therefore feel free to add the root certificates to a Java Key Store add reference it within your application.
Adding a certificate to the JKS
The certificates are PEM files which can be added directly to the keystore using the following command.
keytool -importcert -file certificate.pem -keystore my_agrirouter_key_store.jks
If you try to add the command, please be aware, that the containing PEM file has to fulfill the following requirements:
-
The header and footer are included enclosed between five dashes.
-
There are no trailing spaces on each line.
-
The certificate is saved as a .p7b.
If the files does not meet those requirements, the import will not be possible. The certificates are part of the integration guide which can be found in the external resources.
External resources
Here are some external resources for the development: