JavaOne 2012, OSGi for the Earthlings: Meet Eclipse Libra

Preview:

DESCRIPTION

Eclipse libra

Citation preview

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

murat.yener@eteration.com

@yenerm

blogs.eteration.com / devchronicles.com

Wednesday, October 3, 12