Friday, 18 December 2015

Winners of the 2015 AEM Community Code Contest

During the month of November 2015, the AEM community team held a code contest where AEM Developers submitted functioning AEM code. All of these submissions will be discussed in upcoming 2016 AEM Community articles.

The AEM community team presents you with the three winning submissions:

AEM Quiz Component

The AEM Quiz component lets AEM authors configure a quiz by setting questions and answers. Question and Answer and other details of the quiz is authored using the Quiz Configuration component.  The Quiz component refers to the par/quiz_config node of a page. The result is a component that you can use in an AEM site that lets visitors fill out a quiz.



Congratulations to Praveen Dubey for submitting this first place submission. One of the reasons why this was selected as first place is it has addressed many questions in the AEM Forums on how to write a quiz component.

Vanity URL Manager

The vanity URL manager is a way for AEM users to manage vanity URLs. This tool is a new view in the Touch UI. Using this tool, you can filter by site and peform other operations such as deleting them. 




Congratulations to Lokesh BS for submitting this code.


Custom Carousel Component

The  custom carousel component uses panels and grids where author can see what image they are selecting and which image or items need to update. This submission is a great example of how you can customize out of the box AEM functionality to meet your business requirements. 


Congratulations to Ganesh Malaiyappan for submitting this entry. 


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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel



 

Monday, 14 December 2015

Example JCR SQL Queries


Search for JCR retPlugin nodes in JCR

The following code example shows JCR SQL2 syntax to search for all rtePlugin nodes under /apps.

import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Node;
import javax.jcr.query.Query;

import org.apache.jackrabbit.commons.JcrUtils;

public class TestJCR {


    public static void main(String [] args)
    {


        try {

            String aemUrl = "http://localhost:4502/crx/server" ;
            //Create a connection to the CQ repository running on local host
            Repository repository = JcrUtils.getRepository(aemUrl);



            //Create a Session
            javax.jcr.Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()));

            //Obtain the query manager for the session ...
            javax.jcr.query.QueryManager queryManager = session.getWorkspace().getQueryManager();

            //Specify the AEM JCR path where examples users are stored at /home/users/test

            String sqlStatement = "select * from [nt:unstructured] as p where isdescendantnode (p, [/apps]) AND NAME(p)='rtePlugins'";


            javax.jcr.query.Query query = queryManager.createQuery(sqlStatement,"JCR-SQL2");

            //Execute the query and get the results ...
            javax.jcr.query.QueryResult result = query.execute();

            //Iterate over the nodes in the results ...
            javax.jcr.NodeIterator nodeIter = result.getNodes();

            long mySize = nodeIter.getSize();

            while ( nodeIter.hasNext() ) {

                //For each node-- get the path of the node
                javax.jcr.Node node = nodeIter.nextNode();

                String myPath = node.getPath();

                System.out.println(myPath);
            }

            // Save the session changes and log out
            session.save();
            session.logout();


        }
        catch(Exception e){
            e.printStackTrace();
        }

    }



}

Using Date Values in JCR SQL2 Queries

While developing AEM tools for my team, I am using some date-based queries while performing JCR-SQL2 queries. While this will not be a community article, I will still post the date-based queries so people new to JCR SQL2 can reference this. Futhermore - the dates are variables used in the query string.

This example is based on this stackoverflow thread: http://stackoverflow.com/questions/15117075/jcr-sql2-query-comparing-dates.

The important thing to consider and is shown below is:

The best way to use dates in a query is to use CAST to force the conversion of a string representation of a date/time into a DATE value used by JCR.

 String sqlStatement2 = "select * from [rep:User] where isdescendantnode('/home/users/mypath') and [jcr:created] > cast('"+ year +"-"+monthStr+"-"+dayStr+"T00:00:00.000+02:00' as date) and [jcr:created] < cast('"+ year2 +"-"+monthStr2+"-"+dayStr2+"T23:59:59.000+02:00' as date)";

  javax.jcr.query.Query query = queryManager.createQuery(sqlStatement2,"JCR-SQL2");

  //Execute the query and get the results ...
   javax.jcr.query.QueryResult result = query.execute();

   //Iterate over the nodes in the results ...
   javax.jcr.NodeIterator nodeIter = result.getNodes();
   while ( nodeIter.hasNext() ) {


                //For each node-- get the path of the node
                javax.jcr.Node node = nodeIter.nextNode();

                String myPath = node.getPath();
                //do something with path value.... 


}

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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Saturday, 5 December 2015

