Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Demystifying Oak Search: Exploring Indexes with Luke by Dan 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 Clou
We have been facing issues with Clientlibs update. Every time we push new changes to the existing clientlibs, after deployment , it still shows the older one. We are using AEM as cloud, and have tried rebuilding the Clientlibs/clearing the clientlib cache(/libs/granite/ui/content/dumplibs.rebuild.html), but this doesnt work.The workaround is to always update new category name for the client lib, and thus it identifies a new client lib altogether when deployed.Isn't AEM already versioning and rebuilding clientlibs. Any support please.
Hi Everyone, Receive the latest Adobe Journey Optimizer product updates, exciting stories, use cases, tips and more delivered directly to your inbox every quarter. Sign up here for the newsletter. In each newsletter you will find:• Product news and updates including recently released capabilities• Invitations to events and webinars and recordings for recent webinars• Top discussions in the Adobe Journey Optimizer Experience League Community • Case Studies and Use Cases from other Adobe Journey Optimizer Customers• Tips and tricks to help deliver the exceptional customer experiences that drive business success If you have any questions or feedback related to this newsletter, then kindly reach out through the below comment section.
HiWhen I add to my template<sly data-sly-use.storeLink="${'android' == model.device ? model.appleStoreLink : model.googlePlayLink}"></sly>I get the following errorCannot get DefaultSlingScript: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: data-sly-use needs to be passed an identifierMy model isDevice looks like:public String isDevice() { String userAgent = request.getHeader("user-agent"); if (userAgent.contains("iPhone")) { return "ios"; } else if(userAgent.contains("Android")){ return "android"; } else { return StringUtils.EMPTY; }}Any suggestions what I am doing wrong?
We are attempting to connect to SharePoint using a swagger file and the REST API. We have been able to authenticate using OAuth 2.0 but are hitting a roadblock when trying to test any services contained in the swagger file. We recently were able to do this with ServiceNow and are hoping to do the same thing with SharePoint. The redirect_uris match and the application has been given full control in SharePoint. Thank you. @workflowuser
Content backfill required
Governance might sound like a "leadership problem," but it’s a key concept every Workfront System Administrator must address. The good news is, you can start small, maybe with just a glossary of terms or a small working group, and evolve your practices over time.In this on-demand webinar, originally broadcast on March 30, 2022, Tyler Holt (@tylerholt-adobe), a Consultant in Workfront’s Success Services organization, and Luke Ramlow (@lukera), Application Analyst at Mayo Clinic College of Medicine, covered:What governance in Workfront actually meansExamples of different types of governanceWays governance can evolve and mature over timeMayo Clinic College of Medicine’s multi-year journey to full scale governance (spoiler alert, it didn’t happen overnight!)You can view the recording here and a copy of the slides is attached. Have questions for our speakers? Tag them in a comment below!
Managing AEM Repository Size Growth by Anuj Gangwar Abstract Managing your AEM repository size growth can be challenging for numerous reasons. What’s more, it may suddenly start to grow unexpectedly and fill up space in the assigned drive of your AEM application. In this post, I want to share a few AEM utilities & methods which can help you to not only manage the AEM repository size but also help to improve the AEM application performance. 1: Tar Compaction (also known as Revision Cleanup) By running the regular tar compaction, you can not only control the AEM repository size growth, but it will also help improve the AEM application performance. Tar compaction reclaims the disk space by removing the obsolete/redundant data from your AEM application. You can use both online and offline compaction. You can schedule online Tar compaction during weekdays after business hours & offline compaction on weekends (Non-business hours or during your designated Maintenance Window). 2: G
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.
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
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
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.