The purpose of this blog is to provide the details on how to integrate Spring in Adobe Experience Manager (AEM) aka CQ5 with the help of OSGI extender. This will open up the world of Spring (DI, AOP, Caching, web services (REST/SOAP), transactions, logging etc.) to AEM projects. This integration will be very vital for the projects, which...
UseCase: - I had a situation in which needed to return custom information corresponding to every page in AEM and also use it via component to display to end user . -Then i have to invoke a Servlet on every page and with the use of selector want to return some information in JSON Format which can be used to display via Component on a...
Spring AOP Spring AOP (Aspect-oriented programming) framework is used to modularize cross-cutting concerns in aspects.Some of cases where we can use it are to control some of common things like logging , adding some extra feature without actually touching the core logic. This blog post will explain how to enable aspects in our AEM...
Redevelopment of a website is often triggered because of three major factors: The current website is built on the technology stack which is now obsolete Redesigning/Revamping the existing website, either to address the weaknesses in the current system or to add significant features Switching to a new technology platform, such as a...
One of the powerful features that AEM offers is its authoring capabilities. It provides easy to use GUI for authors to create and edit content. When it comes to authoring the content, dialog plays a vital role in that. A dialog accepts inputs via Widgets and then makes that input available for further use. One of the most commonly...
AEM derives the port number from the quickstart jar file. As the documentation says that by renaming the jar file, we can configure AEM to run on a different port. But this requires an instance shutdown. What if we want to change the port number of a running AEM instance? What if it is an e-Commerce site and shutting down the server...
The full-text field search allows you to look for a field anywhere in a webpage, be it the title, content, or the url of a webpage. A full-text search shall match whole words. For example, a full-text search on comments that contains “perform search” or “text search” or “text” will return a comment that contains “I want...
Adding vanity URL to pages/nodes, is a great way to get user friendly URLs. All you need to add is “sling:vanityPath” property to the node. For example, "www.mysite.com/content/mysite/en/home.html" doesn't seem to be a very user friendly URL. If you want this page to have a simple and concise URL like "www.mysite.com/home", you can...
AEM houses a powerful open source framework in its technology stack,Apache Felix. Felix is a open source implementation of OSGi. OSGi provides a way to manage bundles and their configurations. OSGi provides a way to configure services and modify those configurations on the run-time. But apart from this there is a another powerful...
Often, a situation is encountered in CQ where we have a number of parsys on our page and it is required to show/hide some of them on certain events. A typical use case is that of a Tabbed Component where the parsys associated with a particular tab needs to be shown only on click of that particular tab while the parsys for all the other...
While integrating ElasticSearch with AEM, I used custom replication agent, for indexing data to ElasticSearch server, as replication agent manages a queue in case replication is not successful and tries it again(after specified time). But the problem I faced was that on successful indexing(insertion/updation), ElasticSearch return...
In adaptTo() 2014, I delivered a talk on "Integrating ElasticSearch with AEM". It started with a brief introduction about ElasticSearch, its working and flexibilty when it comes to huge amount of data. Here is a brief review of topics covered after that: How data is analyzed and indexed on the server Integration approaches with AEM...