SlideShare a Scribd company logo
Creating Large-Scale Software
Platforms with OSGi and
an Extension Point Model
Introducing Eclipse Content Repository

Bogdan Stefanescu, Lead Architect at Nuxeo

2011-03-23




                                             1
Nuxeo, Who Are We?
●
    Vendor of an open source software platform in the
    feld of Enterprise Content Management
●
    Love to create great software, fond of modularity,
    started to use OSGi 4 years ago to create server-side
    enterprise software
●
    10 years old, 500+ customers, 5000+ installations
●
    Sells support & maintenance subscription and
    added value software provided as a service
●
    Dual HQ Paris & Boston, offces in San Francisco
●
    http://www.nuxeo.com

                                                            2
Nuxeo Enterprise Platform
●
    The software we develop is an Open Source ECM
    platform known as Nuxeo Enterprise Platform (EP)
    ●
        A platform because you can use Nuxeo EP to develop
        your own customized ECM application
    ●
        We also provide turn-key pre-built applications based
        on Nuxeo EP already customized for different scopes:
        –   Document Management (DM)
        –   Digital Asset Management (DAM)
        –   Case Management Framework (CMF)
        –   or simply Content Application Platform (CAP) for developers



                                                                          3
4
Why Are We Here Today?

●
    To share our experience in building an enterprise
    application using OSGi and an extension point
    model
●
    To discuss and participate into spreading
    Equinox on the server side as well
●
    To grab your feedback and ideas!
●
    And, why not... to do some marketing too ;-)



                                                        5
What Have We Achieved For Now?
●
    A complex software platform made of
    ●
        186+ bundles, 215+ extension points
●
    Very fexible thanks to extension points
    ●
        Easy to contribute new services
    ●
        Easy to customize the default application (including UI
        and business logic)
●
    Running virtually everywhere
    ●
        JBoss AS - as an EAR application
    ●
        Tomcat - as a WAR application
    ●
        Equinox - as an OSGi application (and Virgo very soon)

                                                                  6
A Bit of History...
●
    We have been developing this ECM platform for 8
    years
    ●
        We started in Python
    ●
        5 years ago we switched to Java
●
    We needed a great model suitable for
    ●
        Modularity – split functionality in modules
    ●
        Flexibility – be able to easily confgure the application
●
    Constraints (requested by customers)
    ●
        Must deploy as an EAR or WAR application

                                                                   7
Choosing the Framework
●
    What were the choices?
    ●
        Java SE – nothing proposed
        –   No bundle life cycle, no modularity, no extension system
    ●
        Java EE – not modular at all
        –   All is packaged as one big application (EAR or WAR)
        –   To update or add a feature you need to recompile the entire
            application
    ●
        OSGi – great specifcation – love at frst sight
        –   But not compatible with J2EE
        –   No real OSGi enterprise framework implementations at that
            moment

                                                                          8
Let's Give OSGi a Try...
●
    OSGi was best suited for our dreams… but...
●
    How to achieve fexibility?
    ●
        Eclipse already had the answer: extension points
        –   Thanks Eclipse!
●
    How to integrate with J2EE Application Servers?
    ●
        J2EE applications are monolithic – there is no notion
        of modularity inside an application; the application is
        the unit
    ●
        But our application is supposed to be a platform
        made from tens or hundreds of units!

                                                                  9
An Extension Point Model ...
●
    So Eclipse already provided an extension point
    model – which is very good but ...
    ●
        It is based on EXSD descriptors
    ●
        Diffcult to manage EXSD fles outside PDE IDE
    ●
        PDE is very related to Eclipse plugin development
    ●
        PDE was not friendly with server side development
        –   Remember we are in 2006
    ●
        PDE was not friendly with other build systems
        –   We were using Maven as our build system



                                                            10
Nuxeo Extension Point Model
●
    So we decided to achieve something similar but
    in a more fexible way:
    ●
        No intermediate object model between services and
        contributed extensions
    ●
        Write your extension class and map it to XML using
        Java annotations
    ●
        Very easy to write for developers
    ●
        No specifc IDE needed to code extension points.
    ●
        Write a Java class, put the right annotations and the
        extension XML will be correctly injected into the Java
        object
                                                                 11
Extension Example
    XML Extension   Extension Class




                                      12
J2EE Integration
●
    Main problem: different ClassLoader model
    ●
        In J2EE an EAR application is the deployment unit
        and use a fat ClassLoader
    ●
        In OSGi an application is made of multiple units (i.e.
        bundles) each one with its own ClassLoader
●
    Second problem: static confguration
    ●
        In J2EE the application is confgured as a single block
        using an application.xml and web.xml fle
    ●
        In OSGi we can have fragments that can dynamically
        add confguration

                                                                 13
Class Loading Problems
●
    Running as an EAR application:
    ●
        Using a home-made OSGi Adapter to load bundles
        when the EAR application starts
    ●
        Bundles life cycle is preserved
    ●
        A fat class loader model is used
        –   All classes are visible to all bundles
●
    Running as an OSGi application:
    ●
        Main problem caused by third party libraries using
        Class.forName and the Thread Context ClassLoader
        –   Using Eclipse-BuddyPolicy when no other solution is
            possible
                                                                  14
Confguration Fragments – 1
●
    On J2EE confguration is monolithic
    ●
        To declare servlets you should know in advance what
        are the servlets provided by different bundles
●
    Using templates for J2EE confguration fles
    ●
        Dynamically generate these fles at application startup
        from the confguration contributed by bundles
●
    Able to package EAR applications that can adapt
    themselves to the confguration provided by
    application bundles
    ●
        No need of having different product packagings for
        different confgurations
                                                                 15
Confguration Fragments – 2
   conf guration fragment
      i                     web.xml template. ID: web




                                                        16
J2EE Features Added to OSGi
●
    Full OSGi integration of JAAS – for the
    authentication system
●
    Full JTA (transactions) support through Apache
    Geronimo
●
    Full JCA (resource adapters and pooling) support
    through Apache Geronimo
●
    In-memory JNDI server
●
    Future plans to integrate the work done in the
    Gemini project (and also support Virgo)

                                                       17
Where Are We Going?
●
    Contribute the core of Nuxeo EP to Eclipse
    ●
        ECR (Enterprise Content Repository) project is
        in the proposal phase
    ●
        https://github.com/nuxeo/org.eclipse.ecr
●
    Port all major Nuxeo EP services as ECR plugins
    ●
        For now only the core functionality is included
        in ECR
●
    Help us provide the frst OSGi-based ECM
    platform based on the ECR project!

                                                          18
Questions?
             Start Hacking ECR:
  https://github.com/nuxeo/org.eclipse.ecr
                Get Involved:
             ECR Proposal Forum

               Read more:
          Eclipse ECR Proposal
    Nuxeo EP Reference Documentation

             Contact me/us:
Bogdan Stefanescu - bstefanescu@nuxeo.com
          http://www.nuxeo.com

                                             19
Ad

More Related Content

What's hot (19)

JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
Miles Sabin
 
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting BetterAd106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Better
ddrschiw
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
Anup Hariharan Nair
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
Ilya Rybak
 
Eclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseEclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in Eclipse
Miles Sabin
 
Modular Java
Modular JavaModular Java
Modular Java
Martin Toshev
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
Tim Ellison
 
JSX
JSXJSX
JSX
Kazuho Oku
 
The OpenEuropa Initiative
The OpenEuropa InitiativeThe OpenEuropa Initiative
The OpenEuropa Initiative
Nuvole
 
Multiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocketMultiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocket
VMware Tanzu
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
ddrschiw
 
Java.il - Confessions of a java developer that fell in love with the groovy l...
Java.il - Confessions of a java developer that fell in love with the groovy l...Java.il - Confessions of a java developer that fell in love with the groovy l...
Java.il - Confessions of a java developer that fell in love with the groovy l...
Victor Trakhtenberg
 
Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...
Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...
Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...
Amplexor
 
