Saturday, November 26, 2022

Spring Boot 3 : New features and migration

Spring Framework 6, released on November 2022, is the major version change and has many high-impacting features, changes and upgrades into the Spring development ecosystem. Similarly, Spring boot 3 is a major version upgrade after 4.5 years of Spring boot 2. Released on November 2022, Spring boot 3 is based on Spring Framework 6 and has lot of changes. In this article we will go through the features and migration approach to Spring boot 3.

Thursday, November 24, 2022

Microservices Design Patterns : Aggregator Pattern

When breaking the business functionality into several smaller logical pieces of code, it becomes necessary to think about how to collaborate data returned by each service. The aggregator pattern helps to address this problem. In this article we will further understand about the aggregator pattern.

Microservices Design Patterns - API Gateway

When an application is broken into smaller microservices, it brings in few challenges that needs to be addressed. These include abstracting producer information, handling multiple protocols, data transformation or format conversion for different consumers and so on. To handle these challenges we can use an API gateway design pattern. In this article we'll understand further about this pattern.

Friday, October 28, 2022

Microservices Design Patterns - Strangler Pattern

Microservices are getting more and more popular these days. Many companies are migrating their monolith applications to microservices. However this is easier said than done. Decomposing a monolith with microservices comes with a lot of challenges. In this article we will learn about the Strangler Pattern that can be used to decompose or refactor a monolith into microservices.

Saturday, June 11, 2022

Leetcode : Two Sum


Two Sum is a programming problem where you are given an array and a target value and you have to find the indices of the elements in the array that add up to the target value. This is an “easy” level problem in LeetCode. In this article, we will attempt to solve this problem

Monday, September 4, 2017

Spring + Quartz : Scheduler Job with failure recovery

Most IT applications need scheduled processing e.g. maintenance, data flow, clean up etc. which are not initiated by user action. To handle this we can schedule jobs for a particular interval. But what if the job fails or server is down? We do not want to miss the data processing for the interval when job was down or failing. This article explains how to handle such scenario using a Spring and Quartz scheduler.

Sunday, December 25, 2016

MapStruct: Transferring data from one bean to another

Converting data from one form to another is a highly utilized concept in IT industry. MapStruct allows annotation based bean conversion by generating mapper implementation at compile time. This makes sure there is no performance overhead at run-time.

Saturday, July 11, 2015

Jersey : Handle invalid json requests by overriding exception handling

In enterprise applications we usually encounter situations where we get invalid request for our RESTful webservice. The processing fails but client doesn't know the exact cause of problem. In the below article I explain how can we handle invalid request by overriding the exception handling of a Jersey based RESTful webservice.

Saturday, April 18, 2015

Parse json into multiple java pojos using Jackson annotations

Jackson is a suite of data-processing tools for Java (and JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON). In real world programming we will encounter complex cases of JSON to POJO conversion. Here, is one such case where we want to parse a single JSON into multiple java POJOs.

Sunday, April 12, 2015

Generating java files from XSD using Maven and JAXB

Java Architecture for XML Binding (JAXB) provides a fast and convenient way to bind XML schemas and Java representations, making it easy for Java developers to incorporate XML data and processing functions in Java applications. As part of this process, JAXB provides methods for unmarshalling (reading) XML instance documents into Java content trees, and then marshalling (writing) Java content trees back into XML instance documents. JAXB also provides a way to generate XML schema from Java objects and vice-versa.
Here we are going to talk about generating java objects from your XSD (XML Schema Definition).

Note : If you are using only Ant for your build, the flow is explained here.