Cumulocity Microservice SDK Java library provides functionalities to make microservice applications ready to intract with Cumulocity.

The Cumulocity Microservice SDK provides the following components:

  • Packaging
  • Auto-configure
  • Context
  • Health Indicator
  • Logging
  • Internal Cumulocity Platform
  • Security
  • Subscription

Example for fastest usage of microservice SDK:

Add auto-configure maven dependency to your project.

    <dependencies>
        ...
        <dependency>
            <groupId>com.nsn.cumulocity.clients-java</groupId>
            <artifactId>microservice-autoconfigure</artifactId>
            <version>{enter_cumulocity-clients-java_version}</version>
        </dependency>
    </dependencies> 
    

Afterwards, add @MicroserviceApplication annotation to your application. This enables all the necessary components of microservice SDK except packaging.

Introduction and example for creating the microservice package:

Microservice SDK provides maven plugin to create a deployable zip package of the microservice application.
Prerequisites are to have docker installed and permissions granted to use docker commands with non-root users.

As a first step, add microservice package maven plugin to your project.

    <build>
        <plugins>
            ...
            <plugin>
                <groupId>com.nsn.cumulocity.clients-java</groupId>
                <artifactId>microservice-package-maven-plugin</artifactId>
                <version>{enter_cumulocity-clients-java_version}</version>
                <executions>
                    <execution>
                        <id>package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>package</goal>
                        </goals>
                        <configuration>
                            <name>hello-world</name>
                            <encoding>UTF-8</encoding>
                            <rpmSkip>true</rpmSkip>
                            <containerSkip>false</containerSkip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>microservice-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>microservice-package</goal>
                        </goals>
                        <configuration>
                            <name>hello-world</name>
                            <image>hello-world</image>
                            <encoding>UTF-8</encoding>
                            <skip>false</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

Create the manifest file cumulocity.json with the example content in the project directory src/main/microservice/.

    {
        "apiVersion":"1",
        "version":"@project.version@",
        "provider": {
            "name":"..."
        },
        "isolation":"MULTI_TENANT",
        "requiredRoles": [
        ],
        "roles":[
        ]
    }
    

Build project and create the microservice zip package using the command:

    mvn clean install
    

The microservice application can be deployed to Cumulocity by uploading the zip package as application to Cumulocity platform.

Packages 
Package Description
com.cumulocity.microservice.api  
com.cumulocity.microservice.autoconfigure  
com.cumulocity.microservice.context  
com.cumulocity.microservice.context.annotation  
com.cumulocity.microservice.context.credentials  
com.cumulocity.microservice.context.inject  
com.cumulocity.microservice.context.scope  
com.cumulocity.microservice.customdecoders.api.exception  
com.cumulocity.microservice.customdecoders.api.model  
com.cumulocity.microservice.customdecoders.api.service  
com.cumulocity.microservice.customdecoders.api.util  
com.cumulocity.microservice.customencoders.api.exception  
com.cumulocity.microservice.customencoders.api.model  
com.cumulocity.microservice.customencoders.api.service  
com.cumulocity.microservice.logging.configuration  
com.cumulocity.microservice.lpwan.codec  
com.cumulocity.microservice.lpwan.codec.annotation  
com.cumulocity.microservice.lpwan.codec.decoder.model  
com.cumulocity.microservice.lpwan.codec.encoder.model  
com.cumulocity.microservice.lpwan.codec.handler  
com.cumulocity.microservice.lpwan.codec.model  
com.cumulocity.microservice.lpwan.codec.rest  
com.cumulocity.microservice.monitoring.actuator.annotation  
com.cumulocity.microservice.monitoring.actuator.configuration  
com.cumulocity.microservice.monitoring.health.annotation  
com.cumulocity.microservice.monitoring.health.indicator  
com.cumulocity.microservice.monitoring.health.indicator.memory  
com.cumulocity.microservice.monitoring.health.indicator.platform  
com.cumulocity.microservice.monitoring.health.indicator.subscription  
com.cumulocity.microservice.platform.api.annotation  
com.cumulocity.microservice.properties  
com.cumulocity.microservice.security.annotation  
com.cumulocity.microservice.security.configuration  
com.cumulocity.microservice.security.controller  
com.cumulocity.microservice.security.filter  
com.cumulocity.microservice.security.filter.provider  
com.cumulocity.microservice.security.filter.util  
com.cumulocity.microservice.security.service  
com.cumulocity.microservice.security.service.impl  
com.cumulocity.microservice.security.token  
com.cumulocity.microservice.settings  
com.cumulocity.microservice.settings.annotation  
com.cumulocity.microservice.settings.repository  
com.cumulocity.microservice.settings.service  
com.cumulocity.microservice.settings.service.impl  
com.cumulocity.microservice.subscription.annotation  
com.cumulocity.microservice.subscription.model  
com.cumulocity.microservice.subscription.model.core  
com.cumulocity.microservice.subscription.repository  
com.cumulocity.microservice.subscription.repository.application  
com.cumulocity.microservice.subscription.repository.impl  
com.cumulocity.microservice.subscription.rest  
com.cumulocity.microservice.subscription.service  
com.cumulocity.microservice.subscription.service.impl