Developer Career Check 2025 App
As a passionate software craftsman, I’m keeping a keen eye on trends in the IT world. To help me evaluate the changes we are likely to face in 2025 and under...
As a passionate software craftsman, I’m keeping a keen eye on trends in the IT world. To help me evaluate the changes we are likely to face in 2025 and under...
I saw a nice best practice recently that I want to share. It’s about how to handle @PreAuthorize annotations in Spring controllers. An architect proposed to ...
This article briefly introduces the MockWebServer, a nice way to test HTTP calls from a Java application. While reviewing code in one of my major projects, ...
A while ago, with Java 10, a new controversial language feature was introduced: var. With var, local variables don’t need the explicit type information on th...
This article will highlight the differences between unit tests and integration tests. It’s widely known that writing tests to increase the quality of softwa...
Recently, I moved the IT Hub from Pivotal Cloudfoundry to Amazon Web Services (AWS). This article highlights some of the decisions and illustrates the result...
To access a database on AWS, the following dependency is needed: implementation('org.springframework.cloud:spring-cloud-starter-aws-jdbc:2.2.4.RELEASE') As...
Spring MVC is a great way of creating REST interfaces. Many convenience classes and methods are provided, such as the Response Entity object for returning da...
There are common tasks in programming I never performed in a production project. Formatting currency is one of them. I only noticed that when I searched a li...
This is just a small code snippet demonstrating the preview of the new Records in Java 14. public record Person( String name, Integer age ) ...
One of the projects I work in has an uncommon tech stack, at least it differs from the standard CRUD-application-tendency many company-apps are built in. The...
Recently, I wanted to keep the change history of entities saved via Hibernate and also have a versioned database. Hence, I used Hibernate Envers and Liquibas...
Yesterday, I learned how to verify the method parameter for multiple method calls in Mockito. My pair-programmer and I wrote code that send multiple messages...
Recently, I added Spring HATEOAS to the IT Hub. Refactoring the controller to return RepresentationModel and CollectionModel, I noticed something odd. When r...
Working on new features for IT Hub Brunswick, I encountered a curious problem. Sending a POST request from the Angular 8 frontend to the Spring MVC backend r...
Some time ago, an application of mine that is deployed in the Pivotal Cloudfoundry began throwing errors and crashed: 2019-09-29T06:42:54.76+0200 [APP/PROC/...
In this article, I want to share what I learned about testing a Spring application without loading it completely. This can be done by using @DataJpaTest, @We...
I just upgraded a Java project from Java 8 to OpenJDK 11. The project is running on a Cloudfoundry, using the Java buildpack. After successful deployment wit...
I spend the bigger part of yesterday figuring out why my Spring Boot app was not recognized as such in Pivotal Cloudfoundry app manager. The Spring Boot logo...
I spend quite some time implementing a login using Active Directory via LDAP for our Spring Boot 2 application, using Spring Security. This article outlines ...
Some values of an application have to be provided from “the outside” of the application, for example the secret of a JSON Web Token (JWT). This secret must r...
Recently, I finished reading “Java by Comparison – Become a Java Craftsman in 70 Examples” by Simon Harrer, Jörg Lenhard and Linus Dietz. This article is a b...
Learning how an Angular app can be secured with JWT, I found two wonderful blog posts that showed how to implement a basic setup. If forked both of the corre...
I keep forgetting how to get the overall test coverage of multiple modules in IntelliJ IDEA. There are several ways, here’s my favorite: You can test this...
Like other applications, my main project runs through several quality gates before being deployed on the production stage. For example, there is a developer ...
Yesterday, I changed all of our field-injected Spring-dependencies to constructor-injected. This @Autowired private MyOtherService myOtherService; became t...
Yesterday, I noticed a strange warning during a code review. IntelliJ IDEA warned me about this code: File folder = new File("path"); if(folder.listFiles() ...
Yesterday, I finally found a solution of one of the most unnerving problems with IntelliJ IDEA. When connecting to my HSQLDB, I couldn’t see any tables. They...
A couple of weeks ago, I gave another workshop for my colleagues in Braunschweig, Germany. The first thoughts for this workshop came to me months ago. I noti...
A while ago, we fixed a really annoying defect in our code. Because we debugged for days without finding the reason for the defect, I want to share how we ap...
Because I recently read about this pattern, here are some words about how I use DTOs, Data Transition Objects. DTOs are used to transport data, for example f...
Today I wanted to introduce Degraph in my project to track cyclic dependencies. This got me a java.lang.IncompatibleClassChangeError which I had never seen b...
Some of the problems in everyday software development are luxury problems. Like when you work in a greenfield project and are able to choose how you implemen...
This article is part of a series about Java Forum Nord 2015, a conference that took place in Hannover, Germany. Links to articles about other talks I visit...
Yesterday I got a strange exception: 2015-09-29 12:38:07,299 ERROR MyProjectExceptionHandler - Exception: java.lang.RuntimeException: java.io.InvalidClassEx...
Last friday, I gave a JavaFX course for some colleagues. As I did with the Java 8 course, I open-sourced all explanations, examples and code samples. They a...
While building one of my repositories with Shippable, I got the following error: [ERROR] COMPILATION ERROR : [INFO] ---------------------------------------...
Today I encountered a strange error opening both Java Mission Control and VisualVM: “Could not open PerfMemory” and “Local Java applications cannot be monit...
Last week, I gave a Java 8 course for some colleagues. All the explanations, examples and code samples of that course are available at Github. Feel free to ...
This is an article about a new tool in our project: the library jsoup. I want to describe the problem jsoup solves for us and the arguments why jsoup is th...
One of my more persistent current problems is the setup of JUnit tests in our Hudson 3.1.1. After days of try and error, I still couldn’t manage to make it w...
In this article, I want to describe how we managed to switch from Java 6 to Java 7 and get rid of some issues we found along the way. We use Eclipse 4.2.2 an...
Recently, a good friend of mine blogged about Degraph. Degraph is a tool to visualize dependencies between packages. Not only are these dependencies shown i...
In one of my recent articles, I wrote about my experiences in generating an Excel report with Apache POI. I want to complete my thoughts by summarizing my ...
A couple of days ago, I saw an interesting way to prohibit the use of a method from a superclass. A coworker of mine wrote a subclass of a JTextField that sh...
Recently, I stumbled over the following code: public boolean someMethod() { List<String> list = getSomethingFromDatabase(); // something is d...
Recently, I began reading Clean Code by Uncle Bob (again). In chapter 11 (“Systems”), he writes about a “Global Setup Strategy” of an application. As I under...
This article covers a problem I encountered using Hibernate 3.0 and Spring 2.5.6. Yesterday, I spend one hour to debug the following error from the Hibernat...
I often stumble over ideas that are cool in some way and that I would never have thought about it. One of those ideas is extending Java Enums. Often framewor...