sebastiandaschner news

sunday, april 01, 2018

Happy easter and welcome to newsletter #24!

Last week I traveled to snowy Romania to speak on Voxxed Days Bucharest. At least I tried to. The weather, however, had other plans in mind and just while I was flying from Munich to Bucharest, the destination airport was closed due to the strong snowfall. We had a short, unplanned stop in Sofia, Bulgaria, until we could continue. The aircraft touched down at OTP just when my talk was supposed to start, so I unfortunately couldn’t hold my presentation. Still, the last hour that I saw of the conference looked really great, including the closing keynote by Edson Yanaga, the organizers did a great job, and I would love to come back to Bucharest.

Now I’m spending a few more quiet days over easter here in Bavaria. Next week I’m traveling to India for two Oracle Code events, Hyderabad and Bengaluru. I’ll speak about how to boost your developer productivity and how to test enterprise applications effectively. That’ll be my second time in India and I’m already excited.


What’s new


Distributed tracing with Java EE, Istio & MicroProfile

I’ve recorded a video in which I show how to add distributed tracing to Java EE applications that run in an Istio cluster. Service meshes transparently add technical cross-cutting concerns, such as tracing, to microservices.

In order to add distributed tracing the applications need to pass correlation IDs though all requests. Java EE doesn’t support this technology in the standards, however, it can be added via MicroProfile OpenTracing.

In the video I show how the tracing information of two Java EE 7 applications can be passed through their JAX-RS resources and client invocations. As you will see, the design principles behind service meshes match pretty well with the ideas behind Java Enterprise.


Selecting Git commits by message

In order to checkout, cherry-pick, or reset commits, you don’t have to provide their SHA commit hash. All commits can be refered to by their message, by using the pattern :/<part-of-message>, which comes in very handy when using Git from the command line.

Given the following commit history:

caeb1d8 (HEAD) commit 4
2f6d4da commit 3
8207cf2 commit 2
551ef47 commit 1
22f759b initial commit

We can checkout commit 551ef47 by git checkout ':/commit 1'.

The pattern will search the history backwards, for the first commit where the provided string is part of the commit’s message.

Therefore, It’s also possible to do git checkout :/initial in order to checkout 22f759b.


My Docker images on Docker Hub

In many presentations I use custom Docker base images, for example for particular application server configuration. Until now, I provided these images using my own Docker registry server.

To make the example code of my presentation or workshops more accessible, I started to put the images under my own user on Docker Hub. All images are built from the sources under my Docker GitHub repository.

An example image is a current Open Liberty build, available via sdaschner/open-liberty:javaee7-jdk8-b1. In order to enable reproducible build, the image tags are unique will never change. A new build, caused by any changes, will update the Docker image tag.


Thanks a lot for reading and see you next time!


Did you like the content? You can subscribe to the newsletter for free:

All opinions are my own and do not reflect those of my employer or colleagues.