javaone 2012, osgi for the earthlings: meet eclipse libra
DESCRIPTION
Eclipse libraTRANSCRIPT
OSGi for the Earthlings: Meet Eclipse LibraMurat Yener (@yenerm)
Wednesday, October 3, 12
OSGi for the Earthlings: Meet Eclipse LibraMurat Yener (@yenerm)
Wednesday, October 3, 12
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
OSGi vs Developerspointed ears rounded ears OSGi?!?Human
nature?
Fully supported by USS Enterprise Looking for IDE support
Wednesday, October 3, 12
OSGi: The good(s)...
•Architecture for developing and deploying modular apps
•Build using OSGi APIs
•Deploy to an OSGi Container
Wednesday, October 3, 12
OSGi Containers?
•Runtime for the OSGi Apps
•from Symbian to Enterprise
•equinox, felix, knoplerfish...
Wednesday, October 3, 12
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
Enterprise OSGi
•OSGi programming model: proven, standarts-based, dynamic, modular, manageable, ubiquitous, evolvable
•Enterprise Infrastructure: persistence, transactions, distributed, management, naming
Wednesday, October 3, 12
Enterprise OSGi
Wednesday, October 3, 12
OSGi Tools: the bad..
•Ant tools: bnd, bundlor
•Eclipse tools: bnd, bndtools, bundlor, pax, sigil, concierge
•Rational
•Spring tools
•Too many/Not enough tools
•Different philosophies (OSGi Transperent, Generate Manifests)
•OSGi Frameworks are tricky (launching, installing...)
Wednesday, October 3, 12
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
Five Levels of OSGi (Alex Blewit)can’t possibly work
written by IBM, right?eclipse use OSGi, I don’t use Eclipse
OSGi is too complex
why can’t this bundles see this classwhy am I getting ClassNotFound Ex
these two same classes are not the samewhy doesn’t hibernate work
if you can start up the services in this orderwhy does this work in equinox but not felixplease let there be a StackOverflow answer
how do I load a JDBC driverwhy doen’t my custom Log4J logger work
why do I have to write a Manifest manually
sudden dawn of understanding of bundlessee how services can be connected with DS
remote services to other Systemsdynamically upgrade running code
evangelise & tweet & give keynote on OSGi
DENIAL
ANGER
BARGAINING
DEPRESSION
ACCEPTANCE
Wednesday, October 3, 12
Developer: the poor...
•need to learn the OSGi way
•need to learn tools
•need to learn containers
Wednesday, October 3, 12
Developer: the poor...
•need to learn the OSGi way
•need to learn tools
•need to learn containers
Wednesday, October 3, 12
Developer: the poor...
•need to learn the OSGi way
•need to learn tools
•need to learn containers
wait!!!Wednesday, October 3, 12
Building Web/EE Apps
•Different servers
•Different configurations
•Abstraction of Development
Wednesday, October 3, 12
Building Web/EE Apps
•Different servers
•Different configurations
•Abstraction of Development
do we really need to invent a new wheel??
Wednesday, October 3, 12
Building Web/EE Apps
•Different servers
•Different configurations
•Abstraction of Development
do we really need to invent a new wheel??
Wednesday, October 3, 12
soo what if...
++
Wednesday, October 3, 12
Earthlings, meet Eclipse Libra
WTP
PDE
Tools
Wednesday, October 3, 12
Libra Tools Scopein out
frameworks
standarts&
technologies
virgo
eclipselink
aries
equinox
jetty
geminitomcat
felixwebsphere (liberty)
uJonasweblogic
PARs
EABs
blueprint subsystemsOSGi
JPAJavaEE blueprint
WEBOBR
declerative services
Wednesday, October 3, 12
What is in JUNO Release...•OSGi Bundle Facet
•WAR Products
•OSGi Framework Adapters
•adapted from WTP server adapters
•launch configs
•supports Felix/equinox/knoplerfish
•Gemini/Apache Aries
•Virgo tools not yet ported
Wednesday, October 3, 12
also...
•Framework Editor
•refactoring from virgo tools
•server console
•bundle overview
•dependency graphs
•Provisional: bundle projects and Manifest Editor
Wednesday, October 3, 12
Bundle Projects
•OSGi Bundle Facet
•PDE / WTP project types
•versioned
•Tools can add more behaviour
Wednesday, October 3, 12
Framework Adapters
•Vanilla OSGi Frameworks
•eclipse equinox, apache felix, knoplerfish
•Eclipse RT (with above)
•gemini, virgo, eclipselink, jetty...
•Apache Aries (with above)
Wednesday, October 3, 12
Bundle Overview
•Part of framework editor, list and control all bundles
Wednesday, October 3, 12
Bundle Dependency ViewGraphical representation of bundle dependencies with drill downs
Wednesday, October 3, 12
Server ConsoleSimilar to console shells
Wednesday, October 3, 12
Bundle Repository Browser(Virgo) Resolves bundles from OBRsSpring Enterprise Bundle Repository
Wednesday, October 3, 12
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
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
QnA
http://eclipse.org/libra
Murat Yener
@yenerm
blogs.eteration.com / devchronicles.com
Wednesday, October 3, 12