Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Demystifying Oak Search: Exploring Indexes with Luke by Daniel Klco Abstract The Oak Indexes and Queries used by AEM and Apache Sling for searching content are powerful and cloaked in an aura of mystery. Let's work together to pierce that veil, so you can develop AEM / Apache Sling applications to take advantages of the strengths of searching in Oak without experiencing the painful pitfalls. Let's start with Oak Indexes, the feature that makes Oak queries performant. To understand something, we must observe it. While there are some features in AEM to give us a glimpse into the indexes, such as: Oak Index Stats WebConsole Oak Index Definitions WebConsole Lucene Index statistics MBean However, they provide a limited, abstracted view of the indexes. We need to dive deeper. To do so, we can use a tool called Luke to open and explore the Lucene indexes used by AEM & Apache Sling. An aside on Lucene vs Other Index Types This series will be referring to Lucene indexes as AEM as a Cl
In my project, I have multiple event listeners, workflows, and Sling jobs that can modify the very same asset at the same time which sometimes causes commit conflicts. Obviously, different JCR sessions try to save different changes. I thought that refreshing the session before the actual .commit() call would help, but it didn't. I need some explanation why the following code throws this exceptionorg.apache.sling.api.resource.PersistenceException: Unable to commit changes to session...Caused by: javax.jcr.InvalidItemStateException: OakState0001: Unresolved conflicts in /content/dam... ResourceResolver rr1 = ...get new service resource resolverResourceResolver rr2 = ...get new service resource resolverNode node1 = rr1.getResource("/content/dam/.../asset.jpg/jcr:content/metadata").adaptTo(Node.class);node1.setProperty("dc:title", "title 1");Node node2 = rr2.getResource("/content/dam/.../asset.jpg/jcr:content/metadata").adaptTo(Node.class);node2.setProperty("dc:title",
I have a page that uses this page template (sling:resourceType = /apps/flinders/components/page/content-page) to test selectors (which I have not done before), I created a copy of /apps/flinders/components/page/content-page/content-page.html and called it /apps/flinders/components/page/content-page/content-page.test.html. The contents of the 2 files are the same EXCEPT 2 changes I made: I added a "hello there" text on the test.html version.The body tag of the test.html version does not have a CSS class attached to it. When viewing the page via view-as-published with the selector (example: http://localhost:4502/content/mysite/en/animals/frogs.test.html?wcmmode=disabled), I do not see the "hello there" text and the body tag has the classes. What am I missing? Thank you. <!DOCTYPE HTML> <html data-sly-use.page="com.adobe.cq.wcm.core.components.models.Page" lang="${page.language}" data-sly-use.head="head.html" data-sly-use.footer="footer.
I have a page that uses this page template (sling:resourceType = /apps/flinders/components/page/content-page) to test selectors (which I have not done before), I created a copy of /apps/flinders/components/page/content-page/content-page.html and called it /apps/flinders/components/page/content-page/content-page.test.html. The contents of the 2 files are the same EXCEPT I added a "hello there" text on the test.html version. When viewing the page via view-as-published with the selector (example: http://localhost:4502/content/mysite/en/animals/frogs.test.html?wcmmode=disabled), I do not see the "hello there" text. What am I missing? Thank you. <!DOCTYPE HTML> <html data-sly-use.page="com.adobe.cq.wcm.core.components.models.Page" lang="${page.language}" data-sly-use.head="head.html" data-sly-use.footer="footer.html" data-sly-use.redirect="redirect.html"> <head data-sly-call="${head.head @ page = page}"></head> <body&
I have a page that uses this page template (sling:resourceType = /apps/flinders/components/page/content-page) to test selectors (which I have not done before), I created a copy of /apps/flinders/components/page/content-page/content-page.html and called it /apps/flinders/components/page/content-page/content-page.test.html. The contents of the 2 files are the same EXCEPT I added a "hello there" text on the test.html version. When viewing the page via view-as-published with the selector (example: http://localhost:4502/content/mysite/en/animals/frogs.test.html?wcmmode=disabled), I do not see the "hello there" text. What am I missing? Thank you. <!DOCTYPE HTML> <html data-sly-use.page="com.adobe.cq.wcm.core.components.models.Page" lang="${page.language}" data-sly-use.head="head.html" data-sly-use.footer="footer.html" data-sly-use.redirect="redirect.html"> <head data-sly-call="${head.head @ page = page}"></head> <body>
HiI was looking over the expression options used in sightly. I tried the below line of code, but it seems just render a modal. Can someone provide use of options with some good examples. I mostly do not understand the data-sly-resource statement and its options.<sly data-sly-test="${modal.hasModal && modal.validXfPath}" data-sly-resource="${@path=modal.modalPath, appendPath='jcr:content', resourceType='xxx/components/structure/xfpage', selectors='content', wcmmode='disabled'}"></sly>
Hi , I have been trying to install Magento in my local,Tried so many documents, official documentation is not straight forward it is very complex. It is not like we have for AEM https://experienceleague.adobe.com/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/overview.html?lang=en Somewhere it is mentioned that Macbook is prefered for Magento so now I have Mac too. Please anybody who is using Magento cloud in there local , help me the doc or link for installing in my local. It would be very very helpful as I have been stuck at this for almost 2 months I did try Docker desktop option as well. Best RegardsGanesh+91-938020110
We are using proxy Teaser component for our application, with no customization at all.Observing issue with the image quality uploaded via Teaser.The size reduces from around 400KB to just 95 KB , for desktops. The images look blurred or pixelated at times.Is there a way to customize the size or quality of the image for Teaser component.
We need to have custom logging for the below scenario: -User logs in -User logged out -Login Failure We need to print log for the above three events with username, group, timestamp, Server name, IP address. Please let us know if there is any OOTB feature available for this. or any other custom way to achieve that.
We configured our AEM instance to use these OSGi configurationscom.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.xmlhtmllibmanager.minify="{Boolean}true"htmllibmanager.processor.js="[min:gcc;languageIn=ECMASCRIPT_2015]"The minify errors and when it encounters05.04.2019 12:24:41.774 *ERROR* [0:0:0:0:0:0:0:1 [1554481481510] GET /content/xxxx/xxxx/us/en/xxxxxx/home.html HTTP/1.1] com.google.javascript.jscomp /etc/designs/sites/xxxxxxxx/main/script.js:4023: ERROR - Object literal contains illegal duplicate key "background", disallowed in strict mode background: "-moz-linear-gradient(" + oldBrowsers + ")",Also it errors here05.04.2019 12:20:12.114 *WARN* [0:0:0:0:0:0:0:1 [1554481211211] GET /content/xxx/xxxxx/us/en/xxxxxx/home.html HTTP/1.1] com.google.javascript.jscomp /etc/designs/sites/xxxx/xxxxx/main/script.js:3349: WARNING - Parse error. String continuations are not recommended. See https://google.github.io/styleguide/javascriptguid
Today we are delighted to announce the launch of the Adobe Experience Manager Champion Program. This group of customers and partners from across the globe represents some of Adobe’s most passionate and knowledgeable Adobe Experience Manager users. These 18 individuals were selected for their product expertise and commitment to supporting the broader Experience Manager community. Congratulations to our inaugural 2022 Adobe Experience Manager (AEM) Champions! 🥳🥳🥳Modeled after the successful 10+ year track record of our Marketo Engage Champion program, Experience Manager Champions are our most passionate brand ambassadors and product experts who actively share their knowledge and expertise with the larger AEM developer community. They have demonstrated outstanding leadership, loyalty, and a passion for helping customers succeed.This program represents our 3rd Adobe Champion program for Adobe Experience Cloud and one of our most strategic advoca
AEM Analytics: Sending Original Field Values in Locales. Part 2 by Exadel Abstract Content migration in AEM is a difficult task unless you know the necessary workarounds and ways to manage content in AEM analytics. In the previous article, our Marketing Technology Practice team was looking at how to manage analytics for plain text fields. In today’s post, we will look at an AEM RTE field in particular. Managing Links Inside AEM Rich Text Editor Managing AEM RTE analytics will be a little different from managing plain text fields. Since the AEM RTE text field stores HTML, we’ll need to find a way to search for all the links inside HTML and then inject the data-an-id attribute into these links. The implementation will consist of 2 parts: on the fly HTML update on AEM RTE editing and managing already existing components. Clientlibs: Injecting Attributes into Links The following code listens to the AEM RTE input field update. Additionally, if you add a link, this JavaScript code will ad
AEM Analytics: Sending Original Field Values in Locales. Part 1 by Exadel Abstract AEM analytics give you valuable insights into visitors’ journeys on a website. To map this behavior accurately, you need to tune analytics in AEM programmatically. Tuning becomes especially important and tricky if you have a multi-language site — but if you know AEM MSM best practices, then there will be no need to hit the panic button. Learn how to make your AEM analytics integration smooth and successful! In this article, the Exadel Marketing Technology Team suggests a solution for managing AEM analytics while having different locales with translated content. AEM analytics tutorial at your service There are quite a few reasons why we might need to pass English text to a data layer when a user clicks on a component. This could be for a button, a link, a title, or something else. By passing the English text, we’ll be able to generate user interaction reports for all locales, regardless of the localize
AEM best practices and development guide by kiransg Abstract Requirement: Get the list of broken asset references to unpublish and remove them repo to improve the system stability and performance. Introduction: How do assets get published? The author uploads the images and publishes the assets Create a launcher and workflow which process assets metadata and publish the pages Whenever we publish any pages and if the page has references to assets, then during publishing, it asks to replicate the references as well. What happens when the page is unpublished? When the page is deactivated, assets referenced to the page will not be deactivated because this asset might have reference to the other pages hence out of the box assets won’t be deactivated. If we perform cleanup, deactivate and delete old pages, we might not be cleaning up assets related to this page. Advantages of cleaning up old assets? Drastically reduces repository size Improves DAM Asset search Improves indexing Read Ful
As we know thatFinal (granite:FinalArea) - Defines a node as final. Nodes classified as final cannot be overlaid or inherited. Final nodes can be used directly via sling:resourceType. Subnodes under final node are considered internal by default like the below one - But now I need to add some custom logic in following file /libs/cq/personalization/components/target/engine_cq.jsp as per my project requirement. To overcome this challenge one idea has come to mind and I would like to share it here so that all of you could review and share your thoughts : Here is my approach - I need to manipulate List<Teaser> teaserList in engine_cq.jsp.Already I have decompiled the OOTB[TargetedContentManager] service and bundle associated with engine_cq.jsp and identify the method exactly where I need to add my custom logic so that it will work for my project and won't make any impact with remaining AEM sites. Problem wi
Hello,I'm looking for a solution to change the locale for all fields in a form in Designer. Should I do this via scripting or is there a way to just change it in the settings? The screen reader doesn't work properly unless the locale has been set for each field. Thank you.
I have setup local AEM cloud SDK with CIF addon and installed Venia content package. I stopped the instance and tried to start it after few days but it does not come up. I see below errors in logs. Has anyone else faced the same issue? *ERROR* [FelixLogListener] org.apache.sling.graphql.core.servlet.GraphQLServlet bundle org.apache.sling.graphql.core:0.0.9.T20210125100520-805f473 (511)[org.apache.sling.graphql.core.servlet.GraphQLServlet(2898)] : The activate method has thrown an exception (java.lang.IllegalArgumentException: A metric named org.apache.sling.graphql.core.servlet.GraphQLServlet.rt:graphql/sites/components/endpoint.m:GET_POST.e:json.cache_hit_rate already exists)java.lang.IllegalArgumentException: A metric named org.apache.sling.graphql.core.servlet.GraphQLServlet.rt:graphql/sites/components/endpoint.m:GET_POST.e:json.cache_hit_rate already existsat com.codahale.metrics.MetricRegistry.register(MetricRegistry.java:91) [io.dropwizard.metrics.core:3.2.4]at org.apache.sl
Join us for the next Adobe Target Community Q&A Coffee Break taking place Wednesday, March 30th, 2022 @ 8am PT - 9am PT ~ Be sure to REGISTER HERE to receive email reminders and a calendar hold ~ We'll be joined by Ryan Pizzuto aka @ryan_pizzuto, Senior Expert Solutions Consultant, who will be signed in here to the Adobe Target Community to chat directly with you on this thread about your Adobe Target questions pertaining to his areas of expertise: Auto-Target Automated Personalization Recommendations General Adobe Target topics Mihnea Docea aka @mihnead, Technical Support Engineer, will also be in the thread to provide further guidance around the above topics with Ryan! REQUIREMENTS TO PARTICIPATE Must be signed in to the Community during the 1-hour period Must post a Question about Adobe Target THAT'S IT! *(think of this as the Adobe Target Community equivalent of an AMA, (“Ask Me Anyth
Advantages of AEM Assets as a Cloud Service by James Talbot Abstract Adobe Experience Manager Assets as a Cloud Service offers a cloud-native solution to manage large scale assets and handle Dynamic Media operations. In this blog post, we will look at the advantages of AEM Assets as a Cloud Service, and how Asset Microservices plays a unique role and greatly helps with performance and speed. First off, both AEM Assets as a Cloud Service and Asset Microservices are always current with the latest features. Adobe provides a daily update of the AEM Assets Base Image as well as daily hotfix releases for both AEM Assets and Asset Microservices. In addition, AEM Assets as a Cloud Service provides a monthly release of new features, while Asset Microservices provides a weekly release of new features. The architecture of AEM Assets as a Cloud Service is uniquely designed to improve Asset handling performance. A client, such as a web browser, sends an upload request to Adobe Experience Manager
Understanding Adobe Experience Manager (AEM) Dispatcher by Satish choudhary Abstract What is a Dispatcher? Dispatcher is Adobe Experience Manager’s caching and/or load balancing tool. Dispatcher also helps to protect your AEM server from attack. The Dispatcher helps realize an environment i.e both fast and dynamic. It works as a part of a static HTML server, with the aim of : Storing as much of the site content as is possible, in the form of static website. Accessing the layout as little as possible. For caching, the Dispatcher module uses the Web server’s ability to serve static content. The Dispatcher places the cached documents in the document root of the Web server. How Dispatcher Performs Caching ? The Cache Directory For caching, the Dispatcher module uses the web server’s ability to serve static content. The Dispatcher places the cached documents in the document root of the web server. Methods for Caching Content Updates Auto-Invalidation Methods for Caching - Content Update
Adobe Experience Cloud messaging collaboration in the works by Don Fluckinger Abstract Adobe previewed a new feature on its roadmap -- a cross-team collaboration chat client dubbed Project Quick Connect that may eventually be embedded across Adobe Experience Cloud and Adobe Workfront. In the Project Quick Connect use case Adobe presented, a retail data analyst could use the feature to spot a sales trend in Adobe Analytics and discuss next steps with a marketer to take advantage of the insight in an upcoming campaign. Chat threads can be documented in both Adobe Analytics annotations or within Workfront so that teams have a record of the conversations and actions taken within them. "It's clearly aimed at bridging a classic insight-to-action gap in the enterprise," said Benjamin Bloom, a Gartner analyst. "If you think about what an analyst is trying to accomplish, they want the organization to make a decision -- to take data and turn it into something that they will do differently ba
I'm trying to add a custom dropdowns under paraformat which will basically change the text size when its selected just like the heading tags. The format I need to hit is <div class="large-font">. I tried to create the styles node referred in styles plugin for RTE <styles jcr:primaryType="nt:unstructured" features="*"> <styles jcr:primaryType="cq:WidgetCollection"> <large jcr:primaryType="nt:unstructured" cssName="large-font" text="large-font"/> <medium jcr:primaryType="nt:unstructured" cssName="medium-font" text="medium-font"/> <small jcr:primaryType="nt:unstructured" cssName="small-font" text="small-font"/> </styles> </styles> but a blank space shows up in the dropdown at the end. is there anything I am missing. Thanks for any help
One of our publish servers keeps getting CPU usage notifications for 90% consumption. We pulled down the thread dumps, and analyzed it on the IBM Thread dump analyzer. We realized that there are many instances of jdk.internal.misc.Unsafe.park, around 303 threads (look below for the total amount of Identical Stack trace's listed below in the table. 225 waiting threads, 54 timed_waiting. Would this be the reason why our publish servers keep hitting 90% consumption?What is the best way to debug this problem, and how can we solve this issue. There is nothing on the web that discuss about this.Just the top 3 Identical Stack trace(grouped) with the jdk.internal.misc.Unsafe.park problem.23 TIMED_WAITINGthreadsjava.lang.Thread.State: TIMED_WAITING (parking)at jdk.internal.misc.Unsafe.park(java.base@11.0.3/Native Method)- parking to wait for <0x00000007d353a400> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)at java.util.concurrent.locks.LockS
Adobe Campaign Insider Monthly Webinar Series Link to Register: https://bit.ly/3uyFaMp About the Session: The session is dedicated to Adobe Campaign Standard customers, where you will learn tips and tricks from peers to optimize your use of Adobe Campaign Standard and learn about product updates and roadmap. Session Schedule: Apr 26, 2022 | 08:00 - 09:00 am PDT Session Speakers: Bruce Swann, Principal Product Marketing Manager, Adobe About the Adobe Campaign Insider Webinar Series: The webinar series will provide tips & tricks and inspiration for Adobe Campaign customers to help evolve cross-channel marketing strategies. The webinars will focus on helping improve your use of Adobe Campaign and elevate your skills and cross-channel marketing strategy. The result will be increased product adoption and value realization with Adobe Campaign. Please feel free to reach out if you have any queries and/or feedback regarding this webinar thr
Adobe Campaign Insider Monthly Webinar Series: Customer Spotlight Link to Recording: https://adobe.ly/3AvrW7I About the Session: The Adobe Campaign Insider session will spotlight Center Parc, an Adobe Campaign Classic customer, who will share how they overcome challenges, adjust to the new normal, become more efficient with managing cross-channel campaigns, and drive meaningful value through Adobe Campaign. Session Schedule: Apr 27, 2022 | 08:00 - 09:00 am PDT Session Speakers: Bruce Swann, Principal Product Marketing Manager, Adobe Scott Ward, Senior Retention Marketing Manager, Center ParcScott has over 10 years’ worth of digital marketing experience working for brands such as Center Parcs and Best Western. Scott has a real focus on providing the best digital experience possible for customers whilst ensuring business goals are achieved. About the Adobe Campaign Insider Webinar Series: The webinar series will provi
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.