Thursday, 22 January 2015

Creating Custom Data Importer Services for Adobe Experience Manager

You can develop a custom data importer service for Adobe Experience Manager (AEM) that lets you import data. To address some business requirments, importing external data into your AEM site is an important use case. For example, you can import data from an external social media site. In this development article, a cus­tom node type, cq:PollConfig, is used to import data at a specific inter­val.
To create a custom data importer service, use the com.day.cq.polling.importer.Importer API and ceate an OSGi bundle, as shown in the following illustration. 


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

Adobe Digital Marketing Community

Join the Adobe Digital Marketing Community. Start by clicking this banner

About the Author

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 16 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 CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.
TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.

Wednesday, 14 January 2015

Upcoming Sessions of Ask the AEM Community Experts

The Ask the AEM community experts sessions for January and February 2015 are as follows:

Deep dive with AEM and Sightly

 Join Scott Macdonald and Feike Visser for a deep dive into using Sightly and Adobe Experience Manager (AEM). By attending this session, you will gain a deeper understanding on how to use this new technology to build AEM components. In addition, you will have the chance to ask Sightly questions to the Adobe Experts. This session will be held on Tues Jan 27 at 11 AM EST.


Building login-based sites in AEM

 Join Scott Macdonald and Justin Edelson to learn how to develop secure AEM web sites that require user authentication. By attending this session, you will gain a deeper understanding of how to build AEM secure web sites by using Sling technology. In addition, you will have the chance to ask Sling security  questions to the Adobe Experts. This session will be held on Tues Fe b17 at 11 AM EST.



Friday, 9 January 2015

Creating an AEM project using the Java IntelliJ IDE

You can create an AEM application by using the Java IntelliJ Integrated Development Environment (IDE). By building an AEM application using IntelliJ IDE, you have access to features within the IDE such as code completion and the ability to remote debug the application. That is, you can set a break point on a line of Java code used for an OSGi bundle and you can walk through the code in the IntelliJ environment to troubleshoot issues.

You can synchronize code (both Java code and JSP code) in the IntelliJ environment with the code in the AEM JCR. For example, assume that you have code in IntelliJ that represents a JSP component. You can synchronize the code in the IntelliJ IDE with code in the AEM JCR using Vault. That is, you can check in code you write in IntelliJ into the AEM JCR. Likewise, if you make a change in AEM using CRXDE lite, you can checkout the code that results in the code in IntelliJ being updated. To synchronize code, you configure the vault tool (this is shown later in this development article).

The following illustration shows an AEM application within the IntelliJ IDE.


This article walks you through how to build an AEM application using IntelliJ and synchronize the code with the code in the AEM JCR. In addition, it discusses how to setup AEM for remote debugging. To read this development article, click  http://helpx.adobe.com/experience-manager/using/creating-aem-project-using-intellij.html.
.

Adobe Digital Marketing Community

Join the Adobe Digital Marketing Community. Start by clicking this banner

About the Author

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 16 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 CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked Inhttp://www.linkedin.com/in/scottmacdonald2010
TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.

Friday, 12 December 2014

Winners of the AEM 2014 Community Code Contest

During the month of November 2014, the AEM community team held a code contest where AEM Developers submitted functioning AEM code. For more information about the contest see:
AEM Code/Developer Community Contest.

The AEM community team is excited to present you with the three winning submissions:

AEM Dashboard application

AEM platform users spend time clicking links and moving between tools, pages and environments. The AEM Dashboard application reduces this time to a minimum by letting users search from a common dashboard. Using this tool, an AEM user can use AEM platform tools, search pages in the Site Admin, and access JCR nodes quickly. 


Congratulations to Krystian Panek for this winning submission. 

AEM timeline video component

When an AEM video is playing, Digital Marketers may need to showcase content at specific point(s) during the video. For example, a marketing team would like to highlight a feature of a product along with their product video. The AEM Timeline video component solves this business use case by letting an AEM author set  the timeline point(s) of a video and specify the content to display.


Congratulations to Lokesh Bs for this winning submission.

AEM dynamic grid component

