OSGi Devcon 2009 Keynote

128
Europe vrijdag 26 juni 2009

description

The OSGi DevCon 2009 keynote presentation

Transcript of OSGi Devcon 2009 Keynote

Page 1: OSGi Devcon 2009 Keynote

Europe

vrijdag 26 juni 2009

Page 2: OSGi Devcon 2009 Keynote

vrijdag 26 juni 2009

Page 3: OSGi Devcon 2009 Keynote

OSGi Next

Peter KriensOSGi Evangelist

Europe

vrijdag 26 juni 2009

Page 4: OSGi Devcon 2009 Keynote

OSGi Service PlatformCore Specification

vrijdag 26 juni 2009

Page 5: OSGi Devcon 2009 Keynote

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

Page 6: OSGi Devcon 2009 Keynote

Legend

vrijdag 26 juni 2009

Page 7: OSGi Devcon 2009 Keynote

Legend

BundleA

BundleB

vrijdag 26 juni 2009

Page 8: OSGi Devcon 2009 Keynote

Legend

BundleA

BundleB

Service

vrijdag 26 juni 2009

Page 9: OSGi Devcon 2009 Keynote

Legend

BundleA

BundleB

Service

getService

registerService

vrijdag 26 juni 2009

Page 10: OSGi Devcon 2009 Keynote

Legend

BundleA

BundleB

Service

getService

BundleC

registerService

vrijdag 26 juni 2009

Page 11: OSGi Devcon 2009 Keynote

Legend

BundleA

BundleB

Service

getService

BundleC

registerService

addServiceListener

vrijdag 26 juni 2009

Page 12: OSGi Devcon 2009 Keynote

Legend

BundleA

BundleB

Service

getService

BundleC

registerService

Call/DependencyDirection addServiceListener

vrijdag 26 juni 2009

Page 13: OSGi Devcon 2009 Keynote

Core

• Launching

• Bundle Tracker

• Bundle-License Header

• Service Hooks

• Negative Permissions

vrijdag 26 juni 2009

Page 14: OSGi Devcon 2009 Keynote

Launching

• To be inside a framework …

• Or outside a framework ...

• That’s the question!

vrijdag 26 juni 2009

Page 15: OSGi Devcon 2009 Keynote

Launching

• Standardizes launching different frameworks

• Will enable generic launchers

• Allows you to embed a framework in your application!

vrijdag 26 juni 2009

Page 16: OSGi Devcon 2009 Keynote

LaunchingMap<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

Page 17: OSGi Devcon 2009 Keynote

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

Page 18: OSGi Devcon 2009 Keynote

Service Hooks

• FindHook

• Intercept getServiceReference(s)

• EventHook

• Intercept Service Event delivery

• ListenerHook

• Find out who is listening to what

vrijdag 26 juni 2009

Page 19: OSGi Devcon 2009 Keynote

Service HooksBundle

A

BundleB

vrijdag 26 juni 2009

Page 20: OSGi Devcon 2009 Keynote

Service HooksBundle

A

BundleB

ProxyBundle

vrijdag 26 juni 2009

Page 21: OSGi Devcon 2009 Keynote

Service HooksBundle

A

BundleB

FindHookEventHook

ProxyBundle

vrijdag 26 juni 2009

Page 22: OSGi Devcon 2009 Keynote

Service HooksBundle

A

BundleB

FindHookEventHook

ProxyBundle

vrijdag 26 juni 2009

Page 23: OSGi Devcon 2009 Keynote

Service HooksBundle

A

BundleB

FindHookEventHook

ProxyBundle

ListenerHook

vrijdag 26 juni 2009

Page 24: OSGi Devcon 2009 Keynote

Service HooksBundle

A

BundleB

FindHookEventHook

ProxyBundle

ListenerHook

vrijdag 26 juni 2009

Page 25: OSGi Devcon 2009 Keynote

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

Page 26: OSGi Devcon 2009 Keynote

Negative Permissions

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

vrijdag 26 juni 2009

Page 27: OSGi Devcon 2009 Keynote

Compendium

• Initial Provisioning

• Bundle Tracker

• Declarative Services

• Remote Services

• Blueprint Extender

vrijdag 26 juni 2009

Page 28: OSGi Devcon 2009 Keynote

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

Page 29: OSGi Devcon 2009 Keynote

Remote Services

DistributionProvider

DistributionProvider

X’

BundleB

vrijdag 26 juni 2009

