Payara MicroProfile 1.0 Released
Originally published on 19 Sep 2016
Last updated on 06 Jan 2020
Back in June we announced MicroProfile with RedHat, IBM, Tomitribe, LJC and SouJava and Microprofile.io was launched as a location for community collaboration on Enterprise Java Microservices. In the announcement each of the vendors promised to have a MicroProfile runtime ready and available in time for JavaOne. Well after much beavering away here in the Payara Engineering team we have just pushed onto Maven Central our 1.0 release of Payara MicroProfile.
What's in Payara MicroProfile
Our MicroProfile release is a cut-down build of Payara Micro 163.1. We have taken Payara Micro and shrunk it to support the MicroProfile apis; JSON-P, CDI and JAX-RS. As it is based on Payara Micro all the command line options you know and love are still available including Uber Jar creation. We've also left in JCache/Hazelcast as a core service as this is fundamental to our future plans for microservices and the creation of a microservices fabric.
Using Payara MicroProfile
You use Payara MicroProfile in the same way as you use Payara Micro. To switch to MicroProfile update your maven dependencies to use the new MicroProfile artifacts.
<dependency>
<groupId>fish.payara.extras</groupId>
<artifactId>payara-microprofile</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
You can also download the Payara MicroProfile runtime direct from Maven Central using the dependency.
To build a microservice application build a standard JAX-RS war using CDI and JSON-P using any tool of your choice and then deploy it to Payara MicroProfile using either the command line
java -jar payara-microprofile-1.0.jar --deploy test-app.war
or you can build an UberJar from your war file using the command line
java -jar payara-micro-1.0.jar --deploy test-app.war --outputUberJar test-app.jar
java -jar test-app.jar
If you want to build an UberJar as part of your maven build you can use the maven exec plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.5.0</version>
<dependencies>
<dependency>
<groupId>fish.payara.extras</groupId>
<artifactId>payara-microprofile</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>payara-uber-jar</id>
<phase>package</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>fish.payara.micro.PayaraMicro</mainClass>
<arguments>
<argument>--deploy</argument>
<argument>${basedir}/target/${project.build.finalName}.war</argument>
<argument>--outputUberJar</argument>
<argument>${basedir}/target/${project.build.finalName}.jar</argument>
</arguments>
<includeProjectDependencies>false</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<executableDependency>
<groupId>fish.payara.extras</groupId>
<artifactId>payara-microprofile</artifactId>
</executableDependency>
</configuration>
</execution>
</executions>
</plugin>
Once you have your application all the standard Payara Micro command line options can be used with Payara MicroProfile.
Example MicroProfile Conference Application
If you want to see Microservices in action, as part of the MicroProfile.io collaboration all the participants have been developing a sample conference application on GitHub. The Payara microservice is the schedule service and contains an example of how to build an UberJar with Payara.
Payara Micro and Payara MicroProfile
Payara Micro is our platform for building Microservices with Payara. We have created the microprofile version of Payara Micro specifically for the Microprofile initiative and released it at 1.0 to correspond with the MicroProfile.io versioning. In the future we are going to make it easier to modularise the Payara Micro runtime by easily adding and removing jars from the runtime jar. Payara Micro is fundamentally very modular it is just not easy at the moment to choose a set of jars that gives you the functionality you want. We are actively developing modular packaging so in the future you'll be able to mix and match the components you want to build the microservices runtime best suited to your application.
Get Involved!
If you want to shape the future of Microprofile please get involved. Microprofile is an open industry collaboration to drive microservices innovation in Enterprise Java. In the future we will look to rapidly develop new apis supported by all the runtimes, with the possibility that they will then be formally standardised through a standards body. APIs we are thinking of include Service Discovery; Circuit Breakers; Configuration; Monitoring; Load Balancing; Eventing; Reactive. All these will be developed in the open with the community so now is the time to get involved.
- Join the Google Group
- Hack some code or comment on the microprofile samples
- Join the Payara community and shape Payara Micro
- If you are at Java One 2016 get some MicroProfile swag from the MicroProfile members in the exhibition and sign up for the MicroProfile lunch in San Francisco on Thursday the 22nd of September
Related Posts
A Preview of Jakarta REST (JAX-RS) 4.0 in Jakarta EE 11
Published on 13 Nov 2024
by Luqman Saeed
0 Comments
The latest version of Jakarta REST (formerly Java API for RESTful Web Services, aka JAX-RS), Jakarta REST 4.0, will bring some notable improvements and changes as part of Jakarta EE 11. This release focuses on modernizing the specification by ...
Nugget Friday - Building Resilient Microservices with MicroProfile Fault Tolerance
Published on 08 Nov 2024
by Luqman Saeed
0 Comments
While we all want maximum uptime for our software systems, failures and downtimes are inevitable. However, these can be minimized and quickly resolved through comprehensive, robust and well-designed fault tolerance mechanisms. This Nugget ...