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.
Friday, October 28, 2022
Saturday, June 11, 2022
Leetcode : Two Sum
Overview:
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.
Labels:
Failure Recovery,
Java,
Quartz,
Scheduler,
Spring
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.
Labels:
Exception,
Jackson,
Java,
Jersey,
JSON,
JsonMappingException,
JsonParseException,
Restful,
UnrecognizedPropertyException,
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.
Labels:
Annotations,
Deserialization,
Jackson,
Java,
JSON,
JsonIgnoreProperties,
JsonProperty,
pojo,
Restful,
Webservice
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.
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.
Sunday, March 22, 2015
Configure testing of your web application using Jenkins
Purpose : To demonstrate the automation of testing of a web application after each build.
Assumptions : 1. The application build is already configured on Jenkins.
2. We have a service method that runs all test cases.
I have a web application which is scheduled to build via Jenkins. Now I need to test the application after each build. The following steps can be used to configure test cases :
Assumptions : 1. The application build is already configured on Jenkins.
2. We have a service method that runs all test cases.
I have a web application which is scheduled to build via Jenkins. Now I need to test the application after each build. The following steps can be used to configure test cases :
Friday, October 3, 2014
Overriding equals and hashcode for a POJO
This is an interesting case of programming where you need to compare two POJO objects. You might need to compare standalone objects or you may need to uniquely identify them in a collection. This can be achieved by overriding equals() and hashCode() methods.
Thursday, October 17, 2013
Debugging a java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError is one of the most common problem while developing Java Enterprise
applications. Sometimes debugging a NoClassDefFoundError can be very
tedious as you might have to look for missing class dependencies in jar files
and may even have to decompile sometimes.
A NoClassDefFoundError is thrown if the Java Virtual
Machine or a ClassLoader instance tries to load in the definition of a class
(as part of a normal method call or as part of creating a new instance using
the new expression) and no definition of the class could be found. The
searched-for class definition existed when the currently executing class was
compiled, but the definition can no longer be found. In simple words, the class
was available at compile time but missing during runtime.
Subscribe to:
Posts (Atom)