Page 30: OSGi Devcon 2009 Keynote

Remote Services

XDistribution

ProviderDistribution

Provider

X’

BundleB

vrijdag 26 juni 2009

Page 31: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

vrijdag 26 juni 2009

Page 32: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

vrijdag 26 juni 2009

Page 33: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

vrijdag 26 juni 2009

Page 34: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports

vrijdag 26 juni 2009

Page 35: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports

vrijdag 26 juni 2009

Page 36: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports

vrijdag 26 juni 2009

Page 37: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports

vrijdag 26 juni 2009

Page 38: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports imports

vrijdag 26 juni 2009

Page 39: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports imports

vrijdag 26 juni 2009

Page 40: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports imports

vrijdag 26 juni 2009

Page 41: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports imports

vrijdag 26 juni 2009

Page 42: OSGi Devcon 2009 Keynote

Remote ServicesBundle

A

XDistribution

ProviderDistribution

Provider

X’

BundleB

exports imports

Framework 1 Framework 2

vrijdag 26 juni 2009

Page 43: OSGi Devcon 2009 Keynote

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

Page 44: OSGi Devcon 2009 Keynote

Service Properties<other properties>

service.exported.intents

service.intents

service.exported.intents.extra

service.exported.interfaces

service.exported.configs

<other properties>

service.exported.intents

objectClass

service.imported.configs

service.imported

remote.intents.supported

remote.configs.supported

Distribution Provider

Framework 1 Framework 2

vrijdag 26 juni 2009

Page 45: OSGi Devcon 2009 Keynote

Service Properties<other properties>

service.exported.intents

service.intents

service.exported.intents.extra

service.exported.interfaces

service.exported.configs

<other properties>

service.exported.intents

objectClass

service.imported.configs

service.imported

remote.intents.supported

remote.configs.supported

Distribution Provider

Framework 1 Framework 2

vrijdag 26 juni 2009

Page 46: OSGi Devcon 2009 Keynote

Service Properties<other properties>

service.exported.intents

service.intents

service.exported.intents.extra

service.exported.interfaces

service.exported.configs

<other properties>

service.exported.intents

objectClass

service.imported.configs

service.imported

remote.intents.supported

remote.configs.supported

Distribution Provider

Framework 1 Framework 2

endpoint

vrijdag 26 juni 2009

Page 47: OSGi Devcon 2009 Keynote

Service Properties<other properties>

service.exported.intents

service.intents

service.exported.intents.extra

service.exported.interfaces

service.exported.configs

<other properties>

service.exported.intents

objectClass

service.imported.configs

service.imported

remote.intents.supported

remote.configs.supported

Distribution Provider

Framework 1 Framework 2

endpoint

vrijdag 26 juni 2009

Page 48: OSGi Devcon 2009 Keynote

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

Page 49: OSGi Devcon 2009 Keynote

Blueprint Extender

XML

vrijdag 26 juni 2009

Page 50: OSGi Devcon 2009 Keynote

Blueprint Extender

XMLBlueprintContainer

vrijdag 26 juni 2009

Page 51: OSGi Devcon 2009 Keynote

Blueprint Extender

XMLBlueprintContainer

vrijdag 26 juni 2009

Page 52: OSGi Devcon 2009 Keynote

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

vrijdag 26 juni 2009

Page 53: OSGi Devcon 2009 Keynote

BeanBeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

vrijdag 26 juni 2009

Page 54: OSGi Devcon 2009 Keynote

Bean

Service

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

vrijdag 26 juni 2009

Page 55: OSGi Devcon 2009 Keynote

Bean

Service

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

Reference

vrijdag 26 juni 2009

Page 56: OSGi Devcon 2009 Keynote

Bean

Service

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

Reference

vrijdag 26 juni 2009

Page 57: OSGi Devcon 2009 Keynote

Bean

Service

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

Reference

vrijdag 26 juni 2009

Page 58: OSGi Devcon 2009 Keynote

Bean

Service

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

Reference

vrijdag 26 juni 2009

Page 59: OSGi Devcon 2009 Keynote

Bean

Service

BeanMetadata

ServiceMetadata

ReferenceMetadata

Blueprint Extender

XMLBlueprintContainer

ApplicationObjects

Reference

vrijdag 26 juni 2009

Page 60: OSGi Devcon 2009 Keynote

Metadata

NonNull

Metadata

Null

Metadata

Component

Metadata

Service

Metadata

Service

Reference

Metadata

Bean

Metadata

Value

Metadata

Collection

Metadata

Map

Metadata

Bean

Argument

Bean

Property

ListenerRegistration

Listener

IdRef

Metadata

Ref

Metadata

Target

Props

Metadata

Reference

Metadata

Ref

Collection

Metadata

Map

Entry

vrijdag 26 juni 2009

Page 61: OSGi Devcon 2009 Keynote

Damping Reference

serviceobjectApp proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 62: OSGi Devcon 2009 Keynote

Damping Reference

serviceobjectApp proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 63: OSGi Devcon 2009 Keynote

Damping Reference

serviceobjectApp proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 64: OSGi Devcon 2009 Keynote

Damping Reference

serviceobjectApp proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 65: OSGi Devcon 2009 Keynote

Damping Reference

serviceobjectApp proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 66: OSGi Devcon 2009 Keynote

Damping Reference

serviceobjectApp proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 67: OSGi Devcon 2009 Keynote

Damping Reference

App proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 68: OSGi Devcon 2009 Keynote

Damping Reference

App proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 69: OSGi Devcon 2009 Keynote

Damping Reference

App proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 70: OSGi Devcon 2009 Keynote

Damping Reference

App proxy

serviceobject

serviceobject

vrijdag 26 juni 2009

Page 71: OSGi Devcon 2009 Keynote

Damping Ref-list

serviceobjectApp proxy

serviceobject

serviceobject

List

proxy

proxy

vrijdag 26 juni 2009

Page 72: OSGi Devcon 2009 Keynote

Enterprise

• Transactions

• JDBC Database Access

• JMX

• JNDI

• JPA

• Connectors

vrijdag 26 juni 2009

Page 73: OSGi Devcon 2009 Keynote

Experimental

• TSL

• Nested Frameworks

• OBR

vrijdag 26 juni 2009

Page 74: OSGi Devcon 2009 Keynote

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

Page 75: OSGi Devcon 2009 Keynote

TSLTelnetShell

ConsoleShell

...Shell

OSGiConvert.

EclipseConvert.

FelixConvert.

BasicCmnds

FrameWorkCmnds

ThreadIO

ThreadIO

CommandShell

Converter

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

...Cmnds

TSLImpl

vrijdag 26 juni 2009

Page 76: OSGi Devcon 2009 Keynote

TSL $ echo Hello World Hello World $ echo <bundle 1> initial@reference:file:org.eclipse.osgi.util_3.1.200.v20070605.jar/ [1]

$ ls eclipse eclipse.ini load runner

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

vrijdag 26 juni 2009

Page 77: OSGi Devcon 2009 Keynote

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

Page 78: OSGi Devcon 2009 Keynote

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

Page 79: OSGi Devcon 2009 Keynote

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

Page 80: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

SystemBundle

vrijdag 26 juni 2009

Page 81: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

SystemBundle

CompositeBundle

vrijdag 26 juni 2009

Page 82: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle

CompositeBundle

vrijdag 26 juni 2009

Page 83: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

CompositeBundle

vrijdag 26 juni 2009

Page 84: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

vrijdag 26 juni 2009

Page 85: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

vrijdag 26 juni 2009

Page 86: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

vrijdag 26 juni 2009

Page 87: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

vrijdag 26 juni 2009

Page 88: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

vrijdag 26 juni 2009

Page 89: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

AppBundle

B

vrijdag 26 juni 2009

Page 90: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

AppBundle

B

vrijdag 26 juni 2009

Page 91: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

AppBundle

B

vrijdag 26 juni 2009

Page 92: OSGi Devcon 2009 Keynote

Framework P

Nested Frameworks

Framework CSystemBundle System

Bundle

SurrogateBundle

CompositeBundle

AppBundle

A

AppBundle

B

vrijdag 26 juni 2009

Page 93: OSGi Devcon 2009 Keynote

Java Modularity

vrijdag 26 juni 2009

Page 94: OSGi Devcon 2009 Keynote

Java Modularity

294vrijdag 26 juni 2009

Page 95: OSGi Devcon 2009 Keynote

Java Modularity

2947

vrijdag 26 juni 2009

Page 96: OSGi Devcon 2009 Keynote

Java Modularity

42vrijdag 26 juni 2009

Page 97: OSGi Devcon 2009 Keynote

Java Modularity

vrijdag 26 juni 2009

Page 98: OSGi Devcon 2009 Keynote

Java Modularity

vrijdag 26 juni 2009

Page 99: OSGi Devcon 2009 Keynote

Java Modularity

vrijdag 26 juni 2009

Page 100: OSGi Devcon 2009 Keynote

Java Modularity

vrijdag 26 juni 2009

Page 101: OSGi Devcon 2009 Keynote

Java Modularity

vrijdag 26 juni 2009

Page 102: OSGi Devcon 2009 Keynote

Java Modularity

module

vrijdag 26 juni 2009

Page 103: OSGi Devcon 2009 Keynote

Java Modularity

module class Foo {}

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

module interface Baz {}

vrijdag 26 juni 2009

Page 104: OSGi Devcon 2009 Keynote

Java Modularity

Visibilityvs

Accessibility

vrijdag 26 juni 2009

Page 105: OSGi Devcon 2009 Keynote

Visibility

ClassS

ClassT

ClassT

vrijdag 26 juni 2009

Page 106: OSGi Devcon 2009 Keynote

Visibility

ClassS

ClassT

ClassT

vrijdag 26 juni 2009

Page 107: OSGi Devcon 2009 Keynote

Visibility

ClassS

ClassT

vrijdag 26 juni 2009

Page 108: OSGi Devcon 2009 Keynote

Visibility

ClassS

ClassT

vrijdag 26 juni 2009

Page 109: OSGi Devcon 2009 Keynote

Visibility

ClassS

ClassT

vrijdag 26 juni 2009

Page 110: OSGi Devcon 2009 Keynote

Visibility

ClassS

ClassT

ModuleSystem

vrijdag 26 juni 2009

Page 111: OSGi Devcon 2009 Keynote

Accessibility

public

package

module

private

vrijdag 26 juni 2009

Page 112: OSGi Devcon 2009 Keynote

Accessibility

ClassS

vrijdag 26 juni 2009

Page 113: OSGi Devcon 2009 Keynote

class

Accessibility

ClassS

ClassT

vrijdag 26 juni 2009

Page 114: OSGi Devcon 2009 Keynote

package

class

Accessibility

ClassS

ClassT

Class U

vrijdag 26 juni 2009

Page 115: OSGi Devcon 2009 Keynote

module

package

class

Accessibility

ClassS

ClassT

Class U

ClassV

vrijdag 26 juni 2009

Page 116: OSGi Devcon 2009 Keynote

module

package

class

Accessibility

ClassS

ClassT

Class U

ClassV

vrijdag 26 juni 2009

Page 117: OSGi Devcon 2009 Keynote

module

package

class

Accessibility

ClassS

ClassT

ClassW

Class U

ClassV

vrijdag 26 juni 2009

Page 118: OSGi Devcon 2009 Keynote

Is JSR 294 aMeta Module System? (Implemented by OSGi™, Jigsaw, Guice, …)

vrijdag 26 juni 2009

Page 119: OSGi Devcon 2009 Keynote

Is JSR 294 aMeta Module System? (Implemented by OSGi™, Jigsaw, Guice, …)

No Java™ Standard for

Modules!vrijdag 26 juni 2009

Page 120: OSGi Devcon 2009 Keynote

Bundle

OSGi Modules: Bundle = Module

module

vrijdag 26 juni 2009

Page 121: OSGi Devcon 2009 Keynote

Bundle

OSGi Modules: Bundle = Multiple Modules

module A

module B

vrijdag 26 juni 2009

Page 122: OSGi Devcon 2009 Keynote

Bundle BBundle A

module

OSGi Modules: Modules Cross Bundles

vrijdag 26 juni 2009

Page 123: OSGi Devcon 2009 Keynote

Bundle

OSGi Modules: Nested?

module A

module B

vrijdag 26 juni 2009

Page 124: OSGi Devcon 2009 Keynote

Module Dependencies

Bundle A

module A

Bundle B

module B

vrijdag 26 juni 2009

Page 125: OSGi Devcon 2009 Keynote

Module Dependencies

Bundle A

module A

Bundle B

module B

requires

provides

permits

vrijdag 26 juni 2009

Page 126: OSGi Devcon 2009 Keynote

Module Dependencies

Bundle A

module A

Bundle B

module B

requires

provides

permits?vrijdag 26 juni 2009

Page 127: OSGi Devcon 2009 Keynote

vrijdag 26 juni 2009

Page 128: OSGi Devcon 2009 Keynote

Europe

vrijdag 26 juni 2009