Ahmed Musallam - Adobe Expert | Perficient Digital
Posts written by Ahmed Musallam

Adobe Technical Lead

Ahmed is an Adobe Technical Lead and expert in the Adobe Experience Cloud.


How to show/hide page properties based on template in AEM 6.4

Recently, we had a requirement to show specific page properties for community pages that are based on the community editable template. As you know, in AEM 6.4, editable templates usually share the same page component, which means the same page properties dialog. Now, you could create a new page component (community-page) and inherit the master […]

Read more

How to refresh OSGI R6 components on bundle activation

Recently, I had the need to wrap the default implementation for AEM’s mail service in a new service called CustomMailService where I wanted to transform certain emails and let other emails be handled by the default service. My main interest was for the AccountManagementService to bind my implementation of the MailService, instead the default implementation, you […]

Read more

Simple Multifield Max Item Validation for AEM 6.4

I’ve recently had the need to validate that a multifield does not exceed a specific number of items, this post is a short code snippet that will show you how I did that.   This solution simple enough, it takes a few minutes to adapt it to a min validation or validating for a specific […]

Read more

A Way to Handle Dates in AEM

Nobody likes an awkward date. But they happen and hopefully this post will help break the ice. Puns aside, handling dates in Adobe Experience Manager can be tricky, and in this post, I’ll show you one of the many ways you can handle dates in AEM. The Problem Typically, you’d use the Date field to […]

Read more

Using Sling Models With Nested Composite Mulitifields in AEM 6.3+

You probably already know that Adobe added support for composite multifield in 6.3. Adobe also added support for nested multifield and nested composite multifield in AEM 6.4.   Nested? Composite? Huh? Take a look at the AEM 6.4 docs for multifield Let’s define them   Multifiled: Allows authors the ability to add a list of items, each […]

Read more

The Ultimate Code Quality Setup for Your AEM Project

If you’re a developer or come from a development background, you’ve seen a lot of bad code in your career. It’s just part of the learning experience… we all wrote bad code at some point in time and learned from it. src: xkcd comics I can’t cure bad code. That’s something to be fixed through a […]

Read more

Deploy AEM packages with Jenkins Like a Boss

You’ve probably seen this curl command in many articles online: [1]  curl -u admin:admin -F file=@”name of zip file” -F name=”name of package” -F force=true -F install=true http://localhost:4505/crx/packmgr/service.jsp It allows you to upload and install an package to an AEM server. This is can also be used in Jenkins builds to deploy a package after […]

Read more

Mockup AEM Dialogs with Draw.io and This Library

If you’ve never heard of draw.io, now you have! it’s a fantastic tool for creating free, high quality diagrams. You can use use it to do quick diagrams and sometimes quick and dirty UI mockups (nothing fancy). Recently, we encountered the need to mockup AEM dialogs. Now, you can do this with draw’s provided elements. […]

Read more

ACS Tools Contribution: Dumplibs

If you’ve ever worked with clientlibs in Adobe Experience Manager (AEM), you are probably familiar with the dumplibs tool: http://localhost:4502/libs/granite/ui/content/dumplibs.html. The tool allows you to find clientlibs by category, path, etc. However, the UI is lacking and searching for a clientlib is not as easy as it should be. The page refreshes with every action and […]

Read more

RTE Validation for AEM 6.2, The Right Way

I’ve looked far and wide for an RTE validation solution that is straightforward and easy to share between teams. The examples I found online seemed like patches or half-solutions that would break in the next AEM version, or when used in complex dialogs. So I set out to write one myself following my newly acquired […]

Read more