SlideShare a Scribd company logo
1 of 46
OSGi for Eclipse Developers


                                                      Chris Aniszczyk (EclipseSource)
                                                                                         zx@eclipsesource.com
                                                                                   http://twitter.com/caniszczyk

                                                                                    Bernd Kolb (SAP)
                                                                                           bernd.kolb@sap.com
                                                                                    http://twitter.com/berndkolb


                                                                        Martin Lippert (it-agile)
                                                                                              lippert@acm.org


© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Introduction
         • OSGi Alliance
                   Worldwide consortium of technology innovators that advances
               o
                   OSGi technology

         • OSGi Technology
                   Set of specifications that define a dynamic component system for
               o
                   Java

                              OSGi is a lot more than Eclipse

         • Many Eclipse developers oblivious to OSGi topics

         • How about starting with a history lesson?

© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
A Blast from the Past...
         • Eclipse had it's own non-standard plug-in model
         • OSGi and old Eclipse plug-in model were similar




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Eclipse + OSGi FTW
         • Eclipse went to OSGi in 3.0 with Equinox*
                   The transition went “smoothly”
               o




            *http://portal.acm.org/citation.cfm?id=1086616


© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Eclipse
                                      folks




                                     Plug-In
© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Eclipse
                                                                                   OSGi
                                      folks
                                                                                   guys




                                                                          Bundle
                                     Plug-In
© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Frameworks
        • There’s a world outside of Eclipse and Equinox




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Be aware of special headers…
         • Forget about:
                   Eclipse-BuddyPolicy
               o
                   Eclipse-PatchFragment
               o
                   Eclipse-SourceBundle
               o
                   Eclipse-…
               o
               Otherwise you are tied to Equinox

         • Tip: PAX Runner to test against multiple frameworks
                   http://wiki.ops4j.org/display/ops4j/Pax+Runner
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
The Alien called “Import-Package”
         • Eclipse
                   Dependencies are declared using Require-Bundle
               o
                   Never heard of Import-Package, sounds strange
               o



                                                                                   Plug-in

         • OSGi
                 Uuuha, no, please don’t use Require-Bundle at all
               o
               o Instead, define dependencies using Import-Package



                                                                                   Bundle




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
What is the difference?
         • Require-Bundle
                   Imports all exported packages of the bundle, including re-
               o
                   exported and split bundle packages

                                                                                   p-1.0.1             p-1.0.1
                                                                                   q-1.0               q-1.0
                                                                                   t
                                                                                   u
                                                                                             Require
                                                                                             Bundle




         • Import-Package
                   Import just the package you need
               o

                                                                                   p-1.0               p-1.0.1
                                                                                   q-1.0               q-1.0
                                                                                   t
                                                                                   u
                                                                                             Import
                                                                                             Package



© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
When to use what?
         • Prefer using Import-Package
                   Lighter coupling between bundles
               o
                   Less visibilities
               o
                   Eases refactoring                                               p-1.0.1
               o

                                                                         p-1.0
                                                                         q-1.0
                                                                         t
                                                                         u




                                                                                   q-1.0



         • Require-Bundle, when necessary
                   Higher coupling between bundles
               o
                   Use only for very specific situations:
               o
                     split packages (same package in different bundles)


© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Bundles are dynamic? You're kidding…




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Dynamics with OSGi
         • OSGi allows you to manage bundles at runtime
                   Install
               o
                   Update
               o
                   Uninstall
               o


         • But there is no magic behind the scenes
                   nothing is changed automatically
               o
                   objects stay the same
               o
                   references remain valid
               o


         • This means you need to cleanup after yourself so the
           GC can help you!


© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Updating a bundle at runtime means...
         • Dependent bundles (with wires to the updated bundle
           via Require-Bundle or Import-Package) are
           stopped and re-started

         • The consequence:
                   updating a bundle might cause the system to “restart”
               o
                   this is not what I associate with “cool dynamics”
               o


                When programming anticipate OSGi’s dynamics




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Think about dependencies
         • Less is more!
                   Less dependencies
               o
                   Dependency Inversion Principle (DIP)
               o


         • Think more about APIs
                   API in separate bundle
               o
                   depend only on API bundle
               o
                   implementation can change
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Versioning Guidelines
        • Bundle-Version: 3.4.2.qualifier
               3 - major version
               4 - minor version
               2 - micro version
        • From the OSGi specification...




        • Eclipse Versioning Guidelines
               http://wiki.eclipse.org/Version_Numbering

© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Versioning Bundles
         • On Bundle level
                   Each Bundle has a version
               o
                   You should set a version range when using require-bundle
               o


         • On Package level
                 Packages should also have a version when exported
               o
                  o Remember: Import-Package
               o Package imports should have version ranges as well!


         • Summary
                   Version everything!
               o
                   A version isn’t a marketing number!
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Versioning Tools
        • PDE API Tools
               http://www.eclipse.org/pde/pde-api-tools/


        • Assists with the mechanics of API evolution
                  Binary compatibility (breaking) issues
              
                  API leaks
              
                  API freeze issues
              
                  Suggestions bundle versions
              
                  Runs headless and in your workspace
              




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
OSGi Services – another alien…
         • Services? SOA? Oh no... please no buzzwords!!!

         • Something like Extension Points?

         • Hey, wait!
           o OSGi Services are the key feature to build
             modular and dynamic apps




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
OSGi Services – your best friend
            OSGi Service providers:                              OSGi Service consumers:
                    implement an interface and register              lookup a service via the interface
                    an implementation




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Versioned Contracts
         • the service interface is the contract
                   many consumers possible
               o
                   many producers possible
               o


         • this contract is versioned
                   multiple versions of service might be available
               o
                   you get only those that matches your dependencies
               o


               You        cannot get that with extension points
                         singleton bundles
                     −
                         You always get the latest version
                     −




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
“You come and go”
         • A bundle is started:
                   services are registered
               o
                   and available from that on
               o


         • A bundle is stopped:
                   services are unregistered
               o
                   no longer available
               o


         • OSGi services are dynamic by definition!
                   + dozens of techniques to deal with these dynamics
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Life Cycle Differences
            • Services are bound to the ACTIVE state

            • Extensions are available in RESOLVED state




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Declarative and lazy
         • OSGi services are bound to the active state
                   they need class loading to happen
               o
                   they need objects to be created
               o


         • There are declarative approaches for OSGi services
                   OSGi Declarative Services
               o
                   OSGi Blueprint
               o
                   Spring Dynamic Modules
               o
                   iPOJO
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
When to use what?
         • OSGi Services:
                   Dependencies between bundles
               o
                   Dynamics
               o
                   Looser coupling
               o
                   quot;I provide a service for anybody out therequot;
               o
                   quot;I need a service and don't care who delivers itquot;
               o


         • Extension-Registry:
                   UI contributions (too small for OSGi services)
               o
                   Non-code contributions
               o
                   quot;I open up myself for extensions that I don't know upfrontquot;
               o
                   If you have tons of thousand of extensions
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Compendium Services
         • OSGi has spec’d 20+ services

         •   LogService
         •   EventAdmin
         •   HttpService
         •   Declarative Services
         •   Configuration Admin




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
LogService
         • A general purpose message logger (20kb)

         • LogService
                   Log message, level, exception, service ref, bundle
               o


         • LogReaderService
                   Retrieve current or previous log entries
               o


         • Note: ExtendedLogService (bug 260672)
                   named loggers
               o
                   extended log entry (e.g., thread id)
               o
                   filters for log listeners
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
EventAdmin
         • An inter-bundle pub-sub system (30kb)

         • EventAdmin
                   publish events synchronously and asynchronously
               o
                      postEvent(new Event(quot;com/acme/timerquot;, time ));
                      sendEvent(new Event(quot;com/acme/timerquot;, time ));


         • EventHandler
                   handle events based on topics
               o
                      handleEvent(Event event)

         • Event
                   has topic and properties as attributes
               o




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
HttpService
         • A way to register servlets and resources

         • HttpService
                   Register servlets and resources
               o


         • Http Registry (org.eclipse.equinox.http.registry)




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Declarative Services
         • A declarative model for publishing, finding and
           binding to OSGi services (150kb)

         • ServiceTracker's – the programmatic way to get a
           service – suck




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Declarative Services Tooling
            Graphical Editor
        •
            Validation
        •
            Source Editing
        •




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
ConfigAdmin
         • A service to configure components (bundles)
               o A configuration is a list of key-value pairs

         • The configuration admin service persists and
           distributes these configurations to interested parties

         • Components to be configured register a
           ManagedService

         • To apply several configurations of the same kind you
           could use a ManagedServiceFactory



© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Overview
         • Introduction
         • Topics
                   Frameworks
               o
                   Import-Package vs. Require-Bundle
               o
                   Dynamic Bundles
               o
                   Versioning
               o
                   Extensions and Services
               o
                   Compendium Services
               o
                   OSGi Tooling
               o
         • Conclusion




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
PDE
            • Eclipse has been tooling OSGi forever with PDE
                   Plug-ins == Bundles! Blugins?
               o


            • PDE Tools:
                   Bundles
               o
                   Fragments
               o
                   Declarative Services
               o


            • New Plug-in Project wizard has OSGi love




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
BND
            • Bundle Tool (BND)
                   creates and diagnoses OSGi bundles
               o
                   Maven, Eclipse and Ant integration
               o
                   http://www.aqute.biz/Code/Bnd
               o


            • Relies on specification (.bnd file) + classpath



            • Generates bundle artifacts like manifests

            • Useful for converting third party libs to bundles


© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Sigil
            • Provides OSGi Tooling
                   • http://sigil.codecauldron.org/
                   • driven by sigil.properties file
                   • BND used under the covers

            • bundles fetched from repositories
                    based on your Import-Package statements




© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
Thank you for your attention!

            • Questions and feedback welcome!


                                                                                           C. Aniszczyk
                                                                                     zx@eclipsesource.com
                                                                               http://twitter.com/caniszczyk

                                                                                                   B. Kolb
                                                                                          bernd.kolb@sap.com
                                                                                   http://twitter.com/berndkolb

                                                                               M. Lippert (it-agile)
                                                                                             lippert@acm.org



© 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009

More Related Content

What's hot

OSGi, Eclipse and API Tooling
OSGi, Eclipse and API ToolingOSGi, Eclipse and API Tooling
OSGi, Eclipse and API ToolingChris Aniszczyk
 
Papyrus for real-time embedded
Papyrus for real-time embeddedPapyrus for real-time embedded
Papyrus for real-time embeddedCharles Rivet
 
Practical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approachPractical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approachMark Cocker
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Curity
 
Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013Jeff Haynie
 
Strategic guidance
Strategic guidanceStrategic guidance
Strategic guidanceRoger Pence
 
Adobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for AndroidAdobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for AndroidMark Doherty
 
Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2Zachary Christmas
 
Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1Zachary Christmas
 
Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3Zachary Christmas
 
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Open Source Experience
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...mfrancis
 
What do you need to know about g rpc on .net
What do you need to know about g rpc on .net What do you need to know about g rpc on .net
What do you need to know about g rpc on .net Moon Technolabs Pvt. Ltd.
 
OpenStack_Horizon_Why
OpenStack_Horizon_WhyOpenStack_Horizon_Why
OpenStack_Horizon_Whypraphul sinha
 

What's hot (14)

OSGi, Eclipse and API Tooling
OSGi, Eclipse and API ToolingOSGi, Eclipse and API Tooling
OSGi, Eclipse and API Tooling
 
Papyrus for real-time embedded
Papyrus for real-time embeddedPapyrus for real-time embedded
Papyrus for real-time embedded
 
Practical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approachPractical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approach
 
Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1Java and Serverless - A Match Made In Heaven, Part 1
Java and Serverless - A Match Made In Heaven, Part 1
 
Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013
 
Strategic guidance
Strategic guidanceStrategic guidance
Strategic guidance
 
Adobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for AndroidAdobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for Android
 
Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2Pose Extraction for Real-Time Workout Assistant: Milestone 2
Pose Extraction for Real-Time Workout Assistant: Milestone 2
 
Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1Pose extraction for real time workout assistant - milestone 1
Pose extraction for real time workout assistant - milestone 1
 
Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3Pose Extraction for Real-Time Workout Assistant: Milestone 3
Pose Extraction for Real-Time Workout Assistant: Milestone 3
 
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
What do you need to know about g rpc on .net
What do you need to know about g rpc on .net What do you need to know about g rpc on .net
What do you need to know about g rpc on .net
 
OpenStack_Horizon_Why
OpenStack_Horizon_WhyOpenStack_Horizon_Why
OpenStack_Horizon_Why
 

Viewers also liked

Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseRalf Sternberg
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCPEric Jain
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksChris Aniszczyk
 
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMOSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMmfrancis
 
Eclipse Extensions Vs OSGI Services Tikal@ EclipseDemoCamps Tel Aviv
Eclipse Extensions Vs OSGI Services   Tikal@ EclipseDemoCamps Tel AvivEclipse Extensions Vs OSGI Services   Tikal@ EclipseDemoCamps Tel Aviv
Eclipse Extensions Vs OSGI Services Tikal@ EclipseDemoCamps Tel Avivguestb69b980e
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introductionirbull
 
PDE Good Practices
PDE Good PracticesPDE Good Practices
PDE Good PracticesAnkur Sharma
 
Intro to OSGi and Eclipse Virgo
Intro to OSGi and Eclipse VirgoIntro to OSGi and Eclipse Virgo
Intro to OSGi and Eclipse VirgoGordon Dickens
 
Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!
Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!
Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!Noopur Gupta
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in developmentMartin Toshev
 
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)mikaelbarbero
 

Viewers also liked (11)

Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
 
OSGi and Eclipse RCP
OSGi and Eclipse RCPOSGi and Eclipse RCP
OSGi and Eclipse RCP
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And Tricks
 
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBMOSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
OSGi Technology, Eclipse and Convergence - Jeff McAffer, IBM
 
Eclipse Extensions Vs OSGI Services Tikal@ EclipseDemoCamps Tel Aviv
Eclipse Extensions Vs OSGI Services   Tikal@ EclipseDemoCamps Tel AvivEclipse Extensions Vs OSGI Services   Tikal@ EclipseDemoCamps Tel Aviv
Eclipse Extensions Vs OSGI Services Tikal@ EclipseDemoCamps Tel Aviv
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introduction
 
PDE Good Practices
PDE Good PracticesPDE Good Practices
PDE Good Practices
 
Intro to OSGi and Eclipse Virgo
Intro to OSGi and Eclipse VirgoIntro to OSGi and Eclipse Virgo
Intro to OSGi and Eclipse Virgo
 
Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!
Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!
Mastering your Eclipse IDE - Tips, Tricks, Java 8 tooling & More!
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
 
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)The Eclipse IDE - The Force Awakens (Devoxx France 2016)
The Eclipse IDE - The Force Awakens (Devoxx France 2016)
 

Similar to OSGi For Eclipse Developers

From Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse ModelingFrom Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse ModelingCédric Brun
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & TestingChris Aniszczyk
 
OSGi Versioning And Testing
OSGi Versioning And TestingOSGi Versioning And Testing
OSGi Versioning And Testingpvanderlei
 
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseGEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseYoann Rodiere
 
Keynote de Mike Milinkovich
Keynote de Mike MilinkovichKeynote de Mike Milinkovich
Keynote de Mike MilinkovichEclipseDayParis
 
Eclipse Rich Ajax Platform
Eclipse Rich Ajax PlatformEclipse Rich Ajax Platform
Eclipse Rich Ajax PlatformFabian Lange
 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Chris Aniszczyk
 
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...mfrancis
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
Enterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerEnterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerSam Brannen
 
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...mfrancis
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)Tonny Madsen
 
COBWEB: Towards an Optimised Interoperability Framework for Citizen Science
COBWEB: Towards an Optimised Interoperability Framework for Citizen ScienceCOBWEB: Towards an Optimised Interoperability Framework for Citizen Science
COBWEB: Towards an Optimised Interoperability Framework for Citizen ScienceCOBWEB Project
 
Wuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with GradleWuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with GradleAndrey Hihlovsky
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionÁkos Horváth
 
Python Experience in KKBOX Group
Python Experience in KKBOX GroupPython Experience in KKBOX Group
Python Experience in KKBOX GroupShuen-Huei Guan
 
Object Oriented Cobol
Object Oriented CobolObject Oriented Cobol
Object Oriented CobolDov Keshet
 

Similar to OSGi For Eclipse Developers (20)

From Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse ModelingFrom Acceleo.org To Eclipse Modeling
From Acceleo.org To Eclipse Modeling
 
OSGi Versioning & Testing
OSGi Versioning & TestingOSGi Versioning & Testing
OSGi Versioning & Testing
 
OSGi Versioning And Testing
OSGi Versioning And TestingOSGi Versioning And Testing
OSGi Versioning And Testing
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to EclipseGEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
 
2010 06 22 omg - obeo
2010 06 22   omg - obeo2010 06 22   omg - obeo
2010 06 22 omg - obeo
 
Keynote de Mike Milinkovich
Keynote de Mike MilinkovichKeynote de Mike Milinkovich
Keynote de Mike Milinkovich
 
Eclipse Rich Ajax Platform
Eclipse Rich Ajax PlatformEclipse Rich Ajax Platform
Eclipse Rich Ajax Platform
 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)
 
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
Programming OSGi with Eclipse - Jeff McAffer, Eclipse Architect, IBM & Tom Wats...
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Enterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerEnterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm Server
 
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Gre...
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)
 
COBWEB: Towards an Optimised Interoperability Framework for Citizen Science
COBWEB: Towards an Optimised Interoperability Framework for Citizen ScienceCOBWEB: Towards an Optimised Interoperability Framework for Citizen Science
COBWEB: Towards an Optimised Interoperability Framework for Citizen Science
 
Wuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with GradleWuff: Building Eclipse Applications and Plugins with Gradle
Wuff: Building Eclipse Applications and Plugins with Gradle
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - Introdcution
 
Eclipse
EclipseEclipse
Eclipse
 
Python Experience in KKBOX Group
Python Experience in KKBOX GroupPython Experience in KKBOX Group
Python Experience in KKBOX Group
 
Object Oriented Cobol
Object Oriented CobolObject Oriented Cobol
Object Oriented Cobol
 

More from Chris Aniszczyk

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationChris Aniszczyk
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Chris Aniszczyk
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative UpdateChris Aniszczyk
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Chris Aniszczyk
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source ProgramsChris Aniszczyk
 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsChris Aniszczyk
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupChris Aniszczyk
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open SourceChris Aniszczyk
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsChris Aniszczyk
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterChris Aniszczyk
 
The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the TweetsChris Aniszczyk
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Chris Aniszczyk
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter StackChris Aniszczyk
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at TwitterChris Aniszczyk
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at TwitterChris Aniszczyk
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonChris Aniszczyk
 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with EclipseChris Aniszczyk
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open SourceChris Aniszczyk
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseChris Aniszczyk
 

More from Chris Aniszczyk (20)

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux Foundation
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative Update
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source Programs
 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 months
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open Source
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for Students
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter Stack
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at Twitter
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with Eclipse
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
 
SWTBot Tutorial
SWTBot TutorialSWTBot Tutorial
SWTBot Tutorial
 

Recently uploaded

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 

Recently uploaded (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 

OSGi For Eclipse Developers

  • 1. OSGi for Eclipse Developers Chris Aniszczyk (EclipseSource) zx@eclipsesource.com http://twitter.com/caniszczyk Bernd Kolb (SAP) bernd.kolb@sap.com http://twitter.com/berndkolb Martin Lippert (it-agile) lippert@acm.org © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 2. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 3. Introduction • OSGi Alliance Worldwide consortium of technology innovators that advances o OSGi technology • OSGi Technology Set of specifications that define a dynamic component system for o Java OSGi is a lot more than Eclipse • Many Eclipse developers oblivious to OSGi topics • How about starting with a history lesson? © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 4. A Blast from the Past... • Eclipse had it's own non-standard plug-in model • OSGi and old Eclipse plug-in model were similar © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 5. Eclipse + OSGi FTW • Eclipse went to OSGi in 3.0 with Equinox* The transition went “smoothly” o *http://portal.acm.org/citation.cfm?id=1086616 © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 6. © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 7. Eclipse folks Plug-In © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 8. Eclipse OSGi folks guys Bundle Plug-In © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 9. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 10. Frameworks • There’s a world outside of Eclipse and Equinox © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 11. Be aware of special headers… • Forget about: Eclipse-BuddyPolicy o Eclipse-PatchFragment o Eclipse-SourceBundle o Eclipse-… o Otherwise you are tied to Equinox • Tip: PAX Runner to test against multiple frameworks http://wiki.ops4j.org/display/ops4j/Pax+Runner o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 12. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 13. The Alien called “Import-Package” • Eclipse Dependencies are declared using Require-Bundle o Never heard of Import-Package, sounds strange o Plug-in • OSGi Uuuha, no, please don’t use Require-Bundle at all o o Instead, define dependencies using Import-Package Bundle © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 14. What is the difference? • Require-Bundle Imports all exported packages of the bundle, including re- o exported and split bundle packages p-1.0.1 p-1.0.1 q-1.0 q-1.0 t u Require Bundle • Import-Package Import just the package you need o p-1.0 p-1.0.1 q-1.0 q-1.0 t u Import Package © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 15. When to use what? • Prefer using Import-Package Lighter coupling between bundles o Less visibilities o Eases refactoring p-1.0.1 o p-1.0 q-1.0 t u q-1.0 • Require-Bundle, when necessary Higher coupling between bundles o Use only for very specific situations: o  split packages (same package in different bundles) © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 16. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 17. Bundles are dynamic? You're kidding… © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 18. Dynamics with OSGi • OSGi allows you to manage bundles at runtime Install o Update o Uninstall o • But there is no magic behind the scenes nothing is changed automatically o objects stay the same o references remain valid o • This means you need to cleanup after yourself so the GC can help you! © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 19. Updating a bundle at runtime means... • Dependent bundles (with wires to the updated bundle via Require-Bundle or Import-Package) are stopped and re-started • The consequence: updating a bundle might cause the system to “restart” o this is not what I associate with “cool dynamics” o  When programming anticipate OSGi’s dynamics © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 20. Think about dependencies • Less is more! Less dependencies o Dependency Inversion Principle (DIP) o • Think more about APIs API in separate bundle o depend only on API bundle o implementation can change o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 21. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 22. Versioning Guidelines • Bundle-Version: 3.4.2.qualifier  3 - major version  4 - minor version  2 - micro version • From the OSGi specification... • Eclipse Versioning Guidelines  http://wiki.eclipse.org/Version_Numbering © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 23. Versioning Bundles • On Bundle level Each Bundle has a version o You should set a version range when using require-bundle o • On Package level Packages should also have a version when exported o o Remember: Import-Package o Package imports should have version ranges as well! • Summary Version everything! o A version isn’t a marketing number! o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 24. Versioning Tools • PDE API Tools  http://www.eclipse.org/pde/pde-api-tools/ • Assists with the mechanics of API evolution Binary compatibility (breaking) issues  API leaks  API freeze issues  Suggestions bundle versions  Runs headless and in your workspace  © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 25. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 26. OSGi Services – another alien… • Services? SOA? Oh no... please no buzzwords!!! • Something like Extension Points? • Hey, wait! o OSGi Services are the key feature to build modular and dynamic apps © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 27. OSGi Services – your best friend OSGi Service providers: OSGi Service consumers: implement an interface and register lookup a service via the interface an implementation © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 28. Versioned Contracts • the service interface is the contract many consumers possible o many producers possible o • this contract is versioned multiple versions of service might be available o you get only those that matches your dependencies o You cannot get that with extension points singleton bundles − You always get the latest version − © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 29. “You come and go” • A bundle is started: services are registered o and available from that on o • A bundle is stopped: services are unregistered o no longer available o • OSGi services are dynamic by definition! + dozens of techniques to deal with these dynamics o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 30. Life Cycle Differences • Services are bound to the ACTIVE state • Extensions are available in RESOLVED state © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 31. Declarative and lazy • OSGi services are bound to the active state they need class loading to happen o they need objects to be created o • There are declarative approaches for OSGi services OSGi Declarative Services o OSGi Blueprint o Spring Dynamic Modules o iPOJO o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 32. When to use what? • OSGi Services: Dependencies between bundles o Dynamics o Looser coupling o quot;I provide a service for anybody out therequot; o quot;I need a service and don't care who delivers itquot; o • Extension-Registry: UI contributions (too small for OSGi services) o Non-code contributions o quot;I open up myself for extensions that I don't know upfrontquot; o If you have tons of thousand of extensions o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 33. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 34. Compendium Services • OSGi has spec’d 20+ services • LogService • EventAdmin • HttpService • Declarative Services • Configuration Admin © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 35. LogService • A general purpose message logger (20kb) • LogService Log message, level, exception, service ref, bundle o • LogReaderService Retrieve current or previous log entries o • Note: ExtendedLogService (bug 260672) named loggers o extended log entry (e.g., thread id) o filters for log listeners o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 36. EventAdmin • An inter-bundle pub-sub system (30kb) • EventAdmin publish events synchronously and asynchronously o  postEvent(new Event(quot;com/acme/timerquot;, time ));  sendEvent(new Event(quot;com/acme/timerquot;, time )); • EventHandler handle events based on topics o  handleEvent(Event event) • Event has topic and properties as attributes o © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 37. HttpService • A way to register servlets and resources • HttpService Register servlets and resources o • Http Registry (org.eclipse.equinox.http.registry) © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 38. Declarative Services • A declarative model for publishing, finding and binding to OSGi services (150kb) • ServiceTracker's – the programmatic way to get a service – suck © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 39. Declarative Services Tooling Graphical Editor • Validation • Source Editing • © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 40. ConfigAdmin • A service to configure components (bundles) o A configuration is a list of key-value pairs • The configuration admin service persists and distributes these configurations to interested parties • Components to be configured register a ManagedService • To apply several configurations of the same kind you could use a ManagedServiceFactory © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 41. Overview • Introduction • Topics Frameworks o Import-Package vs. Require-Bundle o Dynamic Bundles o Versioning o Extensions and Services o Compendium Services o OSGi Tooling o • Conclusion © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 42. PDE • Eclipse has been tooling OSGi forever with PDE Plug-ins == Bundles! Blugins? o • PDE Tools: Bundles o Fragments o Declarative Services o • New Plug-in Project wizard has OSGi love © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 43. BND • Bundle Tool (BND) creates and diagnoses OSGi bundles o Maven, Eclipse and Ant integration o http://www.aqute.biz/Code/Bnd o • Relies on specification (.bnd file) + classpath • Generates bundle artifacts like manifests • Useful for converting third party libs to bundles © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 44. Sigil • Provides OSGi Tooling • http://sigil.codecauldron.org/ • driven by sigil.properties file • BND used under the covers • bundles fetched from repositories  based on your Import-Package statements © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 45. © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009
  • 46. Thank you for your attention! • Questions and feedback welcome! C. Aniszczyk zx@eclipsesource.com http://twitter.com/caniszczyk B. Kolb bernd.kolb@sap.com http://twitter.com/berndkolb M. Lippert (it-agile) lippert@acm.org © 2009 by C. Aniszczyk, B. Kolb | OSGi for Eclipse Developers | April 23rd, 2009

Editor's Notes