3. Application Documentation

3.1. Public Documentation

The Application Development Guide documents how to create a MICROEJ Application on a MICROEJ VEE.

3.2. Standalone Application

In the case of a Standalone Application, the application can depend on any library as long as the platform supports the Foundation Libraries the application depends on.

The list of the Foundation Libraries provided by the Cinterion platform is documented in the platform documentation (README.rst):

Foundation Library Version Packages names Dependency
BON 1.4 ej.bon <dependency org="ej.api" name="bon" rev="1.4.0"/>
DEVICE 1.1 ej.util <dependency org="ej.api" name="device" rev="1.1.0"/>
ECOM-COMM 1.1 ej.ecom.io <dependency org="ej.api" name="ecom-comm" rev="1.1.4"/>
ECOM-MOBILE 0.2 ej.ecom.mobile <dependency org="ej.api" name="ecom-mobile" rev="0.2.0"/>
EDC 1.3 java.lang, java.io, java.security, java.util, ej.annotation <dependency org="ej.api" name="edc" rev="1.3.4"/>
FS 2.1 java.io <dependency org="ej.api" name="fs" rev="2.1.1"/>
GNSS 1.0 ej.gnss <dependency org="ej.api" name="gnss" rev="1.0.0"/>
KF 1.5 ej.kf <dependency org="ej.api" name="kf" rev="1.5.1"/>
NET 1.1 java.net, javax.net <dependency org="ej.api" name="net" rev="1.1.1"/>
SNI 1.4 ej.sni <dependency org="ej.api" name="sni" rev="1.4.0"/>
SSL 2.2 javax.net.ssl <dependency org="ej.api" name="ssl" rev="2.2.0"/>
DTLS 2.0 ej.net.dtls <dependency org="ej.api" name="dtls" rev="2.0.0"/>
Cinterion 1.4 com.cinterion.mqtt, com.cinterion.ssl, com.cinterion.io, com.cinterion.update <dependency org="com.cinterion.api" name="cinterion" rev="1.4.0"/>
COMPRESSED-FILE 1.0 com.microej <dependency org="com.cinterion.api" name="compressed-file" rev="1.0.0"/>

Their APIs are documented in the Platform API Javadoc HTML pages.

3.3. Sandboxed Application

In the case of a Sandboxed Application, the application is constrained by the runtime API of the kernel (see the KF specification for more details).

The main rule is that sandboxed applications cannot directly use native methods. This means to use it, an API above the native call must have been opened by the kernel to applications (see Kernel Documentation for more details). The list of the Foundation Libraries provided by the Cinterion platform is documented in the platform documentation (README.rst):

The runtime API of the Cinterion demonstration kernel is documented in the Kernel API Javadoc HTML Pages.

3.4. Demonstration Application

This package contains a demo based on MICROEJ Wadapps application framework that, among other things, allows to write an application that can be ran both as a standalone and as a sandboxed application.

The demonstration application has the following dependencies:

  • Foundation Libraries:

    <dependency org="ej.api" name="edc" rev="1.3.4"/>
    <dependency org="ej.api" name="device" rev="1.1.0"/>
    <dependency org="ej.api" name="ecom-mobile" rev="0.2.0"/>
    <dependency org="ej.api" name="fs" rev="2.1.1"/>
    <dependency org="ej.api" name="gnss" rev="1.0.0"/>
    <dependency org="com.cinterion.api" name="cinterion" rev="1.4.0"/>
    
  • Add-on Libraries:

    <dependency org="ej.library.runtime" name="property" rev="4.1.0"/>
    <dependency org="ej.library.runtime" name="service" rev="1.1.1"/>
    <dependency org="ej.library.runtime" name="storage" rev="1.2.0"/>
    <dependency org="ej.library.wadapps" name="wadapps" rev="2.2.0"/>
    <dependency org="ej.library.eclasspath" name="properties" rev="1.1.0"/>
    

3.5. Other dependencies

Applications can depend on other dependencies like the demonstration application as long as these dependencies do not break the rules above. For instance, the Widget add-on library is not compatible with the Cinterion platform because it does not provide the MicroUI Foundation Library. Also, because the Cinterion demonstration kernel does not open the NET Foundation Library API, it is not possible to use the HTTPCLIENT dependency in sandboxed application.

A wide range of modules are included in the module repository available with this package. Their APIs are documented in the Cinterion Module Repository Javadoc HTML pages.

Also, the MicroEJ Central Repository has its own documentation: MicroEJ APIs.