osgi and java modularity
DESCRIPTION
A presentation about OSGi and Java modularity given on DevCon 2009. It lays out what is wrong with Java with respect to modularity and how OSGi fixes these flaws.TRANSCRIPT
![Page 1: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/1.jpg)
OSGi &Java Modularity
Jazoon 2009, Zürich
by Peter Kriens
donderdag 25 juni 2009
![Page 2: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/2.jpg)
donderdag 25 juni 2009
![Page 3: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/3.jpg)
donderdag 25 juni 2009
![Page 4: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/4.jpg)
donderdag 25 juni 2009
![Page 5: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/5.jpg)
Prod
uctiv
ity
Application Complexity
donderdag 25 juni 2009
![Page 6: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/6.jpg)
Prod
uctiv
ity
Application Complexity
Assembly
donderdag 25 juni 2009
![Page 7: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/7.jpg)
Prod
uctiv
ity
Application Complexity
Assembly
Structured Programming
donderdag 25 juni 2009
![Page 8: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/8.jpg)
Prod
uctiv
ity
Application Complexity
Assembly
Structured Programming
Object Oriented Programming
donderdag 25 juni 2009
![Page 9: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/9.jpg)
Prod
uctiv
ity
Application Complexity
Assembly
Structured Programming
Object Oriented Programming
Service Oriented Programming?
donderdag 25 juni 2009
![Page 10: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/10.jpg)
donderdag 25 juni 2009
![Page 11: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/11.jpg)
Application
donderdag 25 juni 2009
![Page 12: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/12.jpg)
Application
Extensions
Application
Foundation
Java VM
Basic
Convenience
Something
Core
donderdag 25 juni 2009
![Page 13: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/13.jpg)
Application
Extensions
Application
Foundation
Java VM
Basic
Convenience
Something
CoreJava VM
log4j barcode4j axis batik commons
derbyfopezmorphfreemarkerhttpunit
jakarta jcl json jdbm jdom
jenks jpos18 jython looks lucene
mail mx4j naming jetty poi
resolver rome serializer servlets tomcat
velocity
ws-commons
xalan
wsdl4j
xerces
xmlgraphics
xmlrpc
xmlapis
..
geronimo
bsh
bsf
guiapp hhfacility manufact. marketing minerva
accounting assetmaint
base
bi
catalinacommon
oagis order
ebaycontent
datafile
ecommerce
entity
googlebase
Application layer
widget
minilang party pos. product workeffort workflow …
sunjce_prov.pluginjssejcert dnsns ..
…
Libs
donderdag 25 juni 2009
![Page 14: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/14.jpg)
Application
Extensions
Application
Foundation
Java VM
Basic
Convenience
Something
CoreJava VM
log4j barcode4j axis batik commons
derbyfopezmorphfreemarkerhttpunit
jakarta jcl json jdbm jdom
jenks jpos18 jython looks lucene
mail mx4j naming jetty poi
resolver rome serializer servlets tomcat
velocity
ws-commons
xalan
wsdl4j
xerces
xmlgraphics
xmlrpc
xmlapis
..
geronimo
bsh
bsf
guiapp hhfacility manufact. marketing minerva
accounting assetmaint
base
bi
catalinacommon
oagis order
ebaycontent
datafile
ecommerce
entity
googlebase
Application layer
widget
minilang party pos. product workeffort workflow …
sunjce_prov.pluginjssejcert dnsns ..
…
Libs
donderdag 25 juni 2009
![Page 15: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/15.jpg)
by Damoiselle de Pique
donderdag 25 juni 2009
![Page 16: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/16.jpg)
by Damoiselle de Pique
Was Pollock an Early OOProgrammer?
donderdag 25 juni 2009
![Page 17: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/17.jpg)
donderdag 25 juni 2009
![Page 18: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/18.jpg)
modularity
donderdag 25 juni 2009
![Page 19: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/19.jpg)
donderdag 25 juni 2009
![Page 20: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/20.jpg)
donderdag 25 juni 2009
![Page 21: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/21.jpg)
donderdag 25 juni 2009
![Page 22: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/22.jpg)
donderdag 25 juni 2009
![Page 23: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/23.jpg)
donderdag 25 juni 2009
![Page 24: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/24.jpg)
low coupling,
donderdag 25 juni 2009
![Page 25: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/25.jpg)
low coupling,high cohesion &
donderdag 25 juni 2009
![Page 26: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/26.jpg)
low coupling,
encapsulationhigh cohesion &
donderdag 25 juni 2009
![Page 27: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/27.jpg)
donderdag 25 juni 2009
![Page 28: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/28.jpg)
How Do WeHandle ThisComplexity
in Java?
donderdag 25 juni 2009
![Page 29: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/29.jpg)
donderdag 25 juni 2009
![Page 30: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/30.jpg)
Visibilityvs
Accessibility
donderdag 25 juni 2009
![Page 31: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/31.jpg)
Visibility
ClassS
ClassT
ClassT
donderdag 25 juni 2009
![Page 32: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/32.jpg)
Visibility
ClassS
ClassT
ClassT
donderdag 25 juni 2009
![Page 33: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/33.jpg)
Visibility
ClassS
ClassT
donderdag 25 juni 2009
![Page 34: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/34.jpg)
Visibility
ClassS
ClassT
donderdag 25 juni 2009
![Page 35: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/35.jpg)
Visibility
ClassS
ClassT
ModuleSystem
donderdag 25 juni 2009
![Page 36: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/36.jpg)
Hierarchical Class Loaders
ext
app app
cust
boot
donderdag 25 juni 2009
![Page 37: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/37.jpg)
Hierarchical Class Loaders
ext
app app
custvisibility
boot
donderdag 25 juni 2009
![Page 38: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/38.jpg)
Context Class Loaders
ext
boot
app app
cust
X {}
Y {}
donderdag 25 juni 2009
![Page 39: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/39.jpg)
Context Class Loaders
ext
boot
app app
cust
X {}
Y {}
Thread -> ContextClassLoader
donderdag 25 juni 2009
![Page 40: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/40.jpg)
Context Class Loaders
ext
boot
app app
cust
X {}
Y {}
Thread -> ContextClassLoader
donderdag 25 juni 2009
![Page 41: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/41.jpg)
Accessibility
public
package
module
private
donderdag 25 juni 2009
![Page 42: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/42.jpg)
module
package
class
Accessibility
ClassS
ClassT
ClassW
Class U
ClassV
donderdag 25 juni 2009
![Page 43: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/43.jpg)
Java VM
log4j
barcode4j
axis
batik
commons
derby
fop
ezmorph
freemarker
httpunit
jakarta
jcl
json
jdbm
jdom
jenks
jpos18
jython
looks
lucene
mx4j
naming
jetty
poi
resolver
rome
serializer
servlets
tomcat
velocity
ws-commons
xalan
wsdl4j
xerces
xmlgraphics
xmlrpc
xmlapis
..
geronimo
bsh
bsf
guiapp
hhfacility
manufact.
marketing
minerva
accounting
assetmaint
base
bi
catalina
common
oagis
order
ebay
content
datafile
ecommerce
entity
googlebase
ofbiz
widget
minilang
party
pos.
product
workeffort
workflow
…
sunjce_prov.
plugin
jsse
jce
rt
dnsns
..
…
BeginHere
donderdag 25 juni 2009
![Page 44: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/44.jpg)
Java VM
log4j
barcode4j
axis
batik
commons
derby
fop
ezmorph
freemarker
httpunit
jakarta
jcl
json
jdbm
jdom
jenks
jpos18
jython
looks
lucene
mx4j
naming
jetty
poi
resolver
rome
serializer
servlets
tomcat
velocity
ws-commons
xalan
wsdl4j
xerces
xmlgraphics
xmlrpc
xmlapis
..
geronimo
bsh
bsf
guiapp
hhfacility
manufact.
marketing
minerva
accounting
assetmaint
base
bi
catalina
common
oagis
order
ebay
content
datafile
ecommerce
entity
googlebase
ofbiz
widget
minilang
party
pos.
product
workeffort
workflow
…
sunjce_prov.
plugin
jsse
jce
rt
dnsns
..
…
ClassNot
FoundException
BeginHere
donderdag 25 juni 2009
![Page 45: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/45.jpg)
import exportprivate
A
B
C
JARs
2
Split Packages
donderdag 25 juni 2009
![Page 46: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/46.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
import exportprivate
A
B
C
JARs
package com.foo: X, Y, Z
2
Split Packages
donderdag 25 juni 2009
![Page 47: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/47.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
import exportprivate
A
B
C
JARs
package com.foo: X, Y, Z
2
Split Packages
donderdag 25 juni 2009
![Page 48: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/48.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
import exportprivate
A
B
C
JARs
package com.foo: X, Y, Z
2
Split Packages
donderdag 25 juni 2009
![Page 49: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/49.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
2package com.foo: X, Z
import exportprivate
A
B
C
JARs
Versioning
donderdag 25 juni 2009
![Page 50: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/50.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
2
package com.bar: A,B,C;2.0
package com.bar: A,B,C;1.0
package com.bar: A;2.0
package com.foo: X, Z
import exportprivate
A
B
C
JARs
Versioning
donderdag 25 juni 2009
![Page 51: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/51.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
2
package com.bar: A,B,C;2.0
package com.bar: A,B,C;1.0
package com.bar: A;2.0
package com.foo: X, Z
import exportprivate
A
B
C
JARs
Versioning
donderdag 25 juni 2009
![Page 52: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/52.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
2
package com.bar: A,B,C;2.0
package com.bar: A,B,C;1.0
package com.bar: A;2.0
package com.foo: X, Z
import exportprivate
A
B
C
JARs
Private Packages
donderdag 25 juni 2009
![Page 53: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/53.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
2
package com.bar: A,B,C;2.0
package com.bar: A,B,C;1.0
package com.bar: A;2.0
package com.foo: X, Z
package com.private: G
package com.private: G,H,I
import exportprivate
A
B
C
JARs
Private Packages
donderdag 25 juni 2009
![Page 54: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/54.jpg)
package com.foo: X, Y
package com.foo: X, Y, Z
2
package com.bar: A,B,C;2.0
package com.bar: A,B,C;1.0
package com.bar: A;2.0
package com.foo: X, Z
package com.private: G
package com.private: G,H,I
import exportprivate
A
B
C
JARs
Private Packages
donderdag 25 juni 2009
![Page 55: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/55.jpg)
How Do WeHandle ThisComplexity
in Java?
donderdag 25 juni 2009
![Page 56: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/56.jpg)
We Don’t ...
donderdag 25 juni 2009
![Page 57: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/57.jpg)
donderdag 25 juni 2009
![Page 58: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/58.jpg)
donderdag 25 juni 2009
![Page 59: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/59.jpg)
OS + Hardware
Execution Environment
Module
Life Cycle
Service
SECURITY
Applications(bundles)
donderdag 25 juni 2009
![Page 60: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/60.jpg)
Execution Environment
donderdag 25 juni 2009
![Page 61: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/61.jpg)
donderdag 25 juni 2009
![Page 62: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/62.jpg)
CLDC/MIDP
J2SE 1.3, 1.4,
5, 6, ...CDC/FP
OSGiMin.
donderdag 25 juni 2009
![Page 63: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/63.jpg)
Kim Scarborough
donderdag 25 juni 2009
![Page 64: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/64.jpg)
Module Layer
donderdag 25 juni 2009
![Page 65: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/65.jpg)
Import, Export, Private
Bundle A
Bundle B
.
p
r
q-[1.2,1.8)
p
q-1.4
import export
r
private
Bundle A
donderdag 25 juni 2009
![Page 66: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/66.jpg)
Import, Export, Private
Bundle A
Bundle B
.
p
r
q-[1.2,1.8)
p
q-1.4
import
imports
export
r
private
Bundle A
donderdag 25 juni 2009
![Page 67: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/67.jpg)
Import, Export, Private
Bundle A
Bundle B
.
p
r
q-[1.2,1.8)
p
q-1.4
import
imports
exports
export
r
private
Bundle A
donderdag 25 juni 2009
![Page 68: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/68.jpg)
donderdag 25 juni 2009
![Page 69: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/69.jpg)
donderdag 25 juni 2009
![Page 70: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/70.jpg)
Uses ConstraintsBundle B
q-[1.2,1.8)
p
q-1.4
Bundle A
Bundle DBundle C
r;2.0r;1.0
r;2.0r;1.0
p
import exportprivate
donderdag 25 juni 2009
![Page 71: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/71.jpg)
Uses ConstraintsBundle B
q-[1.2,1.8)
p
q-1.4
imports
Bundle A
Bundle DBundle C
r;2.0r;1.0
r;2.0r;1.0
p
import exportprivate
donderdag 25 juni 2009
![Page 72: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/72.jpg)
Uses ConstraintsBundle B
q-[1.2,1.8)
p
q-1.4
imports
exports
Bundle A
Bundle DBundle C
r;2.0r;1.0
r;2.0r;1.0
p
import exportprivate
donderdag 25 juni 2009
![Page 73: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/73.jpg)
Uses ConstraintsBundle B
q-[1.2,1.8)
p
q-1.4
imports
exports
Bundle A
Bundle DBundle C
r;2.0r;1.0
r;2.0r;1.0
p
import exportprivate
donderdag 25 juni 2009
![Page 74: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/74.jpg)
SystemLoader
ExtensionLoader
Application BLoader
CustomLoader
donderdag 25 juni 2009
![Page 75: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/75.jpg)
SystemLoader
ExtensionLoader
Application BLoader
CustomLoader
OSGi
donderdag 25 juni 2009
![Page 76: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/76.jpg)
SystemLoader
ExtensionLoader
FrameworkLoader
Application BLoader
CustomLoader
Bundle G
Bundle C
Bundle A
Bundle B
Bundle F
Bundle E
Bundle D
OSGi
donderdag 25 juni 2009
![Page 77: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/77.jpg)
donderdag 25 juni 2009
![Page 78: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/78.jpg)
Life Cycle Layer
donderdag 25 juni 2009
![Page 79: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/79.jpg)
INSTALLED
RESOLVED
UNINSTALLED
ACTIVE
STOPPING
STARTING
donderdag 25 juni 2009
![Page 80: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/80.jpg)
BundleX
BundleX-v2
BundleB
MANAGE-MENT
BUNDLE
BundleA
Systembundle
donderdag 25 juni 2009
![Page 81: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/81.jpg)
Service Layer
donderdag 25 juni 2009
![Page 82: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/82.jpg)
donderdag 25 juni 2009
![Page 83: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/83.jpg)
donderdag 25 juni 2009
![Page 84: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/84.jpg)
donderdag 25 juni 2009
![Page 85: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/85.jpg)
donderdag 25 juni 2009
![Page 86: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/86.jpg)
Services
BundleA
BundleB
register get
notify
defined ininterface/class
donderdag 25 juni 2009
![Page 87: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/87.jpg)
Services
void foo() {…}
…s.foo()…
interface Foo { void foo();}
donderdag 25 juni 2009
![Page 88: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/88.jpg)
donderdag 25 juni 2009
![Page 89: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/89.jpg)
donderdag 25 juni 2009
![Page 90: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/90.jpg)
donderdag 25 juni 2009
![Page 91: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/91.jpg)
donderdag 25 juni 2009
![Page 92: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/92.jpg)
donderdag 25 juni 2009
![Page 93: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/93.jpg)
Services Solve Class Loader
Problems!donderdag 25 juni 2009
![Page 94: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/94.jpg)
donderdag 25 juni 2009
![Page 95: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/95.jpg)
Security
donderdag 25 juni 2009
![Page 96: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/96.jpg)
donderdag 25 juni 2009
![Page 97: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/97.jpg)
Real Code!
donderdag 25 juni 2009
![Page 98: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/98.jpg)
donderdag 25 juni 2009
![Page 99: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/99.jpg)
package com.acme;import org.osgi.framework.*;public class HelloWorld extends BundleActivator { public void start(BundleContext context) { System.out.println(“Hello World”); } public void stop(BundleContext context) { System.out.println(“Goodbye World”); }}
---------------------------------------------
Manifest: 1.0Bundle-Activator: com.acme.HelloWorldImport-Package: org.osgi.framework;version=1.3
donderdag 25 juni 2009
![Page 100: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/100.jpg)
Bundles are active entities in runtime
donderdag 25 juni 2009
![Page 101: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/101.jpg)
donderdag 25 juni 2009
![Page 102: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/102.jpg)
294
donderdag 25 juni 2009
![Page 103: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/103.jpg)
2947
donderdag 25 juni 2009
![Page 104: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/104.jpg)
donderdag 25 juni 2009
![Page 105: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/105.jpg)
donderdag 25 juni 2009
![Page 106: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/106.jpg)
Is JSR 294 aMeta Module System? (Implemented by OSGi™, Jigsaw, Guice, …)
donderdag 25 juni 2009
![Page 107: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/107.jpg)
Is JSR 294 aMeta Module System? (Implemented by OSGi™, Jigsaw, Guice, …)
No Java™ Standard for
Modules!donderdag 25 juni 2009
![Page 108: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/108.jpg)
donderdag 25 juni 2009
![Page 109: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/109.jpg)
donderdag 25 juni 2009
![Page 110: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/110.jpg)
donderdag 25 juni 2009
![Page 111: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/111.jpg)
Legacy
donderdag 25 juni 2009
![Page 112: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/112.jpg)
Class .forName
donderdag 25 juni 2009
![Page 113: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/113.jpg)
Class .forName
donderdag 25 juni 2009
![Page 114: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/114.jpg)
donderdag 25 juni 2009
![Page 115: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/115.jpg)
Bloat?donderdag 25 juni 2009
![Page 116: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/116.jpg)
AccidentalComplexity
donderdag 25 juni 2009
![Page 117: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/117.jpg)
‘97 ‘98 ‘99 ‘00 ‘01 ‘02 ‘03 ‘04 ‘05 ‘06 ‘07 ‘08 ‘09 ‘10
donderdag 25 juni 2009
![Page 118: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/118.jpg)
‘97 ‘98 ‘99 ‘00 ‘01 ‘02 ‘03 ‘04 ‘05 ‘06 ‘07 ‘08 ‘09 ‘10
donderdag 25 juni 2009
![Page 119: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/119.jpg)
donderdag 25 juni 2009
![Page 120: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/120.jpg)
donderdag 25 juni 2009
![Page 121: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/121.jpg)
bundleA-1.2
bundleB-4.1
bundleC-1.0
bc
a
donderdag 25 juni 2009
![Page 122: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/122.jpg)
donderdag 25 juni 2009
![Page 123: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/123.jpg)
donderdag 25 juni 2009
![Page 124: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/124.jpg)
The ComponentFramework
donderdag 25 juni 2009
![Page 125: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/125.jpg)
donderdag 25 juni 2009
![Page 126: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/126.jpg)
Q&Adonderdag 25 juni 2009
![Page 127: OSGi and Java Modularity](https://reader034.vdocuments.us/reader034/viewer/2022042614/5598fa5e1a28ab7b718b45c3/html5/thumbnails/127.jpg)
Thanks!
donderdag 25 juni 2009