Monday, 31 March 2014

Creating Java Swing applications that post files to AEM ClientLibs folders

You can create a custom Java Swing client application that lets a user select a file from the local desktop and post the file to an AEM ClientLibs folder. In most AEM applications, you create a ClientLibs folder to store required application files such as CSS file and JS files. In some cases, you can place third-party files like JQuery JS files when you want to incorporate functionality offered by these files into your AEM application.

The following illustration shows CSS and JS files located in an AEM client libs folder.



For more information about a ClientLibs folder, see Using Client-Side Libraries.

Note: There are other ways to get files into a ClientLibs folder. For example, you can use the CRXDE tool to drag and drop files from the local desktop to a ClientLibs folder. However, there are drawbacks to using CRXDE to drag and drop files from the desktop to an AEM client libs folder.

To develop a Java Swing application that posts files to an AEM client libs folder, you use Java APIs located in the org.apache.http package. The APIs located in this package lets you post files to a custom AEM Sling Servlet. The Sling Servlet saves the file in the specified ClientLibs folder using the JCR API.



The following illustration shows the Java client application that is created in this development article.


A Java client application that posts files to an AEM ClientLibs folder

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

To watch the video, click:



Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel. 


Friday, 21 March 2014

Storing LiveCycle ES process data in a remote Adobe Experience Manager JCR

As a user of both Adobe LiveCycle ES and Adobe Experience Manager, you can create business applications that make use of both platforms. That is, you can create an enterprise solution that uses functionality provided by Adobe CQ and LiveCycle ES. By combining the functionality of both server products, you can create applications to solve your business requirements.

For example, assume that you have a LiveCycle business process that uses PDF documents. Next assume that the process extracts data from the PDF document and you want to store the data in a JCR that belongs to a remote AEM server.

Process data is sent from a LiveCycle ES process to the AEM JCR
As shown in the previous illustration, you can create a custom LiveCycle ES Document Service Component (DSC) that is able to post process data to a custom AEM Sling Servlet. The custom Sling Servlet persists the process data in the AEM JCR by using the JCR API. The following illustration shows a LiveCycle ES process that sets process variables and then uses the custom DSC to persist the data into the AEM JCR.





To read this development article, see http://helpx.adobe.com/experience-manager/using/custom-sling-servlets11.html.

Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel. 


Monday, 17 March 2014

Meet the Digital Marketing Community team at Digital Marketing Summit 2014

The Digital Marketing summit is a week away. If you are attending, please stop by the community booth and meet the Digital Marketing community team. This will give you a chance to meet us in person. We have lots of interesting stuff to give away and look forward to meeting you as well as hearing about your thoughts.



Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel. 


Creating your first Adobe Experience Manager custom xtype

You can create an Adobe Experience Manager widget that is based on a custom xtype. A custom xtype can contain other AEM controls such as combo boxes, text boxes, and so on. Also, the xtype is used within a component's dialog within a panel. An AEM author enters values into the custom xtype that are used by the AEM component. You can develop the custom AEM component to use these values to meet your business requirements. In this article, the values are retrieved using application logic within the component's JSP file and written to a CQ page.

You can place AEM controls within a custom xtype and then use JavaScript to control the behaviour of each control. That is, you can define custom functionality that is not available with the standard component. For example, you can define custom JavaScript application logic within an event handler and dynamically update other fields. For information, see Dynamically updating AEM custom xtype fields.

Creating custom xtypes is a method of extending AEM standard components. To create a custom xtype, you use the AEM widget API. For information, see CQ5 Widgets API Documentation.

The following illustration shows the custom xtype that is created in this development article.

An AEM custom xtype
This development article walks you through how to build this custom xtype. To read this development article, click  http://helpx.adobe.com/experience-manager/using/creating-custom-xtype.html.

Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel. 


Monday, 3 March 2014

Invoking Sling Servlets from AEM xtype widgets

You can create an Adobe Experience Manager (AEM) custom component that contains a TreePanel xtype object that displays tree-structured data, such as a data result set that contains JCR data. The TreePanel is an instance of CQ.Ext.tree.TreePanel. For information, see CQ.Ext.tree.TreePanel.

You can invoke a Sling Servlet to populate the TreePanel object. That is, the TreePanel object displays the data that is retrieved from the AEM JCR by using a Sling Servlet. The data that is displayed within the TreePanel can be expanded or collapsed by clicking on it.

The TreePanel lets an AEM author view the data that is returned by the Servlet, as shown in the following illustration.

An AEM TreePanel component displaying a data result set based on the AEM JCR
To read this development article, click http://helpx.adobe.com/experience-manager/using/creating-custom-cq-tree.html.

Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel. 


Tuesday, 25 February 2014

Creating a custom CQ component that uses an editable dialog grid

You can create an Adobe Experience Manager (AEM) custom component that contains an editable grid control that displays data. The data within the grid can be edited by clicking on a cell. The data grid is an instance of CQ.Ext.grid.EditorGridPanel. For information, see CQ.Ext.grid.EditorGridPanel.

The grid lets an AEM author open the component's dialog, view data and edit a cell's content, as shown in the following illustration.

A CQ.Ext.grid.EditorGridPanel that contains editable cells

This article walks you through how to build a custom AEM component that contains a grid with editable cells. To read this development article, click  http://helpx.adobe.com/experience-manager/using/creating-custom-cq-grid.html.

Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel. 


Monday, 24 February 2014

Creating Adobe CQ bundles using Apache CXF that consume web services

You can create an Adobe CQ bundle that consumes data from a third-party web service and displays the data in a web page. For example, assume that you use Adobe CQ to create a web site for a government department that tracks weather information. In this situation, you can create a CQ bundle that retrieves data from a third-party web service and displays the data within a form located in a web page.

The following illustration shows data being retrieved from a third-party web service and displayed in a JSP.

You can develop an OSGi bundle that contains Java proxy classes that were created by using Apache CFX. That is, you can use a tool such as Apache CXF WSDL to Java to generate the Java proxy classes that are based on the WSDL of an external web service. For information about Apache CXF, see WSDL to Java.

To read this article, click  http://helpx.adobe.com/experience-manager/using/creating-cxf-bundles-consume-web.html.

Note: You can use JAX-WS instead of Apache CXF to generate Java proxy files. For information, see Creating Adobe CQ bundles that consume web services.

Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner




I (Scott Macdonald) am a Senior Digital Marketing 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 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.


Twitter: Follow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel.