Firmware BLUE STM32F746-DISCO (Multi-Sandbox)

Firmware BLUE STM32F746-DISCO, version: 1.3.6
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Technical Ref.: CXLQH
Last updated:
7 February 2018
# Overview

A MicroEJ® Firmware is a binary instance of MicroEJ Operating System for a dedicated board.
MicroEJ Studio allows application developers to write Java applications, run them on a virtual (simulated) or real device, and publish them to the MicroEJ Application Store.

The MicroEJ firmware has the capabilities to locally deploy applications created with MicroEJ Studio.

Visit [http://communitystore.microej.com](http://communitystore.microej.com/) for more information (download MicroEJ Studio, virtual device, firmware and demos).

# Features
## Foundations Libraries

This firmware implements the following libraries of MicroEJ 4.1, named MICROEJ-DEVELOPER-RUNTIME-1.3:

- EDC 1.2 (java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security)
- BON 1.2 (ej.bon) : all except immortals
- NET 1.1 (java.net): 3 socket max
- SSL 2.0 (javax.net.ssl): 1 secured socket max
- MicroUI 2.0 (ej.microui): support of Display, LEDs, buttons and PNG decoding
- HAL 1.0 (ej.hal)
- ECOM 1.1 (ej.ecom)
- ECOM-COMM 1.1 (ej.ecom-ecomm)

To view this API, check in Help > MicroEJ Resource Center > Javadoc > MICROEJ-DEVELOPER-RUNTIME- x.y. 

## Included Add-on Java Libraries

- MWT 2.1 (ej.mwt)
- Wadapps 1.0 (ej.kf, ej.wadapps)
- Storage 1.0 (ej.wadapps.storage)
- Components 3.1 (ej.components)
- Connectivity Manager 1.1 (android.net)

## Preinstalled MicroEJ Resident Applications

- Weather: a background application allowing to show firmware settings
- AppList: a launcher application that displays the list of available applications.
- Localserver-socket: TCP/IP server for application management through the Wadapps Administration Console or MicroEJ companion (Android smartphone app)

# Firmware API Javadoc

Javadoc can be viewed in MicroEJ Studio Resource Center view (after the corresponding virtual device is imported).

# Demos

Demo applications and getting started are available from [http://communitystore.microej.com](http://communitystore.microej.com/).

# Going further

Visit [http://developer.microej.com](http://developer.microej.com/) to get more libraries and examples.

The following add-on Java libraries are compatible with this firmware (this list is indicative and not exhaustive):

- Eclasspath elements 1.0 (e.g: streams, collections, lists, properties, queues, stringtokenizer, uri, url)
- Logging 1.0 (java.util.logging)
- Widget 2.1 (ej.widget, ej.style, ej.transition, ej.color)
- REST client 1.0 (ej.rest)
- MQTT client 1.0.2 (org.eclipse.paho.client.mqttv3)
- HTTPS client 1.0 (javax.net.ssl)
- HTTP client	1.1 (java.net)
- SNTP client 1.0 (android.net)
- XML KXML 2-2.3.0 (org.kxml2)
- XML MxParser 1.1.4c (org.xmlpull.mxp)
- JSON 1.0 (org.json.me)

# Changelog
## 1.3.6 (January 20th 2018)
  - Fixed metadata FS issue created by weather 3.1.0 having an InputStream leak.
  - Switch to location v1.0.0, solves issues when the returned location has no time_zone field.

## 1.3.5 (December 29th 2017)
  - Fixed performance issues on OM13092.
  - Switched to Desktop-Weather v3.1.0, to support imperial units.
  - Fixed NTP sync on IMX6ULEVK

## 1.3.4 (November 22nd 2017)
  - Fixed an issue with the parsing of certificates in the PEM format.

## 1.3.3 (November 10th 2017)
  - Fixed an issue with the parsing of certificates in the DER format.

## 1.3.2 (November 7th 2017)
  - Fixed an issue with Weather's handling of timezones that could lead to the wrong time being displayed.  

## 1.3.1 (November 3rd 2017)
  - Updated Weather to Widgets 2.3.2
  - Fixed an issue with Weather's stylesheet polluting the other applications' stylesheets, on the simulator.  
  
## 1.3.0 (October 27th 2017)
  - Include an application list reachable from the Weather desktop.
  - Updated to MicroEJ Developer Runtime 1.3.0
  - Added command to set or get shared properties.
  - Add "run" and "show" commands to start and show applications.
  - Add commands to list activities and to show one of them.
  - Use Bootlist 2.0 to customize the boot sequence.
  - Reduced memory consumption of the connectivity manager.
  - Firmware available in the Virtual Device can be extended with new resident applications provided as WPKs.
  - Added a new execute-on-device mode that actually adds the application as a resident application.
  - Increase available BSS size for resident apps from 2048 to 4096.
  - Increase maximum number of resident apps from 5 to 10.
  - Removed automatic execution of the ShieldedPlug server in the simulator.
  - Solved issue with the startup of the simulator that could lead to a black screen and no application execution. 

## 1.2.2 (September 29th 2017)
- Fixed an issue where applications with icons cannot be installed with the Android companion.

## 1.2.1 (July 8th 2017)
- Display application name and version (if available) in the list command
- Fixed an issue with Wadapps console randomly leaving a java.exe hanging consuming CPU

## 1.2.0 (June 28th 2017)
- Fixed issue with DNS not retrying in case of timeout on slow networks
- Support more than 1 parameter to uninstall command.
- Fixed issue with no appplication metadata being stored on the device.
- Fixed issue with command socket server missing the reuseadddress option.

## 1.1.3 (May 17th 2017)
Bugfixes:
  - Re-release of 1.1.2 due to a build inconsistency.

## 1.1.2 (May 17th 2017)
Bugfixes:
  - Fixed Kernel names not to be the same for YELLOW, BLUE, GREEN, PURPLE.

## 1.1.1 (May 16th 2017)

  - Fixed issue with NTP not retrying in case of failure

## 1.1.0 (May 6th 2017)

  - Increased stack blocks from 50 to 60
  - Added the debug (framerate and CPU load) APIs.
  - Weather applications fixes

## 1.0.2 (March 31th 2017)

  - Increased stack blocks from 50 to 60
  - Fixed Firmware tries to start the bootall app twice.

## 1.0.1 (March 24th 2017)

  - Initial public revision.

Firmware BLUE OEM13092 (Multi-Sandbox)

Firmware BLUE OEM13092, version: 1.3.6
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Technical Ref.: PQ9Y4
Last updated:
7 February 2018
# Overview

A MicroEJ® Firmware is a binary instance of MicroEJ Operating System for a dedicated board.
MicroEJ Studio allows application developers to write Java applications, run them on a virtual (simulated) or real device, and publish them to the MicroEJ Application Store.

The MicroEJ firmware has the capabilities to locally deploy applications created with MicroEJ Studio.

Visit [http://communitystore.microej.com](http://communitystore.microej.com/) for more information (download MicroEJ Studio, virtual device, firmware and demos).

# Features
## Foundations Libraries

This firmware implements the following libraries of MicroEJ 4.1, named MICROEJ-DEVELOPER-RUNTIME-1.3:

- EDC 1.2 (java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security)
- BON 1.2 (ej.bon) : all except immortals
- NET 1.1 (java.net): 3 socket max
- SSL 2.0 (javax.net.ssl): 1 secured socket max
- MicroUI 2.0 (ej.microui): support of Display, LEDs, buttons and PNG decoding
- HAL 1.0 (ej.hal)
- ECOM 1.1 (ej.ecom)
- ECOM-COMM 1.1 (ej.ecom-ecomm)

To view this API, check in Help > MicroEJ Resource Center > Javadoc > MICROEJ-DEVELOPER-RUNTIME- x.y. 

## Included Add-on Java Libraries

- MWT 2.1 (ej.mwt)
- Wadapps 1.0 (ej.kf, ej.wadapps)
- Storage 1.0 (ej.wadapps.storage)
- Components 3.1 (ej.components)
- Connectivity Manager 1.1 (android.net)

## Preinstalled MicroEJ Resident Applications

- Weather: a background application allowing to show firmware settings
- AppList: a launcher application that displays the list of available applications.
- Localserver-socket: TCP/IP server for application management through the Wadapps Administration Console or MicroEJ companion (Android smartphone app)

# Firmware API Javadoc

Javadoc can be viewed in MicroEJ Studio Resource Center view (after the corresponding virtual device is imported).

# Demos

Demo applications and getting started are available from [http://communitystore.microej.com](http://communitystore.microej.com/).

# Going further

Visit [http://developer.microej.com](http://developer.microej.com/) to get more libraries and examples.

The following add-on Java libraries are compatible with this firmware (this list is indicative and not exhaustive):

- Eclasspath elements 1.0 (e.g: streams, collections, lists, properties, queues, stringtokenizer, uri, url)
- Logging 1.0 (java.util.logging)
- Widget 2.1 (ej.widget, ej.style, ej.transition, ej.color)
- REST client 1.0 (ej.rest)
- MQTT client 1.0.2 (org.eclipse.paho.client.mqttv3)
- HTTPS client 1.0 (javax.net.ssl)
- HTTP client	1.1 (java.net)
- SNTP client 1.0 (android.net)
- XML KXML 2-2.3.0 (org.kxml2)
- XML MxParser 1.1.4c (org.xmlpull.mxp)
- JSON 1.0 (org.json.me)

# Changelog
## 1.3.6 (January 20th 2018)
  - Fixed metadata FS issue created by weather 3.1.0 having an InputStream leak.
  - Switch to location v1.0.0, solves issues when the returned location has no time_zone field.

## 1.3.5 (December 29th 2017)
  - Fixed performance issues on OM13092.
  - Switched to Desktop-Weather v3.1.0, to support imperial units.
  - Fixed NTP sync on IMX6ULEVK

## 1.3.4 (November 22nd 2017)
  - Fixed an issue with the parsing of certificates in the PEM format.

## 1.3.3 (November 10th 2017)
  - Fixed an issue with the parsing of certificates in the DER format.

## 1.3.2 (November 7th 2017)
  - Fixed an issue with Weather's handling of timezones that could lead to the wrong time being displayed.  

## 1.3.1 (November 3rd 2017)
  - Updated Weather to Widgets 2.3.2
  - Fixed an issue with Weather's stylesheet polluting the other applications' stylesheets, on the simulator.  
  
## 1.3.0 (October 27th 2017)
  - Include an application list reachable from the Weather desktop.
  - Updated to MicroEJ Developer Runtime 1.3.0
  - Added command to set or get shared properties.
  - Add "run" and "show" commands to start and show applications.
  - Add commands to list activities and to show one of them.
  - Use Bootlist 2.0 to customize the boot sequence.
  - Reduced memory consumption of the connectivity manager.
  - Firmware available in the Virtual Device can be extended with new resident applications provided as WPKs.
  - Added a new execute-on-device mode that actually adds the application as a resident application.
  - Increase available BSS size for resident apps from 2048 to 4096.
  - Increase maximum number of resident apps from 5 to 10.
  - Removed automatic execution of the ShieldedPlug server in the simulator.
  - Solved issue with the startup of the simulator that could lead to a black screen and no application execution. 

## 1.2.2 (September 29th 2017)
- Fixed an issue where applications with icons cannot be installed with the Android companion.

## 1.2.1 (July 8th 2017)
- Display application name and version (if available) in the list command
- Fixed an issue with Wadapps console randomly leaving a java.exe hanging consuming CPU

## 1.2.0 (June 28th 2017)
- Fixed issue with DNS not retrying in case of timeout on slow networks
- Support more than 1 parameter to uninstall command.
- Fixed issue with no appplication metadata being stored on the device.
- Fixed issue with command socket server missing the reuseadddress option.

## 1.1.3 (May 17th 2017)
Bugfixes:
  - Re-release of 1.1.2 due to a build inconsistency.

## 1.1.2 (May 17th 2017)
Bugfixes:
  - Fixed Kernel names not to be the same for YELLOW, BLUE, GREEN, PURPLE.

## 1.1.1 (May 16th 2017)

  - Fixed issue with NTP not retrying in case of failure

## 1.1.0 (May 6th 2017)

  - Increased stack blocks from 50 to 60
  - Added the debug (framerate and CPU load) APIs.
  - Weather applications fixes

## 1.0.2 (March 31th 2017)

  - Increased stack blocks from 50 to 60
  - Fixed Firmware tries to start the bootall app twice.

## 1.0.1 (March 24th 2017)

  - Initial public revision.

Firmware BLUE i.MX6 (Multi-Sandbox)

Firmware BLUE i.MX6, version: 1.3.6
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Technical Ref.: JYSZ4
Last updated:
7 February 2018
# Overview

A MicroEJ® Firmware is a binary instance of MicroEJ Operating System for a dedicated board.
MicroEJ Studio allows application developers to write Java applications, run them on a virtual (simulated) or real device, and publish them to the MicroEJ Application Store.

The MicroEJ firmware has the capabilities to locally deploy applications created with MicroEJ Studio.

Visit [http://communitystore.microej.com](http://communitystore.microej.com/) for more information (download MicroEJ Studio, virtual device, firmware and demos).

# Features
## Foundations Libraries

This firmware implements the following libraries of MicroEJ 4.1, named MICROEJ-DEVELOPER-RUNTIME-1.3:

- EDC 1.2 (java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security)
- BON 1.2 (ej.bon) : all except immortals
- NET 1.1 (java.net): 3 socket max
- SSL 2.0 (javax.net.ssl): 1 secured socket max
- MicroUI 2.0 (ej.microui): support of Display, LEDs, buttons and PNG decoding
- HAL 1.0 (ej.hal)
- ECOM 1.1 (ej.ecom)
- ECOM-COMM 1.1 (ej.ecom-ecomm)

To view this API, check in Help > MicroEJ Resource Center > Javadoc > MICROEJ-DEVELOPER-RUNTIME- x.y. 

## Included Add-on Java Libraries

- MWT 2.1 (ej.mwt)
- Wadapps 1.0 (ej.kf, ej.wadapps)
- Storage 1.0 (ej.wadapps.storage)
- Components 3.1 (ej.components)
- Connectivity Manager 1.1 (android.net)

## Preinstalled MicroEJ Resident Applications

- Weather: a background application allowing to show firmware settings
- AppList: a launcher application that displays the list of available applications.
- Localserver-socket: TCP/IP server for application management through the Wadapps Administration Console or MicroEJ companion (Android smartphone app)

# Firmware API Javadoc

Javadoc can be viewed in MicroEJ Studio Resource Center view (after the corresponding virtual device is imported).

# Demos

Demo applications and getting started are available from [http://communitystore.microej.com](http://communitystore.microej.com/).

# Going further

Visit [http://developer.microej.com](http://developer.microej.com/) to get more libraries and examples.

The following add-on Java libraries are compatible with this firmware (this list is indicative and not exhaustive):

- Eclasspath elements 1.0 (e.g: streams, collections, lists, properties, queues, stringtokenizer, uri, url)
- Logging 1.0 (java.util.logging)
- Widget 2.1 (ej.widget, ej.style, ej.transition, ej.color)
- REST client 1.0 (ej.rest)
- MQTT client 1.0.2 (org.eclipse.paho.client.mqttv3)
- HTTPS client 1.0 (javax.net.ssl)
- HTTP client	1.1 (java.net)
- SNTP client 1.0 (android.net)
- XML KXML 2-2.3.0 (org.kxml2)
- XML MxParser 1.1.4c (org.xmlpull.mxp)
- JSON 1.0 (org.json.me)

# Changelog
## 1.3.6 (January 20th 2018)
  - Fixed metadata FS issue created by weather 3.1.0 having an InputStream leak.
  - Switch to location v1.0.0, solves issues when the returned location has no time_zone field.

## 1.3.5 (December 29th 2017)
  - Fixed performance issues on OM13092.
  - Switched to Desktop-Weather v3.1.0, to support imperial units.
  - Fixed NTP sync on IMX6ULEVK

## 1.3.4 (November 22nd 2017)
  - Fixed an issue with the parsing of certificates in the PEM format.

## 1.3.3 (November 10th 2017)
  - Fixed an issue with the parsing of certificates in the DER format.

## 1.3.2 (November 7th 2017)
  - Fixed an issue with Weather's handling of timezones that could lead to the wrong time being displayed.  

## 1.3.1 (November 3rd 2017)
  - Updated Weather to Widgets 2.3.2
  - Fixed an issue with Weather's stylesheet polluting the other applications' stylesheets, on the simulator.  
  
## 1.3.0 (October 27th 2017)
  - Include an application list reachable from the Weather desktop.
  - Updated to MicroEJ Developer Runtime 1.3.0
  - Added command to set or get shared properties.
  - Add "run" and "show" commands to start and show applications.
  - Add commands to list activities and to show one of them.
  - Use Bootlist 2.0 to customize the boot sequence.
  - Reduced memory consumption of the connectivity manager.
  - Firmware available in the Virtual Device can be extended with new resident applications provided as WPKs.
  - Added a new execute-on-device mode that actually adds the application as a resident application.
  - Increase available BSS size for resident apps from 2048 to 4096.
  - Increase maximum number of resident apps from 5 to 10.
  - Removed automatic execution of the ShieldedPlug server in the simulator.
  - Solved issue with the startup of the simulator that could lead to a black screen and no application execution. 

## 1.2.2 (September 29th 2017)
- Fixed an issue where applications with icons cannot be installed with the Android companion.

## 1.2.1 (July 8th 2017)
- Display application name and version (if available) in the list command
- Fixed an issue with Wadapps console randomly leaving a java.exe hanging consuming CPU

## 1.2.0 (June 28th 2017)
- Fixed issue with DNS not retrying in case of timeout on slow networks
- Support more than 1 parameter to uninstall command.
- Fixed issue with no appplication metadata being stored on the device.
- Fixed issue with command socket server missing the reuseadddress option.

## 1.1.3 (May 17th 2017)
Bugfixes:
  - Re-release of 1.1.2 due to a build inconsistency.

## 1.1.2 (May 17th 2017)
Bugfixes:
  - Fixed Kernel names not to be the same for YELLOW, BLUE, GREEN, PURPLE.

## 1.1.1 (May 16th 2017)

  - Fixed issue with NTP not retrying in case of failure

## 1.1.0 (May 6th 2017)

  - Increased stack blocks from 50 to 60
  - Added the debug (framerate and CPU load) APIs.
  - Weather applications fixes

## 1.0.2 (March 31th 2017)

  - Increased stack blocks from 50 to 60
  - Fixed Firmware tries to start the bootall app twice.

## 1.0.1 (March 24th 2017)

  - Initial public revision.

Firmware RED FDRM-K28F (Multi-Sandbox)

Firmware RED FDRM-K28F, version: 1.0.2
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Technical Ref.: XXOUE
Last updated:
7 February 2018
# Overview

A MicroEJ® Firmware is a binary instance of MicroEJ Operating System for a dedicated board.
MicroEJ Studio allows application developers to write Java applications, run them on a virtual (simulated) or real device, and publish them to the MicroEJ Application Store.

The MicroEJ firmware has the capabilities to locally deploy applications created with MicroEJ Studio.

Visit [http://communitystore.microej.com](http://communitystore.microej.com/) for more information (download MicroEJ Studio, virtual device, firmware and demos).

# Features
## Foundations Libraries

This firmware implements the following libraries of MicroEJ 4.1, named MICROEJ-UI-RUNTIME-1.1:

- EDC 1.2 (java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security)
- BON 1.2 (ej.bon) : all except immortals
- MicroUI 2.0 (ej.microui): support of Display, LEDs, buttons and PNG decoding
- HAL 1.0 (ej.hal)
- ECOM 1.1 (ej.ecom)
- ECOM-COMM 1.1 (ej.ecom-ecomm)

To view this API, check in Help > MicroEJ Resource Center > Javadoc > MICROEJ-UI-RUNTIME- x.y. 

## Included Add-on Java Libraries

- MWT 2.1 (ej.mwt)
- Wadapps 1.0 (ej.kf, ej.wadapps)
- Storage 1.0 (ej.wadapps.storage)
- Components 3.1 (ej.components)

## Preinstalled MicroEJ Resident Applications

- AppList: a launcher application that displays the list of available applications.

# Firmware API Javadoc

Javadoc can be viewed in MicroEJ Studio Resource Center view (after the corresponding virtual device is imported).

# Demos

Demo applications and getting started are available from [http://communitystore.microej.com](http://communitystore.microej.com/).

# Going further

Visit [http://developer.microej.com](http://developer.microej.com/) to get more libraries and examples.

The following add-on Java libraries are compatible with this firmware (this list is indicative and not exhaustive):

- Eclasspath elements 1.0 (e.g: streams, collections, lists, properties, queues, stringtokenizer, uri, url)
- Logging 1.0 (java.util.logging)
- Widget 2.1 (ej.widget, ej.style, ej.transition, ej.color)
- XML KXML 2-2.3.0 (org.kxml2)
- XML MxParser 1.1.4c (org.xmlpull.mxp)
- JSON 1.0 (org.json.me)

# Changelog
## 1.0.2 (November 6th 2017)
  - Fixed an issue with the speed of the binary generation and its content that could be truncated on some targets. 

## 1.0.0 (October 28th 2017)
  - Initial public revision.

Firmware PURPLE RZ GRPEACH (Multi-Sandbox)

Firmware PURPLE RZ GRPEACH, version 1.3.0
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Technical Ref.: TRJ9S
Last updated:
7 February 2018
# Overview

A MicroEJ® Firmware is a binary instance of MicroEJ Operating System for a dedicated board.
MicroEJ Studio allows application developers to write Java applications, run them on a virtual (simulated) or real device, and publish them to the MicroEJ Application Store.

The MicroEJ firmware has the capabilities to locally deploy applications created with MicroEJ Studio.

Visit [http://communitystore.microej.com](http://communitystore.microej.com/) for more information (download MicroEJ Studio, virtual device, firmware and demos).

# Features
## Foundations Libraries

This firmware implements the following libraries of MicroEJ 4.1, named MICROEJ-HEADLESS-RUNTIME-1.3:

- EDC 1.2 (java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security)
- BON 1.2 (ej.bon) : all except immortals
- NET 1.1 (java.net): 3 socket max
- SSL 2.0 (javax.net.ssl): 1 secured socket max
- MicroUI 2.0 (ej.microui): support of LEDs and buttons only
- ECOM 1.1 (ej.ecom)
- ECOM-COMM 1.1 (ej.ecom-ecomm)

To view this API, check in Help > MicroEJ Resource Center > Javadoc > MICROEJ-HEADLESS-RUNTIME-x.y. 

## Included Add-on Java Libraries

- Wadapps 1.0 (ej.kf, ej.wadapps)
- Storage 1.0 (ej.wadapps.storage)
- Components 3.1 (ej.components)
- Connectivity Manager 1.1 (android.net)

## Preinstalled MicroEJ Resident Applications

- Localserver-socket: TCP/IP server for application management through the Wadapps Administration Console or MicroEJ companion (Android smartphone app)

# Firmware API Javadoc

Javadoc can be viewed in MicroEJ Studio Resource Center view (after the corresponding virtual device is imported).

# Demos

Demo applications and getting started are available from [http://communitystore.microej.com](http://communitystore.microej.com/).

# Going further

Visit [http://developer.microej.com](http://developer.microej.com/) to get more libraries and examples.

The following add-on Java libraries are compatible with this firmware (this list is indicative and not exhaustive):

- Eclasspath elements 1.0 (e.g: streams, collections, lists, properties, queues, stringtokenizer, uri, url)
- Logging 1.0 (java.util.logging)
- REST client 1.0 (ej.rest)
- MQTT client 1.0.2 (org.eclipse.paho.client.mqttv3)
- HTTPS client 1.0 (javax.net.ssl)
- HTTP client	1.1 (java.net)
- SNTP client 1.0 (android.net)
- XML KXML 2-2.3.0 (org.kxml2)
- XML MxParser 1.1.4c (org.xmlpull.mxp)
- JSON 1.0 (org.json.me)

# Changelog

## 1.3.0 (October 27th 2017)
  - Updated to MicroEJ Headless Runtime 1.3.0
  - Added command to set or get shared properties.
  - Add "run" and "show" commands to start and show applications.
  - Use Bootlist 2.0 to customize the boot sequence.
  - Reduced memory consumption of the connectivity manager.
  - Firmware available in the Virtual Device can be extended with new resident applications provided as WPKs.
  - Added a new execute-on-device mode that actually adds the application as a resident application.
  - Increase available BSS size for resident apps from 2048 to 4096.
  - Increase maximum number of resident apps from 5 to 10.
  - Removed automatic execution of the ShieldedPlug server in the simulator.
  - Solved issue with the startup of the simulator that could lead to a black screen and no application execution. 

## 1.2.2 (September 29th 2017)
- Fixed an issue where applications with icons cannot be installed with the Android companion.

## 1.2.1 (July 8th 2017)
- Display application name and version (if available) in the list command
- Fixed an issue with Wadapps console randomly leaving a java.exe hanging consuming CPU

## 1.2.0 (June 28th 2017)
- Fixed issue with DNS not retrying in case of timeout on slow networks
- Support more than 1 parameter to uninstall command.
- Fixed issue with no appplication metadata being stored on the device.
- Fixed issue with command socket server missing the reuseadddress option.

## 1.1.0 (May 16th 2017)

- Updated to MICROEJ-HEADLESS-RUNTIME-1.1
- Fixed issue with NTP not retrying in case of failure
- Added a bootlist management mechanism

## 1.0.0 (March 31th 2017)

- Initial release for MicroEJ Studio 4.1

Firmware YELLOW STM32F746-DISCO (Multi-Sandbox)

Firmware YELLOW STM32F746-DISCO, version: 1.11.3
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Technical Ref.: 8SG7V
Last updated:
7 February 2018
# Overview

A MicroEJ® Firmware is a binary instance of MicroEJ Operating System for a dedicated board.
MicroEJ Studio allows application developers to write Java applications, run them on a virtual (simulated) or real device, and publish them to the MicroEJ Application Store.

The MicroEJ firmware has the capabilities to locally deploy applications created with MicroEJ Studio.

Visit [http://communitystore.microej.com](http://communitystore.microej.com/) for more information (download MicroEJ Studio, virtual device, firmware and demos).

# Features
## Foundations Libraries

This firmware implements the following libraries of MicroEJ 4.1, named MICROEJ-DEVELOPER-RUNTIME-1.3:

- EDC 1.2 (java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.util, java.security)
- BON 1.2 (ej.bon) : all except immortals
- NET 1.1 (java.net): 3 socket max
- SSL 2.0 (javax.net.ssl): 1 secured socket max
- MicroUI 2.0 (ej.microui): support of Display, LEDs, buttons and PNG decoding
- HAL 1.0 (ej.hal)
- ECOM 1.1 (ej.ecom)
- ECOM-COMM 1.1 (ej.ecom-ecomm)

To view this API, check in Help > MicroEJ Resource Center > Javadoc > MICROEJ-DEVELOPER-RUNTIME- x.y. 

## Included Add-on Java Libraries

- MWT 2.1 (ej.mwt)
- Wadapps 1.0 (ej.kf, ej.wadapps)
- Storage 1.0 (ej.wadapps.storage)
- Components 3.1 (ej.components)
- Connectivity Manager 1.1 (android.net)

## Preinstalled MicroEJ Resident Applications

- Browser: a desktop launcher for managing & launching applications.
- Settings: a utility app that dumps platform and firmware settings, and performs factory reset.

# Firmware API Javadoc

Javadoc can be viewed in MicroEJ Studio Resource Center view (after the corresponding virtual device is imported).

# Demos

Demo applications and getting started are available from [http://communitystore.microej.com](http://communitystore.microej.com/).

# Going further

Visit [http://developer.microej.com](http://developer.microej.com/) to get more libraries and examples.

The following add-on Java libraries are compatible with this firmware (this list is indicative and not exhaustive):

- Eclasspath elements 1.0 (e.g: streams, collections, lists, properties, queues, stringtokenizer, uri, url)
- Logging 1.0 (java.util.logging)
- Widget 2.1 (ej.widget, ej.style, ej.transition, ej.color)
- REST client 1.0 (ej.rest)
- MQTT client 1.0.2 (org.eclipse.paho.client.mqttv3)
- HTTPS client 1.0 (javax.net.ssl)
- HTTP client	1.1 (java.net)
- SNTP client 1.0 (android.net)
- XML KXML 2-2.3.0 (org.kxml2)
- XML MxParser 1.1.4c (org.xmlpull.mxp)
- JSON 1.0 (org.json.me)

# Changelog
## 1.11.3 (February 2nd 2018)
  - Fixed an issue with the browser's activity having no ID.
  - Fixed an issue with the default store used by the browser (now using communitystore.microej.com).

## 1.11.2 (November 22nd 2017)
  - Fixed an issue with the parsing of certificates in the PEM format.

## 1.11.1 (November 10th 2017)
  - Fixed an issue with the parsing of certificates in the DER format.

## 1.11.0 (October 28th 2017)
  - Updated to MicroEJ Developer Runtime 1.3.0
  - Added command to set or get shared properties.
  - Add "run" and "show" commands to start and show applications.
  - Add commands to list activities and to show one of them.
  - Use Bootlist 2.0 to customize the boot sequence.
  - Reduced memory consumption of the connectivity manager.
  - Firmware available in the Virtual Device can be extended with new resident applications provided as WPKs.
  - Added a new execute-on-device mode that actually adds the application as a resident application.
  - Increase available BSS size for resident apps from 2048 to 4096.
  - Increase maximum number of resident apps from 5 to 11.
  - Removed automatic execution of the ShieldedPlug server in the simulator.
  - Solved issue with the startup of the simulator that could lead to a black screen and no application execution.   

## 1.10.0 (July 8th 2017)
- Display application name and version (if available) in the list command
- Fixed an issue with Wadapps console randomly leaving a java.exe hanging consuming CPU
- Fixed issue with DNS not retrying in case of timeout on slow networks
- Support more than 1 parameter to uninstall command.
- Fixed issue with command socket server missing the reuseadddress option.

## 1.9.1 (May 16th 2017)

- Fixed issue with NTP not retrying in case of failure

## 1.9.0 (May 6th 2017)

 - Moved to MicroEJ Developer Runtime 1.2.0
 - Updated browser to version 4.0.2
 - Fixed Command Server Socket should have a fallback when connectivity manager service is not available in the firmware
  
## 1.8.0 (January 6th 2017)

  - Add watchdog support in MicroEJ firmware.
  - Add watchdog demo application.
  - Update of Hello demo application.

## 1.7.3 (November 22nd 2016)
  - Artifacts naming scheme has been changed, UIDs have been introduced.
  - The local deployment server can be stopped by the settings page
  - Updated to ej.api:mwt 2.1.6
  - Updated to ej.library.runtime:components 3.1.0
  - Updated to admin.kf.storage 1.2.4
  - Updated to ej.library.wadapps:storage.kf 1.0.6
  - Updated to ej.library.iot:connectivity 1.1.0
  - Updated to ej.library.util:concurrent.executor 1.1.10
  - Updated to ej.wadapps.runtimeapi:wadapps-runtime 1.5.0

## 1.6.0 (May 9th 2016)

- New UI branding
- Fix services retrieval order according to MicroEJ Application Developer's Guide
- Update the browser when wadapps application lifecycle is managed in an other application
- Avoid name collision on the tmp folder used by the Storage service implementation
- Fix owner of a stream open by the Storage service
- Stop an application which declares an Activity but does not take the display after 5s


## 1.5.2 (May 4th 2016)

- Firwmare built on official MicroEJ SDK v4.0.0

### Virtual device

- Naming issue fix
- Stack Trace Decrypter renaming (Stack Trace Reader)

## 1.5.1 (Apr. 18th 2016)

### Browser

- Antialiased hypotenuse line on top right triangle in the application detail view

### Settings

- "Sign out" button added

### Others 

- Hard float support for Cortex-M architectures
- MicroEJ engine optimizations
- Exception stack trace format changed. Allow user to decrypt stack trace of application 
  pushed in local deploy mode

## 1.3.1 (Feb. 23th 2016)

### Browser

- Login page hint message "Your email address" changed to "Your username"
- More explicit message when a wrong store address is set and trying to connect
- Home page button removed from the Apps list view

### Settings

- Home page button moved to the left
- Uninstall applications button label changed to "Uninstall all Apps"

## 1.3.0 (Feb. 18th 2016)

### Bugs fixes

- System app could not be deleted
- Wrong behaviour of the password text field

### Browser

- The 'Alpha' banner is now removed but could be activated by editing the "/usr/storage/features/WADAPPSBrowser/client.properties" 
  file (set 'isalpha' property to true or false).

### Settings

- A password is now requested when the user wants to make a reset factory (default password: MicroEJ2016).
  The password could be edited in the "/usr/storage/features/WADAPPSSettings/client.properties" file

## 1.2.1 (Feb. 11th 2016)

### Bugs fixes

- Browser blocks when starting an app that only declares a background service
- Platform crash when starting or exiting an application

## 1.2.0 (Feb. 4th 2016)

### APIs

- Added HAL 1.0

### Browser

- Local store (browse and download of applications from local storage)
- Static cache for available applications from the store
- Code cache for started applications
- Application download progress monitor

## Settings

- New entry to select store URL
- Switch between internet or local store

### Bugs fixes

- Thread leak when network connection is not up
- InvalidFormatException when starting an application
- Application sometimes not correctly stopped
- Infinite loop when downloading an application


## 1.1.1 (Jan. 7th 2016)

### Browser

- Speed up boot time
- Reduced footprint (images split)
- Added a running indicator when starting an App
- Fix login/password double click issue
- Fix download of the same App before and after a Reset Factory

## 1.1.0 (Dec. 9th 2015)
### APIs

- Update MWT 2.0 to 2.1
- Add Connectivity Manager library (android.net)
- Add SSL client (javax.net.ssl)

### Browser

- Network connection indicator
- Date synchronization on SNTP server (ntp.ubuntu.com by default)

### Bugs fixes

- Reset factory freezes
- TCP/IP blocking connections

## 1.0.0 (Nov. 3rd 2015)

- Initial release for MicroEJ Studio 4.0.0alpha

Firmware Thermocloud FDRM-K28F (Mono-Sandbox)

Firmware Thermocloud FDRM-K28F, version: 1.2.1
FIRMWARE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Last updated:
7 February 2018

Using Foundation Libraries APIs (Standalone)

This project gathers all the basic examples of the foundation libraries.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
23 January 2018
# Overview
This project gathers some basic examples of the foundation libraries. Those examples are developed as standalone applications and as such can be run by following the associated instructions (see **README.md** file of each example).

Note that to run them on board:

* If you are using MicroEJ SDK:
 * You need a supported board (see http://developer.microej.com/index.php?resource=JPF for a list of supported boards using MicroEJ SDK evaluation version)
 * And the associated platform binary .jpf file (retrieve it from the previous link and import it into MicroEJ SDK)

* If you are using MicroEJ Studio:
 * You need to convert them from standalone applications to sandboxed applications.
 * Follow the [How-To convert a standalone app into a sandboxed app](https://github.com/MicroEJ/How-To/tree/master/StandaloneToSandboxed) guide.

# Details
## Core
### EDC
EDC contains the minimal standard runtime environment for embedded devices.

**Available Examples**:
* [com.microej.example.foundation.edc.helloworld](com.microej.example.foundation.edc.helloworld): Prints Hello World on the standard output stream.

### BON
BON focuses on devices with non-volatile and volatile memories. This library allows to fully control memory usage and start-up sequences on devices with limited memory resources.

**Available Examples**:

* [com.microej.example.foundation.bon.immortals](com.microej.example.foundation.bon.immortals): Shows how to manipulate the immortals.
* [com.microej.example.foundation.bon.immutables](com.microej.example.foundation.bon.immutables): Shows how to manipulate the immutables.


## Communicate with other hardwares

### ECOM
ECOM libraries provides a standard communication over UART.

**Available Examples**:
* [com.microej.example.foundation.ecom.hotplug](com.microej.example.foundation.ecom.hotplug): Shows how to listen on plug/unplug of dynamic ComConnections and shows their properties.
* [com.microej.example.foundation.ecom.writer](com.microej.example.foundation.ecom.writer): Shows how to write some bytes to a CommConnection.
* [com.microej.example.foundation.ecom.reader](com.microej.example.foundation.ecom.reader): Shows how to read some bytes from a CommConnection.

### HAL
HAL libraries presents an abstraction of the communication with the hardware.

**Available Examples**:
* [com.microej.example.foundation.hal.gpio](com.microej.example.foundation.hal.gpio): Shows how to use gpio.


## Design a user interface

### MicroUI
MicroUI provides the minimal cornerstone for quick construction of advanced, portable and user-friendly applications for a wide and heterogeneous range of devices with just-what-is-needed resources.

**Available Examples**:
* [com.microej.example.foundation.microui.antialiased](com.microej.example.foundation.microui.antialiased): Shows how to use anti-aliased shapes.
* [com.microej.example.foundation.microui.font](com.microej.example.foundation.microui.font): Shows how to create and use a font.
* [com.microej.example.foundation.microui.helloworld](com.microej.example.foundation.microui.helloworld): Shows how to print a string on a display.
* [com.microej.example.foundation.microui.image](com.microej.example.foundation.microui.image): Shows how to create and use images.
* [com.microej.example.foundation.microui.input](com.microej.example.foundation.microui.input): Shows how to listen the MicroUI input events.
* [com.microej.example.foundation.microui.led](com.microej.example.foundation.microui.led): Shows how to use the LEDs.
* [com.microej.example.foundation.microui.movableimage](com.microej.example.foundation.microui.movableimage): Shows how to create and use a movable image.
* [com.microej.example.foundation.microui.mvc](com.microej.example.foundation.microui.mvc): Shows how to create and use a MVC design pattern.
* [com.microej.example.foundation.microui.out](com.microej.example.foundation.microui.out): Shows how to redirect the standard SystemOut to the display.
* [com.microej.example.foundation.microui.transform](com.microej.example.foundation.microui.transform): Shows how to use MicroUI transform.

### MWT
MWT is a widget toolkit designed for a wide range of devices, including embedded devices with limited processing power.

**Available Examples**:
* [com.microej.example.foundation.mwt.helloworld](com.microej.example.foundation.mwt.helloworld): Shows a simple hello world using MWT.
* [com.microej.example.foundation.mwt.mvc](com.microej.example.foundation.mwt.mvc): Shows how to create and use a MVC design pattern.

### NLS
NLS provides tools to use localized strings.

**Available Examples**:
* [com.microej.example.foundation.nls.helloworld](com.microej.example.foundation.nls.helloworld): Shows how to print a localized string on a display.


## Communicate with the world

### NET
NET is a lightweight Java library dedicated to networking applications. It supports stream (TCP/IP) and datagram (UDP) socket connection APIs.

**Available Examples**:
* [com.microej.example.foundation.net.echo](com.microej.example.foundation.net.echo): Shows a simple echo server.
* [com.microej.example.foundation.net.helloworld](com.microej.example.foundation.net.helloworld): Shows a simple helloworld using NET.

## Store data

### FS
FS is a library to access multiple storage devices (in and out data streams) through a simple file system API.

**Available Examples**:
* [com.microej.example.foundation.fs.helloworld](com.microej.example.foundation.fs.helloworld): Creates a list of folders, adds some files and deletes them all.

Dependencies Discoverer

Tool to list the binary dependencies (class, interfaces, methods, fields) of a piece of code.
TOOL for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
23 January 2018
# Overview
This project is a tool to list all dependencies of a Java code and to discover the missing dependencies of this Java code against MicroEJ OS.

# Usage
## Online
1. In your MicroEJ or Eclipse workspace, import this project and drop all your JARs into [classpath](classpath/) folder.
2. Right click on **DependencyDiscoverer** project.
3. Select **Run As -> Java Application**.
4. Double click on **DependencyDiscoverer**.
5. Right click on **DependencyDiscoverer** project.
6. Select Refresh
7. A **result.txt** file will be generated at the root of the project.

## Offline
1. Drop all your JARs into [classpath](classpath/) folder.
2. Get a MicroEJ offline repository (zip archive). For example repository 4.0 from [developer.microej.com/4.0/ivy](http://developer.microej.com/4.0/ivy).
3. Unzip MicroEJ repository into [againstClasspath](againstClasspath/) folder.
4. Set `OFFLINE` variable in [DependencyDiscovererOptions.java](src/com/microej/tool/dependencydiscoverer/DependencyDiscovererOptions.java) to `true`.
5. Right click on **DependencyDiscoverer** project.
6. Select **Run As -> Java Application**.
7. Double click on **DependencyDiscoverer**.
8. Right click on **DependencyDiscoverer** project.
9. Select Refresh
10. A **result.txt** file will be generated at the root of the project.

## Adding additional MicroEJ libraries.
You may have some additional MicroEJ libraries, to include them, drop them into [againstClasspath](againstClasspath) folder.

## Interpreting the results.
Open the **result.txt** file with a text editor. Each line contains a missing dependency. If the file is empty, your library is compatible with MicroEJ OS!

Each line may be :
  * A **class** described as `package.of.class.Class`.
  * An **inner class** described as `package.of.class.Class$InnerClassName` (InnerClassName is a number if it is an anonymous class).
  * A **field** described as `package.of.class.Class.fieldName`.
  * A **constructor** described as `package.of.class.Class.<init>({parameters types see under})V`.
  * A **method** described as `package.of.class.Class.methodName({parameters types see under}){return type}`.
  
The types may be:
  * **B**: byte
  * **C**: char
  * **D**: double
  * **F**: float
  * **I**: int
  * **J**: long
  * **L{ClassName};**: reference to a {ClassName} instance
  * **S**: short
  * **V**: void
  * **Z**: boolean
  * **[{type}**: array of {type} (type may be an array it self)

## Porting a library to MicroEJ OS
To port your library with missing dependencies to MicroEJ OS, the following steps shall be taken:
1. Contact MicroEJ support, some common libraries are available on demand. 
2. Refactor your libraries to avoid those dependencies.

# Requirements
* MicroEJ Studio 4.0 or later, or MicroEJ SDK 4.0 or later, or Eclipse 4.2 or later.
* A JRE 7 or higher.

# Dependencies
None.

# Source
N/A

# Restrictions
None.

How-to use Proguard in MicroEJ

This document explains how to use Proguard (Java obfuscation and optimization) in your application.
HOWTO for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
23 January 2018
# Overview
This document explains how to use <a href="https://www.guardsquare.com/en/proguard">Proguard</a> in your application.
ProGuard is an open source command-line tool that shrinks, optimizes and obfuscates Java code. It is able to optimize bytecode as well as detect and remove unused instructions. For example, Proguard can be used to remove all log message in binary production.
MicroEJ uses proguard version 5.1.

# Requirements
* MicroEJ Studio or SDK 4.1.1 or later

# Usage
## ADD THE DEPENDENCIES
1. Open the `module.ivy`.
2. Copy following code inside `<ea:build organisation=...></ea:build>` :
```
<ea:plugin organisation="com.is2t.easyant.plugins" module="obf-proguard" revision="+"/>
```

## ADD PROGUARD RULES
1.  **File** â **New** â **File**
    * File name : **module.pro** â you must create the file with this name.
2. Copy following code inside this file
```
    -assumenosideeffects class java.util.logging.Logger {
    public static java.util.logging.Logger getLogger(...);   
    public static Logger getLogger(...);
    public void log(...);
    public void severe(...);
    public void config(...);
    public void fine(...);
    public void finer(...);
    public void finest(...);
    public void info(...);
    public void warning(...);
    }
```
An example file is available @[module.pro](module.pro).

## BUILD EASYANT
1. Click on **Build selected EasyAnt projects**.
2. Verify **Proguard** is call during the build. Open **EasyAnt Console** and search  following lines :  
```
obf-proguard:obfuscate:
     [move] Moving 1 file to C:\Users\mmartins\Documents\Work\SupportWorkspace\a\target~\build-env
     [copy] Copying 1 file to C:\Users\mmartins\Documents\Work\SupportWorkspace\a\target~\proguard
[proguard] ProGuard, version 5.1
 ```

## CHECKING
We compare the bytecode. You can find the **.jar** of your application in folder **target~/artifacts**.

**Example Java**
```
public Main() {
    System.out.println("1");
	LOGGER.severe("severe call");
	System.out.println("2");
	LOGGER.config("config call");
	System.out.println("3");
}
```

**Bytecode generated**
* We can see than **severe(...) and config(...)** methods are called (L.25 & L.42).
```
14  ldc <String "1"> [1]
16  invokevirtual java.io.PrintStream.println(java.lang.String) : void [17]
19  aload_1
20  getfield com.mycompany.aA.a : java.util.logging.Logger [15]
23  ldc <String "severe call"> [6]
25  invokevirtual java.util.logging.Logger.severe(java.lang.String): void [23]
28  getstatic java.lang.System.out : java.io.PrintStream [16]
31  ldc <String "2"> [2]
33  invokevirtual java.io.PrintStream.println(java.lang.String) : void [17]
36  aload_1
37  getfield com.mycompany.aA.a : java.util.logging.Logger [15]
40  ldc <String "config cal"> [7]
42  invokevirtual java.util.logging.Logger.config(java.lang.String) : void [23]
45  getstatic java.lang.System.out : java.io.PrintStream [16]
48  ldc <String "3"> [3]
```
**Proguard**
* After Proguard processing, we can see than **severe(...) and config(...)** are removed.
```
5  ldc <String "1"> [1]
7  invokevirtual java.io.PrintStream.println(java.lang.String) : void [13]
10  getstatic java.lang.System.out : java.io.PrintStream [12]
13  ldc <String "2"> [2]
15  invokevirtual java.io.PrintStream.println(java.lang.String) : void [13]
18  getstatic java.lang.System.out : java.io.PrintStream [12]
21  ldc <String "3"> [3]
23  invokevirtual java.io.PrintStream.println(java.lang.String) : void [13]
```

* Java code
```
public Main() {
    System.out.println("1");
	System.out.println("2");
	System.out.println("3");
}

S7G2DK Platform (Single-App, GCC, ThreadX)

The Single-App Platform for S7G2DK board.
JPF_RENESAS for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-S7G2DK-SGT-L58EE
Last updated:
17 January 2018

S7G2DK Platform (Multi-App, GCC, ThreadX)

The Multi-App Platform for S7G2DK board.
JPF_RENESAS for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-S7G2DK-MGT-LW9OX
Last updated:
17 January 2018

GR-PEACH Platform (Single-App, GCC, Mbed)

The Single-App Platform for GR-PEACH board.
JPF_RENESAS for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-GRPEACH-SGM-ADSR3
Last updated:
17 January 2018

GR-PEACH Platform (Multi-App, GCC, Mbed)

The Multi-App Platform for GR-PEACH board.
JPF_RENESAS for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-GRPEACH-MGM-EWCPC
Last updated:
17 January 2018

FRDM-KL46Z Platform (Single-App, IAR, Baremetal)

The Single-App Platform for FRDM-KL46Z board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-FRDMKL46Z-SIB-MZN82
Last updated:
17 January 2018

FRDM-KL46Z Platform (Tiny, IAR, Baremetal)

The Tiny Platform for FRDM-KL46Z board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-FRDMKL46Z-TIB-XXBWV
Last updated:
17 January 2018

OM13092 Platform (Tiny, IAR, FreeRTOS)

The Tiny Platform for OM13092 board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-OM13092-TIF-CIBBH
Last updated:
16 January 2018

OM13092 Platform (Single-App, IAR, FreeRTOS)

The Single-App Platform for OM13092 board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-OM13092-SIF-CIBBH
Last updated:
16 January 2018

OM13092 Platform (Multi-App, IAR, FreeRTOS)

The Multi-App Platform for OM13092 board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-OM13092-MIF-CIBBH
Last updated:
16 January 2018

Build Your First MicroEJ Firmware

An example on how-to build a minimal MicroEJ Multi-App Firmware.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
5 September 2017
<!--
	Markdown
	Copyright 2017 IS2T. All rights reserved.
	Use of this source code is subject to license terms.
-->

# Overview

This repository provides an example of a minimal MicroEJ Multi-App Firmware that features:
* a default implementation of the Wadapps framework.
* an administration server for managing the applications lifecycle (INSTALL, START, STOP, UNINSTALL).
* the exposure of a set of default APIs for applications (`EDC` + a communication channel - `NET` or `ECOM-COMM`).
* the virtual device configuration including Applications Local Deployment and Wadapps Administration Console tools.

The minimal Multi-App Firmware is declined into two distinct projects, depending on the communication channel used by the administration server:
* `com.microej.example.firmware.minimal.comm`: communication over TCP/IP network (`NET` API).
* `com.microej.example.firmware.minimal.net`: communication over a serial link (`ECOM-COMM` API).

The minimal Multi-App Firmware is headless, meaning it does not expose nor use user interfaces (such as GUI, buttons, ...). It is an entry point for developers that want, in only few steps, build their first Multi-App Firmware and test deploying an application on it.

# Requirements

* MicroEJ SDK 4.1.1 or higher.
* A MicroEJ 4.1 Multi-App platform (binary) imported into the MicroEJ repository. Please consult (<http://developer.microej.com>) for a list available evaluation platforms.
* An activated Evaluation or Production license.
* For `NET` example, a board connected to the same sub-network than the PC.
* For `COMM` example, a board with a USB-TTL cable plugged to the PC and connected to RX/TX pins.

# Dependencies

All dependencies are retrieved from _MicroEJ Central Repository 4.1_ (<http://developer.microej.com/ivy/4.1/>) using Apache Ivy. Those dependencies include:
* A set of foundation libraries, required for any Multi-App Firmware (such as `EDC` and `KF` libraries).
* A foundation library specific to each project, depending on the administration server back-end (`NET` or `ECOM-COMM`).
* Wadapps add-on libraries (_Wadapps Application Framework_, _Storage_ back-ends, ...).
* A firmware bootstrap library, that simplifies firmware development.
* A set of APIs exposed to applications.
* A set of Resident Applications, that are linked together with the Kernel to produce the Multi-App Firmware.
* A set of Virtual Device tools, such as Local Deployment and Wadapps Administration Console.

# Usage

## Import Firmware Projects

Start MicroEJ SDK on an empty workspace and clone this Git repository (`File > Import > Git > Projects From Git`).

At the end of the process, two projects have been imported:
  * `com.microej.example.firmware.minimal.net`
  * `com.microej.example.firmware.minimal.comm`

In the rest of the document, the term `[backend]` has to be replaced with either `net` or `comm` depending on the chosen firmware project.

## Select and Configure the Firmware

In case of the `net` back-end, the project is already configured.

In case of the `comm` back-end, the COM port on which the administration server will be connected must be set. Please consult the documentation of the selected platform to get the list of available platform COM ports. Edit `com.microej.example.firmware.minimal.comm/build/common.properties` and update with the appropriate value:

    ej.ecom.com.0.port=[PLATFORM_COM_VALUE]

## Setup a Platform

Before building the firmware, a target platform must be configured in the MicroEJ workspace.

* Go to `Window > Preferences > MicroEJ > Platforms` and put the mouse pointer over the desired platform.
* A tooltip with some information should appear. Press `F2` to show more information.
* Select the the platform _Path_ and copy it to the clipboard.
* Go to `Window > Preferences > Ant > Runtime` and select the `Properties` tab.
* Click on `Add Property...` button and set a new property named `platform-loader.target.platform.dir` with the platform path pasted from the clipboard.

There are other ways to setup the input platform for building the firmware. Please consult the _Multi-App Firmware Developer's Guide_ for more informations.

## Build the Firmware

* Right-click on the chosen firmware project and select `Build With EasyAnt`. This may take several minutes.

After successful build, the firmware artifacts are available in firmware project build folder `target~/artifacts` and contains:
* the firmware executable file (`minimal.[backend].out`).
* the corresponding virtual device (`minimal.[backend].jpf`).
* the firmware package for the MicroEJ Store (`minimal.[backend].kpk`)

## Program the Firmware on the Device

The procedure to program a firmware is platform specific. Please refer to the platform documentation for the detailed firmware flashing procedure.

To flash the firmware, open `Run Configurations` menu, then create a `MicroEJ Tool` run configuration named `Flash Firmware`.
* In `Execution` tab:
	* In `Target Platform`, select the platform used to build the firmware,
	* In `Settings`, select `Program with [Flasher Tool]` (e.g `ST Link` or `Segger J-Link`),
	* Set `Output Folder` to firmware project folder.
* In `Configuration` tab:
	* Set the application binary file to `target~/artifacts/minimal-[backend].out` file.
* Click on `Run` and wait until the flashing procedure is terminated.

# Develop and Deploy an Application

Prior to develop an application, the virtual device has to be imported:

* Go to `File > Import > MicroEJ > Platforms, Virtual Devices and Architectures`
* Browse the file `\target~\artifacts\minimal.[backend].jpf` and put the mouse pointer over the desired platform.

Note that the application development can be done in a dedicated MicroEJ Studio instance (the virtual device can be freely distributed).

To create and deploy a basic application, please refer to the _Sandboxed Application Developer's Guide_ (sections _Background Service Application_ and _Wadapps Administration Console_).


# Additional Resources

## Developer Web Site

MicroEJ developer web site (<http://developer.microej.com>) is the entry point to find examples, tools and documentation.

Specifically, foundation libraries javadoc can be found at <http://developer.microej.com/javadoc/microej_4.1/foundation/>, and addon libraries (such as _Wadapps Application Framework_) javadoc can be found at <http://developer.microej.com/javadoc/microej_4.1/addons/>.

## License

Examples are subject to license agreement. See `LICENSE.txt` in firmware projects.

## Change Log

Please consult `CHANGELOG.md` in firmware projects for the firmware content versioning.

### 1.0.0 (June 1st, 2017)

Features:
* Initial public revision for MicroEJ 4.1.

STM32F746-DISCO Platform (Multi-app, Keil, FreeRTOS)

The Multi-app Platform for the STM32F746-DISCO board.
JPF_ST for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-STM32F746DISCO-MKF-846SI
Last updated:
5 September 2017

STM32F746-DISCO Platform (Single-app, Keil, FreeRTOS)

The Single-app Platform for the STM32F746-DISCO board.
JPF_ST for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-STM32F746DISCO-SKF-K1AU3
Last updated:
5 September 2017

STM32F412G-DISCO Platform Reference Implementation (Single-app, Keil, FreeRTOS, Developer Preview)

PREVIEW
The Platform Reference Implementation for the STM32F412G-DISCO board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-STM32F412GDISCO-SKF-DV1W7
Last updated:
30 August 2017
<!--
	Copyright 2016 IS2T. All rights reserved.
	For demonstration purpose only
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Build MicroEJ Platform Reference Implementation for STM32F412G-DISCO

## Delivery 

Folders listing:
 * `platformArchitecture`: contains MicroEJ Platform Architecture and Platform Architecture Extensions.
 * `platformSource`: contains a zip file with the MicroEJ Platform Reference Implementation sources.

## Prerequisites

 * Java7 or higher
 * MicroEJ SDK 4.0 or later
 * Keil uVision 5.18

## Import MicroEJ Platform Architecture (Platform Architecture and MicroEJ Architecture Extensions)

 * Open MicroEJ SDK. 
 * Click on `Window > Preferences > MicroEJ`. If no MicroEJ SDK repository is set, select a file system directory to store the MicroEJ SDK repository with the `Browse` button. 
 * Go to `MicroEJ > Architectures` and click on `Import...`.
 * Select `Select directory` and set the path of the `platformsArchitecture` folder of the delivery. Select all elements and check `I agree and accept...` checkbox. 
 * Click on the `Finish` button. The MicroEJ platforms architectures are now imported in the MicroEJ SDK repository. The menu `MicroEJ > Architectures` has been updated.

## Import MicroEJ Platform Reference Implementation Sources

 * Open MicroEJ SDK. 
 * Click on `File > Import... > MicroEJ > Examples and Platform Reference Implementations`
 * Click on `Next`
 * Check the radio button `Select file`
 * Select the MicroEJ Platform Reference Implementation sources zip file with the `Browse` button. 
 * New items appear in the list. Select all items and click on `Finish`. 

The MicroEJ Platform Reference Implementation sources are now imported in the MicroEJ SDK repository.

## (Optional) Install additional plugins

  * Open MicroEJ SDK.
  * Click on `Help > Install New Software...`
  * Make sure the box `Group items by category` is unchecked
  * Click the `Add...` and then select `Archive...`
  * Select the desired plugin in the `plugins` folder of the MicroEJ Platform Reference Implementation
  * New items appear in the software list, select the plugins you want to install and finish the operation.
  
The MicroEJ SDK will have to restart to finalize the installation.

## Build MicroEJ Platform Reference Implementation 

 * Click on `File > New > MicroEJ > Platform`.
 * Select your MicroEJ Platform Architecture with `Browse` button. Once selected, some platform reference implementation appear in a list.
 * Select `Platform > STM32F412G-DISCO > SingleApp FreeRTOS [DV1W7-1.1.0]` platform reference implementation.
 * Click on `Next`. 
 * Enter some platform reference implementation meta data 
 * Click on `Finish` button. Some projects have been added in your MicroEJ SDK workspace.
 * A new documentation has been opened, follow the new instructions.

JUnit Example (Sandboxed)

This project gathers simple sandboxed applications tested with JUnit.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Last updated:
29 August 2017
# Overview

This project gathers simple sandboxed applications tested with JUnit.

# Requirements

* MicroEJ Studio or SDK 4.1 or later

# Usage

Each subfolder contains a distinct application.

# Changes

* See the change log file [CHANGELOG.md](CHANGELOG.md) located at the root of this repository.

# License

* See the license file [LICENSE.txt](LICENSE.txt) located at the root of this repository.

Resources in External MCU Memories

Example that shows how to store resources in external non-byte addressable memories.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
29 August 2017
# Overview
The following project illustrates the MicroEJ external resource loader feature (used for resources stored on non-byte-addressable memories).

## ExternalImages
This example displays images supposed to be in the external resources.

### Requirements
- MicroEJ 4.1 or later.
- Java platform with (at least) EDC-1.2.3, MICROUI-2.0.6, BON-1.2.4 and containing the module `External Resources Loader`.

### Project structure
- `src/main/java`
     - Java sources
- `src/main/resources`
     - Images supposed to be in the external resources.
- `src/main/c`
    - C sources

## Running the application on simulator
Using MicroEJ, you may deploy and run your application on an embedded target (if the hardware and related BSP are available) or you may run your application on a Java simulator mimicking the behavior of your embedded target.

## Building for the simulator

* Select **Run > Run Configurations...** menu item
* Select **MicroEJ Application** group
* Create a new configuration:
    * In **Project** field, Click the **Browse** button and select **Example-ExternalResourceLoader**
	* In **Execution** tab
		* In **Target** frame
			* Click the **Browse** button next to the JPF Field and select your platform
		* In **Execution** frame
			* Notice that "Execute on SimJPF" radio button option is checked
	* Click on "Run"
	
## Running the application on target

### Building for the target

* Select **Run > Run Configurations...** menu item
* Select **MicroEJ Application** group
* Create a new configuration:
    * In **Project** field, Click the **Browse** button and select **Example-ExternalResourceLoader**
	* In **Execution** tab
		* In **Target** frame
			* Click the **Browse** button next to the JPF Field and select your platform
		* In **Execution** frame
			* Notice that "Execute on EmbJPF" radio button option is checked
	* Click on "Run"

### Opening the generated C project (BSP specific)
* From the **Project Explorer** view
	* Navigate to the [**-bsp/Project/MicroEJ/MDK-ARM](**-bsp/Project/MicroEJ/MDK-ARM) folder
	* Double-click on the [Project.uvproj](C**-bsp/Project/MicroEJ/MDK-ARM/Project.uvproj) file (this will open the BSP project in the MicroVision IDE)

### Linking (BSP specific)
* From the MicroVision IDE
	* Select **Project > Build Target** menu item (or press F7 keyboard shortcut)

### Flashing the board (BSP specific)
* Connect your board
* Select **Flash > Download** menu item (or press F8 keyboard shortcut).

## LLEXT implementations

### LLEXT_static_array.c
This file should be part of a MICROEJ -bsp project and is the low level driver for the external resource module.
This implementation simply stores the images in a static array (as PNG encoded).
You can also use decoded images (bitmap) generated by the image generator in MicroEJ.

## Changes
- First release: ExternalImages example and LLEXT_static_array.c.

## License
See the license file `LICENSE.md` located at the root of this repository.

Examples Eclasspath

This project gather all the examples of eclasspath.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
29 August 2017
# Overview

This project gather all the examples of eclasspath. Eclasspath contains Java runtime libraries.

Note that to run them on board:

* If you are using MicroEJ SDK:
 * You need a supported board (see http://developer.microej.com/index.php?resource=JPF for a list of supported boards using MicroEJ SDK evaluation version)
 * And the associated platform binary .jpf file (retrieve it from the previous link and import it into MicroEJ SDK)

* If you are using MicroEJ Studio:
 * You need to convert them from standalone applications to sandboxed applications.
 * Follow the [How-To convert a standalone app into a sandboxed app](https://github.com/MicroEJ/How-To/tree/master/StandaloneToSandboxed) guide.
 
# Details
## logging
**Available Examples**:
* [com.microej.examples.eclasspath.logging](com.microej.examples.eclasspath.logging) : Writes in the logger.

Using SNI and SP Libraries API (Standalone)

This repository contains examples showing how to enable communication between programs written in C and programs written in Java using MicroEJ APIs.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
29 August 2017
[](Markdown)
[](Copyright 2016 IS2T. All rights reserved.)
[](IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.)
# Overview

Although MicroEJ lets you leverage Java in an embedded context, there are still some cases where your Java threads need to synchronize and exchange data with OS tasks written in C/C++.

This repository contains examples showing how to enable communication between programs written in C and programs written in Java using MicroEJ APIs.

## Available examples

For calling C functions from a Java class, MicroEJ provides the SNI API. The following examples illustrate how to use this API :
* [CallingCFromJava](/CallingCFromJava) provides an example of invocation of a C function from a Java method
* [CallingCFromJava](/CallingCFromJavaMock) is a helper project required in order to be able to run the Java application on simulator

The SNI library also provides APIs for tasks/threads synchronisation via function calls and callbacks.

For data exchange issues between tasks/threads, MicroEJ provides a few options:
* Shielded Plug API (suitable for sharing structured data, with built-in wait/release synchronisation APIs)
* Immortals API and SNI API (suitable for sharing access to raw data, but you need to provide your own synchronisation mechanism)

The following examples, based on the consumer/producer problem, illustrate how to use those APIs :

* [Producer Consumer with ShieldedPlug](/ProducerConsumerUsingShieldedPlug) using Shielded Plug API as the delivery mechanism
* [Producer Consumer with SNI and Immortals](/ProducerConsumerUsingQueues) using SNI and Immortals APIs to wrap the native FreeRTOS message queue API as the underlying delivery mechanism

Each example comes with a launch configuration. These launch configurations require that the target platform (common to each configuration) is built.

# Building the Java Platform (JPF)

We need to generate and build a Java Platform (JPF), i.e. the set of object files and libraries required to execute Java code on the target platform linked by an executable C program.

The following assumes that you have downloaded and imported the STM32F646-DISCO platform from [MicroEJ SDK Getting Started](http://developer.microej.com/getting-startetd-sdk.html) web page.

### Creation

* Select **File > New > Other... > MicroEJ > Platform** menu item
	* Click **Browse** button next to the **Architecture** field and select **STMicroElectronics STM32F7J ARMCC**
	* Check the **Create from a platform reference implementation** option
		* Select **STM32F746-Disco > Standalone**
	* Click **Next**
		* Set the name field to "**SNI**"
		* Set the version field to "**1.0.0**"
	* Click **Finish**. This will lead to the generation of a few projects in our workspace :
		* [STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-bsp](STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-bsp)
		* [STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-configuration](STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-configuration)
		* [STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-fp](STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-fp)

### Build
* From the **Overview** tab of the generated [full.platform](/STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-configuration/full.platform) file
	* Click on the **Build platform** hyperlink. This will generate the following project :
		* [STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-1.0.0](STM32F746GDISCO-SNI-CM7hardfp_ARMCC5-1.0.0)


## API Selection Criteria

Here are a few things to consider when choosing between Shielded Plug and an SNI and Immortals based solution

* Performance
	* Generally speaking, Shielded Plug (SP for short) will copy data from/to a database block and will therefore take more processing time and memory than an SNI-based solution relying on a shared memory area with less data copying.
	* SP is more suitable for asynchronous (post) processing of published data

* Data Integrity
	* Given that with SP there is no buffering of data, it makes it more suitable for sampling scenarios where losing a value once in a while is not critical .

* API convenience
	* SP requires that you describe your data in an xml based configuration file.
	* However, the SP synchronization API is quite simple
	* Using SNI and Immortals, it is easier to pass data directly to/from C native functions

In summary, for simple use cases, Shielded Plug shall suffice, but for more intensive and more constrained environments, SNI and Immortals may be a better fit.

## Additional references

### B-ON Library Specification

Among other things, the **Beyond Profile Specification** document contains detailed information on:

* sharing memory areas between Java and C/C++ using **immortal objects**

**immortal objects** : such objects are never garbage collected and keep the same physical memory location forever. This makes them useful for specifying shared memory areas between C and Java.

The document can be downloaded from [www.e-s-r.net/specifications/index.html](www.e-s-r.net/specifications/index.html)

### SNI Library Specification

The **Simple Native Interface for GreenThread Context Profile Specification** document contains detailed information on :

* how to map Java primitive types to portable C types for methods/functions parameters and return types
* naming conventions for C functions implementing Java SNI native implementations
	* these have to be followed to generate valid linker configuration files
* sharing memory areas between Java and C/C++ using **immortal objects**
* controlling (as in suspend and resume) Java Thread execution from C code

The document can be downloaded from [www.e-s-r.net/specifications/index.html](www.e-s-r.net/specifications/index.html)
	
### Shielded Plug Library Specification

The **Shielded Plug Profile Specification** document contains detailed information on :

* the concepts underlying the Shielded Plug API
* how to map Java primitive types to portable C types for methods/functions parameters and return types
* how to create dedicated readers/writers that can translate Shielded Plug Blocks into Java Objects
* the reference API for both C and Java languages

The document can be downloaded from [www.e-s-r.net/specifications/index.html](www.e-s-r.net/specifications/index.html)
	
### Simulation

The **Simulation** section of the **Device Developer's Guide** document contains useful info for :

* creating Java mocks simulating native code using the same naming conventions as SNI
* using the Hardware In the Loop (HIL) engine as a replacement for the SNI/GreenThread interface used on target environments

To access the document from MicroEJ:

* Select **Help > MicroEJ Resource Center** menu item
	* Select **Manual > Device Developer's Guide**
	
# Requirements

* MicroEJ SDK 4.0.0 or later
* Keil MicroVision v5.0 or later

Components Hello World (Standalone)

This project illustrates the ej.components library.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
29 August 2017
# Overview
This project illustrates the _ej.library.runtime.components_ library.
It contains a service implementation and two bundles: the service publisher and the service user.

## Project structure
- [com.microej.example.components.helloworld.service](com.microej.example.components.helloworld.service) 
	- [[â¦]/Hello.java](com.microej.example.components.helloworld.service/src/main/java/com/microej/example/components/helloworld/service/Hello.java): the interface defining the service.

- [com.microej.example.components.helloworld.publisher](com.microej.example.components.helloworld.publisher)
	- [[â¦]/HelloPrint.java](com.microej.example.components.helloworld.publisher/src/main/java/com/microej/example/components/helloworld/publisher/HelloPrint.java) : an implementation of the service.
	- [[â¦]/HelloPublisherBundle.java](com.microej.example.components.helloworld.publisher/src/main/java/com/microej/example/components/helloworld/publisher/HelloPublisherBundle.java) : the bundle publishing the service implementation.
	
- [com.microej.example.components.helloworld.user](com.microej.example.components.helloworld.user)
	- [[â¦]/SayHelloToEveryone.java](com.microej.example.components.helloworld.user/src/main/java/com/microej/example/components/helloworld/user/SayHelloToEveryone.java) : an application that uses the service.
	- [[â¦]/HelloUserBundle.java](com.microej.example.components.helloworld.user/src/main/java/com/microej/example/components/helloworld/user/HelloUserBundle.java) : the bundle retrieving the service.
	
- [com.microej.example.components.helloworld](com.microej.example.components.helloworld) : the startup (main) of the example.
	- [src/main/java](com.microej.example.components.helloworld/src/main/java) : Java sources.
	- [src/main/resources](com.microej.example.components.helloworld/src/main/resources) : the properties and bundles list.

  
## Usage
See [README.md](com.microej.example.components.helloworld/README.md).

# Requirements
See [README.md](com.microej.example.components.helloworld/README.md).

# Source
See [README.md](com.microej.example.components.helloworld/README.md).

# Restrictions
See [README.md](com.microej.example.components.helloworld/README.md).

# Changes
See [CHANGELOG.md](CHANGELOG.md).

## License
See [LICENSE.md](LICENSE.md).

Examples Custom Events for MicroUI

This project illustrate how to propagate custom events from the hardware to MicroUI.
EXAMPLE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
29 August 2017
# Overview
This example illustrates how to propagate custom events from the hardware to MicroUI. MicroUI already supports generic events like touch, button and joystick.
Hardware events (e.g. sensors movement) can be used for specific display action upon occurrence.

See the Device Developer's Guide at section **Inputs** (13.5) for more information.

# Usage
1. Create a platform with at least the UI module.
2. Before building this platform, some configuration is required. In the **xxx-configuration project** in the **microui/microui.xml** file, add the following xml element as the first eventgenerator.

        <eventgenerator name="CUSTOM" class="com.microej.example.customevent.CustomEventGenerator"/>

3. Build your platform.
4. In the [/com.microej.example.customevent/src/main/c](com.microej.example.customevent/src/main/c) folder
	1. Choose the file corresponding to the board/RTOS used 
	2. Replace the application entry point in the /xxx-bsp project by the file selected in the previous step
5. In MicroEJ, create a launch configuration for the Java application
	1. Set the name to "CustomEvent_Build"
	2. In the **Main** tab
		1. Set the **Project** field to "com.microej.example.customevent"
		2. Set the **Main type** field  to "CustomEventExample"
	3. In the **Execution** tab
		1. In the **Target** frame, set the JPF to the one built in step #3
		2. In the **Execution** frame, select the **Execute on EmbJPF** radio button
6. Run the launch configuration.
7. Compile, link and flash the xxx-bsp project.

# Requirements
- JRE 7 (or later) x86.
- MicroEJ 4.0 or later.
- Java platform with (at least) EDC-1.2, MICROUI-2.0.

# Project structure
- src/main/java
	- Java sources
- src/main/c
	- Entry points (main.c) examples for the given board/RTOS that generates custom events.

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Device Developer's Guide

Learn to develop your first platform.
GUIDE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
22 August 2017

Using Foundation Libraries APIs (Standalone)

This project gathers all the basic examples of the foundation libraries.
EXAMPLE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Last updated:
22 August 2017
# Overview
This project gathers some basic examples of the foundation libraries. Those examples are developed as standalone applications and as such can be run by following the associated instructions (see **README.md** file of each example).

Note that to run them on board:

* If you are using MicroEJ SDK:
 * You need a supported board (see http://developer.microej.com/index.php?resource=JPF for a list of supported boards using MicroEJ SDK evaluation version)
 * And the associated platform binary .jpf file (retrieve it from the previous link and import it into MicroEJ SDK)

* If you are using MicroEJ Studio:
 * You need to convert them from standalone applications to sandboxed applications.
 * Follow the [How-To convert a standalone app into a sandboxed app](https://github.com/MicroEJ/How-To/tree/master/StandaloneToSandboxed) guide.

# Details
## Core
### EDC
EDC contains the minimal standard runtime environment for embedded devices.

**Available Examples**:
* [com.microej.example.foundation.edc.helloworld](com.microej.example.foundation.edc.helloworld): Prints Hello World on the standard output stream.

### BON
BON focuses on devices with non-volatile and volatile memories. This library allows to fully control memory usage and start-up sequences on devices with limited memory resources.

**Available Examples**:

* [com.microej.example.foundation.bon.immortals](com.microej.example.foundation.bon.immortals): Shows how to manipulate the immortals.
* [com.microej.example.foundation.bon.immutables](com.microej.example.foundation.bon.immutables): Shows how to manipulate the immutables.


## Communicate with other hardwares

### ECOM
ECOM libraries provides a standard communication over UART.

**Available Examples**:
* [com.microej.example.foundation.ecom.hotplug](com.microej.example.foundation.ecom.hotplug): Shows how to listen on plug/unplug of dynamic ComConnections and shows their properties.
* [com.microej.example.foundation.ecom.writer](com.microej.example.foundation.ecom.writer): Shows how to write some bytes to a CommConnection.
* [com.microej.example.foundation.ecom.reader](com.microej.example.foundation.ecom.reader): Shows how to read some bytes from a CommConnection.

### HAL
HAL libraries presents an abstraction of the communication with the hardware.

**Available Examples**:
* [com.microej.example.foundation.hal.gpio](com.microej.example.foundation.hal.gpio): Shows how to use gpio.


## Design a user interface

### MicroUI
MicroUI provides the minimal cornerstone for quick construction of advanced, portable and user-friendly applications for a wide and heterogeneous range of devices with just-what-is-needed resources.

**Available Examples**:
* [com.microej.example.foundation.microui.antialiased](com.microej.example.foundation.microui.antialiased): Shows how to use anti-aliased shapes.
* [com.microej.example.foundation.microui.font](com.microej.example.foundation.microui.font): Shows how to create and use a font.
* [com.microej.example.foundation.microui.helloworld](com.microej.example.foundation.microui.helloworld): Shows how to print a string on a display.
* [com.microej.example.foundation.microui.image](com.microej.example.foundation.microui.image): Shows how to create and use images.
* [com.microej.example.foundation.microui.input](com.microej.example.foundation.microui.input): Shows how to listen the MicroUI input events.
* [com.microej.example.foundation.microui.led](com.microej.example.foundation.microui.led): Shows how to use the LEDs.
* [com.microej.example.foundation.microui.movableimage](com.microej.example.foundation.microui.movableimage): Shows how to create and use a movable image.
* [com.microej.example.foundation.microui.mvc](com.microej.example.foundation.microui.mvc): Shows how to create and use a MVC design pattern.
* [com.microej.example.foundation.microui.out](com.microej.example.foundation.microui.out): Shows how to redirect the standard SystemOut to the display.
* [com.microej.example.foundation.microui.transform](com.microej.example.foundation.microui.transform): Shows how to use MicroUI transform.

### MWT
MWT is a widget toolkit designed for a wide range of devices, including embedded devices with limited processing power.

**Available Examples**:
* [com.microej.example.foundation.mwt.helloworld](com.microej.example.foundation.mwt.helloworld): Shows a simple hello world using MWT.
* [com.microej.example.foundation.mwt.mvc](com.microej.example.foundation.mwt.mvc): Shows how to create and use a MVC design pattern.

### NLS
NLS provides tools to use localized strings.

**Available Examples**:
* [com.microej.example.foundation.nls.helloworld](com.microej.example.foundation.nls.helloworld): Shows how to print a localized string on a display.


## Communicate with the world

### NET
NET is a lightweight Java library dedicated to networking applications. It supports stream (TCP/IP) and datagram (UDP) socket connection APIs.

**Available Examples**:
* [com.microej.example.foundation.net.echo](com.microej.example.foundation.net.echo): Shows a simple echo server.
* [com.microej.example.foundation.net.helloworld](com.microej.example.foundation.net.helloworld): Shows a simple helloworld using NET.

## Store data

### FS
FS is a library to access multiple storage devices (in and out data streams) through a simple file system API.

**Available Examples**:
* [com.microej.example.foundation.fs.helloworld](com.microej.example.foundation.fs.helloworld): Creates a list of folders, adds some files and deletes them all.

MicroEJ SDK Errata

The Errata of MicroEJ SDK versions.
GUIDE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
6 July 2017

Application Developer's Guide (Sandboxed)

Learn to develop your first sandboxed apps.
GUIDE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio
Last updated:
6 July 2017

Application Developer's Guide (Standalone)

Learn to develop your first standalone apps.
GUIDE for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: SDK
Last updated:
6 July 2017

Concurrent Executor

java.util.concurrent implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.concurrent.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="concurrent.executor" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Exit

Exit utilities.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains exit utilities.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="exit" rev="1.+"/>`

# Requirements
  - EDC-1.2 or higher

# Dependencies
None.

# Source
N/A

# Restrictions
None.
Maps implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of maps implementations.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="util" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Observable

Observer design pattern abstract classes.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains classes for the observer design pattern.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="observable" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - KF 1.3 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

Progress

Activity Progress Monitoring implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains classes for monitoring the progress of an activity.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="progress" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

JSON encoder/decoder

JSON encoder/decoder.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
JSON in Java [package org.json]

JSON is a light-weight, language independent, data interchange format.
See http://www.JSON.org/

The files in this package implement JSON encoders/decoders in Java.
It also includes the capability to convert between JSON and XML.

This is a reference implementation. There is a large number of JSON packages
in Java. Perhaps someday the Java community will standardize on one. Until
then, choose carefully.

The package compiles on Java 1.6-1.8.


JSONObject.java: The JSONObject can parse text from a String or a JSONTokener
to produce a map-like object. The object provides methods for manipulating its
contents, and for producing a JSON compliant object serialization.

JSONArray.java: The JSONObject can parse text from a String or a JSONTokener
to produce a vector-like object. The object provides methods for manipulating
its contents, and for producing a JSON compliant array serialization.

JSONTokener.java: The JSONTokener breaks a text into a sequence of individual
tokens. It can be constructed from a String, Reader, or InputStream.

JSONException.java: The JSONException is the standard exception type thrown
by this package.

JSONString.java: The JSONString interface requires a toJSONString method,
allowing an object to provide its own serialization.

JSONStringer.java: The JSONStringer provides a convenient facility for
building JSON strings.

JSONWriter.java: The JSONWriter provides a convenient facility for building
JSON text through a writer.

XML.java: XML provides support for converting between JSON and XML.

XMLTokener.java: XMLTokener extends JSONTokener for parsing XML text.

Unit tests are maintained in a separate project. Contributing developers can test 
JSON-java pull requests with the code in this project: 
https://github.com/stleary/JSON-Java-unit-test

Numeric types in this package comply with ECMA-404: The JSON Data Interchange Format 
(http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf) and 
RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format 
(https://tools.ietf.org/html/rfc7159#section-6). 
This package fully supports Integer, Long, and Double Java types. Partial support 
for BigInteger and BigDecimal values in JSONObject and JSONArray objects is provided 
in the form of get(), opt(), and put() API methods.


# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="org.json.me" name="json" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

kXML 2

XML pull parser.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
kXML is a small XML pull parser, specially designed for constrained environments such as Applets, Personal Java or MIDP devices. In contrast to kXML 1, kXML 2 is based on the common 
XML pull API.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="org.kxml2" name="kxml2" rev="2.3.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

CBOR encode/decoder

Library for encoding/decoding CBOR format.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
# Overview

Library for encoding/decoding CBOR format.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.iot" name="cbor" rev="1.0.0"/>`

# Requirements
  - EDC 1.2 or later
  - pushbackstreams 1.0 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
http://github.com/jawi/jacob

# Restrictions
None.

JSON encode/decoder

Library for encoding/decoding JSON format (push parser).
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview

This library provides APIs for writing to and reading from JSON streams.
Sources have been derived from original `org.json.me` project.

Main Changes: 
  - All DOM related classes removed (JSONObject, JSONArray, JSONString)
  - JSONWriter class now allows to write base type values at root
  - JSONWriter now takes a raw OutputStream instead of a Writer
  - JSONReader class has been derived from original JSONTokener class
  - General String constants elimination
  - Enabled writing of double values (uncommented CLDC-1.0 uncompliant code)

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.libary.iot" name="json" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - UTF-8 encoding enabled

# Dependencies
None.

# Source
N/A

# Restrictions
None.

Data Pub/Sub API

The Publish-Subscribe Data API.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2017 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
MicroEJ Java library for Data Pub/Sub.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.iot.data" name="pubsub-api" rev="..."/>`

# Requirements
  - EDC-1.2 or higher

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

RCommand Library

Library allowing to exchange commands through a connection.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2017 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
Library allowing to exchange commands through a connection.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.iot" name="rcommand" rev="1.+"/>`

# Requirements
  - EDC-1.2 or higher

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Junit

MicroEJ junit API.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
6 July 2017
<!--
	Markdown
	Copyright 2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
MicroEJ Java library API: junit.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.junit" name="junit" rev="1.+"/>`

# Requirements
  - EDC-1.2 or higher

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Eclasspath Bitset

java.util.BitSet implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.BitSet.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="bitset" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed ByteBuffer and LongBuffer wrapping.
  - Removed serialization support.
  - Removed IntStream support.

Eclasspath BufferedStreams

Buffered Streams implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of Buffered streams.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="bufferedstreams" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed `java.io.BufferedReader.lines()`
  - No atomic modification of `java.io.BufferedInputStream.close()`

Eclasspath ByteBuffer

ByteBuffer (and all its derived types such as CharBuffer, LongBuffer...) implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains implementation of ByteBuffer and all its derived types such as CharBuffer, LongBuffer, ...

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="bytebuffer" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - BON 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Remove java.util.Spliterator references.
  - Remove MappedByteBuffer.
  - Remove direct allocation.

Eclasspath Collections

List, Set, Queue and Map abstract classes and interfaces.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains abstract classes and interfaces for implementing List, Set, Queue and Map.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="collections" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
None.

# Source
  - Open JDK 7u65

# Restrictions
None.

Eclasspath CollectionsUtil

Collections, Arrays and Objects and some Sort algorithms implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of Collections, Arrays and Objects and some Sort algorithms.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="collectionsutil" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath.collections
  - ej.eclasspath.queues
  - ej.eclasspath.lists

# Source
  - Open JDK 7u65

# Restrictions
  - Removed Arrays.copyOf

Eclasspath Executor

java.util.concurrent interfaces.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains all interfaces for the implementation of the java.util.concurrent.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="executor" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 7u65

# Restrictions
None.

Eclasspath HTTPClient

HTTP client implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of an HTTP client.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="httpclient" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher
  - NET 1.0 or higher

# Dependencies
  - ej.eclasspath-bufferedstreams
  - ej.eclasspath-collections
  - ej.eclasspath-collectionsutil
  - ej.eclasspath-url
  - ej.eclasspath-stringtokenizer

# Source
  - Open JDK 8u20

# Restrictions
  - Removed java.text.DateFormat dependency APIs
  - Removed java.net.Proxy dependency and proxy tunneling connection
  - Removed traffic capture
  - Removed response caching
  - Removed authentication management
  - Removed restricted headers support
  - Removed cookie management
  - Removed keep-alive management
  - Removed cache request management
  - Removed internal MeteredStream and ProgressSource support

Eclasspath HTTPSClient

HTTPS client implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of an HTTPS client.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="httpsclient" rev="1.+"/>`
	
# Requirements
_List of required libraries on the targeted platform:_
  - EDC 1.2 or higher
  - NET 1.0 or higher
  - SSL 1.0 or higher

# Dependencies
  - ej.eclasspath-httpclient
  - ej.eclasspath-bufferedstreams
  - ej.eclasspath-collections
  - ej.eclasspath-collectionsutil
  - ej.eclasspath-url
  - ej.eclasspath-stringtokenizer

# Source
  - Open JDK 8u20

# Restrictions
  - Removed java.net.Proxy dependency and proxy tunneling connection
  - Removed response caching
  - Removed cache request management
  - Removed certificates and keys management
  - Removed server identity checking out of SSLSocket
  - Removed javax.net.ssl.HostnameVerifier dependency

Eclasspath Lists

java.util.List implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementation of java.util.List.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="lists" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-collections

# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath Logging

Loggers framework and implemenation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some .

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="logging" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath Maps

java.util.Map implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementations of java.util.Map.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="maps" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-collections
  - ej.eclasspath-collectionsutil

# Source
  - Open JDK 8u20

# Restrictions
  - Remove java.util.Spliterator references.
  - Remove serialization support.

Eclasspath PipedStreams

Piped streams implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of Piped streams.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="pipedstreams" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
None.

# Source
  - Open JDK 8u40

# Restrictions
None.

Eclasspath PrintWriter

java.io.PrintWriter implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.io.PrintWriter.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="printwriter" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
None.
	
# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath Properties

java.util.Properties implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.Properties.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="properties" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-bufferedstreams
  - ej.eclasspath-printwriter

# Source
  - Open JDK 8u20

# Restrictions
  - Removed printf formatting.

Eclasspath PushbackStream

java.io.PushbackInputStream implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	
	Copyright 2016-2017 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of java.io.PushbackInputStream.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="pushbackstreams" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
_None_

Eclasspath Queues

java.util.Queue implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementations of java.util.Queue.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="queues" rev="1.+"/>`

# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-collections

# Source
  - Open JDK 7u65

# Restrictions
  - Removed serialization support
  - Removed cloning operations and dynamically typesafe collection wrappers

Eclasspath Sets

java.util.Set implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementations of java.util.Set.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="sets" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
  - Remove java.util.Spliterator references.
  - Remove serialization support.
  - Remove the package private constructor only used by LinkedHashSet.

Eclasspath SocketFactory

SocketFactory and ServerSocketFactory implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of SocketFactory and ServerSocketFactory.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="socketfactory" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - NET 1.0 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath StringTokenizer

java.util.StringTokenizer implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.StringTokenizer.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="stringtokenizer" rev="1.+"/>`

# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed code point support

Eclasspath URI

java.net.URI implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.net.URI.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="uri" rev="1.+"/>`

# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed serialization support
  - Removed java.net.URI.toAsciiString to avoid Normalizer dependency
  - Removed java.net.URI.toURL to avoid URL dependency

Eclasspath URL

java.net.URL implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.net.URL.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="url" rev="1.+"/>`

# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed serialization support
  - Removed java.net.URI dependency
  - Removed java.text.DateFormat dependency APIs
  - Removed dependency to Internet (two URLs with two host names targeting the same IP address are not equals)
  - Removed guess Content-Type methods (java.net.URLConnection.guessContentTypeFromStream, java.net.URLConnection.guessContentTypeFromName)
  - Removed java.net.URLConnection.getPermission
  - Removed java.net.URLConnection ifModifiedSince support

Eclasspath URLUtil

URLEncoder and URLDecode implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of URLEncoder and URLDecoder.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="urlutil" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
  - Approximation of Character.isLetter with : Character.isLowerCase or Character.isUpperCase.
  - No support for surrogate pairs.

NLS (Foundation Library API)

The National Language Support API.
LIBRARY for MISC
Supported MicroEJ Version: 4.1
Supported MicroEJ Edition: Studio & SDK
Last updated:
5 July 2017
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains classes and interfaces stubs of NLS API (ESR021).

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.api" name="nls" rev="2.+"/>`

# Requirements
  - EDC-1.2 or higher
  - BON-1.2 or higher

# Dependencies
None.

# Source
N/A

# Restrictions
None.

MicroEJ SDK Errata

The Errata of MicroEJ SDK versions.
GUIDE for MISC
Supported MicroEJ Version: 3.1,4.0
Supported MicroEJ Edition: SDK
Last updated:
1 February 2017

Examples Custom Events for MicroUI

This project illustrate how to propagate custom events from the hardware to MicroUI.
EXAMPLE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Last updated:
25 January 2017
# Overview
This example illustrates how to propagate custom events from the hardware to MicroUI. MicroUI already supports generic events like touch, button and joystick.
Hardware events (e.g. sensors movement) can be used for specific display action upon occurrence.

See the Device Developer's Guide at section **Inputs** (13.5) for more information.

# Usage
1. Create a platform with at least the UI module.
2. Before building this platform, some configuration is required. In the **xxx-configuration project** in the **microui/microui.xml** file, add the following xml element as the first eventgenerator.

        <eventgenerator name="CUSTOM" class="com.microej.example.customevent.CustomEventGenerator"/>

3. Build your platform.
4. In the [/com.microej.example.customevent/src/main/c](com.microej.example.customevent/src/main/c) folder
	1. Choose the file corresponding to the board/RTOS used 
	2. Replace the application entry point in the /xxx-bsp project by the file selected in the previous step
5. In MicroEJ, create a launch configuration for the Java application
	1. Set the name to "CustomEvent_Build"
	2. In the **Main** tab
		1. Set the **Project** field to "com.microej.example.customevent"
		2. Set the **Main type** field  to "CustomEventExample"
	3. In the **Execution** tab
		1. In the **Target** frame, set the JPF to the one built in step #3
		2. In the **Execution** frame, select the **Execute on EmbJPF** radio button
6. Run the launch configuration.
7. Compile, link and flash the xxx-bsp project.

# Requirements
- JRE 7 (or later) x86.
- MicroEJ 4.0 or later.
- Java platform with (at least) EDC-1.2, MICROUI-2.0.

# Project structure
- src/main/java
	- Java sources
- src/main/c
	- Entry points (main.c) examples for the given board/RTOS that generates custom events.

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Excel to NLS

Transform an Excel file (xlsx) to a set of NLS files.
TOOL for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Last updated:
23 January 2017
# Overview
Internalization is an important part of many projects so that users can select the language they want for their system. MicroEJ offers a library named NLS (National Language Support) to help developers internationalize the messages in their applications. NLS imposes the structure of the translation files, with a simple and efficient "[key]=[message]" format. Nevertheless, each company may have its own format for the translation files they share with their translators, often using Microsoft Excel.

Here, we demonstrate how an Excel file (xlsx) can be converted to files in NLS format. We use the Apache POI library to perform this transformation. You can adapt this tool to your specific file format.

Two Eclipse projects are provided:
1. [Excel-to-NLS](/Excel-to-NLS) converts an Excel file to a set of NLS files and saves them as resources of the second project.
2. [HelloWorld](/HelloWorld) takes all the generated files and uses NLS library to display the same message in several languages.

## Project Setup
Excel-to-NLS comes without the JAR files from Apache POI. You have to download them from http://poi.apache.org. You have to copy the following JAR files to the [lib](/Excel-to-NLS/lib) folder of the project:
- poi-[version].jar
- poi-ooxml-[version].jar
- poi-ooxml-schemas-[version].jar
- xmlbeans-[version].jar

Then, right-click on the project and select **Properties**. In the left menu, select **Java Build Path** and open the **Libraries** tab. Add the above JARs to the Java build path.

HelloWorld is already fully configured.

### Project structure
- Tool-Excel-to-NLS

 - Excel-to-NLS
  - `excel/`:  folder with a example xlsx file
  - `launches/`: Java launch configuration
  - `lib/`:  folder to place the required JAR files  
  - `src/main/java/`: Java sources
  
 - HelloWorld
  - `excel/`:  folder with a example xlsx file
  - `launches/`: MicroEJ launch configuration 
  - `src/main/java/`: Java sources
  - `src/main/resources/`: resources
  
 - `LICENCE.md`
 - `README.md`

# Usage
## Run XLS to NLS tool
1. Execute the App class of the Excel-to-NLS project as a regular Java Application. A [Java launch configuration](/Excel-to-NLS/launches/Excel-to-NLS.launch) is provided for convenience, right-click on [launches/Excel-to-NLS.launch](/Excel-to-NLS/launches/Excel-to-NLS.launch) and select **Run as->Excel-to-NLS**. This will generate a set of NLS files and drop them in the appropriate folder of the HelloWorld project.

2. Execute the [Main](/HelloWorld/src/main/java/ej/examples/nls/Main.java) class of the HelloWorld project as a MicroEJ Application. A [MicroEJ launch configuration](/HelloWorld/launches/HelloWorld on STM32429I-DISCO SimJPF.properties) is provided with the path to the [nls.list](/HelloWorld/src/main/resources/nls.list) file properly configured. This will print the same message with all the available locales in the Eclipse console.

## Run on MicroEJ Simulator
1. Right Click on [Main.java](HelloWorld/src/main/java/ej/examples/nls/Main.java)
2. Select **Run as -> Run Configuration** 
3. Select **MicroEJ Application** configuration kind
4. Click on **New launch configuration** icon
5. Go to **Execution** tab
	* Select your platform 
6. Go to **Configuration** tab
	* Go to **Libraries -> NLS**
		* Check Use NLS messages
		* Set the **NLS list file** to`${project_loc:HelloWorld}/src/main/resources/HelloWorld/HelloWorld.nls.list`
7. Press **Apply**
8. Press **Run**


## Run on device
### Build
1. Right Click on [Main.java](HelloWorld/src/main/java/ej/examples/nls/Main.java)
2. Select **Run as -> Run Configuration**
3. Select **MicroEJ Application** configuration kind
4. Click on **New launch configuration** icon
5. Select **Execute on Device**
6. Select **Build & Deploy**
7. Go to **Execution** tab
	* Select your platform 
8. Go to **Configuration** tab
	* Go to **Libraries -> NLS**
		* Check Use NLS messages
		* Set the **NLS list file** to`${project_loc:HelloWorld}/src/main/resources/HelloWorld/HelloWorld.nls.list`
9. Press **Apply**
10. Press **Run**
11. Copy the generated `.out` file path

### Flash
1. Use the appropriate flashing tool.

# Requirements
* MicroEJ Studio or SDK 4.0 or later
* A platform with at least:
	* EDC-1.2 or higher
	* NLS-2.0 or higher
	
## Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# License
See the license file [LICENSE.md](LICENSE.md) located at the root of this repository.

# Changes
See the changelog file [CHANGELOG.md](CHANGELOG.md) located at the root of this repository.

Dependencies Discoverer

Tool to list the binary dependencies (class, interfaces, methods, fields) of a piece of code.
TOOL for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
23 January 2017
# Overview
This project is a tool to list all dependencies of a Java code and to discover the missing dependencies of this Java code against MicroEJ OS.

# Usage
## Online
1. In your MicroEJ or Eclipse workspace, import this project and drop all your JARs into [classpath](classpath/) folder.
2. Right click on **DependencyDiscoverer** project.
3. Select **Run As -> Java Application**.
4. Double click on **DependencyDiscoverer**.
5. Right click on **DependencyDiscoverer** project.
6. Select Refresh
7. A **result.txt** file will be generated at the root of the project.

## Offline
1. Drop all your JARs into [classpath](classpath/) folder.
2. Get a MicroEJ offline repository (zip archive). For example repository 4.0 from [developer.microej.com/4.0/ivy](http://developer.microej.com/4.0/ivy).
3. Unzip MicroEJ repository into [againstClasspath](againstClasspath/) folder.
4. Set `OFFLINE` variable in [DependencyDiscovererOptions.java](src/com/microej/tool/dependencydiscoverer/DependencyDiscovererOptions.java) to `true`.
5. Right click on **DependencyDiscoverer** project.
6. Select **Run As -> Java Application**.
7. Double click on **DependencyDiscoverer**.
8. Right click on **DependencyDiscoverer** project.
9. Select Refresh
10. A **result.txt** file will be generated at the root of the project.

## Adding additional MicroEJ libraries.
You may have some additional MicroEJ libraries, to include them, drop them into [againstClasspath](againstClasspath) folder.

## Interpreting the results.
Open the **result.txt** file with a text editor. Each line contains a missing dependency. If the file is empty, your library is compatible with MicroEJ OS!

Each line may be :
  * A **class** described as `package.of.class.Class`.
  * An **inner class** described as `package.of.class.Class$InnerClassName` (InnerClassName is a number if it is an anonymous class).
  * A **field** described as `package.of.class.Class.fieldName`.
  * A **constructor** described as `package.of.class.Class.<init>({parameters types see under})V`.
  * A **method** described as `package.of.class.Class.methodName({parameters types see under}){return type}`.
  
The types may be:
  * **B**: byte
  * **C**: char
  * **D**: double
  * **F**: float
  * **I**: int
  * **J**: long
  * **L{ClassName};**: reference to a {ClassName} instance
  * **S**: short
  * **V**: void
  * **Z**: boolean
  * **[{type}**: array of {type} (type may be an array it self)

## Porting a library to MicroEJ OS
To port your library with missing dependencies to MicroEJ OS, the following steps shall be taken:
1. Contact MicroEJ support, some common libraries are available on demand. 
2. Refactor your libraries to avoid those dependencies.

# Requirements
* MicroEJ Studio 4.0 or later, or MicroEJ SDK 4.0 or later, or Eclipse 4.2 or later.
* A JRE 7 or higher.

# Dependencies
None.

# Source
N/A

# Restrictions
None.

Examples Eclasspath

This project gather all the examples of eclasspath.
EXAMPLE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
23 January 2017
# Overview

This project gather all the examples of eclasspath. Eclasspath contains Java runtime libraries.

Note that to run them on board:

* If you are using MicroEJ SDK:
 * You need a supported board (see http://developer.microej.com/index.php?resource=JPF for a list of supported boards using MicroEJ SDK evaluation version)
 * And the associated platform binary .jpf file (retrieve it from the previous link and import it into MicroEJ SDK)

* If you are using MicroEJ Studio:
 * You need to convert them from standalone applications to sandboxed applications.
 * Follow the [How-To convert a standalone app into a sandboxed app](https://github.com/MicroEJ/How-To/tree/master/StandaloneToSandboxed) guide.
 
# Details
## logging
**Available Examples**:
* [com.microej.examples.eclasspath.logging](com.microej.examples.eclasspath.logging) : Writes in the logger.

Components Hello World

This project illustrates the ej.components library.
EXAMPLE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
23 January 2017
# Overview
This project illustrates the _ej.library.runtime.components_ library.
It contains a service implementation and two bundles: the service publisher and the service user.

## Project structure
- [com.microej.example.components.helloworld.service](com.microej.example.components.helloworld.service) 
	- [[â¦]/Hello.java](com.microej.example.components.helloworld.service/src/main/java/com/microej/example/components/helloworld/service/Hello.java): the interface defining the service.

- [com.microej.example.components.helloworld.publisher](com.microej.example.components.helloworld.publisher)
	- [[â¦]/HelloPrint.java](com.microej.example.components.helloworld.publisher/src/main/java/com/microej/example/components/helloworld/publisher/HelloPrint.java) : an implementation of the service.
	- [[â¦]/HelloPublisherBundle.java](com.microej.example.components.helloworld.publisher/src/main/java/com/microej/example/components/helloworld/publisher/HelloPublisherBundle.java) : the bundle publishing the service implementation.
	
- [com.microej.example.components.helloworld.user](com.microej.example.components.helloworld.user)
	- [[â¦]/SayHelloToEveryone.java](com.microej.example.components.helloworld.user/src/main/java/com/microej/example/components/helloworld/user/SayHelloToEveryone.java) : an application that uses the service.
	- [[â¦]/HelloUserBundle.java](com.microej.example.components.helloworld.user/src/main/java/com/microej/example/components/helloworld/user/HelloUserBundle.java) : the bundle retrieving the service.
	
- [com.microej.example.components.helloworld](com.microej.example.components.helloworld) : the startup (main) of the example.
	- [src/main/java](com.microej.example.components.helloworld/src/main/java) : Java sources.
	- [src/main/resources](com.microej.example.components.helloworld/src/main/resources) : the properties and bundles list.

  
## Usage
See [README.md](com.microej.example.components.helloworld/README.md).

# Requirements
See [README.md](com.microej.example.components.helloworld/README.md).

# Source
See [README.md](com.microej.example.components.helloworld/README.md).

# Restrictions
See [README.md](com.microej.example.components.helloworld/README.md).

# Changes
See [CHANGELOG.md](CHANGELOG.md).

## License
See [LICENSE.md](LICENSE.md).

S7G2DK Platform Reference Implementation (Single-app, GCC, ThreadX, Developer Preview)

PREVIEW
The Developer Preview of the Platform Reference Implementation for the S7G2DK board.
JPF_RENESAS for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-S7G2DK-SGT-FI7B4
Last updated:
18 January 2017
# Copyright 2015-2016 IS2T. All rights reserved.
# IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.

MicroEJ BSP example for Renesas Synergy S7G2DK (E2studio/ThreadX)
============================================================

# Delivery 

Folders listing:
 * platforms: contains MicroEJ Platform Architecture and Platform Library.
 * platforms_examples: contains the MicroEJ Platform Examples zip file.

# Prerequisites
 * Java7
 * MicroEJ version 4.0 or later
 * E2Studio v5.0.0.043

# How to import MicroEJ Platforms (Platform Architecture with '*.xpf' extension and MicroEJ Platform Libraries with extension '*.xpfp')

Open your MicroEJ. Click on "Window->Preferences->MicroEJ". If no MicroEJ repository is set, select a file system folder to store your MicroEJ platforms repository with the "Browse" button. 
Then, go to "MicroEJ->Java Platform Architectures" and click on import.
Select "Select directory" and set the path of the "platforms" folder of the delivery. Select the UI pack and select the "I agree and accept..." checkbox. Click on the "Finish" button. Your MicroEJ platforms are now imported in your MicroEJ. You could see it in "MicroEJ->Java Platforms Architectures" view.


# How to import the MicroEJ Platform Examples

Open your MicroEJ. Click on "File->Import...->MicroEJ->Examples" and select the MicroEJ Platform Examples zip file with the Browse button.
New Items appears in the list. Select all items and click on "Finish". Your MicroEJ Platform Examples are now imported in your MicroEJ.


# Start a new MicroEJ Platform Example

Click on "File->New->MicroEJ->Java Platform" and then on "Next" button. Select your MicroEJ Platform Architecture with "Browse" button. Once selected, some examples appears in examples list.
Select "Platform->S7G2DK (ThreadX)->Full" example and click on "Next". Then, enter your example informations and click on "Finish" button. Projects has been added in your MicroEJ workspace: 
 * [my-example]-bsp 
 * [my-example]-configuration
 * [my-example]-fp
 * [my-example]-microuiGeneratorExtension

 
# How to create your MicroEJ Platform associated to the MicroEJ Platform Example for the Renesas Synergy S7G2DK (E2Studio/ThreadX)

Prerequisites:
 * import the MicroEJ Platforms and MicroEJ Platform Libraries 
 * import the MicroEJ Platform Examples
 * start a new MicroEJ Platform Example
 
Open the "[my-example]-configuration" project and click on the "full.platform" file. A new tab is now opened in your MicroEJ. Then, click on the "Build Platform" in the "Build" category. Your platform is building. Once finished, a new platform project appears in your MicroEJ workspace ([my-example]-1.0.0). You could now launch Java application on this platform. 

S7G2DK Platform Binary (Single-app, Developer Preview)

PREVIEW
The Developer Preview of the Platform Binary for the S7G2DK board.
JPF_RENESAS for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-S7G2DK-SGT-FI7B4
Last updated:
18 January 2017

STM32429I-EVAL Platform Reference Implementation (Multi-app, Keil, FreeRTOS)

The Platform Reference Implementation for the STM32429I-EVAL board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-STM32F429IEVAL-MKF-UGI57
Last updated:
18 January 2017
<!--
	Copyright 2015-2016 IS2T. All rights reserved.
	For demonstration purpose only
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Build MicroEJ Platform Reference Implementation for STM32F429I-EVAL

## Delivery 

Folders listing:
 * `platformArchitecture`: contains MicroEJ Platform Architecture and Platform Architecture Extensions.
 * `platformSource`: contains a zip file with the MicroEJ Platform Reference Implementation sources.

## Prerequisites

 * Java7 or higher
 * MicroEJ SDK 4.0 or later
 * Keil uVision 5.18

## Import MicroEJ Platform Architecture (Platform Architecture and MicroEJ Architecture Extensions)

 * Open MicroEJ SDK. 
 * Click on `Window > Preferences > MicroEJ`. If no MicroEJ SDK repository is set, select a file system directory to store the MicroEJ SDK repository with the `Browse` button. 
 * Go to `MicroEJ > Architectures` and click on `Import...`.
 * Select `Select directory` and set the path of the `platformsArchitecture` folder of the delivery. Select all elements and check `I agree and accept...` checkbox. 
 * Click on the `Finish` button. The MicroEJ platforms architectures are now imported in the MicroEJ SDK repository. The menu `MicroEJ > Architectures` has been updated.

## Import MicroEJ Platform Reference Implementation Sources

 * Open MicroEJ SDK. 
 * Click on `File > Import... > MicroEJ > Examples and Platform Reference Implementations`
 * Click on `Next`
 * Check the radio button `Select file`
 * Select the MicroEJ Platform Reference Implementation sources zip file with the `Browse` button. 
 * New items appears in the list. Select all items and click on `Finish`. 

The MicroEJ Platform Reference Implementation sources are now imported in the MicroEJ SDK repository.

## Build MicroEJ Platform Reference Implementation 

 * Click on `File > New > MicroEJ > Platform`.
 * Select your MicroEJ Platform Architecture with `Browse` button. Once selected, some platform reference implementation appear in a list.
 * Select `Platform > STM32F429I-EVAL > WithoutSSL` platform reference implementation.
 * Click on `Next`. 
 * Enter some platform reference implementation meta data 
 * Click on `Finish` button. Some projects have been added in your MicroEJ SDK workspace.
 * A readme file has been opened, follow the new instructions.

STM32429I-EVAL Platform Binary (Multi-app, Keil, FreeRTOS)

The Platform Binary for the STM32429I-EVAL board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-STM32F429IEVAL-MKF-UGI57
Last updated:
18 January 2017

STM32F746-DISCO Platform Reference Implementation (Multi-app, Keil, FreeRTOS)

The Platform Reference Implementation for the STM32F746-DISCO board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-STM32F746DISCO-MKF-YQ8LU
Last updated:
18 January 2017
<!--
	Copyright 2015-2016 IS2T. All rights reserved.
	For demonstration purpose only
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Build MicroEJ Platform Reference Implementation for STM32F746G-DISCO

## Delivery 

Folders listing:
 * `platformArchitecture`: contains MicroEJ Platform Architecture and Platform Architecture Extensions.
 * `platformSource`: contains a zip file with the MicroEJ Platform Reference Implementation sources.

## Prerequisites

 * Java7 or higher
 * MicroEJ SDK 4.0 or later
 * Keil uVision 5.18

## Import MicroEJ Platform Architecture (Platform Architecture and MicroEJ Architecture Extensions)

 * Open MicroEJ SDK. 
 * Click on `Window > Preferences > MicroEJ`. If no MicroEJ SDK repository is set, select a file system directory to store the MicroEJ SDK repository with the `Browse` button. 
 * Go to `MicroEJ > Architectures` and click on `Import...`.
 * Select `Select directory` and set the path of the `platformsArchitecture` folder of the delivery. Select all elements and check `I agree and accept...` checkbox. 
 * Click on the `Finish` button. The MicroEJ platforms architectures are now imported in the MicroEJ SDK repository. The menu `MicroEJ > Architectures` has been updated.

## Import MicroEJ Platform Reference Implementation Sources

 * Open MicroEJ SDK. 
 * Click on `File > Import... > MicroEJ > Examples and Platform Reference Implementations`
 * Click on `Next`
 * Check the radio button `Select file`
 * Select the MicroEJ Platform Reference Implementation sources zip file with the `Browse` button. 
 * New items appears in the list. Select all items and click on `Finish`. 

The MicroEJ Platform Reference Implementation sources are now imported in the MicroEJ SDK repository.

## Build MicroEJ Platform Reference Implementation 

 * Click on `File > New > MicroEJ > Platform`.
 * Select your MicroEJ Platform Architecture with `Browse` button. Once selected, some platform reference implementation appear in a list.
 * Select `Platform > STM32F746G-DISCO > Evaluation` platform reference implementation.
 * Click on `Next`. 
 * Enter some platform reference implementation meta data 
 * Click on `Finish` button. Some projects have been added in your MicroEJ SDK workspace.
 * A readme file has been opened, follow the new instructions.

STM32F746-DISCO Platform Binary (Multi-app, Keil, FreeRTOS)

The Platform Binary for the STM32F746-DISCO board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-STM32F746DISCO-MKF-YQ8LU
Last updated:
18 January 2017

FRDM-KL46Z Platform Reference Implementation (Single-app, GCC, Developer Preview)

PREVIEW
The Developer Preview of the Platform Reference Implementation for the FRDM-KL46Z board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-FRDMKL46Z-SGB-NBOSE
Last updated:
25 October 2016

FRDM-KL46Z Platform Binary (Single-app, Developer Preview)

PREVIEW
The Developer Preview of the Platform Binary for the FRDM-KL46Z board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-FRDMKL46Z-SGB-NBOSE
Last updated:
25 October 2016

STM3220G-EVAL Platform Binary (Single-app, Developer Preview)

PREVIEW
The Developer Preview of the Platform Binary for the STM3220G-EVAL board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-STM3220G-SKF-WNTBV
Last updated:
25 October 2016

STM3220G-EVAL Platform Reference Implementation (Single-app, IAR, FreeRTOS, Developer Preview)

PREVIEW
The Developer Preview of the Platform Reference Implementation for the STM3220G-EVAL board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-STM3220G-SIF-9WJNQ
Last updated:
25 October 2016

STM3220G-EVAL Platform Reference Implementation (Single-app, Keil, FreeRTOS, Developer Preview)

PREVIEW
The Developer Preview of the Platform Reference Implementation for the STM3220G-EVAL board.
JPF_ST for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-STM3220G-SKF-WNTBV
Last updated:
25 October 2016

NLS (Foundation Library API)

The National Language Support API.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains classes and interfaces stubs of NLS API (ESR021).

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.api" name="nls" rev="2.+"/>`

# Requirements
  - EDC-1.2 or higher
  - BON-1.2 or higher

# Dependencies
None.

# Source
N/A

# Restrictions
None.

Eclasspath Bitset

java.util.BitSet implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.BitSet.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="bitset" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed ByteBuffer and LongBuffer wrapping.
  - Removed serialization support.
  - Removed IntStream support.

Eclasspath BufferedStreams

Buffered Streams implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of Buffered streams.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="bufferedstreams" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed `java.io.BufferedReader.lines()`
  - No atomic modification of `java.io.BufferedInputStream.close()`

Eclasspath Collections

List, Set, Queue and Map abstract classes and interfaces.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains abstract classes and interfaces for implementing List, Set, Queue and Map.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="collections" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
None.

# Source
  - Open JDK 7u65

# Restrictions
None.

Eclasspath CollectionsUtil

Collections, Arrays and Objects and some Sort algorithms implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of Collections, Arrays and Objects and some Sort algorithms.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="collectionsutil" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath.collections
  - ej.eclasspath.queues
  - ej.eclasspath.lists

# Source
  - Open JDK 7u65

# Restrictions
  - Removed Arrays.copyOf

Eclasspath Maps

java.util.Map implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementations of java.util.Map.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="maps" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-collections
  - ej.eclasspath-collectionsutil

# Source
  - Open JDK 8u20

# Restrictions
  - Remove java.util.Spliterator references.
  - Remove serialization support.

Eclasspath ByteBuffer

ByteBuffer (and all its derived types such as CharBuffer, LongBuffer...) implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains implementation of ByteBuffer and all its derived types such as CharBuffer, LongBuffer, ...

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="bytebuffer" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - BON 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Remove java.util.Spliterator references.
  - Remove MappedByteBuffer.
  - Remove direct allocation.

Eclasspath Executor

java.util.concurrent interfaces.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains all interfaces for the implementation of the java.util.concurrent.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="executor" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 7u65

# Restrictions
None.

Eclasspath HTTPClient

HTTP client implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of an HTTP client.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="httpclient" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher
  - NET 1.0 or higher

# Dependencies
  - ej.eclasspath-bufferedstreams
  - ej.eclasspath-collections
  - ej.eclasspath-collectionsutil
  - ej.eclasspath-url
  - ej.eclasspath-stringtokenizer

# Source
  - Open JDK 8u20

# Restrictions
  - Removed java.text.DateFormat dependency APIs
  - Removed java.net.Proxy dependency and proxy tunneling connection
  - Removed traffic capture
  - Removed response caching
  - Removed authentication management
  - Removed restricted headers support
  - Removed cookie management
  - Removed keep-alive management
  - Removed cache request management
  - Removed internal MeteredStream and ProgressSource support

Eclasspath HTTPSClient

HTTPS client implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of an HTTPS client.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="httpsclient" rev="1.+"/>`
	
# Requirements
_List of required libraries on the targeted platform:_
  - EDC 1.2 or higher
  - NET 1.0 or higher
  - SSL 1.0 or higher

# Dependencies
  - ej.eclasspath-httpclient
  - ej.eclasspath-bufferedstreams
  - ej.eclasspath-collections
  - ej.eclasspath-collectionsutil
  - ej.eclasspath-url
  - ej.eclasspath-stringtokenizer

# Source
  - Open JDK 8u20

# Restrictions
  - Removed java.net.Proxy dependency and proxy tunneling connection
  - Removed response caching
  - Removed cache request management
  - Removed certificates and keys management
  - Removed server identity checking out of SSLSocket
  - Removed javax.net.ssl.HostnameVerifier dependency

Eclasspath Lists

java.util.List implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementation of java.util.List.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="lists" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-collections

# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath Logging

Loggers framework and implemenation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some .

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="logging" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath PipedStreams

Piped streams implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of Piped streams.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="pipedstreams" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
None.

# Source
  - Open JDK 8u40

## Restrictions
None.

Eclasspath PrintWriter

java.io.PrintWriter implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.io.PrintWriter.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="printwriter" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

## Dependencies
None.
	
# Source
  - Open JDK 8u20

## Restrictions
None.

Eclasspath Properties

java.util.Properties implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.Properties.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="properties" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-bufferedstreams
  - ej.eclasspath-printwriter

# Source
  - Open JDK 8u20

# Restrictions
  - Removed printf formatting.

Eclasspath Queues

java.util.Queue implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementations of java.util.Queue.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="queues" rev="1.+"/>`

# Requirements
  - EDC 1.2 or higher

# Dependencies
  - ej.eclasspath-collections

# Source
  - Open JDK 7u65

# Restrictions
  - Removed serialization support
  - Removed cloning operations and dynamically typesafe collection wrappers

Eclasspath Sets

java.util.Set implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains some implementations of java.util.Set.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="sets" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
  - Remove java.util.Spliterator references.
  - Remove serialization support.
  - Remove the package private constructor only used by LinkedHashSet.

Eclasspath SocketFactory

SocketFactory and ServerSocketFactory implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of SocketFactory and ServerSocketFactory.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="socketfactory" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - NET 1.0 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
None.

Eclasspath StringTokenizer

java.util.StringTokenizer implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.StringTokenizer.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="stringtokenizer" rev="1.+"/>`

# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed code point support

Eclasspath URI

java.net.URI implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.net.URI.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="uri" rev="1.+"/>`

# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed serialization support
  - Removed java.net.URI.toAsciiString to avoid Normalizer dependency
  - Removed java.net.URI.toURL to avoid URL dependency

Eclasspath URL

java.net.URL implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.net.URL.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="url" rev="1.+"/>`

# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
  - Removed serialization support
  - Removed java.net.URI dependency
  - Removed java.text.DateFormat dependency APIs
  - Removed dependency to Internet (two URLs with two host names targeting the same IP address are not equals)
  - Removed guess Content-Type methods (java.net.URLConnection.guessContentTypeFromStream, java.net.URLConnection.guessContentTypeFromName)
  - Removed java.net.URLConnection.getPermission
  - Removed java.net.URLConnection ifModifiedSince support

Eclasspath URLUtil

URLEncoder and URLDecode implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of URLEncoder and URLDecoder.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.eclasspath" name="urlutil" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
  - Open JDK 8u20

# Restrictions
  - Approximation of Character.isLetter with : Character.isLowerCase or Character.isUpperCase.
  - No support for surrogate pairs.

Concurrent Executor

java.util.concurrent implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of java.util.concurrent.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="concurrent.executor" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Exit

Exit utilities.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains exit utilities.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="exit" rev="1.+"/>`

# Requirements
  - EDC-1.2 or higher

# Dependencies
None.

# Source
N/A

# Restrictions
None.
Maps implementations.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains the implementation of maps implementations.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="util" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
N/A

# Restrictions
None.

Observable

Observer design pattern abstract classes.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains classes for the observer design pattern.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="observable" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later
  - KF 1.3 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

Progress

Activity Progress Monitoring implementation.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2015-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
This library contains classes for monitoring the progress of an activity.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="ej.library.util" name="progress" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

JSON encoder/decoder

JSON encoder/decoder.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

# Overview
JSON in Java [package org.json]

JSON is a light-weight, language independent, data interchange format.
See http://www.JSON.org/

The files in this package implement JSON encoders/decoders in Java.
It also includes the capability to convert between JSON and XML.

This is a reference implementation. There is a large number of JSON packages
in Java. Perhaps someday the Java community will standardize on one. Until
then, choose carefully.

The package compiles on Java 1.6-1.8.


JSONObject.java: The JSONObject can parse text from a String or a JSONTokener
to produce a map-like object. The object provides methods for manipulating its
contents, and for producing a JSON compliant object serialization.

JSONArray.java: The JSONObject can parse text from a String or a JSONTokener
to produce a vector-like object. The object provides methods for manipulating
its contents, and for producing a JSON compliant array serialization.

JSONTokener.java: The JSONTokener breaks a text into a sequence of individual
tokens. It can be constructed from a String, Reader, or InputStream.

JSONException.java: The JSONException is the standard exception type thrown
by this package.

JSONString.java: The JSONString interface requires a toJSONString method,
allowing an object to provide its own serialization.

JSONStringer.java: The JSONStringer provides a convenient facility for
building JSON strings.

JSONWriter.java: The JSONWriter provides a convenient facility for building
JSON text through a writer.

XML.java: XML provides support for converting between JSON and XML.

XMLTokener.java: XMLTokener extends JSONTokener for parsing XML text.

Unit tests are maintained in a separate project. Contributing developers can test 
JSON-java pull requests with the code in this project: 
https://github.com/stleary/JSON-Java-unit-test

Numeric types in this package comply with ECMA-404: The JSON Data Interchange Format 
(http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf) and 
RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format 
(https://tools.ietf.org/html/rfc7159#section-6). 
This package fully supports Integer, Long, and Double Java types. Partial support 
for BigInteger and BigDecimal values in JSONObject and JSONArray objects is provided 
in the form of get(), opt(), and put() API methods.


# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="org.json.me" name="json" rev="1.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

kXML 2

XML pull parser.
LIBRARY for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
14 September 2016
<!--
	Markdown
	Copyright 2014-2016 IS2T. All rights reserved.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
kXML is a small XML pull parser, specially designed for constrained environments such as Applets, Personal Java or MIDP devices. In contrast to kXML 1, kXML 2 is based on the common 
XML pull API.

# Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
> `<dependency org="org.kxml2" name="kxml2" rev="2.3.+"/>`
	
# Requirements
  - EDC 1.2 or later

# Dependencies
None.

# Source
N/A

# Restrictions
None.

NXP K65 Platform Reference Implementation (Single-app, GCC, FreeRTOS)

The Platform Reference Implementation for the TWRK65F180M board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-TWRK65F180M-SGF-LNTOC
Last updated:
14 September 2016

NXP K65 Platform Binary (Single-app)

The Platform Binary for the TWRK65F180M board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PTF-EVAL-TWRK65F180M-SGF-LNTOC
Last updated:
14 September 2016

NXP K65 Platform Reference Implementation (Multi-app, GCC, FreeRTOS)

The Platform Reference Implementation for the TWRK65F180M board.
JPF_NXP for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Technical Ref.: PRI-EVAL-TWRK65F180M-MGF-2VLQR
Last updated:
31 August 2016

Using SNI and SP Libraries API (Standalone)

This repository contains examples showing how to enable communication between programs written in C and programs written in Java.
EXAMPLE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Last updated:
12 August 2016
[](Markdown)
[](Copyright 2016 IS2T. All rights reserved.)
[](IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.)
# Overview

Although MicroEJ lets you leverage Java in an embedded context, there are still some cases where your Java threads need to synchronize and exchange data with OS tasks written in C/C++.

This repository contains examples showing how to enable communication between programs written in C and programs written in Java using MicroEJ APIs.

## Available examples

For tasks/threads synchronisation via function calls and callbacks, MicroEJ provides the SNI API.
For data exchange issues between tasks/threads, MicroEJ provides a few options:
* Shielded Plug API (suitable for sharing structured data, with built-in wait/release synchronisation APIs)
* Immortals API and SNI API (suitable for sharing access to raw data, but you need to provide your own synchronisation mechanism)

The following examples, most of them based on the consumer/producer problem, illustrate how to use those APIs :
* [Making synchronous C functions calls from Java](/CallingCFromJava) using SNI
* [Producer Consumer with ShieldedPlug](/ProducerConsumerUsingShieldedPlug) using Shielded Plug API as the delivery mechanism
* [Producer Consumer with SNI and Immortals](/ProducerConsumerUsingQueues) using SNI and Immortals APIs to wrap the native FreeRTOS message queue API as the delivery mechanism

Each example comes with a launch configuration. These launch configurations require that the target platform (common to each configuration) is built.

To build the platform :
* Open the [full.platform]([/STM32F746GDISCO-SNI_SP-CM7_ARMCC-FreeRTOS-configuration/full.platform]) file
* Click on the **Build Platform** hyperlink in the **Build** frame

## API Selection Criteria

Here are a few things to consider when choosing between Shielded Plug and an SNI and Immortals based solution

* Performance
	* Generally speaking, Shielded Plug (SP for short) will copy data from/to a database block and will therefore take more processing time and memory than an SNI-based solution relying on a shared memory area with less data copying.
	* SP is more suitable for asynchronous (post) processing of published data

* Data Integrity
	* Given that with SP there is no buffering of data, it makes it more suitable for sampling scenarios where losing a value once in a while is not critical .

* API convenience
	* SP requires that you describe your data in an xml based configuration file.
	* However, the SP synchronization API is quite simple
	* Using SNI and Immortals, it is easier to pass data directly to/from C native functions

In summary, for simple use cases, Shielded Plug shall suffice, but for more intensive and more constrained environments, SNI and Immortals may be a better fit.

## Additional references

Additional examples can be found at the following locations:
* Java/C Data Sharing Using SNI application note on www.microej.com.
* Synchronizing a Java thread with C task(s) application note on www.microej.com.

### B-ON Library Specification

Among other things, the **Beyond Profile Specification** document contains detailed information on:

* sharing memory areas between Java and C/C++ using **immortal objects**

**immortal objects** : such objects are never garbage collected and keep the same physical memory location forever. This makes them useful for specifying shared memory areas between C and Java.

To access the document from MicroEJ:

* Select **Help > MicroEJ Resource Center** menu item
	* Select **Library Specification > BON 1.2**

### SNI Library Specification

The **Simple Native Interface for GreenThread Context Profile Specification** document contains detailed information on :

* how to map Java primitive types to portable C types for methods/functions parameters and return types
* naming conventions for C functions implementing Java SNI native implementations
	* these have to be followed to generate valid linker configuration files
* sharing memory areas between Java and C/C++ using **immortal objects**
* controlling (as in suspend and resume) Java Thread execution from C code

To access the document from MicroEJ:

* Select **Help > MicroEJ Resource Center** menu item
	* Select **Library Specification > SNI_GT 1.2**
	
### Shielded Plug Library Specification

The **Shielded Plug Profile Specification** document contains detailed information on :

* the concepts underlying the Shielded Plug API
* how to map Java primitive types to portable C types for methods/functions parameters and return types
* how to create dedicated readers/writers that can translate Shielded Plug Blocks into Java Objects
* the reference API for both C and Java languages

To access the document from MicroEJ:

* Select **Help > MicroEJ Resource Center** menu item
	* Select **Library Specification > SP 1.0**
	
### Simulation

The **Simulation** section of the **platform architecture manual** document contains useful info for :

* creating Java mocks simulating native code using the same naming conventions as SNI
* using the Hardware In the Loop (HIL) engine as a replacement for the SNI/GreenThread interface used on target environments

To access the document from MicroEJ:

* Select **Help > MicroEJ Resource Center** menu item
	* Select **Manual > Platform Architecture - User Manual**
	
# Requirements

* MicroEJ SDK 4.0.0 or later
* Keil MicroVision v5.0 or later

Application Developer's Guide (Sandboxed)

Learn to develop your first sandboxed apps.
GUIDE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio
Last updated:
26 July 2016

Application Developer's Guide (Standalone)

Learn to develop your first standalone apps.
GUIDE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Last updated:
26 July 2016

Device Developer's Guide

Learn to develop your first platform.
GUIDE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: SDK
Last updated:
30 June 2016

Product Overview

Discover the MicroEJ Product Line.
GUIDE for MISC
Supported MicroEJ Version: 4.0
Supported MicroEJ Edition: Studio & SDK
Last updated:
30 June 2016

Excel to NLS

Transform an Excel file (xlsx) to a set of NLS files.
TOOL for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
31 July 2015
# Overview
Internalization is an important part of many projets so that users can select the language they want for their system. MicroEJ offers a library named NLS (National Language Support) to help developers to internationalize the messages in their applications. NLS imposes the structure of the translation files, with a simple and efficient "[key]=[message]" format. Nevertheless, each company may be have their own format for the translation files they share with their translators, often using Microsoft Excel.

Here, we demonstrate how an Excel file (xlsx) can be converted to files that respect the NLS format. We use the Apache POI library to make this transformation. You can adapt this tool to your specific file format.

Two Eclipse projets are provided:
1. Excel-to-NLS converts an Excel file to a set of NLS files and drops the result in the second project.
2. HelloWorld takes all the generated files and uses NLS to display the same message in several languages.

## Project Setup
Excel-to-NLS comes without the JAR files from Apache POI. You have to download them from http://poi.apache.org. You have to copy the following JAR files to the `lib` folder of the project:
- poi-[version].jar
- poi-ooxml-[version].jar
- poi-ooxml-schemas-[version].jar
- xmlbeans-[version].jar

Then, right-click on the project and select Properties. In the left menu, select Java Build Path and open the Libraries tab. Add the above JARs to the Java build path.

HelloWorld is already fully configured.

### Requirements
MicroEJ 3.1.0 or above must be installed on your computer.

### Project structure
- Tool-Excel-to-NLS

 - Excel-to-NLS
  - `excel/`:  folder with a example xlsx file
  - `launches/`: Java launch configuration
  - `lib/`:  folder to place the dependency JAR files  
  - `src/main/java/`: Java sources
  
 - HelloWorld
  - `excel/`:  folder with a example xlsx file
  - `launches/`: MicroEJ launch configuration 
  - `src/main/java/`: Java sources
  - `src/main/resources/`: resources
  
 - `LICENCE.md`
 - `README.md`


## Usage
First, execute the App class of the Excel-to-NLS project. A Java launch configuration is provided for convenience, right-click on launchs/Excel-to-NLS.launch and select Run as->Excel-to-NLS. This will generate a set of NLS files and drop them in the appropriate folder of the HelloWorld project.

Second, execute the Main class of the HelloWorld project. A MicroEJ launch configuration is provided with the path to the NLS.list properly configured. This will print the same message with all the available locales in the Eclipse console.

## License
See the license file `LICENSE.md` located at the root of this repository.

Resources in External MCU Memories

Example that shows how to store resources in external non-byte addressable memories.
EXAMPLE for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
23 July 2015
# Overview
The following project illustrates the MicroEJ external resource loader feature (used for resources stored on non-byte-addressable memories).

## ExternalImages
This example displays images supposed to be in the external resources.

### Requirements
- JRE 7 (or later) x86.
- MicroEJ 3.1 or later.
- Java platform with (at least) EDC-1.2, MICROUI-1.5.0 and containing the module `External Resources Loader`.

### Project structure
- `src/main/java`
  - Java sources
- `externalResources`: Images supposed to be in the external resources
- `launches/`: MicroEJ launches

### Launches
A Simulation and an Embedded launches are available.

## LLEXT implementations

### LLEXT_static_array.c
This file should be part of a MICROEJ -bsp project and is the low level driver for the external resource module.
This implementation simply stores the images in a static array (as PNG encoded).
You can also use decoded images (bitmap) generated by the image generator in MicroEJ.

## Changes
- First release: ExternalImages example and LLEXT_static_array.c.

## License
See the license file `LICENSE.md` located at the root of this repository.

Eclasspath BufferedStreams

This library contains the implementation of Buffered streams.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of Buffered streams.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="bufferedstreams" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.

# Source
- Open JDK 8u20

## Restrictions
- Removed `java.io.BufferedReader.lines()`
- No atomic modification of `java.io.BufferedInputStream.close()`

# Changes
- 1.0.0: Initial version.

Eclasspath Collections

This library contains abstract classes and interfaces that implement List, Set, Queue and Map.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains abstract classes and interfaces for implementing List, Set, Queue and Map.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="collections" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.

# Source
- Open JDK 7u65

## Restrictions
There is no restrictions.

# Changes
- 1.0.0: Initial version.

Eclasspath CollectionsUtil

This library contains the implementation of Collections, Arrays and Objects and some Sort algorithms.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of Collections, Arrays and Objects and some Sort algorithms.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="collectionsutil" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
- ej.eclasspath.collections
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
- Open JDK 7u65

## Restrictions
- Removed Arrays.copyOf

# Changes
- 1.0.0: Initial version.

Eclasspath Executor

This library contains all interfaces of the java.util.concurrent.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains all interfaces for the implementation of the java.util.concurrent.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="executor" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.

# Source
- Open JDK 7u65

## Restrictions
There is no restrictions.

# Changes
- 1.0.0: Initial version.

Eclasspath HttpClient

This library contains the implementation of an HTTP client.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of an HTTP client.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="httpclient" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later
- NET 1.0 or later

## Dependencies
- ej.eclasspath-bufferedstreams
- ej.eclasspath-collectionsutil
- ej.eclasspath-url
- ej.eclasspath-stringtokenizer
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
- Open JDK 8u20

## Restrictions
- Removed java.text.DateFormat dependency APIs
- Removed java.net.Proxy dependency and proxy tunneling connection
- Removed traffic capture
- Removed response caching
- Removed authentication management
- Removed restricted headers support
- Removed cookie management
- Removed keep-alive management
- Removed cache request management

# Changes
- 1.0.0: Initial version.

Eclasspath Lists

This library contains some implementations of java.util.List.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains some implementation of java.util.List.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="lists" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
- ej.eclasspath-collections
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
- Open JDK 8u20

## Restrictions
There is no restrictions.

# Changes
- 1.0.0: Initial version.

Eclasspath PipedStreams

This library contains the implementation of Piped streams.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of Piped streams.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="pipedstreams" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.

# Source
- Open JDK 8u40

## Restrictions
There is no restrictions.

# Changes
- 1.0.0: Initial version.

Eclasspath PrintWriter

This library contains the implementation of java.io.PrintWriter.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of java.io.PrintWriter.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="printwriter" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.
	
# Source
- Open JDK 8u20

## Restrictions
There is no restrictions.

# Changes
- 1.0.0: Initial version.

Eclasspath Properties

This library contains the implementation of java.util.Properties.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of java.util.Properties.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="properties" rev="1.+"/>`
	
# Requirements
- EDC 1.2 or later

## Dependencies
- ej.eclasspath-bufferedstreams
- ej.eclasspath-printwriter
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
- Open JDK 8u20

## Restrictions
- Removed printf formatting

# Changes
- 1.0.0: Initial version.

Eclasspath Queues

This library contains some implementations of java.util.Queue.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains some implementations of java.util.Queue.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="queues" rev="1.+"/>`

# Requirements
- EDC 1.2 or later

## Dependencies
- ej.eclasspath-collections
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
- Open JDK 7u65

## Restrictions
- Removed serialization support
- Removed cloning operations and dynamically typesafe collection wrappers

# Changes
- 1.0.0: Initial version.

Eclasspath StringTokenizer

This library contains the implementation of java.util.StringTokenizer.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown

	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of java.util.StringTokenizer.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="stringtokenizer" rev="1.+"/>`

# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.

# Source
- Open JDK 8u20

## Restrictions
- Removed code point support

# Changes
- 1.0.0: Initial version.

Eclasspath URI

This library contains the implementation of java.net.URI.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of java.net.URI.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	`<dependency org="ej.library.eclasspath" name="uri" rev="1.+"/>`

# Requirements
- EDC 1.2 or later

## Dependencies
- ej.eclasspath.url
_All dependencies are retrieved transitively by Ivy resolver_.

# Source
- Open JDK 8u20

## Restrictions
- Removed serialization support
- Removed java.net.URI.toAsciiString to avoid Normalizer dependency
- Removed java.net.URI.toURL to avoid URL dependency

# Changes
- 1.0.0: Initial version.

Eclasspath URL

This library contains the implementation of java.net.URL.
LIBRARY for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
25 June 2015
<!--
	Markdown
	
	Copyright 2014-2015 IS2T. All rights reserved.
	Modification and distribution is permitted under certain conditions.
	IS2T PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
# Overview
This library contains the implementation of java.net.URL.

## Usage
Add the following line to your `module.ivy` or your `ivy.xml`:
	è<dependency org="ej.library.eclasspath" name="url" rev="1.+"/>`

# Requirements
- EDC 1.2 or later

## Dependencies
There is no external dependencies.

# Source
- Open JDK 8u20

## Restrictions
- Removed serialization support
- Removed java.net.URI dependency
- Removed java.text.DateFormat dependency APIs
- Removed dependency to Internet (two URLs with two host names targeting the same IP address are not equals)
- Removed guess Content-Type methods (java.net.URLConnection.guessContentTypeFromStream, java.net.URLConnection.guessContentTypeFromName)
- Removed java.net.URLConnection.getPermission
- Removed java.net.URLConnection ifModifiedSince support

# Changes
- 1.0.0: Initial version.

Components Hello World

This project illustrates the ej.components library.
EXAMPLE for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
16 June 2015
# Overview
This project illustrates the _ej.components_ library.
It contains a service implementation and two bundles: the service publisher and the service user.

## Project Setup
First of all, you have to download the repository by using the Download button or by cloning the repository.
After having retrieved the repository content, open your MicroEJ and then import Existing project into workspace by selecting either the ZIP file or the root directory.

### Requirements
- JRE 7 (or later) x86
- MicroEJ 3.1 or later
- A Java platform to test with at least: EDC 1.2 & EJ.COMPONENTS 2.0 & LOGGING-LIGHTWEIGHT 2.0.

### Project structure
- `helloService`
  - `[â¦]/Hello.java`: the interface defining the service.
- `helloPublisher`
  - `[â¦]/HelloPrint.java`: an implementation of the service.
  - `[â¦]/HelloPublisherBundle.java`: the bundle publishing the service implementation.
- `helloUser`
  - `[â¦]/SayHelloToEveryone.java`: an application that uses the service.
  - `[â¦]/HelloUserBundle.java`: the bundle retrieving the service.
- `helloWorld`: the startup (main) of the example.
  - `src/main/java`: Java sources.
  - `src/main/resources`: the properties and bundles list.
  - `launches`: the MicroEJ launches.

## Usage
To launch the application, right-click on the `helloWorld` project,
select `Run as`, `MicroEJ Application` and choose `Hello World Components (Sim)`.
Another launcher is available to execute on the target board.

## Changes
2015/06/15: Initial version.

## License
See the license file `LICENSE.md` located at the root of this repository.

Sonar

This project presents how to run the SonarQube(TM) source code quality analyzer on a MicroEJ Java project.
TOOL for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
16 April 2015
# Overview
This project presents how to run the SonarQube⢠source code quality analyzer on a MicroEJ Java project.
This project installs and runs a local SonarQube server and provides locally a report holding the code inspection.

SonarQube is a an open source platform for continuous inspection of code quality. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, potential bugs, comments and architecture.

SonarQube is available at www.sonarqube.org.

### Requirements
- JRE 7 x86 or later.
- MicroEJ 3.0 or later.

### Project structure
- `launches/`: Ant analysis launch.
- `lib/`: SonarQube server & client, HTTP ant task.
- `rules/`: MicroEJ coding rules.
- `scripts/`: ant scripts to run SonarQube server and execute analysis.
- `LICENSE.md`.
- `README.md`.

### Configuration
You can either runs the SonarQube analysis on one of the MicroEJ java example (see 1) or one of your Java project (see 2).
1- The provided example assumes the MyMVCSample example Java project is present in the workspace. To do that: File->New->MicroEJ->Java Example-> select any JPF (e.g. STM32F429I-DISCO KickStart) and select MicroUI->MVC example.
2- Open the ExampleTool-Sonar/scripts/sonarAnalysis.ant file, edit it to match the project you want to analyze:
- pathelement location,
- sonar.projectName,
- sonar.projectKey,
- sonar.projectVersion.

## Usage
### Launch an analysis
- Launch MicroEJ.
- File->Import->General->Existing project into workspace: import ExampleTool-Sonar folder.
- Edit the configuration (/scripts/sonarAnalysis.ant) as described in the configuration section if needed.
- Right-click on scripts/sonarAnalysis.ant->Run asâ¦->Ant build.
- The server is automatically started.
- The report can be viewed at http://localhost:9000/dashboard/index/com.is2t:MyMVCSample (note: adapt the path to match your project's name if required).

### Launch the server
- Right-click on scripts/sonarServer.ant->Run asâ¦->Ant build.
- All your previous analysis are available at http://localhost:9000/.

## Changes
- Initial version.

## License
See the license file 'LICENSE.md' located at the root of this repository.


TestSuite

This MicroEJ project presents how to test code.
EXAMPLE for MISC
Supported MicroEJ Version: 3.1
Supported MicroEJ Edition: SDK
Last updated:
16 April 2015
# Overview

This project is a Java Test Suite example for MicroEJ. The MicroEJ Test-Suite is an engine made for validating any development project using automatic testing. The MicroEJ Test-Suite engine allow the user to test any kind of projects within the configuration of a generic ant file.

The test suite output is created in a /results folder in xml and html format.

The MicroEJ test suite documentation can be found in the MicroEJ Platform Architecture User Manual in section Developments Tools -> Test Suite. This document can be viewed in MicroEJ Resource center view -> Manual.


## Project Setup

- Import the JavaTestSuite project in a MicroEJ workspace.
- This project comes with a default MicroEJ launchers (.launch) for the STM32F429IDISCO kickstart Java Platform. This can be changed in Run->run configuration->MicroEJ Application->Test 1: Execution -> Target JPF.
- Run->run configuration: MicroEJ Application->Test 1: click on Run
- Right click on the testsuite/javaTestsuite.xml->Run as-> Ant Build

### Requirements

- JRE 7(or later) x86
- MicroEJ 3.1 or later

### Project structure

- `src/`
  - Java sources
- `launch/`: MicroEJ launches
- testsuite/: the harness and Java test suite configuration
- `LICENCE.md`
- `README.md`


## Usage

Follow the instructions described in the MicroEJ Platform Architecture User Manual in section Developments Tools -> Test Suite.

## Changes

- Dec 2014: initial release

## License

See the license file `LICENSE.md` located at the root of this repository.