Open Liberty Adds Support for JDK12, Reactive Streams

The latest version of Open Liberty, the open source implementation of Eclipse MicroProfile and enterprise Java from IBM and the foundation of the WebSphere Liberty app server, adds features to support the MicroProfile Reactive Streams Operators 1.0 API, JDK 12, and Oracle Universal Connection Pool.

IBM introduced Open Liberty in 2017 when it released its Liberty development assets to open source under the Eclipse Public License v1. The project's goal is to make it possible for Java microservices to be frequently updated and easily moved among different cloud environments. WebSphere Liberty was launched in 2012 as a lightweight app server for Java EE 7.

"The creation of Open Liberty is part of a broader strategy and long-standing commitment from IBM to open source," said Walt Noffsinger, Director of IBM's Application Platform and Runtimes group, in an earlier interview.

The company released the code underlying WebSphere Liberty to GitHub, where it's now available under the Eclipse Public License. Open Liberty represents one the company's largest contribution to open source to date. Both WebSphere Liberty and Open Liberty are included in IBM Cloud Private, the company's container-based Kubernetes application platform.

The headliner in this Open Liberty release is support for Reactive Streams. As Laura Cowen, developer advocate for Open Liberty at IBM, explained in a recent blog post, "The Reactive Streams Operators feature provides flow control and elegant error handling when subscribing to and processing streams of events."

Conceptualized in the "Reactive Manifesto," which was co-authored by Lightbend CTO and co-founder Jonas Bonér, reactive applications are apps that better meet the "contemporary challenges of software development" in a world in which applications are deployed to everything from mobile devices to cloud-based clusters running thousands of multicore processors.

"Reactive streams provide for a powerful abstraction that can handle, perhaps infinite, streams of events in a manner that prevents downstream clients being overwhelmed," Cowen wrote. "Provided operators can filter, combine or map events, handle errors, and so on, all without breaking the stream processing pipeline. Additionally, streams are generic over application domain types and allow developers to compose multiple technologies using a common succinct approach enabling them to concentrate more on application domain problems."

The release also supports any official Java SE 12 release from AdoptOpenJDK, OpenJDK, or Oracle. The list of key support features added in this release includes garbage collection improvements and startup time improvements for the Hotspot VM. "Java SE 12 is not a long-term supported release, with standard support scheduled to end in September 2019," Cowen noted.

The other big update in this release is support for Oracle Universal Connection Pool (UCP), which is a standalone JDBC connection pool. "When using Oracle UCP with Open Liberty, you are using the Oracle UCP connection pool instead of using Open Liberty's built-in connection pooling functionality," Cowen explained. "This allows users of Oracle Real Application Clusters (RAC) to take advantage of Oracle's high availability and performance functionality such as Fast Connection Failover (FCF), Fast Application Notification (FAN), and Oracle Notification Services (ONS). Support for Oracle UCP was added in Open Liberty version"

The new release is available now on the Open Liberty download page.

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].