The AEM dynamic grid component lets AEM authors plot content into a grid. Then visitors to the web site can dynamically move around the content as they see fit. Users can  build draggable layouts from elements spanning multiple columns. You can even dynamically add and remove elements from the grid.



Congratulations to Jaison Sunny  for this winning submission.

Each of these winners will win the prize specified in the contest rules. Look for AEM community articles in 2015 that relate to these submissions. 


Adobe Digital Marketing Community

Join the Adobe Digital Marketing Community. Start by clicking this banner

About the Author

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 16 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 CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked Inhttp://www.linkedin.com/in/scottmacdonald2010
TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.


Thursday, 4 December 2014

Querying Adobe Experience Manager 6 data using the Sling getServiceResourceResolver method

You can create an Adobe Experience Manager (AEM) 6 application that queries data located in the AEM Java Content Repository (JCR). To query data, you use a javax.jcr.query.Query instance that belongs to the JCR Query API. This API supports both searching and querying operations. For example, assume that your AEM application tracks your organization’s customers. You can query the JCR to obtain a customer result set in which a digital marketer is interested.

As of AEM 6, you get a session instance (required to work with the JCR API) by using a Sling method named getServiceResourceResolver(). This new method replaces the use of the following API code:

 ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null);
  session = resourceResolver.adaptTo(Session.class);

 The following code shows use of the more secure getServiceResourceResolver API call.

Map<String, Object> param = new HashMap<String, Object>();
param.put(ResourceResolverFactory.SUBSERVICE, "datawrite");
ResourceResolver resolver = null;

try {
           
    //Invoke the adaptTo method to create a Session used to create a QueryManager
resolver = resolverFactory.getServiceResourceResolver(param);
    session = resolver.adaptTo(Session.class);

This code uses a specific AEM account with JCR read and write privileges to access the AEM 6 JCR.

Note: As of AEM 6, the getAdministrativeResourceResolver method is deprecated.

This article creates the following AEM Query application.



Adobe Digital Marketing Community

Join the Adobe Digital Marketing Community. Start by clicking this banner

About the Author

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 16 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 CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked Inhttp://www.linkedin.com/in/scottmacdonald2010
TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.



Wednesday, 26 November 2014

Creating an Adobe Experience Manager Touch UI Tree component

You can create an Adobe Experience Manager (AEM) component that displays data within a tree structure. For example, the component can read the AEM JCR, query data, and then display the results in a tree structure. The following illustration shows an AEM component displaying data.


To read this development article, see  http://helpx.adobe.com/experience-manager/using/creating-touchui-tree.html.

Adobe Digital Marketing Community

Join the Adobe Digital Marketing Community. Start by clicking this banner

About the Author

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 16 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 CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked Inhttp://www.linkedin.com/in/scottmacdonald2010
TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.

Tuesday, 11 November 2014

Creating Enterprise Mobile Applications for Adobe Experience Manager 6

You can develop an Enterprise PhoneGap mobile application for Adobe Experience Manager (AEM) 6. By creating a mobile AEM application, you can create content-rich cross-platform mobile applications that interact with device features:


  • Use the AEM authoring environment to create and manage rich content for your applications.
  • Use the PhoneGap (Cordova) APIs to create components with device-native capabilities, exposed through the PhoneGap javascript bridge.
  • Build and manage mobile content into pre-existing native applications through Cordova WebViews integration with Adobe Experience Manager.

The following illustration shows the mobile AEM application created in this development article.


To read this community developer article, click http://helpx.adobe.com/experience-manager/using/creating-mobile-aem.html

Ask the AEM Community Experts

On Tues Nov 25, join the AEM community team for a session on how to build AEM Mobile applications. Adobe's Bruce Lefebvre and Scott Macdonald will conduct the session. If you are interested in mobile development with AEM 6, then do not miss this session. 

(A link to this recording will be available soon.)


Adobe Digital Marketing Community

Join the Adobe Digital Marketing Community. Start by clicking this banner

About the Author

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 16 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 CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked Inhttp://www.linkedin.com/in/scottmacdonald2010
TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeMktgCare.