Tuesday, 18 December 2018

Creating a Custom Authentication Handler for Adobe Experience Manager 6.4

You can create a custom authentication handler for Experience Manager 6.4. A custom authentication handler improved security for your Experience Manager instance. To create a custom authentication handler, you create a custom Java class that implements Interface AuthenticationHandler.

In this article, to show an example of a custom authentication handler, two-factor authentication is used. That is, you can configure AEM to use a one-time password (OTP). An OTP is an automatically generated numeric or alphanumeric string of characters that authenticates the user for a single transaction or session.

The benefit of using an OTP is it's more secure than a static password. An OTP token is typically generated by a mobile application that displays a number. The number changes every 30 or 60 seconds, depending on how the token is configured.

When a user logs into Experience Manager, they enter their user name, password, and OTP value.


This article walks you through building a custom authentication handler using R7 annotations and a Maven Archetype 15 project. The following video shows you this use case. 





To read this development article, click https://helpx.adobe.com/experience-manager/using/twofactor64.html.   

Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 


Monday, 10 December 2018

Congratulations Arun Patidar - our 2018 AEM Community Member of the year

I want to extend my congratulations to Arun Patidar - our 2018 AEM Community Member of the year winner. Arun is a very involved AEM Community member and has addressed many questions in the AEM community this year.  This year, we are very pleased to award Arun with an IPHONE.



Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 

Friday, 7 December 2018

Wednesday, 5 December 2018

Using the Sling Strongly-typed API to retrieve content from the Adobe Experience Manager 6.4

Adobe Experience Manager 6.4 contains a Java Content Repository (JCR) that stores nodes and properties. A node located in the JCR is considered a resource. You can use the JCR API to retrieve resources from the JCR. For information about using the JCR API, see Querying Adobe Experience Manager 6.4 JCR data.

However, you can also retrieve content from the JCR using the Sling Strongly-typed API. In fact, a resource is a central part of Sling and it assumes everything in the JCR is a resource. You can use Sling to retrieve a resource from within an OSGi bundle using the Sling Strongly-typed Java API.

The following example shows the title retrieved from a page node that was retrieved using the Sling API.

This article walks you through how to use the Sling Strongly Typed API to retrieved information from nodes in Experience Manager 6.4.  To read this development article, click https://helpx.adobe.com/experience-manager/using/querying-experience-manager-slingAPI-64.html.

Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 

Thursday, 29 November 2018

Working with Adobe Experience Manager Carousel Core Components

You can use the Adobe Experience Manager Carousel Core component to add carousel functionality within your Experience Manager site. The Carousel core component has these feautures:


  • Allowed components can be configured through policy configuration.
  • Carousel navigation via next/previous and position indicators.
  • Carousel autoplay with: configurable delay, ability to disable automatic pause on hover, and pause/play buttons.
  • Automatic pausing when the document is hidden,
  • Editing features for items (adding, removing, editing, re-ordering).

The following illustration shows the Carousel Core Component.



Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 

Wednesday, 28 November 2018

Adobe Experience Manager PDF that contains a TOC of HELPX Articles

For a long time, we have heard feedback that the community wants a TOC of the Experience Manager DEV community articles. Now we have it.



This PDF Guide references close to 100 AEM DEV community based articles, including:

  • the Weekend tutorial
  • how to write a custom workflow step using the Worflow API
  • how to create a HTL component that uses WCMUsePojo
  • how to create a HTL component that uses Sling Models
  • how to query JCR data using the QueryBuilder API
  • how to create a JCR Event Handler
  • how to work with granite/coral resource types
  • and much more 


This guide will be updated as new content is created.  Download this guide here:

https://drive.google.com/file/d/1zPPKKPUxr_Y0UA-gNJstsqTNI9D3m5qS/view

Friday, 16 November 2018

WIN a $100 AMAZON CARD

Win a $100 Amazon Card from the AEM Community....


To enter this community based contest - perform these small steps: 1 - Login to AEM Forums at https://lnkd.in/dqSRTFq 2. Leave a reply here: https://lnkd.in/en_yaZC (The more detail the better) We will put all entries from now to end of NOV into a draw and the winner will get a $100 Amazon card. Plus - if we pick your ideas, we will give you extra AEM Community swag when we present your session hashtagcommunitygifts .





Wednesday, 14 November 2018

Uploading files to Adobe Experience Manager 6.4 DAM using Asset Manager API

You can create an Adobe Experience Manager application that lets a user select a file from their local desktop and upload it to AEM Digital Asset Manager (DAM).  For example, assume you want your customers to upload photos taken from a mobile device and upload to enter a local contest.


Using an Experience Manager component that is developed in this article, an image can be uploaded from the web site to the Experience Manager DAM.



The Experience Manager component posts the selected image to a Sling Servlet. The Sling Servlet uses the AssetManager API to place the uploaded file into the DAM, as shown in the following illustration.



Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 

Tuesday, 6 November 2018

Working with Adobe Experience Manager 6.4 Content Fragments

Have you ever wondered how to easily create text snippets in Adobe Experience Manager 6.4 and store them in the JCR repository, for easy re-use when authoring web pages, mobile applications, social content, and so on?

In Experience Manager 6.4, you can use content fragments that let you create original content in Experience Manager, enabling copy writers to create editorial content before it is being authored in a page, and to further allow curating such content by creating channel specific variations and by associating collections with relevant media content. As a result, web producers receive content that is prepared and "ready to go”, enabling them to focus on assembling content across channels, globally and on a local level.

The following illustration shows the Content Fragment created in this article.



Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 

Saturday, 3 November 2018

Creating an Event Listener for Adobe Experience Manager 6.4

You can develop a custom JCR Event Listener for Adobe Experience Manager 6.4 that responds to events that occur at the JCR level. For example, you can write an event handler to respond to the following JCR events:


  • A node was added
  • A node was moved
  • A node was deleted
  • A property was added to a node
  • A property was changed
  • A property was deleted


To create an AEM event handler, you create an OSGi bundle that contains a class that implements javax.jcr.observation.EventListener. For information, see EventListener.

To read this article - click: https://helpx.adobe.com/experience-manager/using/aem64_event_listener.html 


Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 

Thursday, 1 November 2018

[Webinar |November] AtACE Session: Enterprise Search Solution for AEM using Apache Solr


Session Details

Join Lokesh BS, Digital Solutions Architect at TA Digital for a discussion on Enterprise Search Solution for AEM using Apache Solr, one of the critical decisions and desired by customers in the community. In this session users would understand how to integrate and use Apache Solr within AEM for the better search solution and understand the different features of Search Engine

Date: Tuesday, 27th November 2018
Time: 8:00 am PDT | 11:00 am EST | 8:30 pm IST
Duration: 60 Minutes

 Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 


Querying MySQL data using an Adobe Experience Manager 6.4 DataSourcePool

You can create an Adobe Experience Manager 6.4 application that queries data located in a relational database and displays the data within a web page. In this article, you use a com.day.commons.datasource.poolservice.DataSourcePool instance to setup a connection to a MySQL database. Then you can use Java JDBC API to perform database operations, such as executing a query. For information, see Java JDBC API.

The following illustration shows the Experience Manager component developed in this article that displays data queried from MySQL.


The following video shows data located in the employee table being displayed in an Experience Manager component.



Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel.





Wednesday, 31 October 2018

Querying Adobe Experience Manager 6.4 JCR data using the QueryBuilder API

You can create an Adobe Experience Manager 6.4 application that queries data located in the Java Content Repository (JCR). In this article, you use a com.day.cq.search.QueryBuilder instance that belongs to the QueryBuilder API. This API requires that you define search parameters, and an optional filter. After you execute the query, the results are stored in a result set. You can display the result set in an Experience Manager web page. For information, see Interface QueryBuilder.

The following illustration shows JCR data displayed (retrieved by using the QueryBuilder API) within an Experience Manager HTL component.


To read this development article, click https://helpx.adobe.com/experience-manager/using/querying-experience-manager-query-builder-64.html.

Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

Saturday, 27 October 2018

Building a Spring MVC Project using Maven and IntelliJ IDE 2018

(Although most of the content located on this blog is for the Adobe Experience Manager community, from time to time, I post content for the general Java community. This post is about how to set up a Spring MVC project using Maven and IntelliJ 2018)

This development article guides you through how to create a Spring MVC project by using Maven and IntelliJ IDE 2018. This article includes how to configure the Spring DispatcherServlet.