Congratulations to Lokesh for 2015 AEM Community member of the Year

Congratulations to Lokesh BS - he was the AEM 2015 community member of the year. He has helped many community members throughout this year by submitting many AEM code packages, helping in the forums (currently 3rd place on leaderboard), doing ASK the Experts.

In recognition of his great community work - I will be travelling to New York this week to award Lo Ki with a brand new IPAD, an AEM 2015 Community member plaque, and a dinner at a New York Restaurant on Adobe.




I also want to say congratulations ot Praveen Dubey - who was 2nd  AEM community member of the year and started helping the AEM Community in May 2015 and has been very strong since.
Its awesome members like Praveen and Lokesh that help AEM developers become successful in their AEM projects. Great Job to both of you!!


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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Tuesday, 1 December 2015

AEM Community Code Contest is now closed

Thanks AEM community for your great response to the code contest. We will be reviewing all entries and announce the winners by Dec 18, 2015. The three winning submissions will also be converted into community articles so our AEM community can benefit from these entries and learn new AEM skills.

These community articles will be posted in the first couple of months in 2016.



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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Tuesday, 24 November 2015

Getting Started with Adobe Experience Manager 6.1 Apps

You can create a mobile application using a mobile JavaScript framework, such  as the ionic framework, and then import the mobile application into Adobe Experience Manager (AEM) 6.1. For information, see Ionic Framework.

Import the mobile application by dragging and dropping the mobile app from your file system into AEM, as shown in the following illustration.




Once imported into AEM, the mobile application becomes an AEM application and can use AEM functionality, such as the AEM DAM and AEM authoring capabilities. This development article walks you through how to build a basic Ionic mobile application, import it into AEM, and then configure it so it becomes an AEM application that can be authored, like other AEM content.

To read this development article, click   https://helpx.adobe.com/experience-manager/using/aem61_apps.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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Tuesday, 17 November 2015

Creating an AEM HTL Component that uses the QueryBuilder API

You can create an Adobe Experience Manager (AEM)  HTL (formally Sightly)  component that can be used within the AEM Touch UI view. Furthermore, you can use HTL and the QueryBuilder API to develop the AEM component that displays AEM JCR data.

HTL  is an AEM  template language that can be used to replace the use of JSP when developing an AEM component. HTL helps you to separate your design from your application logic.  In this use case, the HTL logic is located within an HTML file and displays the result set. The Java part of the HTL component uses the QueryBuilder API.




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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Thursday, 5 November 2015

Creating an AEM System User for AEM 6.1

In AEM 6.1, you must create an AEM System User to successfully get a session using code such as:

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);

Note - see this article:

Querying Adobe Experience Manager 6 data using the Sling getServiceResourceResolver method

This code will not work in AEM 6.1 using a standard user, 

Note: All AEM 6.x HelpX  Articles will be updated soon to use a System user to obtain a Session object from within an OSGi bundle.

To create a system user, perform these tasks:


  1. Open http://localhost:4502/crx/explorer/index.jsp
  2. Login as admin
  3. Click User Administration
  4. Click Create System User
  5. Set the UserId
  6. Click Save

Once created, you can extend permissions like a normal user using the AEM ACL functionality. 

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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel



Monday, 2 November 2015

Using the Java Query Object Model within Adobe Experience Manager

You can create an AEM application that searches the CQ repository for JCR data and displays results to the end user. For example, you can search CQ pages under a specific repository node (for example, nodes under /content) and look for a specific search term. All content that satisfy the search criteria are included in the search results. To search the Adobe CQ repository, you use the JCR Query Object Model (JQOM) API. For information about the API, see Interface QueryObjectModel.

JQOM is an AEM query language that is like ‘prepared statements’ and SQL2 is like ‘statements’ in JDBC queries.  For example, a use case may require to retrieve all JCR nodes from ‘Geometrixx’ which has the property pageTitle.

