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

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

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: Select a VEE Port

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 Select a VEE Port 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 Select a VEE Port).

dropins

platform-loader.target.platform.file

Path of the platform file to use in the build. See Select a VEE Port 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

Java SE 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

Global Build Options

The following Build Options are available in any module:

Name

Description

Default

target

Path of the build directory target~.

${basedir}/target~