Date post: | 05-Dec-2014 |
Category: |
Technology |
Upload: | nuxeo |
View: | 3,339 times |
Download: | 0 times |
Nuxeo Runtime 2Nuxeo Runtime 2recent and future workrecent and future work
Bogdan Stefanescu |
Overview
● What's Nuxeo Runtime?● Requirements● Components● Extensions
● What's next?● HK2 adoption● Dependency injection● More Annotations● Hot Deployment ?
What's Nuxeo Runtime?
● Nuxeo Runtime is the Nuxeo micro kernel. ● The foundation of all Nuxeo applications
● Nuxeo EP, Nuxeo RCP, Nuxeo WebEngine, Nuxeo Shell etc.
● Provides a modules subsystem● OSGI compatible modules (aka bundles)
● Provides a component model● Inspired from OSGI descriptive components ● Provides an extension point model● Provides a service model
Nuxeo Runtime - Requirements
● Nuxeo Runtime was designed to fulfill the following requirements:
● Applications are made from components.● Be able to assemble new applications from specific
set of components.● Be able to add / remove components into an
(optionally running) application.● Be able to deploy and run modules in any OSGi
framework.
● Provide an extension mechanism for components.
Nuxeo Runtime - Components
● Modules are implemented as OSGi bundles● A module may provide zero or more
components● Nuxeo Components are very similar to OSGi
components● Components are described through XML files.● Components are declared in the module
MANIFEST file● Components provides zero or more services
Nuxeo Runtime – Extensions
● Components may expose multiple extension points to let other components extend it
● Components may contribute any number of extensions to other components
● An Extension Point is an abstract concept● You can see it as a registry of things
● Extensions are declared using XML● XML fragments are mapped to real Java Objects
and registered against the target extension point
Nuxeo Runtime – Deployment
Nuxeo Runtime – Extensibility
Serializers
Views
Actions
Editors
MyExtensionPoint
What's next?
● Rewriting Nuxeo Runtime on top of HK2● HK2 is the micro kernel of GlassFish v3● HK2 is very similar with Nuxeo Runtime
● HK2 cool features:● Able to run in any OSGi framework● Provide dependency injection through annotations● Services are declared using annotations
● HK2 missing features:● Extension Points are missing from HK2! :-(
Nuxeo Runtime - HK2
● How extension point issue can be solved?● Already in contact with Sun HK2 developers● We will contribute to HK2 an extension point
mechanism
● Nuxeo Runtime will be an HK2 module ● That will add an extension points mechanism● That will preserve compatibility with existing model
● Nuxeo Modules will still be packaged as OSGi bundles
Nuxeo Runtime - Future
So, what Nuxeo Runtime 2 will provide?● OSGi compatible modules● Extension Points declared through annotations● Extensions declared as XML fragments● Services declared through annotations● Dependency injection through annotations● No more XML to declare things● Only pure configuration will be stored as XML● An HK2 micro kernel
Nuxeo Runtime – Is that all?●
●
●
● Hot Deployment of Modules?
Thank you!Thank you!