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.

AhmedAtWork
https://www.ahmedmusallam.com

AEM 6.4: Challenges with Dynamic Media Integration

Since the release of AEM 6.4, Adobe has changed the way Dynamic Media is integrated with AEM.  Configuring the integration is now a little different than what customers are used to in 6.3 and below. Adobe has provided an architecture diagram of Dynamic Media – Scene7 mode, which describes how it works. In this post, […]

Read more

Having Some Fun With The New AEM Layout Editor

In AEM 6.3, the responsive Layout feature was introduced, and the Adobe documentation will show you exactly how it works. Though some customizations and how to achieve them are not super clear, this feature works out of the box. It is certainly a great addition that enables authors to create custom grid layouts that were […]

Read more

How To Prevent Authors From Deleting a Child Component

It’s common to create components that include other components. These components are called “Container Components” and are denoted by adding cq:isContainer=”{Boolean}true” as a property on the component. Banner photo by Dose Media on Unsplash When you drag a container component onto a page, you can edit the container component itself, as well as the child component. Take the image component […]

Read more

How to Show/Hide Metadata Schema Field Based on Asset Path

If you have not read my post explaining how to show/hide page properties based on a template in AEM 6.4  you may want to stop and read that before this one. Especially the “Granite Render Condition” section as it is the basis for this post. Now onto the good stuff! Banner Photo by Glenn Carstens-Peters on Unsplash The Use Case […]

Read more

Customizing Request for Activation/Deactivation Wizards in AEM 6

In AEM 6.3+, there is a feature that allows content authors to “Request Publication” or “Request Unpublication.” The option becomes available when the content author does not have replication permission crx:replicate on the page they are currently authoring. See image below: Banner Photo by rawpixel on Unsplash   The Publish/Unpublish Page Wizard Once the author clicks on “Request Publication,” the […]

Read more

AEM Backup CLI: Rapid Backup/Restore of your AEM instances

AEM Developers, raise your hand if you’ve never broken a local AEM instance. If you did raise your hand, you just might be the most diligent AEM developer out there! Full disclosure, I break my local AEM instances more times than I can count, and usually, I have to redo my local AEM setup. My […]

Read more

How to Test Apache HttpClient in the Context of AEM

If you’ve ever written a proxy servlet in AEM, chances are you’ve used Apache’s HttpComponents library. While a great library, there are not many resources online for how to test it when used inside your code. If you have not seen my post, The Ultimate Code Quality Setup for your AEM project  , you should check it […]

Read more

Including Service Users in Your AEM Package

While working on a project recently, I needed to include a service user within the Adobe Experience Manager package I was deploying. By doing this, administrators wouldn’t have to create the service users manually During this process, I ran into a few exceptions and wanted to share. A few things to note: The banner photo is […]

Read more

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