QueryObjectModelFactory qf = currentNode.getSession().getWorkspace().getQueryManager().getQOMFactory();
Selector selector = qf.selector("cq:PageContent", "s"); 
Constraint constriant = qf.descendantNode("s", "/content/geometrixx");
constriant = qf.and(constriant, qf.propertyExistence("s", "pageTitle"));
QueryObjectModel qm = qf.createQuery(selector, constriant, null, null);

QueryObjectModelFactory gets the instance of the JCR Object Model.  The Selector is used to set the type of node that the query needs to look at. Constraint is used to add all the constraints which is like where condition into the query model. Finally a query is created with the selector and constraint that captures the response as a QueryObjectModel.




To read this development article, click https://helpx.adobe.com/experience-manager/using/jqom.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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Thursday, 29 October 2015

Reading AEM OSGi Configuration Values

You can define OSGi configuration values by using CRXDE lite and dynamically read these values from within an OSGi service. By defining configuration values, you can define values used by an OSGi service and use these values while the service is running. Unlike hard-coding values in an AEM OSGi service, defining values in CRXDE lite lets you modify configuration values without re-compiling and re-deploying the OSGi bundle.



As shown in the previous illustration, you can define OSGi configuration values in CRXDE lite. To define configuration values, you define a node of type sling:OsgiConfig. Then you define properties which are the configuration values.




This development article guides you through creating an OSGi bundle that reads OSGi configuration values that are defined in CRXDE Lite. To read this development article, click:

https://helpx.adobe.com/experience-manager/using/osgi_config.html.



Adobe Digital Marketing Community

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



I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with over 18 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.

Thursday, 8 October 2015

AEM 2015 Communtiy Code Contest



During the month of November 2015, the AEM community team is running a special contest open to AEM developers. Have you written an AEM application, a custom eCommerce component, an AEM social component, a custom Touch UI component, an OSGi bundle, or any other type of AEM content that you want to share with the AEM community and compete in the contest? If so, consider entering the AEM code community contest.

To enter the contest, fill out this online form:

http://bit.ly/1LkcF9s

Be creative and show us and the AEM community how you use AEM. We are looking forward to seeing your submissions.

Official Rules


Participation constitutes entrant’s full and unconditional agreement to and acceptance of these Official Rules. The ADOBE EXPERIENCE MANAGER CODE COMMUNITY CONTEST
starts at 12 a.m. PST on NOV 1, 2015 and ends at 11:59 p.m. PST on NOV 30, 2015.

(1) Eligibility:  The AEM Community Code Contest (now referred to as the Contest) is open to AEM community members from the United States, India, Canada, Australia, and European Union countries whom are at least eighteen (18) years of age (or the age of majority in his/her jurisdiction).

(2) How To Enter; Entry Limits:
To enter the contest, fill in the online form (link above). You can then submit the final AEM code by Nov 30, 2015. To submit AEM code, package up your AEM application in a package and email the package to scottm@adobe.com. In the email, describe your application and how it works. To be considered a wining submission, the code must be functional and work within AEM 5.6, 5.6.1, or 6.x. Code that works with previous AEM versions is not considered valid for the purposes of this Contest. This Contest is not open to Adobe employees.

Limit on Entries:  You may only submit one submission. Multiple submissions are not allowed.

(3) Prize:  Three (3) total prize will be awarded in this Contest as follows:
Prize:  Winners will each receive:

  • 1st place - $150  USD Amazon Gift Card 
  • 2nd place - $100 USD Amazon Gift Card
  • 3rd place - $50 USD Amazon Gift Card

Odds of winning a prize in this contest will depend on the total number of eligible entries received.
All prize entries, including functioning AEM code is at the community members’ sole discretion. All prizes are awarded “as is” with no warranty or guarantee, either express or implied. The prizes are delivered via email. Winners are responsible for all applicable federal, state, territorial, provincial, municipal and local taxes, any costs associated with currency exchange, or any other costs and expenses associated with prize receipt, acceptance and/or use not specified herein as being provided.

