SlideShare une entreprise Scribd logo
1  sur  128
Télécharger pour lire hors ligne
Europe


vrijdag 26 juni 2009
vrijdag 26 juni 2009
Peter Kriens
                                   OSGi Evangelist



                                           Europe




                       OSGi Next
vrijdag 26 juni 2009
OSGi Service Platform
                       Core Specification




vrijdag 26 juni 2009
Planning 4.2

                       • Core released for approval June 10
                       • Working on the final draft for
                           Compendium as we speak
                           • Compendium : July 10
                       •   Enterprise Release Autumn
                       •   Residential Release Spring 2010



vrijdag 26 juni 2009
Legend




vrijdag 26 juni 2009
Legend
                         Bundle
                           A




                         Bundle
                           B




vrijdag 26 juni 2009
Legend
                             Bundle
                               A




                       Service


                             Bundle
                               B




vrijdag 26 juni 2009
Legend
                             Bundle
                               A


                                 getService


                       Service
                                 registerService



                             Bundle
                               B




vrijdag 26 juni 2009
Legend
                             Bundle
                               A


                                 getService

                                                   Bundle
                       Service                       C
                                 registerService



                             Bundle
                               B




vrijdag 26 juni 2009
Legend
                             Bundle
                               A


                                 getService

                                                           Bundle
                       Service        addServiceListener
                                                             C
                                 registerService



                             Bundle
                               B




vrijdag 26 juni 2009
Legend
                                               Bundle
                                                 A


                                                   getService
                       Call/Dependency
                                                                             Bundle
                           Direction
                                         Service        addServiceListener
                                                                               C
                                                   registerService



                                               Bundle
                                                 B




vrijdag 26 juni 2009
Core

                       • Launching
                       • Bundle Tracker
                       • Bundle-License Header
                       • Service Hooks
                       • Negative Permissions

vrijdag 26 juni 2009
Launching

                       • To be inside a framework …
                       • Or outside a framework ...
                       • That’s the question!


vrijdag 26 juni 2009
Launching

                       • Standardizes launching different
                           frameworks
                       •   Will enable generic launchers
                       •   Allows you to embed a framework in your
                           application!




