experience manager 6 developer features - highlights

19
e New Developer Adobe Experience Manager 6

Upload: cedric-huesler

Post on 22-Apr-2015

809 views

Category:

Technology


10 download

DESCRIPTION

Circuit Chicago Presentation - a highlight of developer centric features for Adobe Experience Manager 6. Presented by Emily Stange and Cedric Huesler

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?