This article builds a base Spring MVC project by using a standard web application Maven Archetype. Then it includes Spring MVC dependencies into the POM file and configures Spring related XML files, such as WEB-INF/dispatcher-servlet.xml file.

Finally, the Spring MVC project is deployed to Tomcat. If you do not have TOMCAT installed, see http://tomcat.apache.org/. (This article uses Tomcat 8).
The following illustration shows the Spring MVC built in this article.




To learn how to create a Spring MVC project by using Maven and IntelliJ IDE 2018, download this PDF.

Friday, 26 October 2018

Exporting Adobe Experience Manager Data 6.4 Using Sling Model Exporters

You can create an Experience Manager Sling Model Exporter to export Experience Manager data as JSON. You can invoke a Sling Model Exporter by using an HTTP Restful call and get back data. For example, assume that you want to get details of an image component located in the We Retail site:

 http://localhost:4502/editor.html/content/we-retail/us/en/experience.html

The following illustration shows the image component. 



You can use a Sling Model Exporter to get component details that are returned within JSON, as shown in the following illustration.  



To invoke the Sling Model Exporter, you can use this URL:

http://localhost:4502/content/we-retail/us/en/experience/jcr:content/root/responsivegrid/heroimage.model.tidy.json

The data is retrieved from the AEM JCR located here:

/content/we-retail/us/en/experience/jcr:content/root/responsivegrid/heroimage

To read this development article, click:



Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel. 


Sunday, 21 October 2018

Using NPM to compile SCSS files

You can use JS Node to compile a SASS file (.SCSS) to a CSS file. To compile a SASS file into CSS using NPM, you need to first install this on your system by using this command.

npm install -g scss-compile

NOTE - make sure you have NODE JS on your system.

Once successful, you will see:



Now you are ready to use a command line to compile a SCSS file into a CSS file.  Assume we have this HTML in a directory named  SampleProject.

HTML File

<html>
    
<head>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>    
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

</body>
</html>

SCSS file

Under the SampleProject folder, we have a folder named css.  In this folder , there is a file named style.scss, as shown here: 


The following code represents the style.scss file. 

$font-stack:    Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

Compile the SCSS into a CSS

To compile this SCSS into a CSS file using NPM, you need to create a file named package.json in the SampleProject folder. This package defines the command we need to convert this file. Here is the code for this JSON file. 

{
  "devDependencies": {
    "node-sass": "^6.4.1"
  },

  "scripts": {
    "scss-compile": "node-sass -o css css/style.scss"
  }
}

Now open the command line to the  SampleProject folder and enter this command: 

 npm run scss-compile

If successful, you will see this message in the command prompt. 



There you go, now you have successfully converted the SCSS into a CSS file. 




Hope this helps.

Monday, 15 October 2018

Creating a Login Component for the Experience Manager Weekend Site

You can develop a login component for the Adobe Experience Manager Weekend site. That is, using a login component, you can restrict unauthorized users from accessing it. A login component better secures your site and ensures that only registered users can access it. In addition, the login component should have Remember Me functionality to remember user name.(Using cookies).

This development article walks you through how to build a Login component for the Weekend site. The login component is created by using HTL. For more information, see HTML Template Language.


When the user enters a valid username and password, the login component redirects to the Weekend page. 


To read this Experience Manager 6.4 development article, click https://helpx.adobe.com/experience-manager/using/weekend_login.html


Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010


Wednesday, 3 October 2018

[Webinar |October] AtACE Session: Creating a site structure to support your global business



Playback:

https://communities.adobeconnect.com/p4uc88amziyu/?proto=true

Topic:
AEM 6.4 Ready for the World:
Creating a site structure to support your global business

Presenter: Ankur Sial, a MTS-2, Core Technologies & Products at Adobe

Description: When deploying Experience Manager, one of the critical decisions is to determine the site structure that supports your business and desired customer experience. For global marketers, reaching customers in many countries and languages adds to the challenge. Learn how to structure global content and support international sites for multiple languages, mixed translations and adapted content. We'll walk through AEM 6.4 capabilities and a best practice case study for organizing international sites, including, creating the structure, translating the site, and publishing. Users will get familiar with the process of updating content and managing local adaptations.

Key learnings:
- How to create an international site using blueprints, live copies and language copies
- When to use MSM live copy vs language copy
- The concept of language masters vs country sites
- How to update source structure and content and iterate to translated sites


Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.




I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel.