Payara MicroProfile 1.0 Released

Photo of Steve Millidge by Steve Millidge

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.

 

 Payara MicroProfile   download here

 

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.

  1. Join the Google Group
  2. Hack some code or comment on the microprofile samples
  3. Join the Payara community and shape Payara Micro
  4. 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 

 

     Eclipse MicroProfile       Find out more

 

 

Comments