SlideShare a Scribd company logo
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Senior Developer, R&D, Adobe Digital Marketing Systems
Apache Software Foundation Member and (current) Director
http://grep.codeconsult.ch - @bdelacretaz - bdelacretaz@apache.org
OSGi Alliance Community Event, Ludwigsburg, October 2012
slides revision: 2012-10-22
Bertrand Delacrétaz
OSGi
Ta l e s f r o m t h e
t r e n c h e s
Adobe CQ5: a real-life OSGi case study
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
What?
Share our experience using OSGi
(Apache Felix) as the foundation
of Adobe CQ5.
More than five years working with OSGi, very
high impact on developers, customers, service
people, mostly in a positive way.
OSGi is no silver bullet either.
silver
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
What?
the
GOODthe
BADthe
UGLY
symbols by ppdigital , o0o0xmods0o0oon and clarita, on morguefile.com
Just my own,
personal
opinion as a
software
developer...
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Trenches?
Web Content Management
and Digital Marketing system.
Includes its own JCR content store.
About 200 OSGi bundles.
Install instructions fit in a tweet.
Built on Apache Sling, Apache
Felix and Apache Jackrabbit
www.adobe.com/products/cq.html
http://jackrabbit.apache.org
http://felix.apache.org
http://sling.apache.org
BTW...wearehiring!
jobs-basel@adobe.com
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
What we use from OSGi
Bundles (using Maven plugins)
Lifecycle, Service Tracker
Configurations and Felix Web Console
Declarative Services (using Maven plugins)
Sling’s installer module (like fileinstall, using JCR)
Log, HTTP, Event services, JMX
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Famous quotesthe short version
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Famous Quotes, #2
“Each (OSGi) bundle can serve as a micro
application, having it's own lifecycle,
having it's own citizens and each bundle
can carefully decide which objects to
expose to the outside world”
Peter Rietzler
http://peterrietzler.blogspot.com/2008/12/is-osgi-going-
to-become-next-ejb-bubble.html
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Famous Quotes, #4
“The lifecycle model of OSGi makes life
complicated. Actually, tracking services
and managing all the aspects of what to
do when services come and go is nasty”
Peter Rietzler
http://peterrietzler.blogspot.com/2008/12/is-osgi-going-
to-become-next-ejb-bubble.html
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Famous Quotes, #6
“OSGi makes "impossible" things easy:
hot deploy/upgrade, service discovery, ...
and trivial things hard: hibernate, tag
libraries, even deploying a simple war!”
But, for the first time in my
career, I see software reusability
that works: service reusability.
Filippo Diotalevi
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
The Good
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Modularity
Classloading
distinct from
class visibility.
Public packages
Metadata
OSGi bundle
Private packages
Matchless picture: Alvimann on morguefile.com
OSGi bundles as reusable components.
Dynamic setup and updates that work.
At last!
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Declarative Services
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Clean OSGi APIs
Just a few
basic examples...
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Dynamic load/unload
Just copy bundle jar
to Sling’s JCR
repository (WebDAV)
Bundle activated
and started.
(using Sling’s installer module)
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Plugins for everything
Servlets
Mime-type based handlers
Content editors based on
JCR node properties
Content renderers and decorators
Debugging/monitoring tools
Mail and messaging services
etc, etc...
Legacy integration gateways
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
The Bad
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Granularity?
How many bundles? Services?
CQ5: about 200 bundles, 1000 services
How to handle “implementation
details” libraries.
Extra bundles or private packages?
Strict version management required.
Are we there yet?
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Integration testing...
V5.3
V6.54
V4.2
V5.11
V1.03
V4.22
V3.22
V2.13
V3.2
V3.2
V6.4
V1.03
V3.21
V1.11
V1.05
V6.4
V5.6
V2.4
V3.4
V5.43
In-system
testing?
but when done!
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Testing options
Unit testing In-framework
testing
Integration
testing
Necessary
but usually
not sufficient.
Mocks can
be painful
Relatively new
tools, can
be slow
Much slower
but ok for actual
integration testing
JUnit,
TestNG,
Mocks,
etc..
Pax Exam,
Sling testing tools,
etc.
Start application
and test it “from
the outside”.
See Apache Sling’s
launchpad/testing
module
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
I want my...
Spring
J2EE
App Server
Guice
do you really need it?
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
The Ugly
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Asynchronicity...
V5.3
V6.54
V4.2
V5.11
V1.03
V4.22
V3.22
V4.5 V7.4
V2.13
V3.2
V3.2
V6.4
V1.03
V3.21
V1.11
V1.05
V6.4
V5.6
V2.4
V3.4
V5.43
“unpredictable”
startup order
1
19
7
11 15
14 17
10
3
16
18
9
8
4
6
2
11
5
13
12
19
20
Is the system ready now?
Threading
issues?
Mostly from Declarative Services, not OSGi itself.
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Unpredictable assemblies
V5.3
V6.54
V4.2
V5.11
V1.03
V4.22
V3.22
V4.5
V2.13
V3.2
V3.2
V6.4
V1.03
V3.21
V1.11
V1.05
V6.4
V5.6
V2.4
V3.4
V5.43
Spot the monsters!
Discipline (and semantic versioning) help.
Integration (and in-system) testing required.
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
The Summary
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
My vision back in 2009...
Developers got used to it (and
read the book).
Frameworks and tools improved.
Distributed OSGi? Maybe.
Customers understand OSGi and like it..
Apache Sling paved the way.
√
√
√
√
OSGi Alliance Community Event 2012
Bertrand DelacrétazOSGiTales from the trenches
Conclusions
Modularity. modularity. modularity.
OSGi fosters better structured code
Dynamic services and plugins FTW!
Tooling ... getting better all the time
OSGi is often unfamiliar / unusual
Asynchronous behavior can be
problematic (declarative services)
BTW...wearehiring!
jobs-basel@adobe.com

