Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Reusable Fakes in AEM Unit Tests with AEM Mocksby @daniel-strmecki IntroductionHere is how we want our AEM test method to look like, we call the method under test and check the result, nothing else. Are you ready to get rid of the when().thenReturn() noise from your test methods? Read the full article that explains this example in detail. @Test @DisplayName("GIVEN an admin user, WHEN the administrator check if performed, THEN it returns true") void testAdminUser_IsAdministrator() { final boolean result = userAccessService.checkIfUserIsAdmin(context.resourceResolver()); assertTrue(result); } OverviewWhen writing unit tests in Adobe Experience Manager (AEM), developers often mock or fake classes and methods using libraries like Mockito. While effective, this approach can become repetitive and difficult to maintain as the codebase grows. A more scalable solution lies within AEM itself: leveraging OSGi services to create reusable fakes.OSGi services in AEM are inhere
By : Prachi Jain & Luc Forgeron Introduction Adobe Journey Optimizer (AJO) is a one-stop solution for managing all marketing campaigns, messages, offers and personalization automation. Through this blog, we are delving into the concepts of how and when to trigger in-app messages in your mobile application through Journey Optimizer. We are also going to explore using the in-app messaging channel to effectively engage with your audiences and direct them to key features of your application. One of the most frequently asked questions is about the differences between in-app messages and push notifications. In-app messages are inbound notifications that appear within the app while a user is actively engaged with it, and the decision to show the message is made based on app usage. Push messages are outbound notifications, meaning the decision to deliver the message to a client is based on a decision made at the server. The end user may or may
How can we keep a field or table fixed on every page in Adobe LiveCycle Designer without using a Master Page, while allowing the table to dynamically move to the next page? I want the upper fields of the content to be populated on the next page when the table breaks dynamically.
Hi, I am trying to combine multiple pdfs using the below inDoc1 (is a map of document). This inDoc1 can we doc 1 - 10 pages. doc 2 - 8 pagesdoc 3 - 6 pages. I am trying to combine these 3 document excluding the last 2 pages in each document. I tried using pages="1-penultimate-1", but i am running into exception. However pages="1-penultimate" works and I am able to exclude just the last page alone. <PDF result="outDoc.pdf"> <PDF source="inDoc1" pages="1-penultimate-1" /></PDF> Additionally, I am trying to exclude the last 2 pages for all documents in the map except the last doc. Any help on this is greatly helpful. Stacktrace: com.adobe.livecycle.assembler.client.OperationException: ALC-ASM-S00-002: Failed to execute the DDX - error messages provided.at com.adobe.livecycle.assembler.AssemblerServiceImpl.execute(AssemblerServiceImpl.java:534)at com.adobe.livecycle.assembler.AssemblerS
Universal Editor in AEM: Simplifying Content Creation Across Platforms by Chitra Madan Overview The Universal Editor is a visual editor that is part of Adobe Experience Manager (AEM) Sites. It enables authors to perform what-you-see-is-what-you-get (WYSIWYG) editing for both headless and headful experiences, providing an efficient and intuitive in-context authoring experience. It empowers marketers, authors, and developers to collaborate seamlessly in creating engaging digital experiences. Ideal Use Cases Enterprise-Level Content Management For organisations managing extensive digital properties, the Universal Editor provides scalability and efficiency. Collaboration-Intensive Teams Marketing teams and agencies requiring real-time collaboration benefit greatly from its features. Headless CMS Implementations Businesses leveraging headless CMS approaches can use the Universal Editor to maintain a consistent authoring experience across decoupled front-end
I’d like to discuss the following:- Page performance when using different grid systems for the same page.- Listing the pros and cons of each grid system.- Evaluating AEM Grid, considering it relies on a float-based system.- Whether AEM Grid is suitable for authoring while using a custom grid for publishing.
Welcome back for the first Community Lens newsletter of 2025! Check out our exciting updates below and let us know what you think. Key Takeaways [Product Preview] GenAI for your Webinars: Webinars are experiential programs that are great for distilling complex topics into a single event. However, not everyone has the time or bandwidth to consume hours of video content. The new GenAI feature for Interactive Webinars can now summarize your webinar content into bite-sized recaps, with little to no overhead! Read @asanandia's piece on how this is possible in his blog, and for a limited time, you can sign up for a product demo to see it in action. [Product Blog] More Updates for the New Email Editor: The Email Editor went live on Feb 5th! Check out some of the new features that were included as part of the official go-live, including content locking, parameterized fragments, and an integration with AEM Assets! Our PM @Sreekanth_Reddy is also reviewing and collecting blog feedback
Hey everyone, Note: main questions to address at bottom of post. This is a general question about the process for setting up DevOps CI/CD pipeline(s) via EDS. Really appreciate any help or guidance/tips on this, as I know this is a new process overall and many others may be in me and my teams shoes.Context: Our team is currently trying to optimally setup a client's project, and we want to create a smooth CI/CD system which will take into account both the development side of contributions as well as the actual content authoring side (client side) of the flow. The tooling and process we're utilizing is as such (see attached screenshot as well of our current infra thinking & layout):- Document/Content Authoring & Asset Management = Sharepoint- Version Control and Development Organization = GitHub- Deployment and CDN = AEMaaCS (we are using Edge Delivery) As for utmost safety in a project and to prevent unwanted mistakes, multiple environments should
AEM URL Shortening: Sling Mappings vs Dispatcher Rewritesby @daniel-strmecki OverviewURL shortening or mapping is a crucial aspect of modern web development, so the same is valid in Adobe Experience Manager (AEM) projects. Short and user-friendly URLs improve user experience, enhance SEO, and ensure consistency across multiple channels. AEM default URLs are not SEO optimized, as they always contain the extra "/content" path prefix, as well as usually a path to the site or market. Let's not forget the unnecessary .html suffix. Here is an example default AEM URL to a page:http://www.meticulous.digital/content/meticulous/uk/en.htmlUsually, we aim to make the URLs shorter and keep only the necessary parts, like:http://www.meticulous.digital/uk/enAEM provides two primary mechanisms for achieving URL shortening or mapping: Sling Mappings and Dispatcher Rewrites. In this article, we'll explore how to achieve the desired behavior using both approaches. We'll compare their configurations,
AEMaaCS Performance Testing with K6by @daniel-strmecki OverviewPerformance testing is usually recommended before going live or even better continuously before promoting each new release. Even though I am not an expert on the topic, I've seen many performance tests passing only because they are testing the wrong thing, not using a big enough data set, or not mimicking the real production traffic. Therefore, I've decided to share my experience in writing performance tests for AEMaaCS with a tool from Grafana called K6. K6 is an open-source tool for focusing on performance testing web applications and APIs. It is designed to help us evaluate and ensure systems' performance, scalability, and reliability by simulating user behavior and generating traffic to measure system response under stress. The first thing we might notice about K6 is that it is very easy to use. We can probably write our first test using JavaScript in just a few minutes. However, in this article, we will take a ste
AEMaaCS Caching Strategy: TTL vs Invalidationby @daniel-strmecki OverviewCaching is a critical component in the performance and scalability of web applications. For Adobe Experience Manager as a Cloud Service (AEMaaCS), understanding the nuances of caching mechanisms is essential to optimize system efficiency, author, and end-user experience. Two primary caching strategies to consider are Time-to-Live (TTL) and API-based Cache Invalidation. In AEMaaCS, caching occurs at multiple layers to ensure optimal performance and scalability. The Dispatcher acts as a caching and load-balancing mechanism. It caches responses from the AEM Publish instance, reducing load and response times. The CDN caches content closer to end users, leveraging a distributed network of servers to minimize latency. In some setups, organizations may choose to deploy their own CDN in front of the Adobe-provided Fastly CDN. This introduces a double-CDN architecture. In this article, we'll explain caching tech
Hello I encountered a problem in that the temporary folder tmp is filled with temporary files but is not cleared automatically. The folder size is 20 gigabytes and these files fill all the space, this prevents the publication of content on publish nodes. Files have names like this:/tmp/fleioutilscopy1750063702511928162.tmp What could be the reason? Thank you in advance.
How to create a Not Editable workflow in AEM as a Cloud Service by Debal DasRead the full article here: https://medium.com/@debal.india2014/how-to-create-a-not-editable-workflow-in-aem-5dd9811abccc Q&APlease use this thread to ask questions relating to this article
Adobe Analytics - Report Suit by Imran khan Overview This blog will help us to grasp knowledge around Adobe Analytics report suite. We will cover below topics in detail around Report Suit Below are the types of report suite: Global report suite Regional/Segmented report suit Virtual report suite https://medium.com/@toimrank/adobe-analytics-report-suite-types-4a64b48e71bf
Dear AEM Community, Your time is precious, and we understand the importance of efficiency when it comes to troubleshooting issues with AEM.That's why we're excited to again bring you our carefully curated collection of Top KCS (Knowledge-Base) Articles for December 2024, designed to help you resolve common challenges swiftly and effectively. Our Top KCS Articles are your shortcut to: Quickly identifying and resolving recurring issues.Accessing expert insights and best practices for AEM.Streamlining your troubleshooting process for maximum productivity.Empowering yourself with the knowledge to tackle any AEM-related problem head-on.Why spend hours searching for solutions, when our Top KCS Articles have already done the heavy lifting for you?Let us help you save time so you can focus on what truly matters – empowering you to provide a truly personalized experience to your customers with AEM. Start supercharging your problem-solving skills today by exploring our&n
AEM integration with ClickUp project management tool by Debal DasRead the full article here: https://medium.com/@debal.india2014/aem-integration-with-clickup-project-management-tool-bd1eef383d8d Q&APlease use this thread to ask questions relating to this article
Clipping Path Extraction in AEM DAM: A Custom Workflow Approach by Aanchal Sikka Overview Clipping paths aren’t extracted out-of-the-box in AEM DAM since they’re stored in Photoshop metadata, not XMP headers. But with a custom workflow, you can extract and store them for seamless use in Dynamic Media. Perfect for background removal and automated asset delivery. For details, please visit https://techrevel.blog/2025/01/31/clipping-path-extraction-in-aem-dam-a-custom-workflow-approach/ Q&A Please use this thread to ask questions relating to this article
Hitting that big "launch" button can be a scary thing to do. I've sent a lot of email campaigns in my time, but I still get a bit of that big-red-button-anxiety bit each time. What if I've misspelt something horrendously? What if the links break? What if the world explodes? Well, the good news for starters: no mistake you make in an email will cause the world to explode. So don't put that on your head. Most mistakes are also mistakes you can recover from - there's plenty of great examples out there of companies bouncing back from mistakes in ways that are actually quite endearing. BUT. Ideally you don't want to have to bounce back - you want to avoid making those mistakes in the first place. How do you do that? Pre-launch checklists. But the trick is that a lot of the time you don’t know what to check for until you've made a mistake with that thing (ugh). So - rather than learning from only your mistakes, it's helpful when you can learn from everyone else's, too.
I am using react remote spa In authoring instance i am using parsys, users are adding some editable react custom components and everything is getting rendered fine as per default configurations with WKND app code. Now i want to add some business logic, My Requirement is i would be able to pass JSON data to <ResponsiveGrid> component instead of passing pagePath and itemPath. Just wanted to stop implicit API call happening to fetch modal.json. I want to fetch modal.json like JSON from custom source and pass it to responsive grid.As per documentation I tried passing modal={json} prop, where i kept json with same as AEM modal,json graphql output.It does't render page. I would like to know how we can pass JSON to ResponsiveGrid component and what will be the format structure.
Hi, In the image component, we enabled dynamic media. When we select SmartCrop and Auto rendition, the image (V3) uses the srcset. When DPR=1, images are rendered according to image profiles and work as expected; when DPR>1, the srcset attempts to render high resolution images, causing issues such as the iPhone 12 Pro mobile device attempting to render a tablet responsive image. I have attached the screenshots below for your reference. Please refer the below blog as well.https://livefiredev.com/srcset-not-working-getting-wrong-images/ DPR = 1 (Mobile Image is rendering as expected) Iphone 12 pro (Since DPR=3, the browser wants to render the Tablet image instead of Mobile)
We’re excited to invite you to participate in a unique opportunity to shape the future of RTCDP and our customer programs. We’re looking for IT professionals, Data Engineers, Technical Marketers, Product owners, or any practitioners who are daily users of RTCDP. Our goal is to understand the challenges you are currently facing with the tools and features, learn how you define value to deliver a better experience, and identify opportunities for peer-to-peer connections. If you are interested, please sign up here- https://survey.adobe.com/jfe/form/SV_00qE3VK1wAGcMmy
Each month, teams across Adobe Workfront host FREE webinars, interactive workshops, customer panels, and open Q&A sessions on various topics for System Administrators. If you want to learn best practices, ask questions and collectively brainstorm solutions, or connect with other system administrators to build your network, sign up for one or all of the following events: February 7 at 9:00 a.m. PT / 12:00 p.m. ET – Admin Chat for Marketing & Creative February 11 at 8:00 a.m. PT / 11:00 a.m. ET – Admin 101: Getting Users to Use Workfront February 12 at 8:00 a.m. PT / 11:00 a.m. ET – [No video; text-only] Governance in Workfront February 13 at 8:00 a.m. PT / 11:00 a.m. ET – Proactive Exception Handling in Adobe Workfront Fusion: A Comprehensive Framework February 24 at 6:00 a.m. PT / 9:00 a.m. ET – Connect: Workfront Collective February 27 at 8:00 a.m. PT / 11:00 a.m. ET – Securing Execu
We all know that change is like trying to teach a cat to fetch: challenging and not always met with enthusiasm. Workfront implementation and gaining user engagement can be similarly challenging, but it doesn't have to be. Need some ideas to turn your Workfront skeptics into Workfront champions for your instance? Check out the on-demand event recording as Jennifer Lankenau (@jlankenau) and Maheen Khan (@maheenkhan) from Avalara walk through their strategy for improving user sentiment by transforming their approach towards collaboration, process improvements, and platform management. Huge thanks to Jennifer and Maheen for sharing their story, their recommendations on how to win users to Workfront, and best practices for building your Group Admin practice! If you weren't able to attend the session, we have the presentation and recording available for you below. Recording Slide Deck PDF Example - Workfront User Satisf
Managing change is a key component of anyone’s Workfront journey, but how do you apply change management principles in the real world? In "Part 2" of this Applied Change Management series, Senior Customer Success Manager, @keri_amundson , continues her discussion on how to apply these concepts when implementing Workfront processes with your users to improve adoption. She is joined by a Special Guest Star, our very own Change Management expert and Principal Customer Success Manager, @leighburger as they take a deeper dive into how to recognize and manage resistance to change with specific examples applicable to your Workfront users. Huge thanks to our hosts for sharing their time and their expertise with us and extra special thanks to everyone who joined the session live to offer their best practices! If you missed the event, we have the on-demand recording and slide deck with resources below: Workshop recording Slide Deck PDF If yo
Hi, while building the project I was not able to get maven to download org.apache.sling.commons.json dependency package which is being used by content-package-maven-plugin as our cyber team has blocked the access to mvn repository and all the vulnerable packages that have critical and high status. They set a proxy repository allowing us to download only the dependencies that are not flagged critical and high. so I'm stuck here not able to get commons.json direct dependency that content package plugin needs. I have checked the proxy repository and was not able to find any other version of commons.json that is allowed to downloaded may be all the versions are critical. So I'm not able to override the plugin with different commons.json version either. Is there any other way where I can exclude this direct dependency all together or use some other dependency that is not vulnerable to replace this for the plugin ?? <plugin> <groupId>com.day.jcr.vaul
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.