Equals, Is, CompareTo, and the Groovy Identity Operator
If you’ve ever tried to determine if Object a is the same as Object b in Groovy, chances are you’ve thought a lot about a == b and a.equals(b) and a.is(b). To appropriately ask this ...
A Quick Tour of Joda Beans
One of my big headaches about Java is the amount of boilerplate code you need to put in to make things work right. Especially in POJOs. I mean, is the solution to always run “generate ...
Testing with Spring Kafka and MockSchemaRegistryClient
Spring Kafka provides a variety of testing utilities to make writing integration tests easier. Most notably, the @EmbeddedKafka annotation spins up an embedded broker (and zookeeper) available for tests. The address of the broker is set to ...
3 Kotlin Features to Improve Your Kafka Connect Development
Kafka Connect is the hub that connects your Kafka cluster to any other system. The framework aims to make it easy to pull data into Kafka as well as copy data out of Kafka. As ...
Apache Kafka and Reactive Spring Boot
This post is a continuation of the two part series exploring Apache Ignite, Apache Kafka, and Reactive Spring Boot concepts. This part covers the use of Reactive Kafka consumers to return live database events to ...
Configuring Kafka Topics with Spring Kafka
Here’s a common scenario, your engineering team decides to use Kafka and they start writing producers, consumers, connectors, streams, you name it. Before long, 6 engineers have manually created 20+ topics in the lower environment ...
Spring Boot / SSL and BadPaddingException
Are you working on getting SSL self signed certificates working with Spring Boot and getting a javax.crypto.BadPaddingException? Hopefully this post will save you some time. I created this post to help remind myself and hopefully ...
Create a Custom Annotation for your JUnit5 ParameterizedTest ArgumentProvider
In my opinion, the best new feature of Junit5 is the addition of parameterized tests. They greatly reduce copy/pasted code and makes it easy to increase your test coverage without unnecessarily increasing the amount of ...
Log your RestTemplate Request and Response without destroying the body
When you’re working with REST services, it can be very useful for debugging to be able to log both the request and the response info. Fortunately, if you’re using the Spring framework’s RestTemplate its fairly ...
Missing Codecs in MongoDB
When upgrading a project’s Mongo driver from 2.13.0 to 3.4.2, we got the following exception: org.bson.codecs.configuration.CodecConfigurationException: can't find a codec for class java.math.BigDecimal. Well it seems that Mongo doesn’t support BigDecimal any longer. There we ...