Top 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | EdurekaTop 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
Edureka!
 
Practical OSGi
Practical OSGiPractical OSGi
Practical OSGi
Sten Roger Sandvik
 
Osgi platform
Osgi platformOsgi platform
Osgi platform
Yuriy Shapovalov
 
JSX Optimizer
JSX OptimizerJSX Optimizer
JSX Optimizer
Kazuho Oku
 
JSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the Web
Kazuho Oku
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
David Bosschaert
 
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
Miles Sabin
 
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting BetterAd106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Better
ddrschiw
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
Anup Hariharan Nair
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
Ilya Rybak
 
Eclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseEclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in Eclipse
Miles Sabin
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
Tim Ellison
 
The OpenEuropa Initiative
The OpenEuropa InitiativeThe OpenEuropa Initiative
The OpenEuropa Initiative
Nuvole
 
Multiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocketMultiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocket
VMware Tanzu
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
ddrschiw
 
Java.il - Confessions of a java developer that fell in love with the groovy l...
Java.il - Confessions of a java developer that fell in love with the groovy l...Java.il - Confessions of a java developer that fell in love with the groovy l...
Java.il - Confessions of a java developer that fell in love with the groovy l...
Victor Trakhtenberg
 
Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...
Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...
Amplexor Drupal for the Enterprise seminar - evaluating Drupal for the Enterp...
Amplexor
 
Top 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | EdurekaTop 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
Edureka!
 
JSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the Web
Kazuho Oku
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
David Bosschaert
 

Viewers also liked (20)

[EN] Enterprise Information Management | Keynote Dr. Ulrich Kampffmeyer | Ope...
[EN] Enterprise Information Management | Keynote Dr. Ulrich Kampffmeyer | Ope...[EN] Enterprise Information Management | Keynote Dr. Ulrich Kampffmeyer | Ope...
[EN] Enterprise Information Management | Keynote Dr. Ulrich Kampffmeyer | Ope...
PROJECT CONSULT Unternehmensberatung Dr. Ulrich Kampffmeyer GmbH
 
Portfolio Server 11: Personalized DAM
Portfolio Server 11: Personalized DAMPortfolio Server 11: Personalized DAM
Portfolio Server 11: Personalized DAM
Extensis
 
Hoarding, Searching and Effective DAM with Extensis Portfolio Server
Hoarding, Searching and Effective DAM with Extensis Portfolio ServerHoarding, Searching and Effective DAM with Extensis Portfolio Server
Hoarding, Searching and Effective DAM with Extensis Portfolio Server
Extensis
 
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...
mikeum
 
Carrefour New Media Campaign (ADV 420)
Carrefour New Media Campaign (ADV 420)Carrefour New Media Campaign (ADV 420)
Carrefour New Media Campaign (ADV 420)
topolin7
 
Optimizing Your Digital Content for Global, Mobile and Social Users
Optimizing Your Digital Content for Global, Mobile and Social UsersOptimizing Your Digital Content for Global, Mobile and Social Users
Optimizing Your Digital Content for Global, Mobile and Social Users
The Next SEM
 
Nuxeo Webinar: Getting Started with your DAM Application
Nuxeo Webinar: Getting Started with your DAM ApplicationNuxeo Webinar: Getting Started with your DAM Application
Nuxeo Webinar: Getting Started with your DAM Application
Nuxeo
 
Islandora and Omeka: Building U of T Digital Collections & Exhibits
Islandora and Omeka: Building U of T Digital Collections & ExhibitsIslandora and Omeka: Building U of T Digital Collections & Exhibits
Islandora and Omeka: Building U of T Digital Collections & Exhibits
University of Toronto Libraries - Information Technology Services
 
Building GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management SolutionBuilding GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management Solution
Nuxeo
 
