Generating Java classes from WSDL files

Generating Java classes from WSDL files

Ready to discover a way to generate usable Java classes from WSDL files and check how they are structured? That is precisely where this blog post will get you.

Finishing the last line, you’ll be equipped with all the necessary schema files and the ready-to-use service.

Sounds promising? Only if you know what WSDL files are, which will be explained too.

Optimistic locking with Spring Data MongoDB

Optimistic locking with Spring Data MongoDB

When it comes to data access concurrency issues, skewed writes are about as troublesome as they get. Even explaining how they happen and getting your point across can be a challenge.

With MongoDB and Spring, there is an easy and clean solution. I was excited to find and implement it in one of the current projects at Evojam and would love to share it.

Kotlin on the Backend Without Spring?

Kotlin on the Backend Without Spring?

Bored with the constant use of Spring in commercial projects, I decided to investigate the use of an alternative tech stack.

One of the prevalent alternatives is Micronaut. We have already tried it out at Evojam and even successfully implemented it in production in a few microservices.

That made me think — what if we use something even smaller? As we are starting to use Kotlin instead of Java boldly, I couldn't help but consider using Ktor.

See the results of my experiment!

First Months using GitHub Actions

First Months using GitHub Actions

I really wanted to give GitHub Actions a go. Having spent many years using Jenkins setups, the idea of outsourcing CI/CD to GitHub made a lot of sense. Fast forward to a few weeks later, we have a fully functional Continuous Delivery structure. Let me give you a quick tour.

Modern strategy pattern in functional Java

Modern strategy pattern in functional Java

There's a way to think about design patterns that stuck with me. Like Venkat said at the beginning of his 2019 Devoxx talk, they are a lot like grandma's recipes. We all love when our grandmas cook for us. But try to ask for the recipes —the amount of flour or sugar to use is never precise. And when you prepare the food yourself, it comes out completely different.


In our biggest Java project at Evojam right now, we have tweaked the recipe for strategy pattern. We added our personal touch with a pinch of enums and functional syntactic sugar. Now, we’re ready to share the technique with you.

Tackling accidental complexity with Optional in Java

Tackling accidental complexity with Optional in Java

In this article, I'm using an example project to show you how Java 8 Optional can impact the end complexity. It can do so in a positive or negative way as Optional can both simplify and complicate your code. In the long run, the outcome can greatly influence your project. Let's see how it works.

Switching from Java to Kotlin

Switching from Java to Kotlin

Kotlin has been growing in popularity for quite some time now. We decided to introduce it for a commercial project and see how it influences our work.

It's been a month since we made a switch from Java to Kotlin. In this article, we want to share with you our insights and conclusions based on this time.

I invited my fellow developers, so they can put their own perspective on using Kotlin.

Temporal Object Patterns using JPA

Temporal Object Patterns using JPA

Design Patterns are often described as typical solutions to common problems. But what if a solution is not that typical? Can I still call it a Pattern if it is only relevant for relational databases? And does it have to be applicable in most common Java stacks using Spring Boot, Hibernate, and JPA?

Find out how to get started with Temporal Patterns and whether they’re going to work with Spring Boot.

The Secret of Painless WebSocket Tests with Spock Framework

The Secret of Painless WebSocket Tests with Spock Framework

Do you want to start testing applications with WebSocket and Spock, but you’re afraid of running an unstable test? You know what the cinematic Spock says, “Insufficient facts always invite danger”!

Get your facts straight and learn how to avoid common mistakes with our step-by-step guide to WebSocket testing.

Sane Single Page Apps: Easy Data Handling with DTOs

Sane Single Page Apps: Easy Data Handling with DTOs

When a software collapses, it’s usually due to it being no longer maintainable because of complexity. Brian Kernighan, the creator of AWK programming language, puts it quite explicitly: "Controlling complexity is the essence of computer programming".