Oracle JDK 8 will end its life in January, 2019 (153 days from now), stopping the release of public updates, so better start moving and stay up-to-date with latest JDK versions containing awesome features and security fixes.
Starting from JDK 11 and onwards, the release cycle will be a new version every 6 months and a new LTS version every 3 years (next is JDK 11).
It also worth to say…
scratchbase image, thus have a similar size compared to Go executable images.
Source code is available at https://github.com/panga/fn-native-java
Sample application migrated to use JDK 11.
Eclipse MicroProfile project is growing fast, it has a lot of supporters and compatible implementations.
I see it as a new way to package enterprise Java Enterprise applications that already leverage of existing Java Specifications (JSRs) and want to be compatible with different platforms, specially ready for running in Cloud.
It also aims to reduce the gap between community feedback and release of new features.
I would like to mention that in addition of well know MicroProfile implementations like Payara Micro, WildFly Swarm, TomEE and Websphere Liberty, there's also Hammock, which I'll use…
In previous post I described a series of benefits of upgrading to Java 10 and by leveraging of new Java Module System you could:
It's time to demonstrate and proof some of my points.
The first thing we need to understand is what “Cloud Native” means?
Cloud-native is an approach to building and running applications that exploits the advantages of the cloud computing delivery model. Cloud-native is about how applications are created and deployed, not where.
After the release of Java 9 and now 10, there is a lot of open questions on how to migrate applications to use the module system. Unfortunately, most of the articles written focus on simple Hello World applications.
Run a Java microservice application inside Docker with OpenJ9 JVM implementation.
Sample SpringBoot 2 microservice with a simple REST resource implementation.
Docker image is using OpenJ9 JVM with optimized settings for Docker.
We are using a 128m max heap size here, you should tweak memory values in case of bigger applications.
BTW do you remember the last time you ran any Java application with 128m max heap size? :)
Build Java Microservice
mvn -f microservice/pom.xml package
Build Docker Image
Run Microservice in Docker
Finally a new Open Source competitor for the well known HotSpot Java Virtual Machine arrived in the wild.
Meet Eclipse OpenJ9!
OpenJ9 claims to have a lower memory footprint, faster startup time and higher application throughput compared to HotSpot JVM.
It would be hard to believe in the statements above if that wasn’t proven before. Actually, it's in development for more than 20 years at IBM!