Taking Control of Brand Assets
Taking Control of Brand AssetsTaking Control of Brand Assets
Taking Control of Brand Assets
Extensis
 
eZ Openmagazine: Automating multi-channel content creation for your digital f...
eZ Openmagazine: Automating multi-channel content creation for your digital f...eZ Openmagazine: Automating multi-channel content creation for your digital f...
eZ Openmagazine: Automating multi-channel content creation for your digital f...
Gabriele Francescotto
 
Sm west 2010-microsoft-workshop
Sm west 2010-microsoft-workshopSm west 2010-microsoft-workshop
Sm west 2010-microsoft-workshop
Prashant Ohal
 
Digital Asset Management Forum Chicago 2011
Digital Asset Management Forum Chicago 2011Digital Asset Management Forum Chicago 2011
Digital Asset Management Forum Chicago 2011
Extensis
 
Good Enough: Finding what works for processing born-digital archives at the B...
Good Enough: Finding what works for processing born-digital archives at the B...Good Enough: Finding what works for processing born-digital archives at the B...
Good Enough: Finding what works for processing born-digital archives at the B...
mikeum
 
[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...
[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...
[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...
Nuxeo
 
What do you mean I need digital preservation? I've got DAM!
What do you mean I need digital preservation? I've got DAM!What do you mean I need digital preservation? I've got DAM!
What do you mean I need digital preservation? I've got DAM!
Kara Van Malssen
 
What do you mean we need digital preservation? We have a repository!
What do you mean we need digital preservation? We have a repository!What do you mean we need digital preservation? We have a repository!
What do you mean we need digital preservation? We have a repository!
Kara Van Malssen
 
Processing at the University of Michigan Bentley Historical Library
Processing at the University of Michigan Bentley Historical LibraryProcessing at the University of Michigan Bentley Historical Library
Processing at the University of Michigan Bentley Historical Library
mikeum
 
UBC Library's Digital Preservation Strategy
UBC Library's Digital Preservation StrategyUBC Library's Digital Preservation Strategy
UBC Library's Digital Preservation Strategy
UBC Library
 
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...
mikeum
 
Portfolio Server 11: Personalized DAM
Portfolio Server 11: Personalized DAMPortfolio Server 11: Personalized DAM
Portfolio Server 11: Personalized DAM
Extensis
 
Hoarding, Searching and Effective DAM with Extensis Portfolio Server
Hoarding, Searching and Effective DAM with Extensis Portfolio ServerHoarding, Searching and Effective DAM with Extensis Portfolio Server
Hoarding, Searching and Effective DAM with Extensis Portfolio Server
Extensis
 
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Introduction ...
mikeum
 
Carrefour New Media Campaign (ADV 420)
Carrefour New Media Campaign (ADV 420)Carrefour New Media Campaign (ADV 420)
Carrefour New Media Campaign (ADV 420)
topolin7
 
Optimizing Your Digital Content for Global, Mobile and Social Users
Optimizing Your Digital Content for Global, Mobile and Social UsersOptimizing Your Digital Content for Global, Mobile and Social Users
Optimizing Your Digital Content for Global, Mobile and Social Users
The Next SEM
 
Nuxeo Webinar: Getting Started with your DAM Application
Nuxeo Webinar: Getting Started with your DAM ApplicationNuxeo Webinar: Getting Started with your DAM Application
Nuxeo Webinar: Getting Started with your DAM Application
Nuxeo
 
Building GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management SolutionBuilding GSD&M’s Digital Asset Management Solution
Building GSD&M’s Digital Asset Management Solution
Nuxeo
 
Taking Control of Brand Assets
Taking Control of Brand AssetsTaking Control of Brand Assets
Taking Control of Brand Assets
Extensis
 
eZ Openmagazine: Automating multi-channel content creation for your digital f...
eZ Openmagazine: Automating multi-channel content creation for your digital f...eZ Openmagazine: Automating multi-channel content creation for your digital f...
eZ Openmagazine: Automating multi-channel content creation for your digital f...
Gabriele Francescotto
 
Sm west 2010-microsoft-workshop
Sm west 2010-microsoft-workshopSm west 2010-microsoft-workshop
Sm west 2010-microsoft-workshop
Prashant Ohal
 
Digital Asset Management Forum Chicago 2011
Digital Asset Management Forum Chicago 2011Digital Asset Management Forum Chicago 2011
Digital Asset Management Forum Chicago 2011
Extensis
 
Good Enough: Finding what works for processing born-digital archives at the B...
Good Enough: Finding what works for processing born-digital archives at the B...Good Enough: Finding what works for processing born-digital archives at the B...
Good Enough: Finding what works for processing born-digital archives at the B...
mikeum
 
[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...
[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...
[Nuxeo World 2013] DID YOU SAY DAM? DIGITAL ASSET MANAGEMENT WITH THE NUXEO P...
Nuxeo
 
What do you mean I need digital preservation? I've got DAM!
What do you mean I need digital preservation? I've got DAM!What do you mean I need digital preservation? I've got DAM!
What do you mean I need digital preservation? I've got DAM!
Kara Van Malssen
 
What do you mean we need digital preservation? We have a repository!
What do you mean we need digital preservation? We have a repository!What do you mean we need digital preservation? We have a repository!
What do you mean we need digital preservation? We have a repository!
Kara Van Malssen
 
Processing at the University of Michigan Bentley Historical Library
Processing at the University of Michigan Bentley Historical LibraryProcessing at the University of Michigan Bentley Historical Library
Processing at the University of Michigan Bentley Historical Library
mikeum
 
UBC Library's Digital Preservation Strategy
UBC Library's Digital Preservation StrategyUBC Library's Digital Preservation Strategy
UBC Library's Digital Preservation Strategy
UBC Library
 
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...
ArchivesSpace-Archivematica-DSpace Workflow Integration Project Update (March...
mikeum
 
Ad

Similar to Creating Large Scale Software Platforms with OSGi and an Extension Point Model (EclipseCon) (20)

UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!
René Winkelmeyer
 
GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010
Alexis Moussine-Pouchkine
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
PT.JUG
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3
Nuxeo
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Jamie Coleman
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
Codecamp Romania
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
Alexis Moussine-Pouchkine
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
Luca D'Onofrio
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Hùng Nguyễn Huy
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010
ericjohnson
 
Introduction to Spock: A Unit Testing Framework
Introduction to Spock: A Unit Testing FrameworkIntroduction to Spock: A Unit Testing Framework
Introduction to Spock: A Unit Testing Framework
Knoldus Inc.
 
Gwt development with errai and forge
Gwt development with errai and forgeGwt development with errai and forge
Gwt development with errai and forge
firenze-gtug
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
Eclipse Vs Netbeans
Eclipse Vs NetbeansEclipse Vs Netbeans
Eclipse Vs Netbeans
SiliconExpert Technologies
 
devops@cineca
devops@cinecadevops@cineca
devops@cineca
Linuxaria.com
 
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
Nuxeo
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
 
Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangria
Jorge Morales
 
UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!
René Winkelmeyer
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
PT.JUG
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3
Nuxeo
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Jamie Coleman
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
Codecamp Romania
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
LOGINPHP360
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
Luca D'Onofrio
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Hùng Nguyễn Huy
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010
ericjohnson
 
Introduction to Spock: A Unit Testing Framework
Introduction to Spock: A Unit Testing FrameworkIntroduction to Spock: A Unit Testing Framework
Introduction to Spock: A Unit Testing Framework
Knoldus Inc.
 
Gwt development with errai and forge
Gwt development with errai and forgeGwt development with errai and forge
Gwt development with errai and forge
firenze-gtug
 
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
Nuxeo
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
 
Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangria
Jorge Morales
 
Ad

More from Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
Nuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
Nuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
Nuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
Nuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
Nuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
Nuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Nuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
Nuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Nuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
Nuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Nuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
Nuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Nuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
Nuxeo
 
Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
Nuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
Nuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
Nuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
Nuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
Nuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
Nuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Nuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
Nuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Nuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
Nuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Nuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
Nuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Nuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
Nuxeo
 

Recently uploaded (20)

Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
Best 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat PlatformsBest 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat Platforms
Soulmaite
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
Secondary Storage for a microcontroller system
Secondary Storage for a microcontroller systemSecondary Storage for a microcontroller system
Secondary Storage for a microcontroller system
fizarcse
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Preeti Jha
 
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
UXPA Boston
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
accessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electricaccessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electric
UXPA Boston
 
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More MachinesRefactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025
Damco Salesforce Services
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
React Native for Business Solutions: Building Scalable Apps for Success
React Native for Business Solutions: Building Scalable Apps for SuccessReact Native for Business Solutions: Building Scalable Apps for Success
React Native for Business Solutions: Building Scalable Apps for Success
Amelia Swank
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Maarten Verwaest
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
Best 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat PlatformsBest 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat Platforms
Soulmaite
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
Secondary Storage for a microcontroller system
Secondary Storage for a microcontroller systemSecondary Storage for a microcontroller system
Secondary Storage for a microcontroller system
fizarcse
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Middle East and Africa Cybersecurity Market Trends and Growth Analysis
Preeti Jha
 
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
Developing Product-Behavior Fit: UX Research in Product Development by Krysta...
UXPA Boston
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
accessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electricaccessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electric
UXPA Boston
 
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More MachinesRefactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025
Damco Salesforce Services
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
React Native for Business Solutions: Building Scalable Apps for Success
React Native for Business Solutions: Building Scalable Apps for SuccessReact Native for Business Solutions: Building Scalable Apps for Success
React Native for Business Solutions: Building Scalable Apps for Success
Amelia Swank
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Maarten Verwaest
 

Creating Large Scale Software Platforms with OSGi and an Extension Point Model (EclipseCon)

  • 1. Creating Large-Scale Software Platforms with OSGi and an Extension Point Model Introducing Eclipse Content Repository Bogdan Stefanescu, Lead Architect at Nuxeo 2011-03-23 1
  • 2. Nuxeo, Who Are We? ● Vendor of an open source software platform in the feld of Enterprise Content Management ● Love to create great software, fond of modularity, started to use OSGi 4 years ago to create server-side enterprise software ● 10 years old, 500+ customers, 5000+ installations ● Sells support & maintenance subscription and added value software provided as a service ● Dual HQ Paris & Boston, offces in San Francisco ● http://www.nuxeo.com 2
  • 3. Nuxeo Enterprise Platform ● The software we develop is an Open Source ECM platform known as Nuxeo Enterprise Platform (EP) ● A platform because you can use Nuxeo EP to develop your own customized ECM application ● We also provide turn-key pre-built applications based on Nuxeo EP already customized for different scopes: – Document Management (DM) – Digital Asset Management (DAM) – Case Management Framework (CMF) – or simply Content Application Platform (CAP) for developers 3
  • 4. 4
  • 5. Why Are We Here Today? ● To share our experience in building an enterprise application using OSGi and an extension point model ● To discuss and participate into spreading Equinox on the server side as well ● To grab your feedback and ideas! ● And, why not... to do some marketing too ;-) 5
  • 6. What Have We Achieved For Now? ● A complex software platform made of ● 186+ bundles, 215+ extension points ● Very fexible thanks to extension points ● Easy to contribute new services ● Easy to customize the default application (including UI and business logic) ● Running virtually everywhere ● JBoss AS - as an EAR application ● Tomcat - as a WAR application ● Equinox - as an OSGi application (and Virgo very soon) 6
  • 7. A Bit of History... ● We have been developing this ECM platform for 8 years ● We started in Python ● 5 years ago we switched to Java ● We needed a great model suitable for ● Modularity – split functionality in modules ● Flexibility – be able to easily confgure the application ● Constraints (requested by customers) ● Must deploy as an EAR or WAR application 7
  • 8. Choosing the Framework ● What were the choices? ● Java SE – nothing proposed – No bundle life cycle, no modularity, no extension system ● Java EE – not modular at all – All is packaged as one big application (EAR or WAR) – To update or add a feature you need to recompile the entire application ● OSGi – great specifcation – love at frst sight – But not compatible with J2EE – No real OSGi enterprise framework implementations at that moment 8
  • 9. Let's Give OSGi a Try... ● OSGi was best suited for our dreams… but... ● How to achieve fexibility? ● Eclipse already had the answer: extension points – Thanks Eclipse! ● How to integrate with J2EE Application Servers? ● J2EE applications are monolithic – there is no notion of modularity inside an application; the application is the unit ● But our application is supposed to be a platform made from tens or hundreds of units! 9
  • 10. An Extension Point Model ... ● So Eclipse already provided an extension point model – which is very good but ... ● It is based on EXSD descriptors ● Diffcult to manage EXSD fles outside PDE IDE ● PDE is very related to Eclipse plugin development ● PDE was not friendly with server side development – Remember we are in 2006 ● PDE was not friendly with other build systems – We were using Maven as our build system 10
  • 11. Nuxeo Extension Point Model ● So we decided to achieve something similar but in a more fexible way: ● No intermediate object model between services and contributed extensions ● Write your extension class and map it to XML using Java annotations ● Very easy to write for developers ● No specifc IDE needed to code extension points. ● Write a Java class, put the right annotations and the extension XML will be correctly injected into the Java object 11
  • 12. Extension Example XML Extension Extension Class 12
  • 13. J2EE Integration ● Main problem: different ClassLoader model ● In J2EE an EAR application is the deployment unit and use a fat ClassLoader ● In OSGi an application is made of multiple units (i.e. bundles) each one with its own ClassLoader ● Second problem: static confguration ● In J2EE the application is confgured as a single block using an application.xml and web.xml fle ● In OSGi we can have fragments that can dynamically add confguration 13
  • 14. Class Loading Problems ● Running as an EAR application: ● Using a home-made OSGi Adapter to load bundles when the EAR application starts ● Bundles life cycle is preserved ● A fat class loader model is used – All classes are visible to all bundles ● Running as an OSGi application: ● Main problem caused by third party libraries using Class.forName and the Thread Context ClassLoader – Using Eclipse-BuddyPolicy when no other solution is possible 14
  • 15. Confguration Fragments – 1 ● On J2EE confguration is monolithic ● To declare servlets you should know in advance what are the servlets provided by different bundles ● Using templates for J2EE confguration fles ● Dynamically generate these fles at application startup from the confguration contributed by bundles ● Able to package EAR applications that can adapt themselves to the confguration provided by application bundles ● No need of having different product packagings for different confgurations 15
  • 16. Confguration Fragments – 2 conf guration fragment i web.xml template. ID: web 16
  • 17. J2EE Features Added to OSGi ● Full OSGi integration of JAAS – for the authentication system ● Full JTA (transactions) support through Apache Geronimo ● Full JCA (resource adapters and pooling) support through Apache Geronimo ● In-memory JNDI server ● Future plans to integrate the work done in the Gemini project (and also support Virgo) 17
  • 18. Where Are We Going? ● Contribute the core of Nuxeo EP to Eclipse ● ECR (Enterprise Content Repository) project is in the proposal phase ● https://github.com/nuxeo/org.eclipse.ecr ● Port all major Nuxeo EP services as ECR plugins ● For now only the core functionality is included in ECR ● Help us provide the frst OSGi-based ECM platform based on the ECR project! 18
  • 19. Questions? Start Hacking ECR: https://github.com/nuxeo/org.eclipse.ecr Get Involved: ECR Proposal Forum Read more: Eclipse ECR Proposal Nuxeo EP Reference Documentation Contact me/us: Bogdan Stefanescu - [email protected] http://www.nuxeo.com 19