More Related Content

Similar to Tales from the OSGi Trenches - Bertrand Delacretaz

Tales from the OSGi trenches (2012 short form edition)
Tales from the OSGi trenches (2012 short form edition)Tales from the OSGi trenches (2012 short form edition)
Tales from the OSGi trenches (2012 short form edition)
Bertrand Delacretaz
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
Bertrand Delacretaz
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
Bill Scott
 
OSGI,
OSGI,OSGI,
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Milen Dyankov
 
OSGi for outsiders - Milen Dyankov
OSGi for outsiders - Milen DyankovOSGi for outsiders - Milen Dyankov
OSGi for outsiders - Milen Dyankov
mfrancis
 
What's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim WardWhat's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim Ward
mfrancis
 
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
Bill Scott
 
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Hyperdrive Agile Leadership (powered by Bratton & Company)
 
Athens IoT meetup #7 - Desploy (Costas Pipilas)
Athens IoT meetup #7 - Desploy (Costas Pipilas)Athens IoT meetup #7 - Desploy (Costas Pipilas)
Athens IoT meetup #7 - Desploy (Costas Pipilas)
Athens IoT Meetup
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibility
Ryan Dawson
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
benDesigning
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
Bill Scott
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios
 
Docker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatternsDocker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatterns
Lenses.io
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
jbandi
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology stream
Bernd Alter
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
Shivam Prajapati
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
André Goliath
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 

Similar to Tales from the OSGi Trenches - Bertrand Delacretaz (20)

Tales from the OSGi trenches (2012 short form edition)
Tales from the OSGi trenches (2012 short form edition)Tales from the OSGi trenches (2012 short form edition)
Tales from the OSGi trenches (2012 short form edition)
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
OSGI,
OSGI,OSGI,
OSGI,
 
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
 
OSGi for outsiders - Milen Dyankov
OSGi for outsiders - Milen DyankovOSGi for outsiders - Milen Dyankov
OSGi for outsiders - Milen Dyankov
 
What's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim WardWhat's happening in the OSGi IoT Expert Group? - Tim Ward
What's happening in the OSGi IoT Expert Group? - Tim Ward
 
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
 
Athens IoT meetup #7 - Desploy (Costas Pipilas)
Athens IoT meetup #7 - Desploy (Costas Pipilas)Athens IoT meetup #7 - Desploy (Costas Pipilas)
Athens IoT meetup #7 - Desploy (Costas Pipilas)
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibility
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
 
Docker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatternsDocker for business: How I stopped worrying about antipatterns
Docker for business: How I stopped worrying about antipatterns
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
 
Foundations for the perfect technology stream
Foundations for the perfect technology streamFoundations for the perfect technology stream
Foundations for the perfect technology stream
 
Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02Wds leanengineering-141103233017-conversion-gate02
Wds leanengineering-141103233017-conversion-gate02
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 

More from mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
mfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
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
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
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
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
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
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 

Recently uploaded (20)

Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
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
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
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
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
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
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 

Tales from the OSGi Trenches - Bertrand Delacretaz

  • 1. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Senior Developer, R&D, Adobe Digital Marketing Systems Apache Software Foundation Member and (current) Director http://grep.codeconsult.ch - @bdelacretaz - bdelacretaz@apache.org OSGi Alliance Community Event, Ludwigsburg, October 2012 slides revision: 2012-10-22 Bertrand Delacrétaz OSGi Ta l e s f r o m t h e t r e n c h e s Adobe CQ5: a real-life OSGi case study
  • 2. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches What? Share our experience using OSGi (Apache Felix) as the foundation of Adobe CQ5. More than five years working with OSGi, very high impact on developers, customers, service people, mostly in a positive way. OSGi is no silver bullet either. silver
  • 3. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches What? the GOODthe BADthe UGLY symbols by ppdigital , o0o0xmods0o0oon and clarita, on morguefile.com Just my own, personal opinion as a software developer...
  • 4. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Trenches? Web Content Management and Digital Marketing system. Includes its own JCR content store. About 200 OSGi bundles. Install instructions fit in a tweet. Built on Apache Sling, Apache Felix and Apache Jackrabbit www.adobe.com/products/cq.html http://jackrabbit.apache.org http://felix.apache.org http://sling.apache.org BTW...wearehiring! jobs-basel@adobe.com
  • 5. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches What we use from OSGi Bundles (using Maven plugins) Lifecycle, Service Tracker Configurations and Felix Web Console Declarative Services (using Maven plugins) Sling’s installer module (like fileinstall, using JCR) Log, HTTP, Event services, JMX
  • 6. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Famous quotesthe short version
  • 7. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Famous Quotes, #2 “Each (OSGi) bundle can serve as a micro application, having it's own lifecycle, having it's own citizens and each bundle can carefully decide which objects to expose to the outside world” Peter Rietzler http://peterrietzler.blogspot.com/2008/12/is-osgi-going- to-become-next-ejb-bubble.html
  • 8. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Famous Quotes, #4 “The lifecycle model of OSGi makes life complicated. Actually, tracking services and managing all the aspects of what to do when services come and go is nasty” Peter Rietzler http://peterrietzler.blogspot.com/2008/12/is-osgi-going- to-become-next-ejb-bubble.html
  • 9. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Famous Quotes, #6 “OSGi makes "impossible" things easy: hot deploy/upgrade, service discovery, ... and trivial things hard: hibernate, tag libraries, even deploying a simple war!” But, for the first time in my career, I see software reusability that works: service reusability. Filippo Diotalevi
  • 10. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches The Good
  • 11. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Modularity Classloading distinct from class visibility. Public packages Metadata OSGi bundle Private packages Matchless picture: Alvimann on morguefile.com OSGi bundles as reusable components. Dynamic setup and updates that work. At last!
  • 12. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Declarative Services
  • 13. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Clean OSGi APIs Just a few basic examples...
  • 14. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Dynamic load/unload Just copy bundle jar to Sling’s JCR repository (WebDAV) Bundle activated and started. (using Sling’s installer module)
  • 15. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Plugins for everything Servlets Mime-type based handlers Content editors based on JCR node properties Content renderers and decorators Debugging/monitoring tools Mail and messaging services etc, etc... Legacy integration gateways
  • 16. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches The Bad
  • 17. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Granularity? How many bundles? Services? CQ5: about 200 bundles, 1000 services How to handle “implementation details” libraries. Extra bundles or private packages? Strict version management required. Are we there yet?
  • 18. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Integration testing... V5.3 V6.54 V4.2 V5.11 V1.03 V4.22 V3.22 V2.13 V3.2 V3.2 V6.4 V1.03 V3.21 V1.11 V1.05 V6.4 V5.6 V2.4 V3.4 V5.43 In-system testing? but when done!
  • 19. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Testing options Unit testing In-framework testing Integration testing Necessary but usually not sufficient. Mocks can be painful Relatively new tools, can be slow Much slower but ok for actual integration testing JUnit, TestNG, Mocks, etc.. Pax Exam, Sling testing tools, etc. Start application and test it “from the outside”. See Apache Sling’s launchpad/testing module
  • 20. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches I want my... Spring J2EE App Server Guice do you really need it?
  • 21. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches The Ugly
  • 22. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Asynchronicity... V5.3 V6.54 V4.2 V5.11 V1.03 V4.22 V3.22 V4.5 V7.4 V2.13 V3.2 V3.2 V6.4 V1.03 V3.21 V1.11 V1.05 V6.4 V5.6 V2.4 V3.4 V5.43 “unpredictable” startup order 1 19 7 11 15 14 17 10 3 16 18 9 8 4 6 2 11 5 13 12 19 20 Is the system ready now? Threading issues? Mostly from Declarative Services, not OSGi itself.
  • 23. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Unpredictable assemblies V5.3 V6.54 V4.2 V5.11 V1.03 V4.22 V3.22 V4.5 V2.13 V3.2 V3.2 V6.4 V1.03 V3.21 V1.11 V1.05 V6.4 V5.6 V2.4 V3.4 V5.43 Spot the monsters! Discipline (and semantic versioning) help. Integration (and in-system) testing required.
  • 24. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches The Summary
  • 25. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches My vision back in 2009... Developers got used to it (and read the book). Frameworks and tools improved. Distributed OSGi? Maybe. Customers understand OSGi and like it.. Apache Sling paved the way. √ √ √ √
  • 26. OSGi Alliance Community Event 2012 Bertrand DelacrétazOSGiTales from the trenches Conclusions Modularity. modularity. modularity. OSGi fosters better structured code Dynamic services and plugins FTW! Tooling ... getting better all the time OSGi is often unfamiliar / unusual Asynchronous behavior can be problematic (declarative services) BTW...wearehiring! jobs-basel@adobe.com