SlideShare a Scribd company logo
Leveraging OSGi to Create
Extensible Plugins for Liferay 6.2
Eduardo García edupgv@
Julio Camarero juliocamarero@
Core Engineers at Liferay, Inc
Milen Dyankov milendyankov@
Senior Consultant at Liferay, Inc
OSGi is about
modularity
... and Liferay already
allowed for
modularity ...
PortletsPortlets
HooksHooks
ThemesThemes
LayoutsLayouts
......
... but modules are
not modular !!!
OSGi brings into
Liferay
modularity of
modules !!!
Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugins-for-liferay-6-2
...
Microservices
Supported in
Liferay marketplace
Let’s see an example…
A Shipping Cost Calculator
https://github.com/epgarcia/liferay-plugins/commits/LRNAS2014.OSGI
final price
common features
for all countries
specific features
for each country
we could…
Develop a very complex and
laborious application that
covers all possible cases
Release a new version every
time any shipping cost
algorithm changes or we add
new countries
Develop a simple core application
that covers only the common features
Make the application extensible
with country modules“ ”
If a shipping algorithm changes,
our core application remains
the same and only that specific
extension must be changed
will be the future of all
Liferay 7 applications ...
... because it’s all advantages!
improves
maintainability
maximizes
reusability
simplification of
releases
(independent)
new market
opportunities
(extensions)
App
ver. 1
App
ver. 2
App
ver. 3
time
size
...
App
ver. 1
App
ver. 2
time
size
...
ext 1
ver. 1
ext 1
ver. 2
ext 1
ver. 3
ext 2
ver. 3
ext 2
ver. 1
ext 2
ver. 2
ext 3
ver. 1
ext 1
ver. 4
ext 3
ver. 2
But OSGi makes this
possible already in
Liferay 6.2 !
In fact, Audience Targeting,
the first Liferay 6.2 application
following this approach, is already
available on Marketplace!
Sounds great,
but I have no idea
about OSGi…
OSGi basic concepts
in 3 minutes!
(or what you need to understand
before we continue)
OSGi bundles
(this is what our plug-ins are)
manifestmanifestmanifestmanifest manifest
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Shipping Impl
Bundle-SymbolicName: com.liferay.shipping.impl
Bundle-Vendor: Liferay, Inc.
Bundle-Version: 1.0.0
Private-Package: com.liferay.shipping.impl.model,com.liferay.shipping.impl.util
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))"
. . .
#1
#1 OSGi bundles
(this is what our plug-ins are)
manifestmanifestmanifestmanifest manifest
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Shipping Impl
Bundle-SymbolicName: com.liferay.shipping.impl
Bundle-Vendor: Liferay, Inc.
Bundle-Version: 1.0.0
Private-Package: com.liferay.shipping.impl.model,com.liferay.shipping.impl.util
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))"
. . .
All modern build tools (Ant, Maven, Gradle, ...)
can build OSGi bundles!
So can Liferay SDK !
Package dependencies
(this is how we describe what we provide and expect)
Import-Package:
com.liferay.shipping.api.model,
com.liferay.shipping.api.util,
com.liferay.portal.kernel.io.unsync;resolution:=optional,
com.liferay.portal.kernel.util;resolution:=optional,
freemarker.cache;resolution:=optional,
freemarker.template;resolution:=optional
Export-Package:
com.liferay.shipping.api.model;version="1.0.0",
com.liferay.shipping.api.util;version="1.0.0"
manifestmanifestmanifestmanifest manifest
EXPORT EXPORT
#2
manifestmanifestmanifestmanifest manifest
EXPORT EXPORT
Package dependencies
(this is how we describe what we provide and expect)
Import-Package:
com.liferay.shipping.api.model,
com.liferay.shipping.api.util,
com.liferay.portal.kernel.io.unsync;resolution:=optional,
com.liferay.portal.kernel.util;resolution:=optional,
freemarker.cache;resolution:=optional,
freemarker.template;resolution:=optional
Export-Package:
com.liferay.shipping.api.model;version="1.0.0",
com.liferay.shipping.api.util;version="1.0.0"
#2
#2
manifestmanifestmanifestmanifest manifest
EXPORT EXPORT
Package dependencies
(this is how we describe what we provide and expect)
Import-Package:
com.liferay.shipping.api.model,
com.liferay.shipping.api.util,
com.liferay.portal.kernel.io.unsync;resolution:=optional,
com.liferay.portal.kernel.util;resolution:=optional,
freemarker.cache;resolution:=optional,
freemarker.template;resolution:=optional
Export-Package:
com.liferay.shipping.api.model;version="1.0.0",
com.liferay.shipping.api.util;version="1.0.0"
The BND tool (bnd.bndtools.org) can discover dependencies
and automatically generate export/import manifest headers!
Liferay SDK also allows you to use BND tool!
OSGi services
(this is how we provide and consume functionality)
manifestmanifestmanifest manifest
OSGi service registry
Interface
Service 1
...
Service N
#3
OSGi services
(this is how we provide and consume functionality)
manifestmanifestmanifest
OSGi service registry
Interface
Service 1
...
Service N
REGISTER
REGISTER
USE
manifest
#3
#3 OSGi services
(this is how we provide and consume functionality)
manifestmanifestmanifest
OSGi service registry
Interface
Service 1
...
Service N
REGISTER
REGISTER
USE
manifest
There are number of component frameworks on top of OSGi
(Declarative Services and Blueprint being part of the specs)
which greatly simplify the usage of services!
Sounds great,
but how OSGi fits
into Liferay ?
Application server / Servlet container
Liferay 6.2
Liferay CORE
Portlet Portlet...
Application server / Servlet container
Liferay 6.2
Portlet application
Portlet application
Portlet application
Portlet application
Liferay CORE
Portlet Portlet...
Application server / Servlet container
Liferay 6.2
Portlet application
Portlet application
Portlet application
Portlet application
Liferay CORE
Portlet Portlet
OSGi container
...
Application server / Servlet container
Liferay 6.2
Portlet application
Portlet application
Portlet application
Portlet application
Liferay CORE
Portlet Portlet
OSGi container
OSGi core services
HTTP Service Configuration Admin Service
...
...
Liferay core OSGi services
Application server / Servlet container
Liferay 6.2
Portlet application
Portlet application
Portlet application
Portlet application
Liferay CORE
Portlet Portlet
OSGi container
API Bundle
API Bundle
Service Bundle
Extension bundle
Service Bundle
Portlet Bundle
Extension Bundle
Portlet Bundle
OSGi core services
HTTP Service Configuration Admin Service
...
...
Liferay core OSGi services
Application server / Servlet container
Liferay 6.2
Portlet application
Portlet application
Portlet application
Portlet application
Liferay CORE
Portlet Portlet
OSGi container
API Bundle
API Bundle
Service Bundle
Extension bundle
Service Bundle
Portlet Bundle
Extension Bundle
Portlet Bundle
OSGi core services
HTTP Service Configuration Admin Service
...
...
Liferay core OSGi services
In Liferay 6.2 portlets inside OSGi
container have certain limitations!
shipping-api
shipping-impl
shipping-web
Shipping application
shipping-extension-europe
shipping-extension-usa
Shipping application
extensions
Shipping application modules (bundles)
There is an extra step in Liferay 6.2
as not all dependencies are
provided!
You will NOT need to do this in
Liferay 7!
#0 Shipping application modules (bundles)
#1 Shipping application modules (bundles)
#1 Shipping application modules (bundles)
#1 Shipping application modules (bundles)
#2 Shipping application modules (bundles)
#2 Shipping application modules (bundles)
#2 Shipping application modules (bundles)
#2 Shipping application modules (bundles)
#2 Shipping application modules (bundles)
#3 Shipping application modules (bundles)
This approach is for Liferay 6.2 only !
It will change in Liferay 7 !
This approach is for Liferay 6.2 only !
It will change in Liferay 7 !
#3 Shipping application modules (bundles)
Our main application
is ready!
Let's try it !
#4 Shipping application modules (bundles)
#4 Shipping application modules (bundles)
Let's try it !
#5 Shipping application modules (bundles)
#5 Shipping application modules (bundles)
Let's try it !
Where you go from
here?
Send feedback!
Build your own OSGi modules
Learn more about OSGi
Try the samples yourself
https://github.com/epgarcia/liferay-plugins/commits/LRNAS2014.OSGI
Thank you!
milen.dyankov@liferay.com
http://www.liferay.com/web/milen.dyankov/
@milendyankov
@LiferayPL
http://www.liferay.com
@Liferay
http://www.facebook.com/Liferay

More Related Content

PPTX
Liferay on docker
PPTX
Liferay Configuration and Customization
ODP
Liferay Module Framework
PDF
Introduction to Portlets Using Liferay Portal
PDF
Mavenizing your Liferay project
PDF
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
PPT
PDF
Introduction to Portlets using Liferay Portal (Part 2)
Liferay on docker
Liferay Configuration and Customization
Liferay Module Framework
Introduction to Portlets Using Liferay Portal
Mavenizing your Liferay project
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
Introduction to Portlets using Liferay Portal (Part 2)

What's hot (20)

PDF
01/2009 - Portral development with liferay
PPTX
Liferay portal – moving beyond content management
PDF
Liferay portals in real projects
PPT
Liferay Developer Best Practices for a Successful Deployment
PDF
Using Liferay Portal with LDAP and Single sign-on
PDF
2013.devcon3 liferay and google authenticator integration rafik_harabi
PDF
OSGi on Google Android using Apache Felix
KEY
Beyond OSGi Software Architecture
PPTX
Osgi platform
PDF
Jakarta EE and MicroProfile - EclipseCon 2020
PDF
Monoliths are so 2001 – What you need is Modularity
PDF
Liferay UI (R)evolution
KEY
Yii Framework
KEY
RIA with Flex & PHP - Tulsa TechFest 2009
PDF
Microservice Approach for Web Development with Micro Frontends
PPT
Yii framework
PDF
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
PDF
Reactjs Basics
PDF
Liferay plugin customization to change the behavior in portal
01/2009 - Portral development with liferay
Liferay portal – moving beyond content management
Liferay portals in real projects
Liferay Developer Best Practices for a Successful Deployment
Using Liferay Portal with LDAP and Single sign-on
2013.devcon3 liferay and google authenticator integration rafik_harabi
OSGi on Google Android using Apache Felix
Beyond OSGi Software Architecture
Osgi platform
Jakarta EE and MicroProfile - EclipseCon 2020
Monoliths are so 2001 – What you need is Modularity
Liferay UI (R)evolution
Yii Framework
RIA with Flex & PHP - Tulsa TechFest 2009
Microservice Approach for Web Development with Micro Frontends
Yii framework
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
Reactjs Basics
Liferay plugin customization to change the behavior in portal
Ad

Viewers also liked (20)

PDF
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
PDF
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
PDF
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
PDF
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
PDF
Moved to https://slidr.io/azzazzel/what-s-not-new-in-modular-java
PDF
Moved to https://slidr.io/azzazzel/osgi-fundamentals
PDF
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
PDF
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
PDF
OSGi for outsiders - Milen Dyankov
PDF
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
PPT
Social Networking Presentation For Chamber Of Commerce
PPTX
Liferay 6.2 theme premium
PPT
6.2 presentation
PDF
Building an Enterprise Content Management solution on top of liferay
PPTX
CTO School Networking Presentation
PDF
Introducing the new calendar app in liferay 6.2
PDF
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
PDF
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
PPT
Social Media Marketing
PDF
Liferay architecture By Navin Agarwal
Moved to https://slidr.io/azzazzel/your-role-in-the-next-release-of-world-pro...
Moved to https://slidr.io/azzazzel/things-you-cannot-do-before-7
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/what-s-not-new-in-modular-java
Moved to https://slidr.io/azzazzel/osgi-fundamentals
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
OSGi for outsiders - Milen Dyankov
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Social Networking Presentation For Chamber Of Commerce
Liferay 6.2 theme premium
6.2 presentation
Building an Enterprise Content Management solution on top of liferay
CTO School Networking Presentation
Introducing the new calendar app in liferay 6.2
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Moved to https://slidr.io/azzazzel/liferay-multi-channel-mobile-delivery-plat...
Social Media Marketing
Liferay architecture By Navin Agarwal
Ad

Similar to Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugins-for-liferay-6-2 (20)

PDF
Leverage OSGI to create Extensible plugins for Liferay 6.2
PPT
OSGi & Blueprint
PPTX
Liferay
PDF
Lean Microservices with OSGi - Christian Schneider
PPTX
Life ray training
PDF
Developing Liferay Plugins with Maven
PDF
GlassFish OSGi - Java2days 2010
PPTX
How to push to production a project with 100+ plugins in less than 10 minutes
PDF
GlassFish v3, OSGi Equinox Felix
PPTX
Liferay (DXP) 7 Tech Meetup for Developers
PDF
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
PDF
OSGi bootcamp - part 1
PPTX
PDF
OSGi-enabled Java EE Applications using GlassFish
PDF
OSGi-enabled Java EE applications in GlassFish
PDF
OSGi Presentation
PPTX
PDF
Open Services Gateway Initiative (OSGI)
PDF
OSGi for mere mortals
PDF
OSGi and Java EE in GlassFish - Tech Days 2010 India
Leverage OSGI to create Extensible plugins for Liferay 6.2
OSGi & Blueprint
Liferay
Lean Microservices with OSGi - Christian Schneider
Life ray training
Developing Liferay Plugins with Maven
GlassFish OSGi - Java2days 2010
How to push to production a project with 100+ plugins in less than 10 minutes
GlassFish v3, OSGi Equinox Felix
Liferay (DXP) 7 Tech Meetup for Developers
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
OSGi bootcamp - part 1
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE applications in GlassFish
OSGi Presentation
Open Services Gateway Initiative (OSGI)
OSGi for mere mortals
OSGi and Java EE in GlassFish - Tech Days 2010 India

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PDF
System and Network Administration Chapter 2
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
L1 - Introduction to python Backend.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
System and Network Administraation Chapter 3
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
AI in Product Development-omnex systems
PDF
Nekopoi APK 2025 free lastest update
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Transform Your Business with a Software ERP System
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
PTS Company Brochure 2025 (1).pdf.......
Introduction to Artificial Intelligence
System and Network Administration Chapter 2
Navsoft: AI-Powered Business Solutions & Custom Software Development
Odoo POS Development Services by CandidRoot Solutions
L1 - Introduction to python Backend.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How to Migrate SBCGlobal Email to Yahoo Easily
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
System and Network Administraation Chapter 3
Adobe Illustrator 28.6 Crack My Vision of Vector Design
AI in Product Development-omnex systems
Nekopoi APK 2025 free lastest update
Odoo Companies in India – Driving Business Transformation.pdf
top salesforce developer skills in 2025.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Design an Analysis of Algorithms I-SECS-1021-03
Transform Your Business with a Software ERP System
ISO 45001 Occupational Health and Safety Management System
PTS Company Brochure 2025 (1).pdf.......

Moved to https://slidr.io/azzazzel/leveraging-osgi-to-create-extensible-plugins-for-liferay-6-2

  • 1. Leveraging OSGi to Create Extensible Plugins for Liferay 6.2 Eduardo García edupgv@ Julio Camarero juliocamarero@ Core Engineers at Liferay, Inc Milen Dyankov milendyankov@ Senior Consultant at Liferay, Inc
  • 3. ... and Liferay already allowed for modularity ...
  • 5. ... but modules are not modular !!!
  • 8. ...
  • 10. Let’s see an example… A Shipping Cost Calculator https://github.com/epgarcia/liferay-plugins/commits/LRNAS2014.OSGI
  • 11. final price common features for all countries specific features for each country
  • 12. we could… Develop a very complex and laborious application that covers all possible cases Release a new version every time any shipping cost algorithm changes or we add new countries Develop a simple core application that covers only the common features Make the application extensible with country modules“ ” If a shipping algorithm changes, our core application remains the same and only that specific extension must be changed
  • 13. will be the future of all Liferay 7 applications ...
  • 14. ... because it’s all advantages! improves maintainability maximizes reusability simplification of releases (independent) new market opportunities (extensions)
  • 16. App ver. 1 App ver. 2 time size ... ext 1 ver. 1 ext 1 ver. 2 ext 1 ver. 3 ext 2 ver. 3 ext 2 ver. 1 ext 2 ver. 2 ext 3 ver. 1 ext 1 ver. 4 ext 3 ver. 2
  • 17. But OSGi makes this possible already in Liferay 6.2 !
  • 18. In fact, Audience Targeting, the first Liferay 6.2 application following this approach, is already available on Marketplace!
  • 19. Sounds great, but I have no idea about OSGi…
  • 20. OSGi basic concepts in 3 minutes! (or what you need to understand before we continue)
  • 21. OSGi bundles (this is what our plug-ins are) manifestmanifestmanifestmanifest manifest Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Shipping Impl Bundle-SymbolicName: com.liferay.shipping.impl Bundle-Vendor: Liferay, Inc. Bundle-Version: 1.0.0 Private-Package: com.liferay.shipping.impl.model,com.liferay.shipping.impl.util Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))" . . . #1
  • 22. #1 OSGi bundles (this is what our plug-ins are) manifestmanifestmanifestmanifest manifest Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Shipping Impl Bundle-SymbolicName: com.liferay.shipping.impl Bundle-Vendor: Liferay, Inc. Bundle-Version: 1.0.0 Private-Package: com.liferay.shipping.impl.model,com.liferay.shipping.impl.util Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))" . . . All modern build tools (Ant, Maven, Gradle, ...) can build OSGi bundles! So can Liferay SDK !
  • 23. Package dependencies (this is how we describe what we provide and expect) Import-Package: com.liferay.shipping.api.model, com.liferay.shipping.api.util, com.liferay.portal.kernel.io.unsync;resolution:=optional, com.liferay.portal.kernel.util;resolution:=optional, freemarker.cache;resolution:=optional, freemarker.template;resolution:=optional Export-Package: com.liferay.shipping.api.model;version="1.0.0", com.liferay.shipping.api.util;version="1.0.0" manifestmanifestmanifestmanifest manifest EXPORT EXPORT #2
  • 24. manifestmanifestmanifestmanifest manifest EXPORT EXPORT Package dependencies (this is how we describe what we provide and expect) Import-Package: com.liferay.shipping.api.model, com.liferay.shipping.api.util, com.liferay.portal.kernel.io.unsync;resolution:=optional, com.liferay.portal.kernel.util;resolution:=optional, freemarker.cache;resolution:=optional, freemarker.template;resolution:=optional Export-Package: com.liferay.shipping.api.model;version="1.0.0", com.liferay.shipping.api.util;version="1.0.0" #2
  • 25. #2 manifestmanifestmanifestmanifest manifest EXPORT EXPORT Package dependencies (this is how we describe what we provide and expect) Import-Package: com.liferay.shipping.api.model, com.liferay.shipping.api.util, com.liferay.portal.kernel.io.unsync;resolution:=optional, com.liferay.portal.kernel.util;resolution:=optional, freemarker.cache;resolution:=optional, freemarker.template;resolution:=optional Export-Package: com.liferay.shipping.api.model;version="1.0.0", com.liferay.shipping.api.util;version="1.0.0" The BND tool (bnd.bndtools.org) can discover dependencies and automatically generate export/import manifest headers! Liferay SDK also allows you to use BND tool!
  • 26. OSGi services (this is how we provide and consume functionality) manifestmanifestmanifest manifest OSGi service registry Interface Service 1 ... Service N #3
  • 27. OSGi services (this is how we provide and consume functionality) manifestmanifestmanifest OSGi service registry Interface Service 1 ... Service N REGISTER REGISTER USE manifest #3
  • 28. #3 OSGi services (this is how we provide and consume functionality) manifestmanifestmanifest OSGi service registry Interface Service 1 ... Service N REGISTER REGISTER USE manifest There are number of component frameworks on top of OSGi (Declarative Services and Blueprint being part of the specs) which greatly simplify the usage of services!
  • 29. Sounds great, but how OSGi fits into Liferay ?
  • 30. Application server / Servlet container Liferay 6.2 Liferay CORE Portlet Portlet...
  • 31. Application server / Servlet container Liferay 6.2 Portlet application Portlet application Portlet application Portlet application Liferay CORE Portlet Portlet...
  • 32. Application server / Servlet container Liferay 6.2 Portlet application Portlet application Portlet application Portlet application Liferay CORE Portlet Portlet OSGi container ...
  • 33. Application server / Servlet container Liferay 6.2 Portlet application Portlet application Portlet application Portlet application Liferay CORE Portlet Portlet OSGi container OSGi core services HTTP Service Configuration Admin Service ... ... Liferay core OSGi services
  • 34. Application server / Servlet container Liferay 6.2 Portlet application Portlet application Portlet application Portlet application Liferay CORE Portlet Portlet OSGi container API Bundle API Bundle Service Bundle Extension bundle Service Bundle Portlet Bundle Extension Bundle Portlet Bundle OSGi core services HTTP Service Configuration Admin Service ... ... Liferay core OSGi services
  • 35. Application server / Servlet container Liferay 6.2 Portlet application Portlet application Portlet application Portlet application Liferay CORE Portlet Portlet OSGi container API Bundle API Bundle Service Bundle Extension bundle Service Bundle Portlet Bundle Extension Bundle Portlet Bundle OSGi core services HTTP Service Configuration Admin Service ... ... Liferay core OSGi services In Liferay 6.2 portlets inside OSGi container have certain limitations!
  • 37. There is an extra step in Liferay 6.2 as not all dependencies are provided! You will NOT need to do this in Liferay 7! #0 Shipping application modules (bundles)
  • 38. #1 Shipping application modules (bundles)
  • 39. #1 Shipping application modules (bundles)
  • 40. #1 Shipping application modules (bundles)
  • 41. #2 Shipping application modules (bundles)
  • 42. #2 Shipping application modules (bundles)
  • 43. #2 Shipping application modules (bundles)
  • 44. #2 Shipping application modules (bundles)
  • 45. #2 Shipping application modules (bundles)
  • 46. #3 Shipping application modules (bundles)
  • 47. This approach is for Liferay 6.2 only ! It will change in Liferay 7 ! This approach is for Liferay 6.2 only ! It will change in Liferay 7 ! #3 Shipping application modules (bundles)
  • 48. Our main application is ready! Let's try it !
  • 49. #4 Shipping application modules (bundles)
  • 50. #4 Shipping application modules (bundles)
  • 52. #5 Shipping application modules (bundles)
  • 53. #5 Shipping application modules (bundles)
  • 55. Where you go from here?
  • 56. Send feedback! Build your own OSGi modules Learn more about OSGi Try the samples yourself https://github.com/epgarcia/liferay-plugins/commits/LRNAS2014.OSGI