Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
Albertsons Companies leans on Adobe Experience Cloud as it redefines the grocery shopping experience by David Carrel Abstract In a year where consumers spent a lot more time at home, many have dipped their toes into new ways of doing things. Whether out of necessity or curiosity, websites and apps took on new meaning for many of life’s daily tasks. Through Adobe’s Digital Economy Index, a real-time barometer of online shopping, we saw categories like home improvement grow 60 percent year-over-year. The breakout star however, was in groceries. In February 2021, online grocery shopping in the U.S. grew 230 percent compared to a pre-pandemic period. COVID-19 quickly became a catalyst for consumer behaviors that were already bubbling to the surface. While pushing a cart still works for many grocery shoppers, some prefer going online for speed and efficiency. What we buy is changing as well, as more people look beyond ingredients and seek out meal-oriented offerings that save time and ene
Getting to Know the Adobe I/O Architecture: Experience Cloud Use Cases by Rohan Kapoor and Santosh Mishra Abstract APIs are a way for us to retrieve data from any service, be it a music streaming service, traffic navigation service, or a customer data platform such as Adobe Experience Platform. APIs can be used via serverless computing, an architecture model that allows developers to write and execute code without needing to provision any servers (hardware), which is costly. It’s a revolutionary concept; it is a far cry from the traditional hosted server technology and expedites the code delivery and execution process. There are lots of advantages to serverless that we won’t cover in this post (this article explains it in a bit more detail), but at a high level we can leverage serverless technology to address use cases around third-party integrations, batch file processing, and IoT devices to name a few. In this article, we will take a deep dive into Adobe I/O, which is a one-stop sh
Combining Headless and Traditional Architecture | AEM by Aemsimplifiedbynikhil Abstract Hello AEM folks!! I was going through some of the documentations of Adobe on the usage and benefits of hybrid architecture. I will try to summarize the details around the same. Basically a Hybrid Architecture is a combination of the concepts of traditional and headless CMSs into a single architecture. So let’s go ahead and understand the traditional and headless architecture briefly. 1. Traditional Architecture: A traditional architecture uses a single tech stack, it holds all the templating, logic and produces a formatted HTML as an final output. It provides an end to end solution but the only disadvantage is that it works only with limited number of channels. like websites. Below are some of the advantages of traditional architecture: Provides consistent personalized experience. Enables to update presentation and layout with in-context previews. Reduces the cost of ownership due to single tech s
Manipulating Content - The SlingPostServlet (servlets.post) by sling.apache.org Abstract Multiple Ways to Modify Content As always in life there is more than one way to do it. So to modify content in Sling, you have multiple options, the Sling default POST Servlet also called the SlingPostServlet is one of them. This page is about how you can modify - create, modify, copy, move, delete, import - content through the SlingPostServlet. In addition it also explains how to extend the SlingPostServlet with new operations. Quickstart: Creating Content To create content you simply send an HTTP POST request using the path of the resource to store the content in and include the actual content as request parameters. So one possibility to do just that is by having an HTML Form like the following: This simple form will set the title and text properties on a resource at /some/new/content. If this resource does not exist it is just created otherwise the existing content would be modified. Simila
hirobe talks to : Tadd Reeves, AEM Architect & Consultant by Ted Reeves Abstract Video: https://www.youtube.com/watch?v=WVJW2BdkUJY Tom from hirobe chats to AEM Architect & Consultant Tadd Reeves about AEM as a cloud service, managing effective Adobe Experience Manager deployments and why having good AEM developers has never been more important. Read Full Blog hirobe talks to : Tadd Reeves, AEM Architect & Consultant Q&A Please use this thread to ask the related questions.
This blog is Part 2 of a three-part series that will cover how anyone could use Adobe Target NodeJS SDK to run experimentation and personalization on an edge compute platform. The parts are: Part 1: Akamai Edge Workers and Adobe Target NodeJS SDK, by @artur-ciocanu Part 2: AWS Lambd@Edge and Adobe Target NodeJS SDK, by @artur-ciocanu Part 3: Cloudflare Workers and Adobe Target NodeJS SDK Check it out today, and stay tuned here for Part 3!
I have created multiple data sources through sling:OsgiConfig nodes in the run mode configuration. I can also see these configurations in configurations manager screen.I am trying to get database connection using below code:@Reference private DataSourcePool dspService;....getConnection(){ DataSource ds = (DataSource) dspService.getDataSource("abc-xyz");.....}I get an error:com.day.commons.datasource.poolservice.DataSourceNotFoundException: No data source found with name 'abc-xyz' (after asking 0 providers).If I open the config manager and save the configurations again, connection works successfully. Why is the behavior shown ?I tried the following solution.I created a bundle activator and put the code to programmatically update the configurationsServiceReference serviceRef = context.getServiceReference(ConfigurationAdmin.class.getName());ConfigurationAdmin configAdmin = (ConfigurationAdmin) context.getService(serviceRef);String filter = '(' + C
I have Create a new AEM Project with Archetype 26 and i faced the below issue and resolve it. Please follow the step below for the setup a new project.1. Setup Java 11(Recommended)2. Setup AEM 6.5 Instance. Once AEM is setup then installed the "aem-service-pkg-6.5.4.zip" service package.3. Create a new Project structure using the below command:mvn -B archetype:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion=26 -D appTitle="My Project" -D appId="myproject" -D groupId="com.myproject.aem" -D artifactId="myproject-aem-project" -D version="0.0.1-SNAPSHOT" -D aemVersion="6.5.4" -D includeDispatcherConfig=n -D includeExamples=nWhenever run the above command getting below error while creating a project structure with dispatcher modules.ERROR : Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate (default-cli) on project standalone-pom: java.nio.file.FileSystemException: Project path(Example: /Myproject
I want using the functionality and i want override the the component injected in my site page "cq/experience-fragments/editor/components/experiencefragment" with my custom experience fragments component (inherited from core component). Is it possible? If not, i evaluate to remove the shortcut functionality by replacing with manual steps:1) create an experience fragment template variation2) create the content including a component like the page references (replicating the same data entry)3) introducing in my site page the custom experience fragment component and apply the reference with point 14) delete the component replaced with point 3... Thank you in advance for your help.
Use this thread to ask any questions related to the upcoming course "Getting started with Query Service for Data Engineers" on Experience League. Experts are monitoring this thread to ensure your questions are answered.
Session Details In the 2-hour Building Single Page Applications with Adobe Experience Manager training workshop delivered by Adobe Learning Services expert instructors, you will learn the AEM project structure with a React frontend module. Participants will... Session Schedule Wednesday, Apr 28 1:00 AM - 3:00 AM IST Speaker(s) Iain Maguire, Senior Instructor, ADLS, Adobe Full Schedule Check Here Q&A Please use this thread to ask the question related to this Session. Don't forget to register yourself for this session @ Adobe Summit 2021.
I am trying to use a custom Image component where the image should be dragged and dropped on to the dialog in my Experience Fragment. The issue is that every time I configure the image, the image disappears from the dialog but when checked in crx, the fileReference property is getting appended with some characters as shown in the image. Any suggestions please?The same component works fine on pages created using other templates, I am facing this issue only on my Experience Fragment.
In this recent post I described how you can save database space, optimize bandwidth, and increase readability by storing URLs in their decoded form: A decoded URL is equivalent to an IRI (Internalized Resource Identifier). That’s the official standard for “A string that’s like a URI, except it allows international characters to be used without percent-encoding.” Using IRIs whenever you can is super-smart: an IRI can make the difference between fitting in a 255-character “URL” field[1] and losing critical data. But do think about whether you’re storing the URL for reporting (i.e. a history of page visits, form conversion pages, referrers) vs. whether you intend to use it in an outbound link later on. If you might link to it in a web page, an IRI is still fine. But IRIs aren’t ready for email links. IRIs don’t work, as-is, in an <a> tag in an email Contrary to popular belief, an IRI (a.k.a. URL with inte
Running AEM 6.5 with JDK 11? by Asutosh Jena Abstract While running AEM 6.5 with Java 11 we ran into several issues especially with environment stability. This post outlines some of the items we all need to be aware of and address when using Java 11 with AEM 6.5 The Java Common Annotations module was removed from Java 11, so you need to add javax.annotation-api as a dependency. javax.annotation javax.annotation-api 1.3.2 provided If you are seeing blank pages after deploying or bundle install on AEM it’s possible it’s happening due to https://issues.apache.org/jira/browse/FELIX-6184 You can resolve this by editing to /crx-quickstart/conf/sling.properties and update sling.bootdelegation.sun=sun.*,com.sun.*,jdk.internal.reflect,jdk.internal.reflect.* Since Java 9 Modules to make reflection work you need to allow it explicitly with --add-opens JVM option. Without it you may get errors like following: Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make Clas
Adobe partners with governments in all 50 states to accelerate digital modernization by Jonathan Benett Abstract Digital modernization in government has been picking up steam over the last decade. In normal years, government agencies would often grapple with shifting technology priorities and budgets. This has led to some uneven improvements in the past. However, the need for agencies to quickly support the public due to the COVID-19 pandemic was a driving force and intensified the focus on delivering digital services. This dedication and commitment to expanding digital government has led to the most significant digital modernization effort across all levels of government in our history. The accelerated adoption of new technologies to improve digital customer experience (CX), ensure government mission continuity and support the government’s workforce, was made possible due to dedicated public servants and strong public-private partnerships. At Adobe, partnering across industries to
Walgreens online portal built on Adobe Experience Manager. by Stephen Frieder Abstract In Summer of 2020, Walgreens Boots Alliance announced a strategic partnership with Adobe and Microsoft. The technology partners would play an important role as Walgreens and Boots (UK) worked to enhance shopping and wellness experiences, while driving a mass personalization effort. In the U.S., that meant activating a loyalty program with over 100 million members. The partnership with Adobe Experience Cloud brought a set of tools that produced deeper customer insights, while delivering more relevant customer experiences that were integrated across channels like the website, mobile app, and in-person retail. In the months since the partnership was unveiled, Walgreens Boots Alliance has made great progress, demonstrating what it means to drive meaningful digital transformation on the behalf of customers. Most recently, Walgreens in the U.S. launched an online portal for Covid-19 vaccines. The experi
AEM - Core Components 2.16.0 by Adobe Abstract Enhancements 1. Improve the accessibility of a variety of components (e.g. Title, Carousel, Search...) 2. Add the new Link Handler processing to existing components Bugfixes: For a list containing all the fixed issues in this release, see 2.16.0 milestone Read Full Blog AEM - Core Components 2.16.0 Q&A Please use this thread to ask the related questions.
Project App Builder by Pedromonjo Abstract Last year, Adobe released a framework (not exactly a new product), called Project App Builder. I barely noticed it when it was announced. However, one of my customers requested me a very specific feature, for which App Builder was the perfect tool. Although it has been ages since I last did any serious development, it was a good opportunity to learn this new tool. This is an introduction to this tool and, in future posts, I will get into more details. Background Have you ever thought “I wish this functionality was added to that tool”? Maybe you have even suggested it in the forums or asked your Adobe representative about it. I have definitely been in these conversations. As usual, the problem is that, if a feature is asked by only one person or does not align with the product’s roadmap, it will never be implemented. This is especially the case for the SaaS tools: Analytics, Target, Audience Manager and Campaign Standard. If your tool of
Hello, I have an adaptive form with about two dozen fields that are marked as required fields, yet somehow I have users that are able to submit their form when some of these fields are empty. I have submitted hundreds of test forms in our test and production environments and am unable to replicate this behaviour. Does anyone have any suggestions on potential solutions, or avenues of investigation that I can pursue for this issue?
Custom Oak Indexes : AEM Part-4 (Autosuggestion) by Bimmisoi Abstract As of now we have implemented Stop Words, Synonyms Words, Custom Index Creation. let's implement auto suggestion for search. Autosuggestion : Autosuggestion/Autocomplete/Predictive search is a search feature where the search engine predicts the user’s query and provides suggestions as the user types. The user can select any of the autocomplete suggestions and be taken to results without having to manually type every character. We can follow below steps to implement this. Create indexRules node : type - nt:unstructured Create cq:PageContent node : type - nt:unstructured Create properties node : type - nt:unstructured Create jcrTitle node : type - nt:unstructured Add below property in those properties which you want to be fetched in auto search drop down. Properties : useInSuggest : true [Boolean] After reindex changes will start reflecting. Hope this helps!! Happy Coding 🙏 If you like my post and find
Custom Oak Indexes : AEM Part-5 ( Porter Stemming & Lower Case ) by Bimmisoi Abstract As of now we have implemented Autosuggestion, Stop Words, Synonyms Words, Custom Index Creation. let's implement Porter Stemming & Lower Case for search. Porter Stemming : In this implementation search will reduce any of the forms of a word such as "talks, talking, talked" or "read, reading" to their elemental roots "talk" and "read".And it will only consider root words for search. We can follow below steps to implement this. Create analyzers node : type - nt:unstructured Create default node : type - nt:unstructured Create filters node : type - nt:unstructured Create PorterStem node : type - nt:unstructured Lower Case : It converts any uppercase letters in a token to the equivalent lowercase token. All other characters are left unchanged. Example : In: "Down With CamelCase" Tokenizer to Filter: "Down", "With", "CamelCase" Out: "down", "with", "camelcase" We can follow below steps to
Custom Oak Indexes : AEM Part-3 (Stop Words) by Bimmisoi Abstract As of now we have implemented Synonyms Words, Custom Index Creation. let's implement stop words for search. Stopwords : Stop words are commonly used words such as articles, pronouns and prepositions. stop words should be indexed for precise result listing . If a phrase contains stop words, the stop words will not be searched, but the searchable words will be searched in the order as entered. Example : "from AEM blog" phrase will exclude "from" as searchable word and search rest of the phrase. We can follow below steps to implement this. Create analyzers node : type - nt:unstructured Create default node : type - nt:unstructured Create filters node : type - nt:unstructured Create Stop node : type - nt:unstructured Properties words : stop.txt [String] Create stop.txt file : type - nt:file After reindex changes will start reflecting. Read Full Blog Custom Oak Indexes : AEM Part-3 (Stop Words) Q&A Please use this
Custom Oak Indexes : AEM Part-2 (Synonyms Words) by Bimmisoi Abstract As of now we have created custom Index. let's implement synonyms words for search. synonyms : In most of the search implementation search should work for synonym words. Example : If a user is searching for Mumbai or Bombay or BOM , results should be same. Or We can follow below steps to implement this. Create analyzers node : type - nt:unstructured Create default node : type - nt:unstructured Create filters node : type - nt:unstructured Create Synonym node : type - nt:unstructured Properties synonyms : synonyms.txt [String] Create synonyms.txt file : type - nt:file After reindex changes will start reflecting. Read Full Blog Custom Oak Indexes : AEM Part-2 (Synonyms Words) Q&A Please use this thread to ask the related questions.
Custom Oak Indexes : AEM Part-1 (Custom Index Creation) by Bimmisoi Abstract With latest version of AEM, Oak does not index content by default, Custom indexes need to be created as per the requirement.If there is no index for a specific query, possibly many nodes will be traversed. The query may still work but probably be very slow. So let's quickly create a custom Index. We will explore below search features. Synonyms Words Stop Words Autosuggestion PorterStem & Lower Case For Creating Lucene custom Index step please follow below steps Open CRXDE and navigate to http://localhost:4502/crx/de/index.jsp Navigate to /oak:index Create node with jcr:primaryType = oak:QueryIndexDefinition Index must have below properties while creating it must be of type oak:QueryIndexDefinition must have the type property set to lucene must contain the async property set to the value async, this is what sends the index update process to a background thread Click save all and save your changes. Bel
Sling models: the story behind @Inject by Reyn van de Craats Abstract This blog post is based on an issue encountered on a project I’ve worked on. I’ve been working with AEM for a while and in that time I wrote my share of Sling models and unit tests for them. Reading through lots of references on the internet explaining which annotations you can use and how they work. Also using some third-party custom annotations and even adding a custom annotation myself to be used in Sling models. Yet all this time, the way Sling models work their magic stayed magical somehow... Especially the mysterious @Inject annotation. However, I never encountered really weird behaviour that couldn’t be accounted for one way or another. Until recently. Before presenting the issue I want to indicate what DOES work. In an OOTB AEM instance, the Sling model based on the SlingHttpServletRequest works and injects the current page fine, however, the one based on the Resource does not work! This makes a lot of sen
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.