SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
OSGi for the Earthlings:
                             Meet Eclipse Libra
                              Murat Yener (@yenerm)




Wednesday, October 3, 12
OSGi for the Earthlings:
                             Meet Eclipse Libra
                              Murat 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 Developers
                                                      Human     rounded ears             OSGi?!?
          pointed ears                                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   •Too many/Not enough
                                                       tools
                           •Eclipse tools: bnd,
                            bndtools, bundlor, pax,   •Different philosophies
                            sigil, concierge           (OSGi Transperent,
                                                       Generate Manifests)
                           •Rational
                                                      •OSGi Frameworks are
                           •Spring tools               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

                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
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 Scope
                                        in                         out
                                       aries      jetty
                             virgo                           websphere (liberty)
                                     felix     equinox
                           gemini                         uJonas
       frameworks
                                         eclipselink               weblogic
                              tomcat

        standarts          blueprint     subsystems
            &                                              PARs
       technologies            JavaEE     OSGi                        blueprint
                                     JPA      OBR
                             WEB                               EABs
                              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 View
              Graphical representation of bundle dependencies with drill downs




Wednesday, October 3, 12
Server Console
                           Similar to console shells




Wednesday, October 3, 12
Bundle Repository Browser
                 (Virgo) Resolves bundles from OBRs
                 Spring 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

Weitere ähnliche Inhalte

Ähnlich wie JavaOne 2012, OSGi for the Earthlings: Meet Eclipse Libra

Reverse engineering
Reverse engineeringReverse engineering
Reverse engineeringSaswat Padhi
 
[JVMLS 12] Kotlin / Java Interop
[JVMLS 12] Kotlin / Java Interop[JVMLS 12] Kotlin / Java Interop
[JVMLS 12] Kotlin / Java InteropAndrey Breslav
 
Method Swizzling with Objective-C
Method Swizzling with Objective-CMethod Swizzling with Objective-C
Method Swizzling with Objective-CAdamFallon4
 
OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010Sangjin Lee
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!Mark Hillick
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGiIlya Rybak
 
Lessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsLessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsPuppet
 
Drupal and the rise of the documents
Drupal and the rise of the documentsDrupal and the rise of the documents
Drupal and the rise of the documentsClaudio Beatrice
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Molieremfrancis
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotappJilles van Gurp
 
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr) ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr) Andreas Chatzakis
 
Introducing Open - Keynote at AGI South West
Introducing Open - Keynote at AGI South WestIntroducing Open - Keynote at AGI South West
Introducing Open - Keynote at AGI South WestArnulf Christl
 
Using NoSQL with Yo' SQL
Using NoSQL with Yo' SQLUsing NoSQL with Yo' SQL
Using NoSQL with Yo' SQLRich Thornett
 
Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Wardmfrancis
 
Introduction to OSGi - Part-1
Introduction to OSGi - Part-1Introduction to OSGi - Part-1
Introduction to OSGi - Part-1kshanth2101
 
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...Jacek Laskowski
 
Distributed Fuzzing Framework Design
Distributed Fuzzing Framework DesignDistributed Fuzzing Framework Design
Distributed Fuzzing Framework Designbannedit
 

Ähnlich wie JavaOne 2012, OSGi for the Earthlings: Meet Eclipse Libra (20)

Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
[JVMLS 12] Kotlin / Java Interop
[JVMLS 12] Kotlin / Java Interop[JVMLS 12] Kotlin / Java Interop
[JVMLS 12] Kotlin / Java Interop
 
Method Swizzling with Objective-C
Method Swizzling with Objective-CMethod Swizzling with Objective-C
Method Swizzling with Objective-C
 
OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010OSGi at eBay: JavaOne 2010
OSGi at eBay: JavaOne 2010
 
MongoDB - Who, What & Where!
MongoDB - Who, What & Where!MongoDB - Who, What & Where!
MongoDB - Who, What & Where!
 
Tomas Grails
Tomas GrailsTomas Grails
Tomas Grails
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
Lessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet AgentsLessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet Agents
 
Drupal and the rise of the documents
Drupal and the rise of the documentsDrupal and the rise of the documents
Drupal and the rise of the documents
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotapp
 
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr) ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
 
Oop Article Jan 08
Oop Article Jan 08Oop Article Jan 08
Oop Article Jan 08
 
Introducing Open - Keynote at AGI South West
Introducing Open - Keynote at AGI South WestIntroducing Open - Keynote at AGI South West
Introducing Open - Keynote at AGI South West
 
Using NoSQL with Yo' SQL
Using NoSQL with Yo' SQLUsing NoSQL with Yo' SQL
Using NoSQL with Yo' SQL
 
Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Ward
 
Introduction to OSGi - Part-1
Introduction to OSGi - Part-1Introduction to OSGi - Part-1
Introduction to OSGi - Part-1
 
GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010
 
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
Developing modular applications with Java EE 6 and Enterprise OSGi + WebSpher...
 
Distributed Fuzzing Framework Design
Distributed Fuzzing Framework DesignDistributed Fuzzing Framework Design
Distributed Fuzzing Framework Design
 

Mehr von Murat Yener

Design patterns with Kotlin
Design patterns with KotlinDesign patterns with Kotlin
Design patterns with KotlinMurat Yener
 
Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15Murat Yener
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsMurat Yener
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Murat Yener
 
Android WebView, The Fifth Element
Android WebView, The Fifth ElementAndroid WebView, The Fifth Element
Android WebView, The Fifth ElementMurat Yener
 
Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)
Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)
Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)Murat Yener
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupMurat Yener
 

Mehr von Murat Yener (7)

Design patterns with Kotlin
Design patterns with KotlinDesign patterns with Kotlin
Design patterns with Kotlin
 
Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
 
Android WebView, The Fifth Element
Android WebView, The Fifth ElementAndroid WebView, The Fifth Element
Android WebView, The Fifth Element
 
Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)
Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)
Mobile Java with GWT, Still Write Once Run Everywhere (mGWT+Phonegap)
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
 

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
  • 8. Enterprise OSGi •OSGi programming model: proven, standarts-based, dynamic, modular, manageable, ubiquitous, evolvable •Enterprise Infrastructure: persistence, transactions, distributed, management, naming Wednesday, October 3, 12
  • 10. OSGi Tools: the bad.. •Ant tools: bnd, bundlor •Too many/Not enough tools •Eclipse tools: bnd, bndtools, bundlor, pax, •Different philosophies sigil, concierge (OSGi Transperent, Generate Manifests) •Rational •OSGi Frameworks are •Spring tools tricky (launching, installing...) 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
  • 19. soo what if... + + Wednesday, October 3, 12
  • 20. Earthlings, meet Eclipse Libra WTP PDE Tools Wednesday, October 3, 12
  • 21. Libra Tools Scope in out aries jetty virgo websphere (liberty) felix equinox gemini uJonas frameworks eclipselink weblogic tomcat standarts blueprint subsystems & PARs technologies JavaEE OSGi blueprint JPA OBR WEB EABs declerative services Wednesday, October 3, 12
  • 22. 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
  • 23. also... •Framework Editor •refactoring from virgo tools •server console •bundle overview •dependency graphs •Provisional: bundle projects and Manifest Editor Wednesday, October 3, 12
  • 24. Bundle Projects •OSGi Bundle Facet •PDE / WTP project types •versioned •Tools can add more behaviour Wednesday, October 3, 12
  • 25. 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
  • 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