Web Development Business

Blood, Sweat, and Writing Automated Integration Tests for Failure Scenarios

Billy Korando Java, Opinion, Programming, Spring, Tutorial 2 Comments

I introduce the process I went through to diagnose the bug and determine the correct integration test solution to fix it the right way. In doing so, I had to create a test that accurately reproduced the scenario my service was experiencing in PROD. I had to create a fix that took my test from failing to passing. And finally, I worked to increase confidence in the correctness of code for all future releases, which is only possible through automated testing.

Spring Batch

Spring Batch: Multiple Format Output Writer

Jonny Hackett Java, Spring, Spring Batch Leave a Comment

Being a strong advocate of Spring Batch, I’ve always talked about the notion of Spring Batch providing developers with a framework that allows them to focus on solving business needs. By doing so, it allows developers to not spend an inordinate amount of time solving all of the technical aspects to support the solution. To illustrate what I mean by …


Hystrix To Prevent Hysterix

Dallas Monson Java, Microservices, Spring 2 Comments

Your application just launched into production after 6+ months of development and bug fixes. In true Agile fashion, you and the team released your MVP (minimal viable product). You did your best to simulate load and try to emulate actual user actions so that you can anticipate how your app will behave in the wild. Now, however, you have thousands …


Making Spring Batch Groovy

Rik Scarborough Java, Microservices, Spring, Spring Batch, Technology Snapshot, Tutorial Leave a Comment

Here at Keyhole, we are very fond of Spring Batch. In many Java Enterprise environments, there is still a big need for automating moving data around. Spring Batch gives us a great head start on creating these batch processes. Note: if you’re in the area on Wednesday night (8/5/15), check out Keyhole Managing Partner David Pitt’s Spring Batch presentation at the …

Spring Batch

Spring Batch – Replacing XML Job Configuration With JavaConfig

Jonny Hackett Java, Spring, Spring Batch, Technology Snapshot 4 Comments

I recently assisted a client in getting up and running with a Spring Batch implementation. The team had decided to move forward with a JavaConfig-based configuration for their batch jobs instead of the traditional XML-based configuration. As this is becoming a more common approach to configuring Java applications, I felt it was time to update Keyhole’s Spring Batch series to show you how …

dependency injection

Dependency Injection Options for Java

Shannon Griswold Java, Technology Snapshot 12 Comments

I wanted to take some time to put together a summary of some popular dependency injection (DI) frameworks for Java. This is a high-level overview of what’s available. First off, what is dependency injection? “Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them, whether at run-time or compile-time.” …

Spring roo

Proof-of-Concept Using Spring Roo

Brice McIver Databases, Spring, Technology Snapshot 1 Comment

In my time with Keyhole, I’ve been involved in a number of projects where the client was asking us to rewrite a legacy system while retaining their existing database. Sometimes it helps to give a quick demo on how using current technologies can make it easier to develop, test, and maintain their code. One way I’ve found to get a …

Spring Batch

Scaling Spring Batch – Step Partitioning

Jonny Hackett Java, Spring, Spring Batch, Technology Snapshot, Tutorial 15 Comments

We have talked about how to get up and running with Spring Batch in a few of previous articles. Now, we’re going to start discussing some of the strategies available for scaling Spring Batch. This article will focus on partitioning a step so that the step has several threads that are each processing a chunk of data in parallel. This …


Tutorial: RabbitMQ with Spring Framework

Zhihua Douglas Dong Java, Spring, Tutorial 13 Comments

In this quick tutorial, we will create a RabbitMQ Template to send messages to an exchange. The exchange we are working to send a message to is named “TUTORIAL-EXCHANGE” with a routing key of “my.routingkey.1”. We will then create an AMQP listener in order to listen for messages in the same exchange using the pattern of the sender’s routing key. …