JavaOne 2012, OSGi for the Earthlings: Meet Eclipse Libra
1. OSGi for the Earthlings:
Meet Eclipse Libra
Murat Yener (@yenerm)
Wednesday, October 3, 12
2. OSGi for the Earthlings:
Meet Eclipse Libra
Murat Yener (@yenerm)
Wednesday, October 3, 12
3. Who am I?
• Java/JavaEE, OSGi, GWT, Flex, Android, iOS, Node.js...
simply Code Geek!
• GDG/GTUG Istanbul Lead
• Eclipse Committer
• Conference Speaker
Wednesday, October 3, 12
4. OSGi vs Developers
Human rounded ears OSGi?!?
pointed ears nature?
Fully supported by USS Enterprise Looking for IDE support
Wednesday, October 3, 12
5. OSGi: The good(s)...
•Architecture for developing and deploying modular apps
•Build using OSGi APIs
•Deploy to an OSGi Container
Wednesday, October 3, 12
6. OSGi Containers?
•Runtime for the OSGi Apps
•from Symbian to Enterprise
•equinox, felix, knoplerfish...
Wednesday, October 3, 12
7. JavaEE: If the shoe does not fit
•Tightly coupled -- hardwired
•Not Dynamic -- restarts with
every deploy
•Isolation -- no sharing,
common libraries, version
conflicts, hierarchical class
loading
Wednesday, October 3, 12
11. OSGi: the ugly...
•development complexity, no more plain java (bundles,
activators, manifests)
•each tool adds its own behaivour and complexity
•different containers, different packaging and
configuration
Wednesday, October 3, 12
12. Five Levels of OSGi (Alex Blewit)
can’t possibly work
DENIAL
written by IBM, right?
eclipse use OSGi, I don’t use Eclipse
OSGi is too complex
if you can start up the services in this order
ANGER why does this work in equinox but not felix
please let there be a StackOverflow answer
why can’t this bundles see this class
BARGAINING
why am I getting ClassNotFound Ex
these two same classes are not the same
why doesn’t hibernate work
how do I load a JDBC driver
DEPRESSION why doen’t my custom Log4J logger work
why do I have to write a Manifest manually
sudden dawn of understanding of bundles
see how services can be connected with DS
ACCEPTANCE remote services to other Systems
dynamically upgrade running code
evangelise & tweet & give keynote on OSGi
Wednesday, October 3, 12
13. Developer: the poor...
•need to learn the OSGi way
•need to learn tools
•need to learn containers
Wednesday, October 3, 12
14. Developer: the poor...
•need to learn the OSGi way
•need to learn tools
•need to learn containers
Wednesday, October 3, 12
15. Developer: the poor...
•need to learn the OSGi way
•need to learn tools
•need to learn containers
wait!!!
Wednesday, October 3, 12
16. Building Web/EE Apps
•Different servers
•Different configurations
•Abstraction of Development
Wednesday, October 3, 12
17. Building Web/EE Apps
•Different servers
•Different configurations
•Abstraction of Development
do we really need to invent a new wheel??
Wednesday, October 3, 12
18. Building Web/EE Apps
•Different servers
•Different configurations
•Abstraction of Development
do we really need to invent a new wheel??
Wednesday, October 3, 12
26. Bundle Overview
•Part of framework editor, list and control all bundles
Wednesday, October 3, 12
27. Bundle Dependency View
Graphical representation of bundle dependencies with drill downs
Wednesday, October 3, 12
28. Server Console
Similar to console shells
Wednesday, October 3, 12
29. Bundle Repository Browser
(Virgo) Resolves bundles from OBRs
Spring Enterprise Bundle Repository
Wednesday, October 3, 12
30. WAR Products
•Equinox running in JavaEE server in bridget mode
•Simply add your plugins to a product definition that
exports a WAR file (includes all necessary files!)
Wednesday, October 3, 12
31. demos
•Available online http://www.eclipse.org/libra/documentation/video/
•Launchers and Declerative Services
•Gemini Web
•Http Service and WAR products
Wednesday, October 3, 12
32. QnA
http://eclipse.org/libra
Murat Yener
murat.yener@eteration.com
@yenerm
blogs.eteration.com / devchronicles.com
Wednesday, October 3, 12