March 15, 2019 By David Shi 3 min read

Migrate from your current JEE app server to Open Liberty in a few easy steps

The nine-part series Migrating Java Microservices from Spring Boot to MicroProfile covered the underlying components of Eclipse MicroProfile, such as the Rest Client for creating APIs for microservice applications, Context Dependency Injection for supporting annotation-based wiring, Fault Tolerance for problem recovery, and OpenTracing for diagnosing service issues.

This short blog touches on a specific how-to: Simple steps to migrate from your current JEE application server to Open Liberty, an enterprise-grade open-source application server. To demonstrate the steps, this blog will excerpt the required file changes using our reference implementation storefront app, BlueCompute. It’s implemented in both Spring and MicroProfile (GitHub source); the following two sections will cover the steps for each implementation migration.

MicroProfile: Steps for migrating your Java microservices app to Open Liberty

Clicking onto the BlueCompute repository’s MicroProfile branch will redirect you to the overall repository, but each microservice has its own build we must configure to use Open Liberty. To assist us, Liberty has a Maven plugin with documentation to help manage these configurations. If building with Gradle, you can check out Liberty’s Gradle plugin for its set of documentation.

Maven Coordinates (properties, artifactId): The excerpts below feature the orders repository, which uses the default approach of locating Maven artifacts. To edit this and other build details, we modified the pom.xml:

// wlp runtime properties
<groupId.liberty-runtime>com.ibm.websphere.appserver.runtime
  </groupId.liberty-runtime>
<artifactId.liberty-runtime>wlp-webProfile8
  </artifactId.liberty-runtime>
<version.liberty-runtime>18.0.0.4
  </version.liberty-runtime>

In this case, the pom.xml is pointing to WebSphere Liberty WebProfile 8, version 18.0.0.4. Therefore, switching the runtime only requires swapping the group ID and artifact ID to specify Open Liberty instead:

// Open Liberty runtime properties
<groupId.liberty-runtime>io.openliberty</groupId.liberty-runtime>
<artifactId.liberty-runtime>openliberty-runtime</artifactId.liberty-runtime>
<version.liberty-runtime>18.0.0.4</version.liberty-runtime>

When choosing a runtime version, you can refer to the Open Liberty download page for a list of options. The repository also includes a README that explains how to deploy the app on Open Liberty.

Spring Boot: Steps for migrating your Java microservices app to Open Liberty

Luckily for us, Open Liberty has the Maven Boost plugin to make our lives much simpler, giving us a good place to start with a Spring app. Before we begin, we must first enable the Boost plugin in our pom.xml:

// Enable the Boost Maven Plugin
<plugin>
  <groupId>io.openliberty.boost</groupId>
  <artifactId>boost-maven-plugin</artifactId>
  <version>0.1.1</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>package</goal>
        </goals>
    </execution>
  </executions>
</plugin>>

To build the app for the Open Liberty runtime, we simply run the mvn package command. This will produce three jars in the resulting target directory—one containing the original app (jar.original), the app on Spring (jar.spring), and the app on Open Liberty (<application_name>.jar).

Similarly, the Spring branch also features a README to show how to run the Spring version of the app on Open Liberty.

What’s next

As you can see, the Gradle and Maven Boost assistant plugins simplify the process of moving a Spring or MicroProfile-based Java application to Open Liberty with a few simple changes. The Open Liberty open-source project can act as a playground for some various modern DevOps technologies, such as Docker and Kubernetes. If you’d like to learn more, click a component in the following MicroProfile diagram; it will lead you to a corresponding blog in the series that goes into more implementation details:

For the developers more interested in studying microservices in general, check out the the Eclipse MicroProfile community, which seeks to optimize Enterprise Java. MicroProfile bundles many beneficial features for managing your app from various angles. You can start exploring using these sample app repositories that also run on the Open Liberty runtime.

Finally, you can participate in the Open Liberty GitHub community and explore the Open Liberty guides for more learning material about microservices app development.

Was this article helpful?
YesNo

More from Cloud

Attention new clients: exciting financial incentives for VMware Cloud Foundation on IBM Cloud

4 min read - New client specials: Get up to 50% off when you commit to a 1- or 3-year term contract on new VCF-as-a-Service offerings, plus an additional value of up to USD 200K in credits through 30 June 2025 when you migrate your VMware workloads to IBM Cloud®.1 Low starting prices: On-demand VCF-as-a-Service deployments begin under USD 200 per month.2 The IBM Cloud benefit: See the potential for a 201%3 return on investment (ROI) over 3 years with reduced downtime, cost and…

24 IBM offerings winning TrustRadius 2024 Top Rated Awards

2 min read - TrustRadius is a buyer intelligence platform for business technology. Comprehensive product information, in-depth customer insights and peer conversations enable buyers to make confident decisions. “Earning a Top Rated Award means the vendor has excellent customer satisfaction and proven credibility. It’s based entirely on reviews and customer sentiment,” said Becky Susko, TrustRadius, Marketing Program Manager of Awards. Top Rated Awards have to be earned: Gain 10+ new reviews in the past 12 months Earn a trScore of 7.5 or higher from…

IBM Tech Now: April 8, 2024

< 1 min read - ​Welcome IBM Tech Now, our video web series featuring the latest and greatest news and announcements in the world of technology. Make sure you subscribe to our YouTube channel to be notified every time a new IBM Tech Now video is published. IBM Tech Now: Episode 96 On this episode, we're covering the following topics: IBM Cloud Logs A collaboration with IBM watsonx.ai and Anaconda IBM offerings in the G2 Spring Reports Stay plugged in You can check out the…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters