48
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Capturing Existing Content with AEM Kevin Nennig | [email protected] Bob O’Connor | [email protected]

EVOLVE'15 | Enhance | Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

Embed Size (px)

Citation preview

Page 1: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Capturing Existing Content with AEM Kevin Nennig | [email protected] O’Connor | [email protected]

Page 2: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Ah-ha

2

AEM

Page 3: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Clipper

3

Evernote Demo

Page 4: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Intro - Story

4

Page 5: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Concept

5

Page 6: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Easy right?

Learn the Evernote API Learn to create an OSGi bundle Integrate Done

6

Page 7: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Fairly easy

Learn the Evernote API Make a java application to test

Learn to create an OSGi bundle What method should I use to sync with AEM?

Integrate How do you create an AEM asset?

Done

7

Page 8: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Getting harder

Learn the Evernote API Make a java application to test

Understand the format of an Evernote note

What information can I get back?

Whats the cost of calling the Evernote API?

Learn to create an OSGi bundle Should use the new AEM plugin Use an AEM Archetype

Front end in Touch What should the front end

look like? Integrate

How do you create an AEM asset?

Done

8

Page 9: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Okay… it’s time for a backlog

Learn the Evernote API Make a java application to test

Understand the format of an Evernote note Can I translate that to a readable

format in AEM? What information can I get back?

Does Evernote clipper give me the same metadata?

Whats the cost of calling the Evernote API? Can I make less expensive calls?

Learn to create an OSGi bundle Should use the new AEM plugin

How does this work with Maven? …wait, how does maven work?

Use an AEM Archetype What do I actually need for this project?

Front end in Touch I need to extend the asset finder I need to override the asset finder cards Touch component placeholder? Sightly component

What should the front end look like? Css

Integrate How do you create an AEM asset? Understanding cron jobs Should I support multiple Evernote

accounts? Sync or import? JCR API or Sling API or DAM API?

Done ??????????

9

Page 10: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Different Methods of Sync

Scheduled Task Periodic Importer JSP scripting Sync with VLT

10

Page 11: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Different Methods of Sync

Scheduled Task – setup via cron job and configurable through OSGi Periodic Importer – Good for small amounts of data and configurable

through the JCR JSP scripting – Requires someone to start the sync and configurable

by a front end dev Sync with VLT – Can be hard to debug and is a very efficient way to

import

11

Page 12: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Different Methods of Sync

Scheduled Task – setup via cron job and configurable through OSGi Periodic Importer – Good for small amounts of data and configurable

through the JCR JSP scripting – Requires someone to start the sync and configurable

by a front end dev Sync with VLT – Can be hard to debug and is a very efficient way to

import

12

Page 13: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Project

13

OSGi Configurations The Bundle Evernote Component Demo Content

Page 14: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

OSGi Configurations

14

Page 15: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

OSGi Configurations

15

Page 16: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

OSGi Configurations

16

Page 17: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

OSGi Configurations

17

Page 18: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

OSGi Configurations

18

Page 19: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Project

19

OSGi Configurations The Bundle Evernote Component Demo Content

Page 20: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle

20

Page 21: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle

21

Scheduled task every minute

Page 22: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Getting Notes

22

Scheduled task every minute

Page 23: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Getting Notes

23

Scheduled task every minute

Page 24: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Getting Notes

24

Scheduled task every minute

Page 25: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Service User

25

Page 26: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Service User

26

Localhost:4502/crx/explorer

Set permissions in /useradmin

Page 27: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle - Sync

27

Page 28: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle - Sync

28

Page 29: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle - Sync

29

Page 30: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Imported Assets

30

Page 31: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Bundle – Imported Asset Properties

31

Page 32: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Project

32

OSGi Configurations The Bundle Evernote Component Demo Content

Page 33: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Component

33

Page 34: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Component – Asset Finder

34

Page 35: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Component – Asset Finder

35

evernoteController.js

Page 36: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Component

36

Page 37: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Component - note-viewer.html

37

Page 38: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Evernote Component - Java Use Class

38

………

Page 39: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

The Project

39

OSGi Configurations The Bundle Evernote Component Demo Content

Page 40: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Demo

40

Demo

Page 41: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

What’s currently supported

41

Single Evernote Account Sync “Dev mode” Sync Basic text and HTML from Evernote Initial Note Import only

Page 42: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Future thoughts

42

Enable Oauth for username/password Enable multiple Evernote accounts to Sync with AEM Enable image support from Evernote Enable Component editing on the page

Enable versioning Develop a real front end

GitHub (Grab a fork and dig in!)https://github.com/knennigtri/Import-Evernote-into-AEM

Page 43: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Business Take-aways

43

Evernote Collaboration  Scrape existing content

AEM New content Presentation Brand management

Kumbaya Best of both worlds

Page 44: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Technical Take-aways

44

This project is a great reference for Creating a touch UI optimized component Extending the assetfinder Extending the assetfinder cards Creating a Sightly component Using OSGi config nodes Making an scheduler service

GitHub (Grab a fork and dig in!)https://github.com/knennigtri/Import-Evernote-into-AEM

Page 45: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Questions?

45

GitHub (Grab a fork and dig in!)https://github.com/knennigtri/Import-Evernote-into-AEM

Page 46: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Resources

46

https://sling.apache.org/documentation/the-sling-engine/service-authentication.html

Code Samples https://github.com/Adobe-Marketing-Cloud/aem-authoring-extension-a

ssetfinder-flickr

Slides http://www.slideshare.net/KevinNennig/aem-evernote-sync

GitHub (Grab a fork and dig in!)https://github.com/knennigtri/Import-Evernote-into-AEM

Page 47: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Thank you!!!!

47

Kevin Nennig [email protected] @knennigtri

Bob O’Connor [email protected] LinkedIn

Page 48: EVOLVE'15 | Enhance |  Bob O'Conner & Kevin Nenning | Capturing Existing Content with AEM

© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.