vrijdag 26 juni 2009
Launching
                       Map<String,String> p = new HashMap<String,String>();
                       List<String> impls = getMetaInfServices(
                           loader, FrameworkFactory.class.getName());
                       if (impls.size() != 1)
                             throw new RuntimeException(
                               "Too many frameworks: "+ impls);

                       Class<?> clazz = loader.loadClass(impls.get(0));
                       FrameworkFactory factory = (FrameworkFactory) clazz
                                            .newInstance();

                       Framework fw = factory.newFramework(p);
                       Bundle b = fw.installBundle( “http://.../load/…”);
                       b.start();




vrijdag 26 juni 2009
Bundle Tracker
                       • Simple tool a la Service Tracker to track
                           bundles
                       •   Very useful for extenders
                           • Bundles that provide additional
                             functionality based on data in a bundle
                       •   Tracks a set of states
                           • Handles all concurrency issues


vrijdag 26 juni 2009
Service Hooks

                       • FindHook
                        • Intercept getServiceReference(s)
                       • EventHook
                        • Intercept Service Event delivery
                       • ListenerHook
                        • Find out who is listening to what

vrijdag 26 juni 2009
Service Hooks
                            Bundle
                              A




                            Bundle
                              B


vrijdag 26 juni 2009
Service Hooks
                            Bundle
                              A




                                     Proxy
                                     Bundle




                            Bundle
                              B


vrijdag 26 juni 2009
Service Hooks
                            Bundle
                              A




                                      FindHook   Proxy
                                     EventHook   Bundle




                            Bundle
                              B


vrijdag 26 juni 2009
Service Hooks
                            Bundle
                              A




                                      FindHook   Proxy
                                     EventHook   Bundle




                            Bundle
                              B


vrijdag 26 juni 2009
Service Hooks
                            Bundle
                              A
                                                 ListenerHook




                                      FindHook    Proxy
                                     EventHook    Bundle




                            Bundle
                              B


vrijdag 26 juni 2009
Service Hooks
                            Bundle
                              A
                                                 ListenerHook




                                      FindHook    Proxy
                                     EventHook    Bundle




                            Bundle
                              B


vrijdag 26 juni 2009
Negative Permissions

                       • Java 2 Permissions are only positive
                       • That is, you grant a permission P
                        • PackagePermission(com.acme,IMPORT)
                       • Very hard to say, all permissions except P
                       • Lack of deny permissions

vrijdag 26 juni 2009
Negative Permissions

                  DENY {
                     [...BundleSignerCondition "cn=*, o=ACME" "!" ]
                     (...PackagePermission "com.acme.secret.*"
                           "import,exportonly" )
                  }
                  ALLOW {
                      (...PackagePermission "*" "*" )
                  }




vrijdag 26 juni 2009
Compendium

                       • Initial Provisioning
                       • Bundle Tracker
                       • Declarative Services
                       • Remote Services
                       • Blueprint Extender

vrijdag 26 juni 2009
Remote Services

                       • RFC 119
                       • Formerly Distributed OSGi
                       • Distribution Software uses services to:
                        • Maps a service to/from a remote system
                        • Uses a service to abstract a
                           communication endpoint



vrijdag 26 juni 2009
Remote Services


                          Distribution   Distribution
                           Provider       Provider



                                                         X’



                                                        Bundle
                                                          B



vrijdag 26 juni 2009
Remote Services


                              Distribution   Distribution
                       X       Provider       Provider



                                                             X’



                                                            Bundle
                                                              B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider



                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider



                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider



                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



vrijdag 26 juni 2009
Remote Services
                       Bundle
                         A



                                  Distribution   Distribution
                         X         Provider       Provider


                                    exports       imports
                                                                 X’



                                                                Bundle
                                                                  B
                                Framework 1       Framework 2

vrijdag 26 juni 2009
Remote Services
                       • Service Properties define the interaction
                       • Intents specify the required/provided
                           capabilities
                           • Filters used to match
                       •   Service Component Architecture (SCA)
                           • Interaction specified, not mandated
                       •   Flexible configuration options


vrijdag 26 juni 2009
Service Properties
                                                  Distribution Provider
                             <other properties>                           <other properties>

                       service.exported.intents

                                service.intents                           service.exported.intents

         service.exported.intents.extra                                   service.imported

              service.exported.interfaces                                 objectClass

                       service.exported.configs                           service.imported.configs




                          remote.intents.supported
                          remote.configs.supported



                          Framework 1                                            Framework 2


vrijdag 26 juni 2009
Service Properties
                                                  Distribution Provider
                             <other properties>                           <other properties>

                       service.exported.intents

                                service.intents                           service.exported.intents

         service.exported.intents.extra                                   service.imported

              service.exported.interfaces                                 objectClass

                       service.exported.configs                           service.imported.configs




                          remote.intents.supported
                          remote.configs.supported



                          Framework 1                                            Framework 2


vrijdag 26 juni 2009
Service Properties
                                                  Distribution Provider
                             <other properties>                           <other properties>

                       service.exported.intents

                                service.intents                           service.exported.intents

         service.exported.intents.extra                                   service.imported

              service.exported.interfaces                                 objectClass

                       service.exported.configs                           service.imported.configs



                                                       endpoint


                          remote.intents.supported
                          remote.configs.supported



                          Framework 1                                            Framework 2


vrijdag 26 juni 2009
Service Properties
                                                  Distribution Provider
                             <other properties>                           <other properties>

                       service.exported.intents

                                service.intents                           service.exported.intents

         service.exported.intents.extra                                   service.imported

              service.exported.interfaces                                 objectClass

                       service.exported.configs                           service.imported.configs



                                                       endpoint


                          remote.intents.supported
                          remote.configs.supported



                          Framework 1                                            Framework 2


vrijdag 26 juni 2009
Blueprint Extender
                       • RFC 124
                       • Provides Spring DM Functionality
                       • Blueprint Extender uses XML definitions in
                           bundle to create & wire application objects
                       •   Namespace Handler services, not yet :-(
                       •   Provides damping
                           • Proxies services


vrijdag 26 juni 2009
Blueprint Extender


        XML




vrijdag 26 juni 2009
Blueprint Extender


                             Blueprint
        XML
                             Container




vrijdag 26 juni 2009
Blueprint Extender


                             Blueprint
        XML
                             Container




vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata

                         ServiceMetadata

                             Reference
                             Metadata


vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata

                             Reference
                             Metadata


vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata


vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


vrijdag 26 juni 2009
Blueprint Extender


                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


vrijdag 26 juni 2009
Blueprint Extender
                                                                             Application
                                                                              Objects




                                           Blueprint
        XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


vrijdag 26 juni 2009
Metadata




                         Null                   NonNull                                    Props
                       Metadata                 Metadata                                  Metadata




                        IdRef        Value      Component          Collection               Map
                       Metadata     Metadata     Metadata          Metadata               Metadata




                         Ref                                                                Map
                       Metadata                                                             Entry




                        Service
                                                                        Bean              Service
                       Reference                  Target
                                                                       Metadata           Metadata
                       Metadata




                          Ref
                                    Reference                Bean               Bean
                       Collection
                                    Metadata                Property          Argument
                       Metadata




                                                                                         Registration
                       Listener
                                                                                          Listener




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




vrijdag 26 juni 2009
Damping Ref-list

                                                service
                                      proxy     object


                                                service
                       App     List   proxy     object


                                                service
                                      proxy     object




vrijdag 26 juni 2009
Enterprise

                       • Transactions
                       • JDBC Database Access
                       • JMX
                       • JNDI
                       • JPA
                       • Connectors

vrijdag 26 juni 2009
Experimental


                       • TSL
                       • Nested Frameworks
                       • OBR


vrijdag 26 juni 2009
TSL

                       • A Tiny Script Language
                        • Feels like a shell
                        • Acts like a script language
                       • Uses reflection, but simplifies syntax
                        • No new commands
                       • Will become Felix project

vrijdag 26 juni 2009
TSL
                                     Telnet   Console            ...
                                      Shell    Shell            Shell


                        OSGi                            Command
                       Convert.                           Shell
                                  Converter
                                                               ThreadIO
                        Eclipse                TSL                            Thread
                       Convert.                Impl                             IO

                                                        *
                        Felix                               osgi.command.name=xxx
                       Convert.                             osgi.command.function=yyy

                                              Frame
                                      Basic                      ...
                                              Work
                                     Cmnds                     Cmnds
                                              Cmnds

vrijdag 26 juni 2009
TSL
                       $ echo Hello World
                       Hello World
                       $ echo <bundle 1>

                  initial@reference:file:org.eclipse.osgi.util_3.1.200.v200
                  70605.jar/ [1]

                       $ ls
                       eclipse
                       eclipse.ini
                       load
                       runner

                       $ ls /Ws
                       aQute
                       felix-trunk
                       osgi
                       osgi-books


vrijdag 26 juni 2009
TSL
                       $ <bundle 6> headers
                       Tool                 Bnd-0.0.169
                       Bundle-Activator     aQute.fileinstall.FileInstall
                       Export-Package        aQute.fileinstall ...
                       Created-By           1.6.0_01 (Sun Microsystems Inc.)
                       Bnd-LastModified     1184160147361
                       Bundle-Version       1.3
                       Bundle-ManifestVersion2
                       Manifest-Version     1.0
                       Import-Package     aQute.fileinstall, ...
                       Bundle-Name          biz.aQute.fileinstall
                       Bundle-Description This bundle watches a ....
                       Bundle-SymbolicName biz.aQute.fileinstall




vrijdag 26 juni 2009
TSL
                       $ help={each <<$it class> declaredmethods> {$it name }}
                       aQute.shell.runtime.Closure@90a284
                       $ help <bundle 6>
                       loadClass
                       getResource
                       ...
                       checkLoader
                       closeBundleLoader
                       getLoaderProxy

                       $ echo $exception
                       E: java.lang.NullPointerException
                       $ echo $exception
                       java.lang.NullPointerException
                       $ $exception printstacktrace
                       $ // the output is temporarily on reall stderr ...




vrijdag 26 juni 2009
Nested Frameworks
                       • Application Server Vendors want scoping of
                           applications …
                       •   Basic Idea OSGi is:
                           • The Application == the set of installed
                             bundles
                       •   Compromise:
                           • All Frameworks to be nested


vrijdag 26 juni 2009
Nested Frameworks
                       System
                       Bundle




                                    Framework P

vrijdag 26 juni 2009
Nested Frameworks
                       System
                       Bundle




                                 Composite
                                Bundle




                                             Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                             Framework C
                       System
                       Bundle




                                 Composite
                                Bundle




                                                Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                      Framework C
                       System
                       Bundle                System
                                             Bundle



                                 Composite
                                Bundle




                                                         Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                                             Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                                             Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                   App
                                  Bundle
                                    A
                                                             Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                   App
                                  Bundle
                                    A
                                                             Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                   App
                                  Bundle
                                    A
                                                             Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

vrijdag 26 juni 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

vrijdag 26 juni 2009
Java Modularity




vrijdag 26 juni 2009
Java Modularity


                         294
vrijdag 26 juni 2009
Java Modularity


                         294
vrijdag 26 juni 2009
                          7
Java Modularity



                          42
vrijdag 26 juni 2009
Java Modularity




vrijdag 26 juni 2009
Java Modularity




vrijdag 26 juni 2009
Java Modularity




vrijdag 26 juni 2009
Java Modularity




vrijdag 26 juni 2009
Java Modularity




vrijdag 26 juni 2009
Java Modularity


                       module

vrijdag 26 juni 2009
Java Modularity
                       module class Foo {}

                       public class Bar {
                         module int foo() {}
                       }

                       module interface Baz {}




vrijdag 26 juni 2009
Java Modularity

                         Visibility
                             vs
                        Accessibility

vrijdag 26 juni 2009
Visibility

                       Class                Class
                         S                   T




vrijdag 26 juni 2009
Visibility

                       Class                Class
                         S                   T




vrijdag 26 juni 2009
Visibility

                       Class                Class
                         S                   T




vrijdag 26 juni 2009
Visibility

                       Class                Class
                         S                   T




vrijdag 26 juni 2009
Visibility

                       Class                Class
                         S                   T




vrijdag 26 juni 2009
Visibility

                                  Module
                                  System
                       Class                Class
                         S                   T




vrijdag 26 juni 2009
Accessibility

                            public

                           module

                           package

                           private




vrijdag 26 juni 2009
Accessibility


                            Class
                              S




vrijdag 26 juni 2009
Accessibility


                            Class           Class
                              S              T

                                    class




vrijdag 26 juni 2009
Accessibility


                            Class           Class
                              S              T

                                    class



                            Class
                             U
                                            package



vrijdag 26 juni 2009
Accessibility
                                              module
                            Class
                             V




                            Class           Class
                              S              T

                                    class



                            Class
                             U
                                            package



vrijdag 26 juni 2009
Accessibility
                                              module
                            Class
                             V




                            Class           Class
                              S              T

                                    class



                            Class
                             U
                                            package



vrijdag 26 juni 2009
Accessibility
                                                 module
                               Class
                                V




                       Class   Class           Class
                        W        S              T

                                       class



                               Class
                                U
                                               package



vrijdag 26 juni 2009
Is JSR 294 a
  Meta Module System?
     (Implemented by OSGi™, Jigsaw, Guice, …)




vrijdag 26 juni 2009
Is JSR 294 a
  Meta Module System?
     (Implemented by OSGi™, Jigsaw, Guice, …)


                        No Java™
                       Standard for
vrijdag 26 juni 2009
                         Modules!
OSGi Modules: Bundle
                            = Module
                                Bundle

                                   module




vrijdag 26 juni 2009
OSGi Modules: Bundle
                        = Multiple Modules
                                Bundle

                                 module A




                                 module B




vrijdag 26 juni 2009
OSGi Modules:
                   Modules Cross Bundles
                        Bundle A            Bundle B




                                   module




vrijdag 26 juni 2009
OSGi Modules: Nested?

                            Bundle

                           module A


                           module B




vrijdag 26 juni 2009
Module Dependencies
                           Bundle A     Bundle B

                             module A     module B




vrijdag 26 juni 2009
Module Dependencies
                           Bundle A                Bundle B

                             module A                module B
                                        requires


                                        provides


                                        permits




vrijdag 26 juni 2009
Module Dependencies




                                        ?
                           Bundle A                Bundle B

                             module A                module B
                                        requires


                                        provides


                                        permits




vrijdag 26 juni 2009
vrijdag 26 juni 2009
Europe



vrijdag 26 juni 2009

Contenu connexe

En vedette

W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafJerry Preissler
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGiPeter Kriens
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGiPeter Kriens
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGiPeter Kriens
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGiPeter Kriens
 

En vedette (6)

W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache Karaf
 
µServices
µServicesµServices
µServices
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGi
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGi
 

Dernier

A305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdfA305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdftbatkhuu1
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...lizamodels9
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMANIlamathiKannappan
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 DelhiCall Girls in Delhi
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyEthan lee
 
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...Suhani Kapoor
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsP&CO
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...Aggregage
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...amitlee9823
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insightsseri bangash
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataExhibitors Data
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Delhi Call girls
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxB.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxpriyanshujha201
 

Dernier (20)

A305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdfA305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdf
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
 
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insights
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxB.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
 

OSGi Devcon 2009 Keynote

  • 3. Peter Kriens OSGi Evangelist Europe OSGi Next vrijdag 26 juni 2009
  • 4. OSGi Service Platform Core Specification vrijdag 26 juni 2009
  • 5. Planning 4.2 • Core released for approval June 10 • Working on the final draft for Compendium as we speak • Compendium : July 10 • Enterprise Release Autumn • Residential Release Spring 2010 vrijdag 26 juni 2009
  • 7. Legend Bundle A Bundle B vrijdag 26 juni 2009
  • 8. Legend Bundle A Service Bundle B vrijdag 26 juni 2009
  • 9. Legend Bundle A getService Service registerService Bundle B vrijdag 26 juni 2009
  • 10. Legend Bundle A getService Bundle Service C registerService Bundle B vrijdag 26 juni 2009
  • 11. Legend Bundle A getService Bundle Service addServiceListener C registerService Bundle B vrijdag 26 juni 2009
  • 12. Legend Bundle A getService Call/Dependency Bundle Direction Service addServiceListener C registerService Bundle B vrijdag 26 juni 2009
  • 13. Core • Launching • Bundle Tracker • Bundle-License Header • Service Hooks • Negative Permissions vrijdag 26 juni 2009
  • 14. Launching • To be inside a framework … • Or outside a framework ... • That’s the question! vrijdag 26 juni 2009
  • 15. Launching • Standardizes launching different frameworks • Will enable generic launchers • Allows you to embed a framework in your application! vrijdag 26 juni 2009
  • 16. Launching Map<String,String> p = new HashMap<String,String>(); List<String> impls = getMetaInfServices( loader, FrameworkFactory.class.getName()); if (impls.size() != 1) throw new RuntimeException( "Too many frameworks: "+ impls); Class<?> clazz = loader.loadClass(impls.get(0)); FrameworkFactory factory = (FrameworkFactory) clazz .newInstance(); Framework fw = factory.newFramework(p); Bundle b = fw.installBundle( “http://.../load/…”); b.start(); vrijdag 26 juni 2009
  • 17. Bundle Tracker • Simple tool a la Service Tracker to track bundles • Very useful for extenders • Bundles that provide additional functionality based on data in a bundle • Tracks a set of states • Handles all concurrency issues vrijdag 26 juni 2009
  • 18. Service Hooks • FindHook • Intercept getServiceReference(s) • EventHook • Intercept Service Event delivery • ListenerHook • Find out who is listening to what vrijdag 26 juni 2009
  • 19. Service Hooks Bundle A Bundle B vrijdag 26 juni 2009
  • 20. Service Hooks Bundle A Proxy Bundle Bundle B vrijdag 26 juni 2009
  • 21. Service Hooks Bundle A FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • 22. Service Hooks Bundle A FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • 23. Service Hooks Bundle A ListenerHook FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • 24. Service Hooks Bundle A ListenerHook FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • 25. Negative Permissions • Java 2 Permissions are only positive • That is, you grant a permission P • PackagePermission(com.acme,IMPORT) • Very hard to say, all permissions except P • Lack of deny permissions vrijdag 26 juni 2009
  • 26. Negative Permissions DENY { [...BundleSignerCondition "cn=*, o=ACME" "!" ] (...PackagePermission "com.acme.secret.*" "import,exportonly" ) } ALLOW { (...PackagePermission "*" "*" ) } vrijdag 26 juni 2009
  • 27. Compendium • Initial Provisioning • Bundle Tracker • Declarative Services • Remote Services • Blueprint Extender vrijdag 26 juni 2009
  • 28. Remote Services • RFC 119 • Formerly Distributed OSGi • Distribution Software uses services to: • Maps a service to/from a remote system • Uses a service to abstract a communication endpoint vrijdag 26 juni 2009
  • 29. Remote Services Distribution Distribution Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • 30. Remote Services Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • 31. Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • 32. Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • 33. Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • 34. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • 35. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • 36. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • 37. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • 38. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • 39. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • 40. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • 41. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • 42. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B Framework 1 Framework 2 vrijdag 26 juni 2009
  • 43. Remote Services • Service Properties define the interaction • Intents specify the required/provided capabilities • Filters used to match • Service Component Architecture (SCA) • Interaction specified, not mandated • Flexible configuration options vrijdag 26 juni 2009
  • 44. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs remote.intents.supported remote.configs.supported Framework 1 Framework 2 vrijdag 26 juni 2009
  • 45. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs remote.intents.supported remote.configs.supported Framework 1 Framework 2 vrijdag 26 juni 2009
  • 46. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs endpoint remote.intents.supported remote.configs.supported Framework 1 Framework 2 vrijdag 26 juni 2009
  • 47. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs endpoint remote.intents.supported remote.configs.supported Framework 1 Framework 2 vrijdag 26 juni 2009
  • 48. Blueprint Extender • RFC 124 • Provides Spring DM Functionality • Blueprint Extender uses XML definitions in bundle to create & wire application objects • Namespace Handler services, not yet :-( • Provides damping • Proxies services vrijdag 26 juni 2009
  • 49. Blueprint Extender XML vrijdag 26 juni 2009
  • 50. Blueprint Extender Blueprint XML Container vrijdag 26 juni 2009
  • 51. Blueprint Extender Blueprint XML Container vrijdag 26 juni 2009
  • 52. Blueprint Extender Blueprint XML Container BeanMetadata ServiceMetadata Reference Metadata vrijdag 26 juni 2009
  • 53. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Reference Metadata vrijdag 26 juni 2009
  • 54. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata vrijdag 26 juni 2009
  • 55. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • 56. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • 57. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • 58. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • 59. Blueprint Extender Application Objects Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • 60. Metadata Null NonNull Props Metadata Metadata Metadata IdRef Value Component Collection Map Metadata Metadata Metadata Metadata Metadata Ref Map Metadata Entry Service Bean Service Reference Target Metadata Metadata Metadata Ref Reference Bean Bean Collection Metadata Property Argument Metadata Registration Listener Listener vrijdag 26 juni 2009
  • 61. Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • 62. Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • 63. Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • 64. Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • 65. Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • 66. Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • 67. Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • 68. Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • 69. Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • 70. Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • 71. Damping Ref-list service proxy object service App List proxy object service proxy object vrijdag 26 juni 2009
  • 72. Enterprise • Transactions • JDBC Database Access • JMX • JNDI • JPA • Connectors vrijdag 26 juni 2009
  • 73. Experimental • TSL • Nested Frameworks • OBR vrijdag 26 juni 2009
  • 74. TSL • A Tiny Script Language • Feels like a shell • Acts like a script language • Uses reflection, but simplifies syntax • No new commands • Will become Felix project vrijdag 26 juni 2009
  • 75. TSL Telnet Console ... Shell Shell Shell OSGi Command Convert. Shell Converter ThreadIO Eclipse TSL Thread Convert. Impl IO * Felix osgi.command.name=xxx Convert. osgi.command.function=yyy Frame Basic ... Work Cmnds Cmnds Cmnds vrijdag 26 juni 2009
  • 76. TSL $ echo Hello World Hello World $ echo <bundle 1> initial@reference:file:org.eclipse.osgi.util_3.1.200.v200 70605.jar/ [1] $ ls eclipse eclipse.ini load runner $ ls /Ws aQute felix-trunk osgi osgi-books vrijdag 26 juni 2009
  • 77. TSL $ <bundle 6> headers Tool Bnd-0.0.169 Bundle-Activator aQute.fileinstall.FileInstall Export-Package aQute.fileinstall ... Created-By 1.6.0_01 (Sun Microsystems Inc.) Bnd-LastModified 1184160147361 Bundle-Version 1.3 Bundle-ManifestVersion2 Manifest-Version 1.0 Import-Package aQute.fileinstall, ... Bundle-Name biz.aQute.fileinstall Bundle-Description This bundle watches a .... Bundle-SymbolicName biz.aQute.fileinstall vrijdag 26 juni 2009
  • 78. TSL $ help={each <<$it class> declaredmethods> {$it name }} aQute.shell.runtime.Closure@90a284 $ help <bundle 6> loadClass getResource ... checkLoader closeBundleLoader getLoaderProxy $ echo $exception E: java.lang.NullPointerException $ echo $exception java.lang.NullPointerException $ $exception printstacktrace $ // the output is temporarily on reall stderr ... vrijdag 26 juni 2009
  • 79. Nested Frameworks • Application Server Vendors want scoping of applications … • Basic Idea OSGi is: • The Application == the set of installed bundles • Compromise: • All Frameworks to be nested vrijdag 26 juni 2009
  • 80. Nested Frameworks System Bundle Framework P vrijdag 26 juni 2009
  • 81. Nested Frameworks System Bundle Composite Bundle Framework P vrijdag 26 juni 2009
  • 82. Nested Frameworks Framework C System Bundle Composite Bundle Framework P vrijdag 26 juni 2009
  • 83. Nested Frameworks Framework C System Bundle System Bundle Composite Bundle Framework P vrijdag 26 juni 2009
  • 84. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle Framework P vrijdag 26 juni 2009
  • 85. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle Framework P vrijdag 26 juni 2009
  • 86. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P vrijdag 26 juni 2009
  • 87. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P vrijdag 26 juni 2009
  • 88. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P vrijdag 26 juni 2009
  • 89. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • 90. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • 91. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • 92. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • 94. Java Modularity 294 vrijdag 26 juni 2009
  • 95. Java Modularity 294 vrijdag 26 juni 2009 7
  • 96. Java Modularity 42 vrijdag 26 juni 2009
  • 102. Java Modularity module vrijdag 26 juni 2009
  • 103. Java Modularity module class Foo {} public class Bar { module int foo() {} } module interface Baz {} vrijdag 26 juni 2009
  • 104. Java Modularity Visibility vs Accessibility vrijdag 26 juni 2009
  • 105. Visibility Class Class S T vrijdag 26 juni 2009
  • 106. Visibility Class Class S T vrijdag 26 juni 2009
  • 107. Visibility Class Class S T vrijdag 26 juni 2009
  • 108. Visibility Class Class S T vrijdag 26 juni 2009
  • 109. Visibility Class Class S T vrijdag 26 juni 2009
  • 110. Visibility Module System Class Class S T vrijdag 26 juni 2009
  • 111. Accessibility public module package private vrijdag 26 juni 2009
  • 112. Accessibility Class S vrijdag 26 juni 2009
  • 113. Accessibility Class Class S T class vrijdag 26 juni 2009
  • 114. Accessibility Class Class S T class Class U package vrijdag 26 juni 2009
  • 115. Accessibility module Class V Class Class S T class Class U package vrijdag 26 juni 2009
  • 116. Accessibility module Class V Class Class S T class Class U package vrijdag 26 juni 2009
  • 117. Accessibility module Class V Class Class Class W S T class Class U package vrijdag 26 juni 2009
  • 118. Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) vrijdag 26 juni 2009
  • 119. Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) No Java™ Standard for vrijdag 26 juni 2009 Modules!
  • 120. OSGi Modules: Bundle = Module Bundle module vrijdag 26 juni 2009
  • 121. OSGi Modules: Bundle = Multiple Modules Bundle module A module B vrijdag 26 juni 2009
  • 122. OSGi Modules: Modules Cross Bundles Bundle A Bundle B module vrijdag 26 juni 2009
  • 123. OSGi Modules: Nested? Bundle module A module B vrijdag 26 juni 2009
  • 124. Module Dependencies Bundle A Bundle B module A module B vrijdag 26 juni 2009
  • 125. Module Dependencies Bundle A Bundle B module A module B requires provides permits vrijdag 26 juni 2009
  • 126. Module Dependencies ? Bundle A Bundle B module A module B requires provides permits vrijdag 26 juni 2009