Sometimes it happens that we want to override a default behaviour in AEM.

If the behaviour that we want to override is a component in crx/de, then we can easily use Overlaying/Overriding concepts in Sling.

But if we wish to override an OOTB sling servlet, then things get tricky. This blog post tackles this situation. It discusses step by step process of overriding an OOTB sling servlet.


We know that Servlets in AEM are basically OSGi services which implement javax.servlet.Servlet interface. For more information about servlets in AEM, see this post.

A service listener ( listens for the OSGi services…

Sometimes it so happens that we need to create many users in the AEM and to add them in the desired group. We can do this in AEM Useradmin console manually. But this process is tedious and inefficient.

In most of the cases, we get the users in a file with their details (first name, last name, username, group, email, password etc.). Wouldn’t it be easier if we just upload the file in our AEM instance and the users are created in the AEM server automatically?

Therefore, I decided to create an AEM project that does exactly that. In this…

Threads in Java

Multithreading is a way to introduce concurrency in a program. In any case, if there are parallel paths in our program (parts which do not depend on the result from another part), we can make use of multithreading. One should exploit this feature, especially with all these multiple core machines nowadays. Below are a few reasons why we should use multithreading -

1. Keep a process responsive

There was once a time when you would print a document in MS Word and the application would freeze for an annoyingly long amount of time until the job finished. …

image source:

Hello everyone! Welcome to this AEM development series. We can all see that the revolution of Digital Marketing today. Companies are dying to be a part of it and they have made this a war for the Digital Marketing tools.

Adobe was way ahead in this war and have gained a lot of market capture. They are leaders in the Digital Marketing platforms since 2014–15. One of the flagship product in their Digital Marketing suite is Adobe Experience Manager (AEM).

Since AEM is in huge demand, the people who know how to develop on AEM are also in huge demand…

source: IEEE

Do you love sending secret messages? Do you love how Harvard professor Robert Langdon solves the puzzles and reveals the truth? or, do you love how Nazis created the Enigma Machine and caused problems to the Allied powers during the WW2? If answers to the above questions are yes, then I am sure you’d love cryptography. In this introductory post, we will discuss the basics of Cryptography (mostly in the context of computer science) and in the later posts in this series, we will look into various algorithms in cryptography. …

It’s been a long time since my last post as I got stuck in some work. This is the last part of the introduction to blockchain series. In this post, we will touch upon a few more concepts of blockchain and their applications. At the end of the post, we will also look into the concept of Hyperledger Fabric in brief.

Permission-less model

In this model, anyone can join the network, participate in the process of block verification to create consensus and also create smart contracts. For e.g. Bitcoin and Ethereum network.

  • In a permissionless world, one does not have to prove…

Developing our own type-safe HTTP library to interface with a REST API can be a real pain as we have to handle many aspects -

  • making connections
  • caching
  • retrying failed requests
  • threading
  • response parsing
  • error handling, and more.

Retrofit, on the other hand, is a well-planned, documented and tested library that will save you a lot of precious time and headaches. In this tutorial, we are going to discuss how we can parse the XML response returned from using the Retrofit library.

To work with Retrofit, we need three classes -

  • Model class to map the JSON data
  • Interfaces…


In today’s post, we will look into the architectural details of the blockchain technology. In doing so, we will touch upon the concepts of Smart Contracts and later on, about the internal details of a block that comprises the Bitcoin blockchain.

Interesting project but no money ☹️

Let us say your friend Alice has an interesting project idea and she wants to start it as soon as possible but she has no (or little) funding to start it. She is very upset and then as a good friend you come to her rescue (A friend in need is a friend indeed 😊). You suggest her that…

In the last part of this series, we discussed the basic concepts of blockchain technology. In this post, we are going to discuss the evolution of blockchain and it the latter part of the post, I will introduce the concept of bitcoin technology at a high level.

Hashing and Hash Functions

The concept of hashing is the backbone of the blockchain technology and it helps us to speed up the searching process. Hashing allows us to map any data to a fixed size. The entity which performs hashing is called a Hash Function. For e.g,

The blockchain isn’t just the backbone of cryptocurrency — it could change the world. Applications are endless. It is one of the most sought-after skills these days. Blockchain developers are in huge demand but there are only a few who can elegantly develop a blockchain application.

I will admit that I am a newbie to this field and all the related terminology. Recently I have decided to dive into this field and after learning a few nuances, I thought it would be a good idea to share my understanding with everyone. Hence, this blog.

This is the first blog of…

Anirudh Sharma

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store