Eclipse MicroProfile

What is Eclipse MicroProfile?

The MicroProfile project was launched in June 2016 as a collaborative effort between Java application server vendors and the enterprise Java community to enable fast innovation.

MicroProfile is a specification which provides a set of APIs focused on microservices. The complete MicroProfile API is provided as a Bill Of Materials(BOM) which can be used by developers as a generic dependency provided by a vendor of their choice.

Payara has been part of the MicroProfile project from its inception and, therefore, supports all specifications of MicroProfile.

Payara Support for MicroProfile

Version 3.0

Version 3.0 of MicroProfile brings in another Java EE API: JSON-P 1.1. This version also includes updates to Metrics, Health Check, and Rest Client. This is partially supported by both Payara Server and Payara Micro from release 5.193, the updated APIs supported in this version are: Metrics.

Version 2.2

Version 2.2 of MicroProfile includes an update to FaultTolerance, the RestClient, OpenAPI and OpenTracing. This is supported by both Payara Server and Payara Micro from release 5.192

Version 2.1

Version 2.1 of MicroProfile includes an update to OpenTracing, bringing it up to version 1.2. This is supported by both Payara Server and Payara Micro from release 5.191

Version 2.0

Version 2.0 of MicroProfile brings in Java EE 8 technology updates: CDI 2.0, JAX-RS 2.1, JSON-P 1.1, Commons Annotation 1.3, and JSON-B 1.0. This version also includes updates present in 1.4: Fault Tolerance 1.1, JWT-Auth 1.1, and OpenTracing 1.1. This is supported by both Payara Server and Payara Micro from release 5.183

Version 1.3

Version 1.3 of MicroProfile includes 3 new APIs, and updates to the existing Metrics and Config APIs. This is supported by both Payara Server and Payara Micro from release 4.1.2.182 and 5.182

Version 1.2

Version 1.2 of MicroProfile includes 4 new APIs and an update to the existing config API and is supported by both Payara Server and Payara Micro from release 4.1.2.181 and 5.181

Version 1.1

Version 1.1 of the MicroProfile specification includes the Config 1.0 API and is supported by both Payara Server and Payara Micro from release 4.1.2.173

Version 1.0

Since version 1.0 of MicroProfile only included existing specifications already supported by Payara Server and Payara Micro, an application targeting version 1.0 of MicroProfile can be run on any release of Payara Server or Payara Micro.

What does each specification contain?

Version Specifications Maven

3.0

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>3.0</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

2.2

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>2.2</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

2.1

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>2.1</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

2.0

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>2.0.1</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

1.3

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>1.3</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

1.2

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>1.2</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

1.1

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile-bom</artifactId>
    <version>1.1.0</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

1.0

  • JAX-RS 2.0

  • CDI 1.1

  • JSON-P 1.0

<dependency>
    <groupId>io.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>1.0.0</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>