(4) Selection of Winner:
Early December 2015, three (3) potential winners will be selected by a committee of Adobe AEM employees. Potential winners will be notified by a direct message from Adobe through his/her email account.

  (5)  Entrants’ and Winners’ Agreement to these Official Rules and the Decisions of Sponsor: Participation in the Contest and/or receipt of any prize constitute each Entrant’s and winner’s full and unconditional agreement to and acceptance of these Official Rules, Sponsor’s online Terms of Use and Privacy Policy (available by region and incorporated herein by reference), and Sponsor’s decisions, which are final and binding in all matters related to the Contest. Sponsor will not enter into any correspondence. Winning a prize is contingent upon Entrant(s) fulfilling all applicable requirements as set forth herein.

 (6)  General Conditions; Sponsor’s Right to Cancel, Terminate or Modify the Contest, Disqualify Entrants or Eliminate or Void Entries: Proof of submission of an Entry is not proof of delivery or receipt of such Entry by Sponsor. Entries generated by script, macro or other automated means, or otherwise intended to subvert or circumvent the entry process or any stated entry limits are void. Use of a false email account will disqualify an Entry. In the event of a dispute as to any Entry, or the identity of a Participant, the Entry at issue will be declared to be made by the authorized account holder and natural person assigned by an Internet access provider to the email addressed associated with the Entry and he/she must comply with these Official Rules. Participants may be required to show proof of being the authorized account holder. Sponsor has the right, in its sole discretion, to reject or void any Entry, and/or to disqualify any Entrant who (whether in fact or by attempt) subverts, circumvents, or tampers with the entry process or the lawful operation of the Contest, or who it finds to be acting in an unsportsmanlike or disruptive manner or in a manner otherwise in violation of these Official Rules.

 (7)  Release of Claims; Limitations of Liability; Warranty and Indemnity: Adobe does not guarantee that only by submitting code you will win the Contest. Adobe is not in any way responsible or liable for: (i) any loss (including loss of opportunity), injury, damage (including, but not limited to, direct, indirect or consequential loss), cost, expense, or claim arising from or in relation to the Contest, participation in the Contest or any Contest -related activity, or (ii) the authorized or unauthorized or fraudulent actions of Participants or other third parties, or (iii) events requiring a cancellation or postponement of the Contest, or (iv) for Entries that are lost, late, intercepted, incomplete, incorrect, delayed, illegible, garbled, damaged, misdirected or not otherwise received by Sponsor, or (v) for difficulties or impediments of any kind, whether human, electrical or technical in nature, relating to or in connection with the Contest, its administration, the processing of Entries or the announcement of prizes or winners.
Participants assume sole liability and accept all risk of loss for injuries, including personal injuries and/or damage to property, caused or claimed to be caused by participating in the Contest, or the acceptance, shipping and handling, receipt, possession, loss, use or misuse of any prize. By participating in the Contest, each Participant agrees to the maximum extent allowable under applicable law, to indemnify and keep indemnified, to defend, release and hold the Released Parties at all times harmless from and against any liability, personal injury, death, damages, losses, claims, demands, causes of action, suits or proceedings, costs and expenses (including reasonable attorney’s fees) arising from, accruing out of, or in any way connected with his/her participation in the Contest, or for the shipping and handling, receipt, possession, loss, use or misuse of any prize awarded.

(8)  Governing Law; Venue; Disputes: All issues and questions concerning the construction, validity, interpretation, and enforceability of these Official Rules, or the rights and obligations of Sponsor and Participants hereunder, shall be governed by, and construed in accordance with, the laws of the state of California, United States of America, without giving effect to any choice of law or conflict of law rules or provisions (whether of the State of California or any other jurisdiction) that would cause the application of laws of any jurisdiction other than the State of California, and all claims must be resolved in the appropriate State Court located in Santa Clara County, California.

(9)  Personal Data: AEM code and other IP data collected from Participants may be used in public-facing Adobe AEM content including: Adobe AEM developer articles, Knowledge base articles, or videos. The community whom contributed the code featured in the article will have their name appear in the article.
By entering, each Participant consents to the collection, use and disclosure of his/her personal information as described herein. Nothing in these Official Rules shall be deemed to restrict or exclude any Participant’s statutory consumer rights pertaining to personal data. Except as otherwise stated in these Official Rules or on the Site, personal information collected by Sponsor from Participants online is subject to Sponsor’s online Privacy Policy at http://www.adobe.com/privacy/policy.html.

 (10) Winners’ List:  Following conclusion of the Contest, and after three winners have been determined and verified, a winners’ list will be available at http://help-forums.adobe.com/content/adobeforums/en/community/top-contributors.html.


© Adobe Systems Incorporated. All Rights Reserved. All trademarks are the property of their respective owners.

Wednesday, 7 October 2015

Creating an AEM HTL component that uses Sling Models to parse a web page

You can create an Adobe Experience Manager (AEM) custom component by using AEM HTML Language Template (HTL - formally Sightly) and Sling Models that is able to parse a Document Object Model (DOM) and write the results out to an AEM web page. For example, assume you have a requirement to parse a web page and write out the images in an AEM web page. Using a custom DOM parser component, you can implement this requirement.

This AEM development article walks you though how to use HTL and Sling Models to create a custom AEM component that is able to parse a DOM.


The previous illustration shows the results produced by the custom AEM DOM parser component that parses images from the AEM community page located here:


To read the AEM 6.1 development article that uses AEM HTL and Sling Models, click  https://helpx.adobe.com/experience-manager/using/domparser.html.


To watch the video and see this component in action - 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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Monday, 5 October 2015

Setting up two factor authentication for Adobe Experience Manager

You can create an OSGi bundle for Adobe Experience Manager (AEM) that is responsible for supporting two factor authentication. 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 the user logs into AEM, they enter their user name, password, and OTP value. 


To read this development article, click   https://helpx.adobe.com/experience-manager/using/twofactor.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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Thursday, 1 October 2015

Fall 2015 Sessions of Adobe Experience Manager Ask the Community Experts

The remaining 2015 sessions of Ask the AEM Community Experts are:

Nov 2015

Join the AEM Applications Eng team for a discussion about AEM Apps. By joining this session, you will gain a better understanding of using AEM and applications. You will get a chance to ask the Eng team questions related to this subject.

This session is at 11 AM EST Nov 24, 2015.


To view this session, see https://communities.adobeconnect.com/p3lesjf5nzq/?launcher=false&fcsContent=true&pbMode=normal.

Oct 2015

Join Scot Macdonald and Russell Whitchurch (SR Community Manager for Adobe Analytics) for a discussion about how to integrate Adobe Experience Manager and other Digital Marketing products.  Included in this discussion is an emphasis on AEM and Analytics.  By joining this session, you will gain a better understanding of how to take advantage of AEM and the other Adobe Digital Marketing products.

To view this session, see https://communities.adobeconnect.com/p2xb1k2411b/?launcher=false&fcsContent=true&pbMode=normal.




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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel



Monday, 28 September 2015

Customizing the Adobe Experience Manager Sidekick to improve the activate process

You can customize the AEM sidekick to add functionality tio meet your business requirements. For example, typically, once you activate an AEM page in author, in order to view it in publish, you typically copy its URL, paste it in new tab and change the host-name and port name to see the results. To simplify this use case, you can add a custom button to the AEM sidekick that performs these actions with 1 click.

The new sidekick button automatically give you the link to the page in publish instance once you activate it. That is, with a single click, you can see your current page in publish instance.




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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel

Friday, 18 September 2015

Creating an external OAK Login Module for Adobe Experience Manager

You can create a custom OAK Login Module for Adobe Experience Manager (AEM) that is called when a user logs into AEM from a 3rd party authentication system such as LDAP. To create a custom OAK Login Module, you use the javax.security.auth.spi.LoginModule interface. One use case for writing a custom OAK login module is to add custom application logic to a callback. That is, when a user logs in from LDAP, a callback is invoked.




 A custom OAK login module is implemented as an OSGi bundle. To read this development article, click  https://helpx.adobe.com/experience-manager/using/oak-login.html.


Note; For information about using LDAP with AEM 6.x, see Configuring Adobe Experience Manager 6 to use Apache Directory Service.

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.


TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel