SlideShare une entreprise Scribd logo
1  sur  9
Developing a Custom Polling Importer:
Ingesting and Processing External Content
Marcel Boucher | AEM Evangelist | @marcelboucher
© 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
AEM Feed Importer – Social Communities
2
Auto blogging with RSS and ATOM
Calendar Subscriptions via iCal
Analytics integration for top …
© 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
The Use Case
3
© 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
The Required Pieces
4
Data Source Importer Scheme Implementation
© 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
The Data Source
5
Jira Query
Result is a 13MB XML document
o Useless elements
o Calculations needed to be applied in parallel
© 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
The Importer Scheme
6
Add a custom Scheme
1) Make a Copy of: /libs/cq/ui/widgets/source/widgets/wcm/FeedImporter.js
2) To: /apps/cq/ui/widgets/source/widgets/wcm/FeedImporter.js
3) Add your scheme:
{
"text":"Jira Feed",
"value":"jira”
}
© 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
The Implementation
7
OSGi Bundle
1) Add service descriptors
@Service(value=Importer.class)
@Component(immediate = true, metatype = true)
@Properties({
@Property(name = "service.name", value = "Jira RSS Polling Importer"),
@Property(name = "service.description", value = "JIRA Polling Data Importer"),
@Property(name = "importer.scheme", value="jira") ,
@Property(name = "jira.username", description = "The JIRA service account to be used."),
@Property(name = "jira.password", description = "The JIRA servuce account password to be used."),
@Property(name = "xslt.path", description = "The JCR path to the XSLT to be applied to the Jira feed.")
})
2) Implement the importData method
public void importData(final String scheme, final String dataSource, final Resource resource) throws ImportException {}
DEMO
Thank You

Contenu connexe

Tendances

Inventory system
Inventory systemInventory system
Inventory system
sai prakash
 
Inception V3 Image Processing (1).pptx
Inception V3 Image Processing (1).pptxInception V3 Image Processing (1).pptx
Inception V3 Image Processing (1).pptx
MahmoudMohamedAbdelb
 

Tendances (20)

iCloud
iCloud iCloud
iCloud
 
Inventory system
Inventory systemInventory system
Inventory system
 
Inception V3 Image Processing (1).pptx
Inception V3 Image Processing (1).pptxInception V3 Image Processing (1).pptx
Inception V3 Image Processing (1).pptx
 
B&W Image Coloring (1).pptx
B&W  Image Coloring (1).pptxB&W  Image Coloring (1).pptx
B&W Image Coloring (1).pptx
 
Image analysis using python
Image analysis using pythonImage analysis using python
Image analysis using python
 
Project Management - Web Application Report
Project Management - Web Application ReportProject Management - Web Application Report
Project Management - Web Application Report
 
human activity recognition using smartphones.pptx
human activity recognition using smartphones.pptxhuman activity recognition using smartphones.pptx
human activity recognition using smartphones.pptx
 
Atomic Design with Next.js
Atomic Design with Next.jsAtomic Design with Next.js
Atomic Design with Next.js
 
Web log & clickstream
Web log & clickstream Web log & clickstream
Web log & clickstream
 
Animal identification using machine learning techniques
Animal identification using machine learning techniquesAnimal identification using machine learning techniques
Animal identification using machine learning techniques
 
ppt 20BET1024.pptx
ppt 20BET1024.pptxppt 20BET1024.pptx
ppt 20BET1024.pptx
 
HELMET DETECTION USING ARTIFICIAL INTELLIGENCE
HELMET DETECTION USING ARTIFICIAL INTELLIGENCEHELMET DETECTION USING ARTIFICIAL INTELLIGENCE
HELMET DETECTION USING ARTIFICIAL INTELLIGENCE
 
Tomato leaves diseases detection approach based on support vector machines
Tomato leaves diseases detection approach based on support vector machinesTomato leaves diseases detection approach based on support vector machines
Tomato leaves diseases detection approach based on support vector machines
 
WEB APPLICATION USING PHP AND MYSQL
WEB APPLICATION USING PHP AND MYSQLWEB APPLICATION USING PHP AND MYSQL
WEB APPLICATION USING PHP AND MYSQL
 
Multiple object detection report
Multiple object detection reportMultiple object detection report
Multiple object detection report
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
 
Seguridad sql server
Seguridad sql serverSeguridad sql server
Seguridad sql server
 
Web scraping in python
Web scraping in pythonWeb scraping in python
Web scraping in python
 
Human activity recognition
Human activity recognitionHuman activity recognition
Human activity recognition
 
Object detection
Object detectionObject detection
Object detection
 

Similaire à Building a Custom Polling Importer in AEM

Using the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with SubversionUsing the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with Subversion
Debbie Wilson
 
Web and Android App Development
Web and Android App DevelopmentWeb and Android App Development
Web and Android App Development
Gaurav Gopal Gupta
 
building-a-fdm-application-for-a-hfm-target
 building-a-fdm-application-for-a-hfm-target building-a-fdm-application-for-a-hfm-target
building-a-fdm-application-for-a-hfm-target
Sid Mehta
 

Similaire à Building a Custom Polling Importer in AEM (20)

仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習
 
Breaking down the Monowhat
Breaking down the MonowhatBreaking down the Monowhat
Breaking down the Monowhat
 
User Interface and Data Sources.pdf
User Interface and Data Sources.pdfUser Interface and Data Sources.pdf
User Interface and Data Sources.pdf
 
Application module slides
Application module slidesApplication module slides
Application module slides
 
Immerse 2016 Efficient publishing with content fragments
Immerse 2016 Efficient publishing with content fragmentsImmerse 2016 Efficient publishing with content fragments
Immerse 2016 Efficient publishing with content fragments
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
Amplexor Customer Experience Management seminar Technical overview Euroclear ...
Amplexor Customer Experience Management seminar Technical overview Euroclear ...Amplexor Customer Experience Management seminar Technical overview Euroclear ...
Amplexor Customer Experience Management seminar Technical overview Euroclear ...
 
Train, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelTrain, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning model
 
Introduction to Adobe Experience Manager based e commerce
Introduction to Adobe Experience Manager based e commerceIntroduction to Adobe Experience Manager based e commerce
Introduction to Adobe Experience Manager based e commerce
 
Using the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with SubversionUsing the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with Subversion
 
Dannotes 50 - Collaboration Administration
Dannotes 50 - Collaboration AdministrationDannotes 50 - Collaboration Administration
Dannotes 50 - Collaboration Administration
 
Open Source, The Natural Fit for Content Management in the Enterprise
Open Source, The Natural Fit for Content Management in the EnterpriseOpen Source, The Natural Fit for Content Management in the Enterprise
Open Source, The Natural Fit for Content Management in the Enterprise
 
Web and Android App Development
Web and Android App DevelopmentWeb and Android App Development
Web and Android App Development
 
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
 
Hive at LinkedIn
Hive at LinkedIn Hive at LinkedIn
Hive at LinkedIn
 
building-a-fdm-application-for-a-hfm-target
 building-a-fdm-application-for-a-hfm-target building-a-fdm-application-for-a-hfm-target
building-a-fdm-application-for-a-hfm-target
 
ALT-F1.BE : The Accelerator (Google Cloud Platform)
ALT-F1.BE : The Accelerator (Google Cloud Platform)ALT-F1.BE : The Accelerator (Google Cloud Platform)
ALT-F1.BE : The Accelerator (Google Cloud Platform)
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysis
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoring
 
Inventory and Patch Management Using AWS Systems Manager (ARC332) - AWS re:In...
Inventory and Patch Management Using AWS Systems Manager (ARC332) - AWS re:In...Inventory and Patch Management Using AWS Systems Manager (ARC332) - AWS re:In...
Inventory and Patch Management Using AWS Systems Manager (ARC332) - AWS re:In...
 

Dernier

Dernier (20)

BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

Building a Custom Polling Importer in AEM

  • 1. Developing a Custom Polling Importer: Ingesting and Processing External Content Marcel Boucher | AEM Evangelist | @marcelboucher
  • 2. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. AEM Feed Importer – Social Communities 2 Auto blogging with RSS and ATOM Calendar Subscriptions via iCal Analytics integration for top …
  • 3. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. The Use Case 3
  • 4. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. The Required Pieces 4 Data Source Importer Scheme Implementation
  • 5. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. The Data Source 5 Jira Query Result is a 13MB XML document o Useless elements o Calculations needed to be applied in parallel
  • 6. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. The Importer Scheme 6 Add a custom Scheme 1) Make a Copy of: /libs/cq/ui/widgets/source/widgets/wcm/FeedImporter.js 2) To: /apps/cq/ui/widgets/source/widgets/wcm/FeedImporter.js 3) Add your scheme: { "text":"Jira Feed", "value":"jira” }
  • 7. © 2013 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. The Implementation 7 OSGi Bundle 1) Add service descriptors @Service(value=Importer.class) @Component(immediate = true, metatype = true) @Properties({ @Property(name = "service.name", value = "Jira RSS Polling Importer"), @Property(name = "service.description", value = "JIRA Polling Data Importer"), @Property(name = "importer.scheme", value="jira") , @Property(name = "jira.username", description = "The JIRA service account to be used."), @Property(name = "jira.password", description = "The JIRA servuce account password to be used."), @Property(name = "xslt.path", description = "The JCR path to the XSLT to be applied to the Jira feed.") }) 2) Implement the importData method public void importData(final String scheme, final String dataSource, final Resource resource) throws ImportException {}