SlideShare a Scribd company logo
SLING MODELS VOL I - BASICS
By Ankit Gubrani
.about-me{
name: Ankit Gubrani;
title: Sr. Software Engineer;
working at: Playstation;
email-id: Ankit.gubrani90@gmail.com;
linkedIn: linkedin.com/in/ankitgubrani;
twitter: @ankitgubrani90;
blog: codebrains.co.in;
}
AGENDA
š What are Sling Models?
š Why Sling Models?
š WCMPojo VS Sling Models?
š Getting started with Sling Models
š Demo
š Basic Sling Model Annotations
š Available Injectors
š Sling Models Exporter
BASIC AEM TERMINOLOGIES
š OSGi - Open System Gateway Initiative
š JCR - Java Content Repository
š Apache Sling
WHAT ARE SLING MODELS?
Before jumping on to Sling Models directly, let's see what are models?
MODELS ARE :
š classes which encapsulate closely related items for eg: ProductDataModel
š classes which usually are used to define the domain objects
š classes which lets us implement MVC design patterns
SLING MODELS ARE :
š pure POJO classes, driven by annotations
š classes which OOTB, support resource properties (via ValueMap), SlingBindings, OSGi
services, request attributes
š classes which lets us adapt multiple objects - minimal required Resource and
SlingHttpServletRequest
š Adapter Pattern: The Adapter pattern allows otherwise incompatible classes to work together by
converting the interface of one class into an interface expected by the clients.
Sling models are POJO classes in which properties of the
adaptable interfaces/classes can be injects and hence
reducing the boilerplate code
BRIEF HISTORY
š Before sling Models, we used have problems like boiler plate code & reusing code was
difficult
š while sling Models were initially introduced to make Adapter pattern easier to implement
with custom code
š Around the same time as Sling models a new templating framework called “Sightly” was
introduced
Taglibs/Java Models-> WCMUsePojo -> Sling Models
QUICK DEMO OF CODE BEFORE SLING
MODELS
WHY SLING MODELS?
š Reduces code Redundancy
š Makes code more maintainable
š Reduced coding efforts
GETTING STARTED WITH SLING MODELS
1. Add the sling model dependency
2. Create a package under which all the Sling Models will reside
3. Add package path as “Sling-Model-Packages” property of “maven-bundle-plugin”
4. Next create a Class or Interface in the newly created package & add the “@Model”
annotation on Class
5. Use @Inject annotation to inject a field from adaptable class defined in @Model
annotation
DEMO
WCMPOJO V/S SLING MODELS
š WCMUsePojo:
š WCMPojo is an abstract class which implements Use interface
š Class extending WCMPojo abstract class is initialised with the scripting bindings, providing
convenience methods for accessing commonly used objects
š Sling Models helps you reduce the code even futher using @Inject, hence making your
code even more maintainable
š Sling Models can be even used outside of HTL/Sightly, which makes Sling Models even
more reusable
BASIC SLING ANNOTATIONS
1. @Model
2. @Inject
3. @Named
4. @Default
5. @Optional
6. @PostContruct
7. @Via
8. @Self
9. @OSGiService
For details of each annoation please refer the documentation
QUICK INTRO TO SLING MODEL EXPORTER
FRAMEWORK
Along with Sling Models 1.3.0 there was a new framework introduced
known as Sling Model Exporter Framework. Sling Model Exporter
framework comes with Jackson Exporter that automatically serializes
an “Ordinary” sling model object into JSON
THANK YOU
Contact Us :
LinkedIn : Ankit Gubrani
Twitter : @ankitgubrani90
Email-ID : ankit.gubrani90@gmail.com
Blog : www.codebrains.co.in

More Related Content

Similar to Sling models

Deepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jspDeepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jsp
DEEPAK KHETAWAT
 
Osgi
OsgiOsgi
ASP.NET MVC Best Practices malisa ncube
ASP.NET MVC Best Practices   malisa ncubeASP.NET MVC Best Practices   malisa ncube
ASP.NET MVC Best Practices malisa ncube
Malisa Ncube
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
Lo Ki
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
Lokesh BS
 
Designing Better API
Designing Better APIDesigning Better API
Designing Better API
Kaniska Mandal
 
Let's Write Better Node Modules
Let's Write Better Node ModulesLet's Write Better Node Modules
Let's Write Better Node Modules
Kevin Whinnery
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
Yuri Visser
 
Beyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and moreBeyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and more
Ari Lerner
 
Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.js
Ivano Malavolta
 
Oops design pattern intro
Oops design pattern intro Oops design pattern intro
Oops design pattern intro
anshu_atri
 
Core java course syllabus
Core java course syllabusCore java course syllabus
Core java course syllabus
Papitha Velumani
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
Michael Vorburger
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
Bertrand Delacretaz
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
mukulobject
 
Spring boot
Spring bootSpring boot
MLSEC 2020
MLSEC 2020MLSEC 2020
MLSEC 2020
Zoltan Balazs
 
Mini-Training: Javascript Patterns
Mini-Training: Javascript PatternsMini-Training: Javascript Patterns
Mini-Training: Javascript Patterns
Betclic Everest Group Tech Team
 
AWS ML Model Deployment
AWS ML Model DeploymentAWS ML Model Deployment
AWS ML Model Deployment
Knoldus Inc.
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
Haim Michael
 

Similar to Sling models (20)

Deepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jspDeepak khetawat sling_models_sightly_jsp
Deepak khetawat sling_models_sightly_jsp
 
Osgi
OsgiOsgi
Osgi
 
ASP.NET MVC Best Practices malisa ncube
ASP.NET MVC Best Practices   malisa ncubeASP.NET MVC Best Practices   malisa ncube
ASP.NET MVC Best Practices malisa ncube
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
 
Designing Better API
Designing Better APIDesigning Better API
Designing Better API
 
Let's Write Better Node Modules
Let's Write Better Node ModulesLet's Write Better Node Modules
Let's Write Better Node Modules
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
 
Beyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and moreBeyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and more
 
Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.js
 
Oops design pattern intro
Oops design pattern intro Oops design pattern intro
Oops design pattern intro
 
Core java course syllabus
Core java course syllabusCore java course syllabus
Core java course syllabus
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
 
Enabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDMEnabling modularization through OSGi and SpringDM
Enabling modularization through OSGi and SpringDM
 
Spring boot
Spring bootSpring boot
Spring boot
 
MLSEC 2020
MLSEC 2020MLSEC 2020
MLSEC 2020
 
Mini-Training: Javascript Patterns
Mini-Training: Javascript PatternsMini-Training: Javascript Patterns
Mini-Training: Javascript Patterns
 
AWS ML Model Deployment
AWS ML Model DeploymentAWS ML Model Deployment
AWS ML Model Deployment
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 

More from Ankit Gubrani

Sling pipes
Sling pipesSling pipes
Sling pipes
Ankit Gubrani
 
Circuit breaker pattern
Circuit breaker patternCircuit breaker pattern
Circuit breaker pattern
Ankit Gubrani
 
AEM integration with Apache Mahout
AEM integration with Apache MahoutAEM integration with Apache Mahout
AEM integration with Apache Mahout
Ankit Gubrani
 
Content personalization in AEM
Content personalization in AEMContent personalization in AEM
Content personalization in AEM
Ankit Gubrani
 
Integrating Apache Wookie with AEM || AEM-Wookie Connector Tool
Integrating Apache Wookie with AEM || AEM-Wookie Connector ToolIntegrating Apache Wookie with AEM || AEM-Wookie Connector Tool
Integrating Apache Wookie with AEM || AEM-Wookie Connector Tool
Ankit Gubrani
 
Introduction to Sightly
Introduction to SightlyIntroduction to Sightly
Introduction to Sightly
Ankit Gubrani
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
Ankit Gubrani
 
AEM Client Context Customisation
AEM Client Context CustomisationAEM Client Context Customisation
AEM Client Context Customisation
Ankit Gubrani
 

More from Ankit Gubrani (8)

Sling pipes
Sling pipesSling pipes
Sling pipes
 
Circuit breaker pattern
Circuit breaker patternCircuit breaker pattern
Circuit breaker pattern
 
AEM integration with Apache Mahout
AEM integration with Apache MahoutAEM integration with Apache Mahout
AEM integration with Apache Mahout
 
Content personalization in AEM
Content personalization in AEMContent personalization in AEM
Content personalization in AEM
 
Integrating Apache Wookie with AEM || AEM-Wookie Connector Tool
Integrating Apache Wookie with AEM || AEM-Wookie Connector ToolIntegrating Apache Wookie with AEM || AEM-Wookie Connector Tool
Integrating Apache Wookie with AEM || AEM-Wookie Connector Tool
 
Introduction to Sightly
Introduction to SightlyIntroduction to Sightly
Introduction to Sightly
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
 
AEM Client Context Customisation
AEM Client Context CustomisationAEM Client Context Customisation
AEM Client Context Customisation
 

Recently uploaded

Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
jrodriguezq3110
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 

Recently uploaded (20)

Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 

Sling models

  • 1. SLING MODELS VOL I - BASICS By Ankit Gubrani
  • 2. .about-me{ name: Ankit Gubrani; title: Sr. Software Engineer; working at: Playstation; email-id: Ankit.gubrani90@gmail.com; linkedIn: linkedin.com/in/ankitgubrani; twitter: @ankitgubrani90; blog: codebrains.co.in; }
  • 3. AGENDA š What are Sling Models? š Why Sling Models? š WCMPojo VS Sling Models? š Getting started with Sling Models š Demo š Basic Sling Model Annotations š Available Injectors š Sling Models Exporter
  • 4. BASIC AEM TERMINOLOGIES š OSGi - Open System Gateway Initiative š JCR - Java Content Repository š Apache Sling
  • 5. WHAT ARE SLING MODELS? Before jumping on to Sling Models directly, let's see what are models?
  • 6. MODELS ARE : š classes which encapsulate closely related items for eg: ProductDataModel š classes which usually are used to define the domain objects š classes which lets us implement MVC design patterns
  • 7. SLING MODELS ARE : š pure POJO classes, driven by annotations š classes which OOTB, support resource properties (via ValueMap), SlingBindings, OSGi services, request attributes š classes which lets us adapt multiple objects - minimal required Resource and SlingHttpServletRequest š Adapter Pattern: The Adapter pattern allows otherwise incompatible classes to work together by converting the interface of one class into an interface expected by the clients.
  • 8. Sling models are POJO classes in which properties of the adaptable interfaces/classes can be injects and hence reducing the boilerplate code
  • 9. BRIEF HISTORY š Before sling Models, we used have problems like boiler plate code & reusing code was difficult š while sling Models were initially introduced to make Adapter pattern easier to implement with custom code š Around the same time as Sling models a new templating framework called “Sightly” was introduced Taglibs/Java Models-> WCMUsePojo -> Sling Models
  • 10. QUICK DEMO OF CODE BEFORE SLING MODELS
  • 11. WHY SLING MODELS? š Reduces code Redundancy š Makes code more maintainable š Reduced coding efforts
  • 12. GETTING STARTED WITH SLING MODELS 1. Add the sling model dependency 2. Create a package under which all the Sling Models will reside 3. Add package path as “Sling-Model-Packages” property of “maven-bundle-plugin” 4. Next create a Class or Interface in the newly created package & add the “@Model” annotation on Class 5. Use @Inject annotation to inject a field from adaptable class defined in @Model annotation
  • 13. DEMO
  • 14. WCMPOJO V/S SLING MODELS š WCMUsePojo: š WCMPojo is an abstract class which implements Use interface š Class extending WCMPojo abstract class is initialised with the scripting bindings, providing convenience methods for accessing commonly used objects š Sling Models helps you reduce the code even futher using @Inject, hence making your code even more maintainable š Sling Models can be even used outside of HTL/Sightly, which makes Sling Models even more reusable
  • 15. BASIC SLING ANNOTATIONS 1. @Model 2. @Inject 3. @Named 4. @Default 5. @Optional 6. @PostContruct 7. @Via 8. @Self 9. @OSGiService For details of each annoation please refer the documentation
  • 16. QUICK INTRO TO SLING MODEL EXPORTER FRAMEWORK Along with Sling Models 1.3.0 there was a new framework introduced known as Sling Model Exporter Framework. Sling Model Exporter framework comes with Jackson Exporter that automatically serializes an “Ordinary” sling model object into JSON
  • 17. THANK YOU Contact Us : LinkedIn : Ankit Gubrani Twitter : @ankitgubrani90 Email-ID : ankit.gubrani90@gmail.com Blog : www.codebrains.co.in