Eclipse MicroProfile (MP) aims at bringing Microservices to Enterprise Java by developing common standards that MP-compliant vendors then implement . This not only applies for developer APIs but also to interfaces for running, configuring, and managing the servers.
Continue reading “The Monitoring aspects of Eclipse MicroProfile 1.2”
People often think that Java code coverage tools are only used for testing. I beg to differ. I was recently investigating a JVM crash issue and had been interested in seeing which lines of code among those that were run could have had an influence on the crash.
Continue reading Java code coverage in Eclipse
It has been a year since I posted the announcement about the availability of the Java Language Support for Visual Studio Code. During this past year, we made 10 releases, added various features, fixed many bugs but more importantly, we have constantly grown our user base and finally reached and passed a million downloads on the Visual Studio Marketplace.
Continue reading “Java Language Support for Visual Studio Code enters the Million Downloads Club”
Creating a simple MicroProfile-based microservice and deploying it to OpenShift Container Platform
Eclipse MicroProfile is an open source specification for Enterprise Java microservices. It is a community of individuals, vendors, and organizations collaborating and working on innovative microservices patterns for Enterprise Java within the context of modern development, architectures, and underlying infrastructures, e.g. health checks, fault tolerance, metrics, and security propagation within a cloud environment. Its first release was based on 3 Java EE JSRs/libraries/APIs, but this does not necessarily mean that everything that Eclipse MicroProfile does will be Java EE-centric, some API specifications may end up just being part of MicroProfile, depending on the community itself and the spec leads for Java EE1. For example, the new release of Eclipse MicroProfile 1.1 includes the Config API, which is a non-Java-EE API. One of the goals of the Eclipse MicroProfile project is to innovate so its release schedule is agile compared to a standards body.
Continue reading “A MicroProfile-based microservice on OpenShift Container Platform – Part 1”
“I used WildFly Swarm to shrink my app from 45 megabytes to only 2243 bytes.”
I was recently playing around with various techniques for packaging Java microservices and running on OpenShift using various runtimes and frameworks to illustrate their differences (WildFly Swarm vs. WildFly, Spring Boot vs. the world, etc). Around the same time as I was doing this an internal email list thread ignited discussing some of the differences and using terms like Uber JARs, Thin WARs, Skinny WARs, and a few others. Some folks were highlighting the pros and cons of each, especially the benefits of the thin WAR approach when combined with docker image layers.
Continue reading “The Skinny on Fat, Thin, Hollow, and Uber”
What is it about?
OpenShift has seen a lot of traction with the release of its third version based on Kubernetes a couple of years ago. More and more companies after a thorough evaluation of OpenShift Container Platform (OCP) have built an on-premise or in the cloud PaaS. With the next step, they have started to run their applications on OCP. One of the important aspects of running applications in production is the capacity of quickly restoring services to the normal service level after an incident followed by the identification and the resolution of the underlying problem. In this respect, I want to present in this blog a few approaches for troubleshooting Java applications running on OpenShift. Similar approaches can be taken with other languages.
Debugging applications during development phase can be done thanks to features like:
- Debug mode for resolving issues during startup.
- Port forwarding for connecting an IDE like JBDS to an application running in a remote container and debugging it with breakpoints and object inspection.
This has been presented in blogs like here and here.
In this blog, on the contrary, I want to focus on troubleshooting applications in production and to cover things like capturing heap and thread dumps, resource consumption per thread. These are techniques that have more than once been helpful in the past for resolving deadlocks, memory leaks or performance degradation due to excessive garbage collection for instance.
Let’s get into the heart of the matter!
Continue reading “Troubleshooting Java applications on OpenShift”
JBoss Tools 4.5 and Red Hat JBoss Developer Studio 11.0 for Eclipse Oxygen are here waiting for you. Check it out!
Continue reading “Announcing Red Hat Developer Studio 11.0.0.GA and JBoss Tools 4.5.0.Final for Eclipse Oxygen”