Module Natures

Note

This page is releated to the version 5 and lower of the SDK. If you use the SDK 6, please refer to the page Module Natures.

This page describes the most common module natures as follows:

  • Skeleton Name: the project skeleton name.
  • Build Type Name: the build type name, derived from the module nature name: com.is2t.easyant.buildtypes#build-[NATURE_NAME].
  • Documentation: a link to the documentation.
  • SDK Menu: the menu to the direct wizard in the SDK (if available). Any module nature can be created with the default wizard from File > New > Module Project.
  • Configuration: properties that can be defined to configure the module. Properties are defined inside the ea:build tag of the module.ivy file, using ea:property tag as described in the section Build Options. A module nature also inherits the build options from the listed Natures Plugins.

Add-On Library

Skeleton Name: microej-javalib

Build Type Name: com.is2t.easyant.buildtypes#build-microej-javalib

Documentation: Libraries

SDK Menu: File > New > Add-On Library Project

Configuration:

This module nature inherits the build options of the following plugins:

Add-On Processor

Skeleton Name: addon-processor

Build Type Name: com.is2t.easyant.buildtypes#build-addon-processor

Configuration:

This module nature inherits the build options of the following plugins:

Foundation Library API

Skeleton Name: microej-javaapi

Build Type Name: com.is2t.easyant.buildtypes#build-microej-javaapi

Documentation: Libraries

Configuration:

This module nature inherits the build options of the following plugins:

This module nature defines the following dedicated build options:

Name Description Default
microej.lib.name Platform library name on the form: [NAME]-[VERSION]-api. - [NAME]: name of the implemented Foundation Library API module. - [VERSION]: version of the implemented Foundation Library API module without patch (Major.minor). Not set
rip.printableName Printable name for the Platform Editor. Not set

Foundation Library Implementation

Skeleton Name: microej-javaimpl

Build Type Name: com.is2t.easyant.buildtypes#build-microej-javaimpl

Documentation: Libraries

Configuration:

This module nature inherits the build options of the following plugins:

This module nature defines the following dedicated build options:

Name Description Default
microej.lib.implfor Execution target. Possible values are emb (only on Device), sim (only Simulator) and common (both). common

Kernel Application

Skeleton Name: firmware-multiapp

Build Type Name: com.is2t.easyant.buildtypes#build-firmware-multiapp

Documentation: Kernel Developer Guide

Configuration:

This module nature inherits the build options of the following plugins:

This module nature defines the following dedicated build options:

Name Description Default
application.main.class Full Qualified Name of the main class of the kernel. This option is required. Not set
runtime.api.name Name of the Runtime API of the kernel. This option is ignored when a Runtime API is declared in the dependencies. RUNTIME
runtime.api.version Version of the Runtime API of the kernel. This option is ignored when a Runtime API is declared in the dependencies. 1.0
skip.build.virtual.device When this property is set (any value), the virtual device is not built. Not set
virtual.device.sim.only When this property is set (any value), the Executable is not built. Not set
launch.properties.jvm Additional options to pass to the JVM for building the Executable. -Xmx1024M

Meta Build

Skeleton Name: microej-meta-build

Build Type Name: com.is2t.easyant.buildtypes#microej-meta-build

Documentation: Meta Build

Configuration:

This module nature defines the following dedicated build options:

Name Description Default
metabuild.root Path of the root folder containing the modules to build. ${basedir}/..
private.modules.file Name of the file listing the private modules to build. private.modules.list
public.modules.file Name of the file listing the public modules to build. public.modules.list

Mock

Skeleton Name: microej-mock

Build Type Name: com.is2t.easyant.buildtypes#build-microej-mock

Documentation: Mock

Configuration:

This module nature inherits the build options of the following plugins:

Module Repository

Skeleton Name: artifact-repository

Build Type Name: com.is2t.easyant.buildtypes#build-artifact-repository

Documentation: Module Repository

Configuration:

This module nature inherits the build options of the following plugins:

This module nature defines the following dedicated build options:

Name Description Default
architecture.configurations.includes [1] Comma-separated list of configurations to include for the Architecture modules. Set dist,eval or dist,prod to include only evaluation or production Architectures or dist,eval,prod to include both. dist,eval
bar.check.as.v2.module When this property is set to true, the artifact checker uses the MicroEJ Module Manager semantic. false
bar.javadoc.dir Path of the folder containing the generated javadoc. ${target}/javadoc
bar.notification.email.from The email address used as the from address when sending the notification emails. Not set
bar.notification.email.host The hostname of the mail service used to send the notification emails. Not set
bar.notification.email.password The password used to authenticate on the mail service. Not set
bar.notification.email.port The port of the mail service used to send the notification emails Not set
bar.notification.email.ssl When this property is set to true, SSL/TLS is used to send the notification emails. Not set
bar.notification.email.to The notification email address destination. Not set
bar.notification.email.user The username used to authenticate on the mail service. Not set
bar.populate.from.resolver Name of the resolver used to fetch the modules to populate the repository. fetchRelease
bar.populate.ivy.settings.file Path of the Ivy settings file used to fetch the modules to populate the repository. ${project.ivy.settings.file}
bar.populate.repository.conf Ivy configuration of included repositories. The modules of the repositories declared as dependency with this configuration are included in the built repository. repository
bar.test.haltonerror When this property is set to true, the artifact checker stops at the first error. false
javadoc.excludes Comma-separated list of packages to exclude from the javadoc. Empty string
javadoc.includes Comma-separated list of packages to include in the javadoc. ** (all packages)
javadoc.modules.excludes [2] Comma-separated list of modules to exclude from the javadoc. Empty string
skip.artifact.checker When this property is set to true, all artifact checkers are skipped. Not set
skip.email When this property is set (any value), the notification email is not sent. Otherwise the bar.notification.* properties are required. Not set
skip.javadoc Prevents the generation of the javadoc. false
skip.javadoc.deprecated Prevents the generation of any deprecated API at all in the javadoc. true
[1]Require SDK version 5.4.0 or higher.
[2]Require SDK version 5.6.0 or higher.

Runtime Environment

Skeleton Name: runtime-api

Build Type Name: com.is2t.easyant.buildtypes#build-runtime-api

Documentation: Runtime Environment

Configuration:

This module nature inherits the configuration properties of the following plugins:

Sandboxed Application

Skeleton Name: application

Build Type Name: com.is2t.easyant.buildtypes#build-application

Documentation: Sandboxed Application

SDK Menu: File > New > Sandboxed Application Project

Configuration:

This module nature inherits the build options of the following plugins:

Standalone Application

Skeleton Name: firmware-singleapp

Build Type Name: com.is2t.easyant.buildtypes#build-firmware-singleapp

Documentation: Standalone Application

SDK Menu: File > New > Standalone Application Project

Configuration:

This module nature inherits the build options of the following plugins:

This module nature defines the following dedicated build options:

Name Description Default
application.main.class Full Qualified Name of the main class of the application. This option is required. Not set
skip.build.virtual.device When this property is set (any value), the virtual device is not built. Not set
virtual.device.sim.only When this property is set (any value), the Executable is not built. Not set
launch.properties.jvm Additional options to pass to the JVM for building the Executable. -Xmx1024M
[3](1, 2, 3, 4, 5, 6) Require SDK version 5.5.0 or higher.

Studio Rebranding

Skeleton Name: microej-studio-rebrand

Build Type Name: com.is2t.easyant.buildtypes#build-izpack

Configuration:

The skeleton template contains all the necessary files for a Studio that is ready to build. The main elements are:

  • HOWTO.md: This file describes the minimum configuration required to build the Studio template as it is.
  • module.ivy: This file describes all available build options and dependencies.
  • branding-resources: This folder contains default resources that can be replaced with your own to customize the Studio. These resources include names, images, icons, and license files.

Natures Plugins

This page describes the most common module nature plugins as follows:

  • Documentation: link to documentation.
  • Module Natures: list of Module Natures using this plugin.
  • Configuration: properties that can be defined to configure the module. Properties are defined inside the ea:build tag of the module.ivy file, using ea:property tag as described in the section Build Options.

Java Compilation

Module Natures:

This plugin is used by the following module natures:

Configuration:

This plugin defines the following build options:

Name Description Default
javac.debug.level Comma-separated list of levels for the Java compiler debug mode. lines,source,vars
javac.debug.mode When this property is set to true, the Java compiler is set in debug mode. false
src.main.java Path of the folder containing the Java sources. ${basedir}/src/main/java

Platform Loader

Documentation: Platform Selection

Module Natures:

This plugin is used by the following module natures:

Configuration:

This plugin defines the following build options:

Name Description Default
platform-loader.platform.dir Path of the folder to unzip the loaded platform to. ${target}/platform
platform.loader.skip.load.platform When this property is set to true, the platform is not loaded. It must be already available in the directory defined by the property platform-loader.platform.dir. Use with caution: the platform content may be modified during the build (e.g. in case of Testsuite or Virtual Device build). false
platform-loader.target.platform.conf The Ivy configuration used to retrieved the platform if fetched via dependencies. platform
platform-loader.target.platform.dir Path of the root folder of the platform to use in the build. See Platform Selection section for Platform Selection rules. Not set
platform-loader.target.platform.dropins Absolute or relative (to the project root folder) path of the folder where the platform can be found (see Platform Selection). dropins
platform-loader.target.platform.file Path of the platform file to use in the build. See Platform Selection section for Platform Selection rules. Not set

Javadoc

Module Natures:

This plugin is used by the following module natures:

Configuration:

This plugin defines the following build options:

Name Description Default
src.main.java Path of the folder containing the Java sources. ${basedir}/src/main/java
javadoc.file.encoding Encoding used for the generated Javadoc. UTF-8
javadoc.failonerror When this property is set to true, the build is stopped if an error is raised during the Javadoc generation. true
javadoc.failonwarning When this property is set to true, the build is stopped if a warning is raised during the Javadoc generation. false
target.reports Path of the base folder for reports. ${target}/reports
target.javadoc Path of the base folder where the Javadoc is generated. ${target.reports}/javadoc
target.javadoc.main Path of the folder where the Javadoc is generated. ${target.javadoc}/main
javadoc-microej.overview.html Path of the HTML template file used for the Javadoc overview page. ${src.main.java}/overview.html if exists, otherwise a default template.
target.artifacts Path of the packaged artifacts. ${target}/artifacts
target.artifacts.main.javadoc.jar.name Name of the packaged JAR containing the generated Javadoc (stored in folder target.artifacts). ${module.name}-javadoc.jar
javadoc.publish.conf Ivy configuration used to publish the Javadoc artifact. documentation

Test Suite

Documentation: Test Suite with JUnit

Module Natures:

This plugin is used by the following module natures:

Configuration:

This plugin defines the following build options:

Name Description Default
microej.testsuite.cc.excludes.classes Pattern of classes excluded from the code coverage analysis. Not set
microej.testsuite.retry.count A test execution may not be able to produce the success trace for an external reason, for example an unreliable harness script that may lose some trace characters or crop the end of the trace. For all these unlikely reasons, it is possible to configure the number of retries before a test is considered to have failed. 0
microej.testsuite.timeout The time in seconds before a test is considered as failed. Set it to 0 to disable the timeout. 60
microej.testsuite.properties.[name] Inject an Application Option named [name] for all tests. For example, declaring the build option microej.testsuite.properties.core.memory.javaheap.size will configure the Java heap size of all tests. Not applicable
microej.testsuite.properties.launch.test.trace.file Set this property to true if your VEE Port Run script redirects execution traces. Not set
microej.testsuite.properties.s3.cc.activated When this property is set to true, the code coverage analysis is enabled. true
microej.testsuite.properties.testsuite.trace.ip The TCP/IP address to connect for retrieving test execution traces. This property is required if your VEE Port Run script does not redirect execution traces. Not set
microej.testsuite.properties.testsuite.trace.port The TCP/IP port to connect for retrieving test execution traces. This property is required if your VEE Port Run script does not redirect execution traces. Not set
microej.testsuite.properties.testsuite.trace.timeout The time in seconds without activity on the standard output before the trace analysis is stopped. 75
cc.src.folders Path to the folders containing the Java sources used for code coverage analysis. Java source folder (src/main/java) and Add-On Processor generated source folders (src-adpgenerated/*) [4]
microej.testsuite.verbose When this property is set to true, the verbose trace level is enabled. false
test.run.excludes.pattern Pattern of classes excluded from the test suite execution. Empty string (no test)
test.run.failonerror When this property is set to true, the build fails if an error is raised. true
target.vm.name The execution target (S3 to execute on Simulator, MICROJVM to execute on the Device). S3
test.run.includes.pattern Pattern of classes included in the test suite execution. **/* (all tests)
skip.test When this property is set (any value), the tests are not executed. Not set
[4]Option cc.src.folders is not set by default for SDK versions lower than 5.5.0.

J2SE Unit Tests

Warning

This plugin is reserved for tools written in Java Standard Edition. Tests classes must be created in the folder src/test/java of the project. See Test Suite section for MicroEJ tests.

Module Natures:

This plugin is used by the following module natures:

Configuration:

This plugin defines the following build options:

Name Description Default
test.run.excludes.pattern Pattern of classes excluded from the test suite execution. Empty string (no test)
test.run.failonerror When this property is set to true, the build fails if an error is raised. true
test.run.includes.pattern Pattern of classes included in the test suite execution. **/* (all tests)
skip.test When this property is set (any value), the tests are not executed. Not set

Artifact Checker

Module Natures:

This plugin is used by the following module natures:

Configuration:

This plugin defines the following build options:

Name Description Default
run.artifact.checker When this property is set (any value), the artifact checker is executed. Not set
skip.addonconf.checker When this property is set to true, the addon configurations checker is not executed. Not set
skip.changelog.checker When this property is set to true, the changelog checker is not executed. Not set
skip.foundationconf.checker When this property is set to true, the foundation configurations checker is not executed. Not set
skip.license.checker When this property is set to true, the license checker is not executed. Not set
skip.nullanalysis.checker [5] When this property is set to true, the null analysis checker is not executed. Not set
skip.publicconf.checker When this property is set to true, the public configurations checker is not executed. Not set
skip.readme.checker When this property is set to true, the readme checker is not executed. Not set
skip.retrieve.checker When this property is set to true, the retrieve checker is not executed. Not set
[5]Require SDK version 5.5.0 or higher.

Global Build Options

The following Build Options are available in any module:

Name Description Default
target Path of the build directory target~. ${basedir}/target~