SlideShare a Scribd company logo
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
A virtual developer conference for Adobe Experience
Manager
Efficient Publishing with Content Fragments
Stefan Grimm | Senior Developer
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Efficient Publishing with Content Fragments
2
1 | Welcome and Overview
2 | Content Fragments - a brief introduction
3 | Use case: A news site
4 | Implementing an efficient workflow
5 | Q&A
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 3
Content Fragments
A brief introduction
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
Ecosystem
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 5
 Simple fragment template
 Generic component
 Typical AEM workflow required
 First, create the fragment
 Then, create a page, add the fragment to the page, configure it, etc.
OOTB
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6
 Some use-cases require a more efficient workflow.
 OOTB component can be too generic
 Too much flexibility
 Not enough flexibility
Some use-cases require customization
 Customizing the component
 Implement a specific workflow
Context
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7
Use-case:
A (imaginary) news site
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 8
Our goal …
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 9
 Create article.
 Enter title. Teaser. Text.
 Assign image(s).
 Classify.
 Save.
 Create page.
 Add Content Fragment.
 Reference article.
 Publish.
Efficiency!
let’s get rid of these steps!
add this new feature
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 10
Our news site
Section
Title
Teaser
Image
Text
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11
 Fragment Elements
 Title
 Teaser
 Text
 Metadata
 Section
 Associated Content
 Image (tagged)
Articles
defining the article imagedefining the article image
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12
 Article template
 Article component
 Page component
 A patched version of the CFM implementation bundle
 Required for AEM 6.2 only, will be included in upcoming releases
Prerequistes
Introduced in the ”Introducing Content Fragment” session
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hands on …
Prerequisites
13
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 14
Implementation
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
No production-ready code
in this session!
Disclaimer
15
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 16
Problems & solutions
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 17
 How to determine the article image?
 Only collections, no 1:1 assignment for associated content
 How to automate …?
 page creation
 adding Content Fragment component
 referencing & configuring the article fragment
 publishing the page
Problems ...
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18
 Article image
 Use tagging to classify the images
 main image
 part of image gallery
 …
 Component queries associated content
 uses first image tagged as “main image”.
 Automating
 workflow launcher triggers workflow
 create page if necessary
 publish fragment, page & dependency
 several other stuff
... and solutions
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 19
Finding the article
image
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 20
 Article image
 Use tagging to classify the images
 main image
 part of image gallery
 …
 Component queries associated content
 uses first image tagged as “main image”.
 Automating
 workflow launcher triggers workflow
 create page if necessary
 publish fragment, page & dependency
 several other stuff
Recap
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 21
Getting associated collections:
Iterator<Resource> collections = fragment.getAssociatedContent();
Getting all associated resources:
SlingScriptHelper ssh = getSlingScriptHelper();
ContentFragmentManager cfm = ssh.getService(ContentFragmentManager.class);
List<Resource> assets = cfm.resolveAssociatedContentFlat(fragment);
API – Accessing associated content
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hands on ...
Finding the article image
22
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 23
Workflow commons
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 24
 Article image
 Use tagging to classify the images
 main image
 part of image gallery
 …
 Component queries associated content
 uses first image tagged as “main image”.
 Automating
 workflow launcher triggers workflow
 create page if necessary
 publish fragment, page & dependency
 several other stuff
Recap
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 25
 Can be registered on low level events
 node create
 node update
 Can‘t use directly
 intermediate saves
 but workflow should only be triggered on “save”
Workflow launcher
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26
 On save
 Timestamp is persisted (only if content has been modified)
 jcr:content/lastFragmentSave (*)
 Each workflow process
 Executes only if there has been a “save” since the last publish workflow has been finished
 jcr:content/lastFragmentSave > jcr:content/lastFragmentPublish
 At the end of the publish workflow
 Updates publish timestamp
 jcr:content/lastFragmentPublish
(*) patched CFM implementation bundle required
Solution
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hands on ...
Workflow commons
com.adobe.immerse2016.cfm_ep.workflow.AbstractFragmentProcess
com.adobe.immerse2016.cfm_ep.workflow.FinishArticleProcess
27
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28
Workflow process:
Resolving associated
content
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 29
Problem:
 Article image defined via collection
 Collections should not be used on publish
Solution:
 Determine article image on save
 Persist path to image on fragment
 jcr:content/articleImage
Article image
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hands on ...
Resolving dependencies
com.adobe.immerse2016.cfm_ep.workflow.ResolveDataProcess
30
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 31
Workflow process:
Creating the article
page
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 32
 Check if a page for the article has already been created
 If not, create a page, …
 Path: /<root>/<section>/<year>/<month>/<day>/<article.name>
 ... create the article paragraph
 jcr:content/par/<article.name>
 ... reference the article fragment.
 jcr:content/par/<article.name>/fileReference
Page on demand
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hands on ...
Auto-create article page
com.adobe.immerse2016.cfm_ep.workflow.CreateOnDemandProcess
33
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 34
Workflow process:
Publishing the article
page
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 35
 Publish
 Content Fragment
 Page
 Article Image
 In a clean implementation …
 … publish references (Tags, ...)
 … replicate only if modified
Publishing
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hands on ...
Publish article process
com.adobe.immerse2016.cfm_ep.workflow.PublishArticleProcess
36
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
And … Action!
The new, effective publishing
process
37
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 38
Recap
 Article image
 Part of a collection
 Identified by tag
 Resolve collection/tag to image path for publish instance
 Publishing workflow
 Triggered by workflow launcher
 Processes check for “save” event by comparing save/publish timestamps
 Page created on demand using a fixed/hardcoded pattern
 Fragment & collaterals published programmatically
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 39
Epilogue
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 40
Not mentioned in this session …
 Dispatcher invalidation
 No easy OOTB solution for invalidating referencing pages
 Can be solved using path-based dispatcher rules
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 41
Resources
 Content Package with example code
 available from the “Resources” pod in Adobe Connect
 Documentation
 Overview/Authoring
 Editor - https://docs.adobe.com/docs/en/aem/6-2/author/assets/content-fragments.html
 Page Authoring - https://docs.adobe.com/docs/en/aem/6-2/author/page-authoring/content-
fragments.html
 Development
 Templates - https://docs.adobe.com/docs/en/aem/6-2/develop/templates/content-fragment-
templates.html
 Extending (WIP) - https://docs.adobe.com/docs/en/aem/6-2/develop/extending/content-fragments.html
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Q&A
42
Stefan Grimm
sgrimm@adobe.com
© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

More Related Content

What's hot

Adobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave Lloyd
Adobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave LloydAdobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave Lloyd
Adobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave Lloyd
Dave Lloyd
 
Adobe AEM core components
Adobe AEM core componentsAdobe AEM core components
Adobe AEM core components
Lokesh BS
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
Lo Ki
 
Evolve13 cq-commerce-framework
Evolve13 cq-commerce-frameworkEvolve13 cq-commerce-framework
Evolve13 cq-commerce-framework
Paolo Mottadelli
 
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)
Gabriel Walt
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
AdobeMarketingCloud
 
AEM & eCommerce integration
AEM & eCommerce integrationAEM & eCommerce integration
AEM & eCommerce integration
Lokesh BS
 
Ask the AEM Community Expert Feb 2016 Session: AEM + Brackets
Ask the AEM Community Expert Feb 2016 Session: AEM + BracketsAsk the AEM Community Expert Feb 2016 Session: AEM + Brackets
Ask the AEM Community Expert Feb 2016 Session: AEM + Brackets
AdobeMarketingCloud
 
Integrating with Adobe Marketing Cloud - Summit 2014
Integrating with Adobe Marketing Cloud - Summit 2014Integrating with Adobe Marketing Cloud - Summit 2014
Integrating with Adobe Marketing Cloud - Summit 2014
Paolo Mottadelli
 
AEM target Integration
AEM target IntegrationAEM target Integration
AEM target Integration
Kanika Gera
 
12 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.212 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.2
Tricode (part of Dept)
 
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel programUsing AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
Meryll Blanchet
 
Dynamic components using SPA concepts in AEM
Dynamic components using SPA concepts in AEMDynamic components using SPA concepts in AEM
Dynamic components using SPA concepts in AEM
Bojana Popovska
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
connectwebex
 
PhoneGap Enterprise Viewer - ConnectCon 2015
PhoneGap Enterprise Viewer - ConnectCon 2015PhoneGap Enterprise Viewer - ConnectCon 2015
PhoneGap Enterprise Viewer - ConnectCon 2015
Justin Edelson
 
Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5
Day Software
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013
Thomas Daly
 
TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...
TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...
TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...
Terminalfour
 
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management SolutionsSharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
InnoTech
 

What's hot (19)

Adobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave Lloyd
Adobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave LloydAdobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave Lloyd
Adobe Experience Manager (AEM) - Multilingual SIG on SEO - Dave Lloyd
 
Adobe AEM core components
Adobe AEM core componentsAdobe AEM core components
Adobe AEM core components
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
 
Evolve13 cq-commerce-framework
Evolve13 cq-commerce-frameworkEvolve13 cq-commerce-framework
Evolve13 cq-commerce-framework
 
Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)Modernizing Adobe Experience Manager (AEM)
Modernizing Adobe Experience Manager (AEM)
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
AEM & eCommerce integration
AEM & eCommerce integrationAEM & eCommerce integration
AEM & eCommerce integration
 
Ask the AEM Community Expert Feb 2016 Session: AEM + Brackets
Ask the AEM Community Expert Feb 2016 Session: AEM + BracketsAsk the AEM Community Expert Feb 2016 Session: AEM + Brackets
Ask the AEM Community Expert Feb 2016 Session: AEM + Brackets
 
Integrating with Adobe Marketing Cloud - Summit 2014
Integrating with Adobe Marketing Cloud - Summit 2014Integrating with Adobe Marketing Cloud - Summit 2014
Integrating with Adobe Marketing Cloud - Summit 2014
 
AEM target Integration
AEM target IntegrationAEM target Integration
AEM target Integration
 
12 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.212 hot features to engage and save time with aem 6.2
12 hot features to engage and save time with aem 6.2
 
Using AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel programUsing AEM in a customer global multi-channel program
Using AEM in a customer global multi-channel program
 
Dynamic components using SPA concepts in AEM
Dynamic components using SPA concepts in AEMDynamic components using SPA concepts in AEM
Dynamic components using SPA concepts in AEM
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
 
PhoneGap Enterprise Viewer - ConnectCon 2015
PhoneGap Enterprise Viewer - ConnectCon 2015PhoneGap Enterprise Viewer - ConnectCon 2015
PhoneGap Enterprise Viewer - ConnectCon 2015
 
Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5Adobe.com Redesign: Powered by Day CQ5
Adobe.com Redesign: Powered by Day CQ5
 
Developing Branding Solutions for 2013
Developing Branding Solutions for 2013Developing Branding Solutions for 2013
Developing Branding Solutions for 2013
 
TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...
TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...
TERMINALFOUR t44u 2008 - Harry McKillen - Google & Flash Integration with Sit...
 
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management SolutionsSharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
 

Viewers also liked

Ask the expert AEM Assets best practices 092016
Ask the expert  AEM Assets best practices 092016Ask the expert  AEM Assets best practices 092016
Ask the expert AEM Assets best practices 092016
AdobeMarketingCloud
 
Dependency Finder Tutorial
Dependency Finder TutorialDependency Finder Tutorial
Dependency Finder Tutorial
Jean Tessier
 
AEM GEMs Session Oak Lucene Indexes
AEM GEMs Session Oak Lucene IndexesAEM GEMs Session Oak Lucene Indexes
AEM GEMs Session Oak Lucene Indexes
AdobeMarketingCloud
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016
AdobeMarketingCloud
 
Adobe AEM Commerce with hybris
Adobe AEM Commerce with hybrisAdobe AEM Commerce with hybris
Adobe AEM Commerce with hybris
Paolo Mottadelli
 
AEM (CQ) eCommerce Framework
AEM (CQ) eCommerce FrameworkAEM (CQ) eCommerce Framework
AEM (CQ) eCommerce Framework
Paolo Mottadelli
 
AEM GEMS Session SAML authentication in AEM
AEM GEMS Session SAML authentication in AEMAEM GEMS Session SAML authentication in AEM
AEM GEMS Session SAML authentication in AEM
AdobeMarketingCloud
 

Viewers also liked (7)

Ask the expert AEM Assets best practices 092016
Ask the expert  AEM Assets best practices 092016Ask the expert  AEM Assets best practices 092016
Ask the expert AEM Assets best practices 092016
 
Dependency Finder Tutorial
Dependency Finder TutorialDependency Finder Tutorial
Dependency Finder Tutorial
 
AEM GEMs Session Oak Lucene Indexes
AEM GEMs Session Oak Lucene IndexesAEM GEMs Session Oak Lucene Indexes
AEM GEMs Session Oak Lucene Indexes
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016
 
Adobe AEM Commerce with hybris
Adobe AEM Commerce with hybrisAdobe AEM Commerce with hybris
Adobe AEM Commerce with hybris
 
AEM (CQ) eCommerce Framework
AEM (CQ) eCommerce FrameworkAEM (CQ) eCommerce Framework
AEM (CQ) eCommerce Framework
 
AEM GEMS Session SAML authentication in AEM
AEM GEMS Session SAML authentication in AEMAEM GEMS Session SAML authentication in AEM
AEM GEMS Session SAML authentication in AEM
 

Similar to Immerse 2016 Efficient publishing with content fragments

S903 palla
S903 pallaS903 palla
S903 palla
Andrew Khoury
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
mfrancis
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
ColdFusionConference
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager Sites
Gabriel Walt
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
Gabriel Walt
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
GDSCAtharvaCollegeOf
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
ColdFusionConference
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
AdobeMarketingCloud
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
connectwebex
 
Aem markdown importer github love in aem
Aem markdown importer  github love in aemAem markdown importer  github love in aem
Aem markdown importer github love in aem
Kanika Gera
 
Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...
Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...
Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...
Autodesk
 
Fuel your mobile apps with assets and content
Fuel your mobile apps with assets and contentFuel your mobile apps with assets and content
Fuel your mobile apps with assets and content
arumsey
 
UI Customization in AEM 6.0
UI Customization in AEM 6.0UI Customization in AEM 6.0
UI Customization in AEM 6.0
Gilles Knobloch
 
User interface customization for aem6 circuit
User interface customization for aem6 circuitUser interface customization for aem6 circuit
User interface customization for aem6 circuit
Damien Antipa
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
ColdFusionConference
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
Thomas Daly
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB
 
14 asp.net session20
14 asp.net session2014 asp.net session20
14 asp.net session20
Vivek chan
 
Adobe Stock Integration community project
Adobe Stock Integration community projectAdobe Stock Integration community project
Adobe Stock Integration community project
Magecom UK Limited
 
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM CommunitiesMongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
MongoDB
 

Similar to Immerse 2016 Efficient publishing with content fragments (20)

S903 palla
S903 pallaS903 palla
S903 palla
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager Sites
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
Aem markdown importer github love in aem
Aem markdown importer  github love in aemAem markdown importer  github love in aem
Aem markdown importer github love in aem
 
Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...
Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...
Forge - DevCon 2017, Darmstadt Germany: Integrating Forge Data Management API...
 
Fuel your mobile apps with assets and content
Fuel your mobile apps with assets and contentFuel your mobile apps with assets and content
Fuel your mobile apps with assets and content
 
UI Customization in AEM 6.0
UI Customization in AEM 6.0UI Customization in AEM 6.0
UI Customization in AEM 6.0
 
User interface customization for aem6 circuit
User interface customization for aem6 circuitUser interface customization for aem6 circuit
User interface customization for aem6 circuit
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 
14 asp.net session20
14 asp.net session2014 asp.net session20
14 asp.net session20
 
Adobe Stock Integration community project
Adobe Stock Integration community projectAdobe Stock Integration community project
Adobe Stock Integration community project
 
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM CommunitiesMongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
 

Recently uploaded

Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 

Recently uploaded (20)

Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 

Immerse 2016 Efficient publishing with content fragments

  • 1. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. A virtual developer conference for Adobe Experience Manager Efficient Publishing with Content Fragments Stefan Grimm | Senior Developer
  • 2. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Efficient Publishing with Content Fragments 2 1 | Welcome and Overview 2 | Content Fragments - a brief introduction 3 | Use case: A news site 4 | Implementing an efficient workflow 5 | Q&A
  • 3. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 3 Content Fragments A brief introduction
  • 4. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4 Ecosystem
  • 5. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 5  Simple fragment template  Generic component  Typical AEM workflow required  First, create the fragment  Then, create a page, add the fragment to the page, configure it, etc. OOTB
  • 6. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6  Some use-cases require a more efficient workflow.  OOTB component can be too generic  Too much flexibility  Not enough flexibility Some use-cases require customization  Customizing the component  Implement a specific workflow Context
  • 7. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7 Use-case: A (imaginary) news site
  • 8. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 8 Our goal …
  • 9. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 9  Create article.  Enter title. Teaser. Text.  Assign image(s).  Classify.  Save.  Create page.  Add Content Fragment.  Reference article.  Publish. Efficiency! let’s get rid of these steps! add this new feature
  • 10. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 10 Our news site Section Title Teaser Image Text
  • 11. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11  Fragment Elements  Title  Teaser  Text  Metadata  Section  Associated Content  Image (tagged) Articles defining the article imagedefining the article image
  • 12. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12  Article template  Article component  Page component  A patched version of the CFM implementation bundle  Required for AEM 6.2 only, will be included in upcoming releases Prerequistes Introduced in the ”Introducing Content Fragment” session
  • 13. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hands on … Prerequisites 13
  • 14. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 14 Implementation
  • 15. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. No production-ready code in this session! Disclaimer 15
  • 16. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 16 Problems & solutions
  • 17. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 17  How to determine the article image?  Only collections, no 1:1 assignment for associated content  How to automate …?  page creation  adding Content Fragment component  referencing & configuring the article fragment  publishing the page Problems ...
  • 18. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18  Article image  Use tagging to classify the images  main image  part of image gallery  …  Component queries associated content  uses first image tagged as “main image”.  Automating  workflow launcher triggers workflow  create page if necessary  publish fragment, page & dependency  several other stuff ... and solutions
  • 19. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 19 Finding the article image
  • 20. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 20  Article image  Use tagging to classify the images  main image  part of image gallery  …  Component queries associated content  uses first image tagged as “main image”.  Automating  workflow launcher triggers workflow  create page if necessary  publish fragment, page & dependency  several other stuff Recap
  • 21. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 21 Getting associated collections: Iterator<Resource> collections = fragment.getAssociatedContent(); Getting all associated resources: SlingScriptHelper ssh = getSlingScriptHelper(); ContentFragmentManager cfm = ssh.getService(ContentFragmentManager.class); List<Resource> assets = cfm.resolveAssociatedContentFlat(fragment); API – Accessing associated content
  • 22. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hands on ... Finding the article image 22
  • 23. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 23 Workflow commons
  • 24. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 24  Article image  Use tagging to classify the images  main image  part of image gallery  …  Component queries associated content  uses first image tagged as “main image”.  Automating  workflow launcher triggers workflow  create page if necessary  publish fragment, page & dependency  several other stuff Recap
  • 25. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 25  Can be registered on low level events  node create  node update  Can‘t use directly  intermediate saves  but workflow should only be triggered on “save” Workflow launcher
  • 26. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26  On save  Timestamp is persisted (only if content has been modified)  jcr:content/lastFragmentSave (*)  Each workflow process  Executes only if there has been a “save” since the last publish workflow has been finished  jcr:content/lastFragmentSave > jcr:content/lastFragmentPublish  At the end of the publish workflow  Updates publish timestamp  jcr:content/lastFragmentPublish (*) patched CFM implementation bundle required Solution
  • 27. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hands on ... Workflow commons com.adobe.immerse2016.cfm_ep.workflow.AbstractFragmentProcess com.adobe.immerse2016.cfm_ep.workflow.FinishArticleProcess 27
  • 28. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28 Workflow process: Resolving associated content
  • 29. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 29 Problem:  Article image defined via collection  Collections should not be used on publish Solution:  Determine article image on save  Persist path to image on fragment  jcr:content/articleImage Article image
  • 30. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hands on ... Resolving dependencies com.adobe.immerse2016.cfm_ep.workflow.ResolveDataProcess 30
  • 31. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 31 Workflow process: Creating the article page
  • 32. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 32  Check if a page for the article has already been created  If not, create a page, …  Path: /<root>/<section>/<year>/<month>/<day>/<article.name>  ... create the article paragraph  jcr:content/par/<article.name>  ... reference the article fragment.  jcr:content/par/<article.name>/fileReference Page on demand
  • 33. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hands on ... Auto-create article page com.adobe.immerse2016.cfm_ep.workflow.CreateOnDemandProcess 33
  • 34. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 34 Workflow process: Publishing the article page
  • 35. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 35  Publish  Content Fragment  Page  Article Image  In a clean implementation …  … publish references (Tags, ...)  … replicate only if modified Publishing
  • 36. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hands on ... Publish article process com.adobe.immerse2016.cfm_ep.workflow.PublishArticleProcess 36
  • 37. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. And … Action! The new, effective publishing process 37
  • 38. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 38 Recap  Article image  Part of a collection  Identified by tag  Resolve collection/tag to image path for publish instance  Publishing workflow  Triggered by workflow launcher  Processes check for “save” event by comparing save/publish timestamps  Page created on demand using a fixed/hardcoded pattern  Fragment & collaterals published programmatically
  • 39. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 39 Epilogue
  • 40. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 40 Not mentioned in this session …  Dispatcher invalidation  No easy OOTB solution for invalidating referencing pages  Can be solved using path-based dispatcher rules
  • 41. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 41 Resources  Content Package with example code  available from the “Resources” pod in Adobe Connect  Documentation  Overview/Authoring  Editor - https://docs.adobe.com/docs/en/aem/6-2/author/assets/content-fragments.html  Page Authoring - https://docs.adobe.com/docs/en/aem/6-2/author/page-authoring/content- fragments.html  Development  Templates - https://docs.adobe.com/docs/en/aem/6-2/develop/templates/content-fragment- templates.html  Extending (WIP) - https://docs.adobe.com/docs/en/aem/6-2/develop/extending/content-fragments.html
  • 42. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Q&A 42 Stefan Grimm sgrimm@adobe.com
  • 43. © 2016 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.