SlideShare una empresa de Scribd logo
1 de 70
Clement Escoffier,
Pierre Bourret
OSGi™
&
Dynamic Systems
Module Layer
Lifecycle Layer
Service Layer
Modular, Static applications
Extender-based approach
(coarse grain dynamism)
Dynamic applications
(fine-grain dynamism)
Why choosing the harder case ?
Adaptability
Something
Somewhere
Somehow
iPOJO
2005 - 2012
iPOJO 0.x
2005 - 2008
A simple model to develop
dynamic applications
Plain Old Java Object
Just the business logic
@Component
@Instantiate
public class Host {
@Requires
private Shape[] shapes;
public Host() {
// Create the frame...
}
//...
}
@Component
@Provides
@Instantiate
public class Circle implements Shape {
@ServiceProperty(name=Shape.NAME_PROPERTY)
private String name;
@Validate
public void start() {
name = "Circle";
}
public void draw(Graphics2D g2, Point p) {
// Draw a circle
}
}
iPOJO 1.x
2008 - 2012
Extension of the
dependency model
temporal, proxies, grace
periods, consistency, caching…
Reached
a level of maturity
5000
downloads / month
Used in
large-scale project
(>1 000 000 LOC)
Where did it failed ?
70 projects using iPOJO
From 20 000 LOC
To > 1 000 000 LOC
How developers are using iPOJO
?
The most wanted features
Death by <xml/>
XML required to create complex
instances
@Configuration
public class MyConfiguration {
Instance myInstance = instance().of(MyComponent.class)
.with("message").setto("foo")
.with("list").setto(list(1, 2, 3));
}
1.10
Death by (LDAP)
LDAP has a simple syntax
….
for simple filters
No variability
Very very time-consuming
debugging
@Requires(filter=“(property=${value})”
private Service service;
1.10
Values from:
System properties
Instance configuration
Context sources
Service dependency
interceptors
2.0
Tracker
interceptor
Ranking
interceptor
Tracker
interceptor
Refuse services
Transform services
Filtering
Sophisticated selection
among a set of provider
Advanced Ranking
Ranking
interceptor
Online manipulation
Offline manipulation
not required anymore
2.0
Inheritance
2.0
Better testability and debugging
Unclear errors
Dying instances
WTF !
All my fields are null
Declaration services:
Is your declaration bound ?
What was the error ?
1.10
Architecture of stopped instances
1.10
Injected values cached in fields
2.0
Easier extensibility
New injection machine:
Injection chains
2.0
Annotation-based
configuration
2.0
@Handler
public class MyHandler extends PrimitiveHandler<MyAnnotation> {
public void configure(MyAnnotation configuration, ...){
//…
}
}
Intra-bundle injection
@Instance(component=MyClass.class)
private MyClass instance;
@Instance(component=MyClass.class, name=“name”)
private MyClass name;
2.0
Conclusion
1.10 -> Soonish
2.0 -> End of June
End of file

Más contenido relacionado

La actualidad más candente

La actualidad más candente (9)

Best Practices in Qt Quick/QML - Part 2
Best Practices in Qt Quick/QML - Part 2Best Practices in Qt Quick/QML - Part 2
Best Practices in Qt Quick/QML - Part 2
 
Jenkins Continuous Delivery
Jenkins Continuous DeliveryJenkins Continuous Delivery
Jenkins Continuous Delivery
 
Java Concurrent
Java ConcurrentJava Concurrent
Java Concurrent
 
React workshop presentation
React workshop presentationReact workshop presentation
React workshop presentation
 
React workshop
React workshopReact workshop
React workshop
 
Angular 2
Angular 2Angular 2
Angular 2
 
Spring Framework 5.2: Core Container Revisited
Spring Framework 5.2: Core Container RevisitedSpring Framework 5.2: Core Container Revisited
Spring Framework 5.2: Core Container Revisited
 
Osgi cdi
Osgi cdiOsgi cdi
Osgi cdi
 
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
 

Destacado

Digital Footprints: Using the Internet to enhance your career prospects
Digital Footprints: Using the Internet to enhance your career prospectsDigital Footprints: Using the Internet to enhance your career prospects
Digital Footprints: Using the Internet to enhance your career prospects
Judith Baines
 
10 Biggest Brain Damaging Habits
10  Biggest  Brain  Damaging  Habits10  Biggest  Brain  Damaging  Habits
10 Biggest Brain Damaging Habits
lewisj2111
 
Пропозиція PR-агенції "Автограф"
Пропозиція PR-агенції "Автограф"Пропозиція PR-агенції "Автограф"
Пропозиція PR-агенції "Автограф"
autograf_comm
 
Understanding Facebook Places
Understanding Facebook PlacesUnderstanding Facebook Places
Understanding Facebook Places
Marco Pacifico
 
Ma R Ia Mo Nt E Ss Or I
Ma R Ia Mo Nt E Ss Or IMa R Ia Mo Nt E Ss Or I
Ma R Ia Mo Nt E Ss Or I
guest5f4c783
 

Destacado (20)

Assistenza Decreto Abruzzo
Assistenza Decreto AbruzzoAssistenza Decreto Abruzzo
Assistenza Decreto Abruzzo
 
Key Compliances in Investing Abroad | Vinita Bahri-Mehra
Key Compliances in Investing Abroad | Vinita Bahri-MehraKey Compliances in Investing Abroad | Vinita Bahri-Mehra
Key Compliances in Investing Abroad | Vinita Bahri-Mehra
 
Digital Footprints: Using the Internet to enhance your career prospects
Digital Footprints: Using the Internet to enhance your career prospectsDigital Footprints: Using the Internet to enhance your career prospects
Digital Footprints: Using the Internet to enhance your career prospects
 
Canada
CanadaCanada
Canada
 
2014 abic-talk
2014 abic-talk2014 abic-talk
2014 abic-talk
 
The Power of Section 1031 for Accounting Professionals
The Power of Section 1031 for Accounting ProfessionalsThe Power of Section 1031 for Accounting Professionals
The Power of Section 1031 for Accounting Professionals
 
2014 aus-agta
2014 aus-agta2014 aus-agta
2014 aus-agta
 
10 Biggest Brain Damaging Habits
10  Biggest  Brain  Damaging  Habits10  Biggest  Brain  Damaging  Habits
10 Biggest Brain Damaging Habits
 
Пропозиція PR-агенції "Автограф"
Пропозиція PR-агенції "Автограф"Пропозиція PR-агенції "Автограф"
Пропозиція PR-агенції "Автограф"
 
Dr Roadmap
Dr RoadmapDr Roadmap
Dr Roadmap
 
18 Di Concetta
18 Di Concetta18 Di Concetta
18 Di Concetta
 
Private Work: How to Secure a Fair Contract + Get Paid
Private Work: How to Secure a Fair Contract + Get PaidPrivate Work: How to Secure a Fair Contract + Get Paid
Private Work: How to Secure a Fair Contract + Get Paid
 
Approximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsApproximate Thin Plate Spline Mappings
Approximate Thin Plate Spline Mappings
 
Arbitrator Subpoenas: Are They Worth The Paper They Are Printed On?
Arbitrator Subpoenas: Are They Worth The Paper They Are Printed On?Arbitrator Subpoenas: Are They Worth The Paper They Are Printed On?
Arbitrator Subpoenas: Are They Worth The Paper They Are Printed On?
 
Ramazan
RamazanRamazan
Ramazan
 
Ny Vraa Bioenergi
Ny Vraa BioenergiNy Vraa Bioenergi
Ny Vraa Bioenergi
 
Understanding Facebook Places
Understanding Facebook PlacesUnderstanding Facebook Places
Understanding Facebook Places
 
Byplansarkitekt Lise Degn
Byplansarkitekt Lise DegnByplansarkitekt Lise Degn
Byplansarkitekt Lise Degn
 
Ma R Ia Mo Nt E Ss Or I
Ma R Ia Mo Nt E Ss Or IMa R Ia Mo Nt E Ss Or I
Ma R Ia Mo Nt E Ss Or I
 
Marketing Growth Stack
Marketing Growth StackMarketing Growth Stack
Marketing Growth Stack
 

Similar a iPOJO 2.x - a tale about dynamism

Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
elliando dias
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
Ian Robinson
 
Matt Wright - The Application Grid
Matt Wright - The Application GridMatt Wright - The Application Grid
Matt Wright - The Application Grid
Saul Cunningham
 
Peter McTaggart - Renewtek - Achieving Hero Status with WebLogic Server
Peter McTaggart - Renewtek - Achieving Hero Status with WebLogic ServerPeter McTaggart - Renewtek - Achieving Hero Status with WebLogic Server
Peter McTaggart - Renewtek - Achieving Hero Status with WebLogic Server
Saul Cunningham
 

Similar a iPOJO 2.x - a tale about dynamism (20)

OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Review
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Tnt 2020-jf-james
Tnt 2020-jf-jamesTnt 2020-jf-james
Tnt 2020-jf-james
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Enterprise Mobility with Mobile OSGi
Enterprise Mobility with Mobile OSGiEnterprise Mobility with Mobile OSGi
Enterprise Mobility with Mobile OSGi
 
Java2 days 5_agile_steps_to_cloud-ready_apps
Java2 days 5_agile_steps_to_cloud-ready_appsJava2 days 5_agile_steps_to_cloud-ready_apps
Java2 days 5_agile_steps_to_cloud-ready_apps
 
SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint Factory
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
Revised Adf security in a project centric environment
Revised Adf security in a project centric environmentRevised Adf security in a project centric environment
Revised Adf security in a project centric environment
 
Présentation IBM SmartCloud Entry 3.1
Présentation IBM SmartCloud Entry 3.1Présentation IBM SmartCloud Entry 3.1
Présentation IBM SmartCloud Entry 3.1
 
DS, BP, EJB, CDI, WTF!? - Graham Charters
DS, BP, EJB, CDI, WTF!? - Graham ChartersDS, BP, EJB, CDI, WTF!? - Graham Charters
DS, BP, EJB, CDI, WTF!? - Graham Charters
 
Designing Java EE Applications in the Age of CDI
Designing Java EE Applications in the Age of CDIDesigning Java EE Applications in the Age of CDI
Designing Java EE Applications in the Age of CDI
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
 
Microsoft, Citrix and SCOM: EOL or a New Beginning ?
Microsoft, Citrix and SCOM:  EOL or a New Beginning ?Microsoft, Citrix and SCOM:  EOL or a New Beginning ?
Microsoft, Citrix and SCOM: EOL or a New Beginning ?
 
Matt Wright - The Application Grid
Matt Wright - The Application GridMatt Wright - The Application Grid
Matt Wright - The Application Grid
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
 
Peter McTaggart - Renewtek - Achieving Hero Status with WebLogic Server
Peter McTaggart - Renewtek - Achieving Hero Status with WebLogic ServerPeter McTaggart - Renewtek - Achieving Hero Status with WebLogic Server
Peter McTaggart - Renewtek - Achieving Hero Status with WebLogic Server
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 

Más de Clément Escoffier

Everest - Everything is a resource
Everest - Everything is a resourceEverest - Everything is a resource
Everest - Everything is a resource
Clément Escoffier
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
Clément Escoffier
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
Clément Escoffier
 
Experimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareExperimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middleware
Clément Escoffier
 

Más de Clément Escoffier (15)

Devoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdfDevoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdf
 
vert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Javavert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Java
 
Modularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersModularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sisters
 
h-ubu - An industrial-strength service-oriented component model for JavaScrip...
h-ubu - An industrial-strength service-oriented component model for JavaScrip...h-ubu - An industrial-strength service-oriented component model for JavaScrip...
h-ubu - An industrial-strength service-oriented component model for JavaScrip...
 
OW2 Nanoko
OW2 NanokoOW2 Nanoko
OW2 Nanoko
 
Everest - Everything is a resource
Everest - Everything is a resourceEverest - Everything is a resource
Everest - Everything is a resource
 
h-ubu - CDI in JavaScript
h-ubu - CDI in JavaScripth-ubu - CDI in JavaScript
h-ubu - CDI in JavaScript
 
h-ubu : CDI in JavaScript
h-ubu : CDI in JavaScripth-ubu : CDI in JavaScript
h-ubu : CDI in JavaScript
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
OSGi - beyond the myth
OSGi -  beyond the mythOSGi -  beyond the myth
OSGi - beyond the myth
 
One year-with-chameleon
One year-with-chameleonOne year-with-chameleon
One year-with-chameleon
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework Multiplication
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
 
Experimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareExperimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middleware
 
Transactional OSGi Applications Done Right
Transactional OSGi Applications Done RightTransactional OSGi Applications Done Right
Transactional OSGi Applications Done Right
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

iPOJO 2.x - a tale about dynamism