Ahmed Musallam - Adobe Expert | Perficient Digital
Blog

Posts by this Author

  • Topics
  • Industries
  • Partners

Explore

Topics

Industries

Partners

Ahmed Musallam

Adobe Technical Lead

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

AhmedAtWork
https://www.ahmedmusallam.com

Posts by this author:

Perficient Presents (Again) at Adobe Summit AEM Rockstar Session

I am beyond ecstatic to be selected as one of three finalists this year for AEM Rockstar 2020! And, to present at Adobe Summit – wow. It’s an absolute honor, and it’s still sinking in. I am also excited to see what the other two finalists, Gaston Gonzalez and Tyler Maynard, have been doing with […]

Read more

AEM: Fixing Last Dropdown Visibility in Fullscreen Dialog

I recently saw an issue with AEM dialogs where, if you have a Dropdown in the dialog and open that dialog in full screen, you have to scroll down to see the Dropdown items. This issue happens on AEM 6.5.0 Banner Photo by Steve Johnson on Unsplash The issue:   This is especially annoying on the page […]

Read more

SunEditor: An Alternative to the AEM RTE

Ever since I first worked with the AEM Rich Text Editor, it was clear to me that it was buggy, not easily extensible, and sometimes unusable. But the main issue for me was extensibility. There is no official API documentation or any documentation on how to build RTE Extensions. This is the reason I started […]

Read more

Introducing AEM Dialog Editor

Recently, my colleagues and I discussed frustration with the editing process for AEM dialogs. You have to edit the dialog XML, sync it, and preview it on an AEM page. One idea discussed was having a tool to edit AEM dialogs within AEM and how beneficial that would be for us. I thought it was […]

Read more

Simple, Local SAML Integration With AEM + Gotchas

If you’ve configured SAML with AEM and done a Google search on the matter, you’d have likely come across one of these lengthy examples: [1] [2] [3] [4] or looked at the Official AEM Doc for SAML integration. In this article, I’d like to show you 2 things: The fastest local SAML setup (which takes […]

Read more

Running a Local SonarQube Server with AEM Rules

SonarQube is undoubtedly one of the top tools for code quality. By default, it has a whole lot of rules that catch common bugs and code smells. It even reports code coverage! In this post, we’ll look at quickly setting up a local instance that devs can use to improve their code quality and we’ll […]

Read more

The Java Commons Annotations Was Removed in JDK 11

The Java Common Annotations Module java.xml.ws.annotation was deprecated in Java version 9 and was removed in java version 11. So what does this mean for your AEM 6.5 project running on JDK 11?   AEM 6.5 and JDK 11 As of AEM 6.5, JDK 11 is supported along side JDK 8. As such, Devs will […]

Read more

How to Add a Filter to AEM Granite Select Widget

Adobe Experience Manager’s Granite Select Widget is a simple dropdown widget that you add to dialogs and page properties to allow users to pick an option from a list. But, the list is not searchable. To add searchability, OOTB, you have to use the Autocomplete widget. This works well in AEM 6.4 but in AEM […]

Read more

How to Export/Import Namespaces Between AEM Instances

Recently, I ran into a scenario where I needed to export namespaces from one AEM instance and import them to another. I previously wrote two groovy scripts on how to do this and they work very well. However, they require the AEM Groovy Console which is hard to put into a production environment, because of […]

Read more

Deploy AEM Packages with Jenkins like a Pro

You’ve probably seen the curl command shown below in many articles online. 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 a package to an AEM server, and can also be used in builds within Jenkins to deploy a package […]

Read more

Simple Markdown Documentation For Your AEM Components

Documentation Documentation Documentation. I believe documentation is one of the most important aspects of delivering a product, or in this case, an AEM component. If you aren’t already, you should use the Granite UI widget fieldDescription property to add helpful tooltips to your dialog fields. You can also use the Granite Alert Widget for quick […]

Read more

The AEM Dialog Dark Mode Switcher You Never Knew You Needed

It seems like dark mode is taking over everything from IDE’s, to various apps and services (including the new MacOs Mojave). Use Case The use case is pretty simple. In some dialogs, you have RTE’s and want to author text in white color. But that text becomes invisible against the default, white background of dialog […]

Read more

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

Subscribe to the Weekly Blog Digest:

Sign Up