Top Banner
e New Developer Adobe Experience Manager 6
19

Experience Manager 6 Developer Features - Highlights

Apr 22, 2015

Download

Technology

Cédric Hüsler

Circuit Chicago Presentation - a highlight of developer centric features for Adobe Experience Manager 6. Presented by Emily Stange and Cedric Huesler
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Experience Manager 6 Developer Features - Highlights

The New Developer Adobe Experience Manager 6

Page 2: Experience Manager 6 Developer Features - Highlights

<div itemscope itemtype="http://schema.org/Person"> <span itemprop="name">Emily Stange</span> <span itemprop="jobTitle"> Senior Solution Consultant </span> for <span itemprop="affiliation">Adobe</span> </div>

<div itemscope itemtype="http://schema.org/Person"> <span itemprop="name">Cedric Huesler</span> <span itemprop="jobTitle"> Group Product Manager Web Experience Management </span> for <span itemprop="affiliation">Adobe</span> </div>

Page 3: Experience Manager 6 Developer Features - Highlights

6._

Page 4: Experience Manager 6 Developer Features - Highlights

TL:DR

1 2 3Code save components quicker with Sightly

New JCR repository that can handle more content faster

Lots of new features/APIs and a fresh Touch-optimized UI

Page 5: Experience Manager 6 Developer Features - Highlights

New code workflow

1

Page 6: Experience Manager 6 Developer Features - Highlights

Adobe Experience Manager

FilesystemGIT et al FilesystemRuntime &

Repository

IDEPreview

in Browser

commit

hot-deploysave

save

Page 7: Experience Manager 6 Developer Features - Highlights

Less code… and keep it neat!

2

Page 8: Experience Manager 6 Developer Features - Highlights

Adobe Experience Manager

Component Modelcq:Component

Dialog

Code

ClientLibs

Analytics

Design Dialog

Edit Config

cq:Dialog (ExtJS)

JSP ECMA

Dialog: cq/gui/components/authoring/dialog

HTML (Sightly)+JS HTML (Sightly)+Java

cq:Dialog (ExtJS)

cq:EditConfig

cq:ClientLibraryFolder

‘analytics’ node

Page 9: Experience Manager 6 Developer Features - Highlights

Adobe Experience Manager

Code<%@include file="/apps/geometrixx-media/global.jsp"%><% %><%@ page session="false" import="java.util.Iterator, com.day.cq.wcm.api.PageFilter" %><%

long absParent = currentStyle.get("absParent", 2L); Page rootPage = currentPage.getAbsoluteParent((int) absParent);

Iterator<Page> childPages = null; if (rootPage != null) { childPages = rootPage.listChildren(new PageFilter(request)); } %>

<div class="visible-phone btn-container"> <a class="btn btn-inverse authenticate"><i class="icon-cog icon-white"></i></a> <a class="btn btn-inverse menu-dropdown">Menu <i class="icon-chevron-down icon-white"></i></a> </div>

<nav> <ul> <% if (childPages != null) { while (childPages.hasNext()) { String cssStyle = ""; Page childPage = childPages.next(); if (isCurrentPage(currentPage, childPage)) { cssStyle = "class='current-page'"; } String title = getTitle(xssAPI, childPage); %><li <%=cssStyle%>><a href="<%= childPage.getPath() %>.html"><%= title %></a></li> <% } } %> </ul> <cq:include path="search" resourceType="geometrixx-media/components/page/search"/> </nav>

<%! boolean isCurrentPage(Page currentPage, Page page) { return currentPage.equals(page); }

String getTitle(XSSAPI xssAPI, Page page) { String navTitle = page.getNavigationTitle();

if(navTitle == null) { navTitle = page.getTitle(); } if(navTitle == null) { navTitle = page.getName(); }

return xssAPI.encodeForHTML(navTitle); } %>

<div class="visible-phone btn-container"> <a class="btn btn-inverse authenticate"><i class="icon-cog icon-white"></i></a> <a class="btn btn-inverse menu-dropdown">${'Menu' @ i18n} <i class="icon-chevron-down icon-white"></i></a> </div>

<nav data-sly-use-topNav="TopNav"> <ul data-sly-list-navItem="${topNav.items}"> <li class="current-${navItem.isCurrent}"><a href="${navItem.page.path}.html">${navItem.title}</a></li> </ul> <div data-sly-resource="${options: path='search', resourceType='geometrixx-media/components/page/search'}"/> </nav>

package apps.geometrixx_media.components.topnav;

import com.adobe.cq.sightly.WcmUse; import com.day.cq.wcm.api.Page; import com.day.cq.wcm.api.PageFilter; import java.util.*;

public class TopNav extends WcmUse { private List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();

private String getTitle(Page page) { String navTitle = page.getNavigationTitle();

if (navTitle == null) { navTitle = page.getTitle();

if (navTitle == null) { navTitle = page.getName(); } }

return navTitle; }

public void activate() throws Exception { Page currentPage = getCurrentPage();

int absParent = getCurrentStyle().get("absParent", 2); Page rootPage = currentPage.getAbsoluteParent(absParent);

if (rootPage != null) { Iterator<Page> childPages = rootPage.listChildren(new PageFilter(getRequest())); while (childPages.hasNext()) { Map<String, Object> navItem = new HashMap<String, Object>(); Page childPage = childPages.next(); navItem.put("page", childPage); navItem.put("title", getTitle(childPage)); navItem.put("isCurrent", new Boolean(currentPage.equals(childPage))); items.add(navItem); } } }

public List<Map<String, Object>> getItems() { return items; } }

Component Code (HTML+JSP) Component Code (HTML+Sightly)

Reusable Java or JavaScript Code

vs

Page 10: Experience Manager 6 Developer Features - Highlights

Automated Site Testing

3

Page 11: Experience Manager 6 Developer Features - Highlights

New repo - same API

4

Page 12: Experience Manager 6 Developer Features - Highlights

Adobe Experience Manager

Microkernel Repository (aka Oak)

Tar Set DataStore Indexes Tar Set

JCR

HTTP

5.x 6.x

Microkernel

ISMs for Session

ISMs for Workspace

Multiversion concurrency control

Our & Your Code Our & Your Code

SearchBinariesNodes

Properties Nodes, Properties, Binaries, Search

CQSE Jetty

Page 13: Experience Manager 6 Developer Features - Highlights

Update process

5

Page 14: Experience Manager 6 Developer Features - Highlights

Adobe Experience Manager

2-step Upgrade

Replace JARfile

Startup runsin-placeupgrade

runcrx2oak

Choice:

- TAR files

- MongoDB

Stop Start Stop Start

Page 15: Experience Manager 6 Developer Features - Highlights

Mobile apps with PhoneGap

6

Page 16: Experience Manager 6 Developer Features - Highlights

New APIs7

Page 17: Experience Manager 6 Developer Features - Highlights

Adobe Experience Manager

New & extended APIs• Sling Models

• Sling Health-check

• Sling Resource Merge

• Translation API

• Vault RPC

• ContextHub

• ContentInsight

• eCommerce

• Social Components

• DAM Collection & Sets

Dependencies for Maven/Gradle: http://repo.adobe.com/nexus/content/repositories/releases/com/adobe/aem/aem-api/6.0.0.1/

Page 18: Experience Manager 6 Developer Features - Highlights

TL:DR

1 2 3Code save components quicker with Sightly

New JCR repository that can handle more content faster

Lots of new features/APIs and a fresh Touch-optimized UI

Page 19: Experience Manager 6 Developer Features - Highlights

What I always wanted to know?