+ All Categories
Home > Technology > Nuxeo Runtime 2: OSGi, Glassfish support, etc

Nuxeo Runtime 2: OSGi, Glassfish support, etc

Date post: 05-Dec-2014
Category:
Upload: nuxeo
View: 3,339 times
Download: 0 times
Share this document with a friend
Description:
Nuxeo Runtime, which enables to deploy Nuxeo’s component-oriented architecture both in server and desktop applications, is evolving alongside the Java EE and OSGi technologies that it leverages. This talk will introduce recent and future works on Nuxeo Runtime: Glassfish support, OSGi support improvement, dependency injection, etc.
13
Nuxeo Runtime 2 Nuxeo Runtime 2 recent and future work recent and future work Bogdan Stefanescu |
Transcript
Page 1: Nuxeo Runtime 2: OSGi, Glassfish support, etc

Nuxeo Runtime 2Nuxeo Runtime 2recent and future workrecent and future work

Bogdan Stefanescu |

Page 2: Nuxeo Runtime 2: OSGi, Glassfish support, etc

Overview

● What's Nuxeo Runtime?● Requirements● Components● Extensions

● What's next?● HK2 adoption● Dependency injection● More Annotations● Hot Deployment ?

Page 3: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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

Page 4: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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.

Page 5: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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

Page 6: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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

Page 7: Nuxeo Runtime 2: OSGi, Glassfish support, etc

Nuxeo Runtime – Deployment

Page 8: Nuxeo Runtime 2: OSGi, Glassfish support, etc

Nuxeo Runtime – Extensibility

Serializers

Views

Actions

Editors

MyExtensionPoint

Page 9: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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! :-(

Page 10: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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

Page 11: Nuxeo Runtime 2: OSGi, Glassfish support, etc

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

Page 12: Nuxeo Runtime 2: OSGi, Glassfish support, etc

Nuxeo Runtime – Is that all?●

● Hot Deployment of Modules?

Page 13: Nuxeo Runtime 2: OSGi, Glassfish support, etc

Thank you!Thank you!


Recommended