SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Nuxeo Marketplace
And the Update Center

Thierry Delprat, Stefanescu Bogdan, Alain Escaffre




                                                     1
Agenda

●
    Nuxeo Marketplace: presentation and objectives

●
    Nuxeo Marketplace review

●
    Behind the scenes – how it works




                                                     2
Nuxeo chose a modular
& extensible design...
●
    To maximize reuse of components in different
    use cases, thus improving their quality and
    usability
●
    To have an active roadmap
●
    To beneft from a high level of fexibility towards
    user requirements
●
    To have a vibrant and popular plugin
    ecosystem.
                                                        3
Nuxeo Community contributes
plugins...
●
    Nuxeo provides many plugins (CAS, importer,
    etc.)
●
    SI partners have their own internal shared library
    of typical improvements and demo scenarios
●
    Solution providers, through Nuxeo Galaxy,
    already have vertical solutions on top of Nuxeo
    DM
●
    Open source community provides several groups
    of interest in Nuxeo with various plugins
    (Yerbabuena, ESUP …)                                 4
… that will now fnd their place
in the Marketplace !
●
    Federate and focus Nuxeo Social Marketplace
    momentum
●
    Make it easier for Nuxeo users to access to all
    the available resources
●
    Provide a way for our partners to develop their
    business on top of the platform with (soon) a
    distribution solution for commercial plugins
●
    Provide a way to distribute «safe» customizations
●
    Keep on improving the Nuxeo user experience !       5
The Nuxeo Marketplace




                        6
Marketplace, Our Recipe

●
    The Marketplace portal
●
    A new plugin packaging system
●
    A solution for set up in only a few clicks
●
    An optional and multi-level qualifcation/validation
    scheme
●
    And … contributors !


                                                          7
Update Center Use Cases

●
    Distribution of addons
●
    Distribution of Nuxeo Connect patches
●
    Nuxeo Studio project deployment (with hot
    reload!)
●
    Will soon be a deployment solution for your
    project


                                                  8
Package View




               9
Contribution Process and
Guidelines
●
    Make sure your development is not buggy!
●
    Create your Marketplace package and test its
    deployment locally from the Update Center
●
    Send your package to Nuxeo with a full
    description
●
    Documentation -- provide a user guide, a
    technical guide if necessary, and optionally a link
    to the source code
                                                          10
Validation and Support of
Marketplace Packages
●
    Production state: vendor opinion on level of
    achievement of the plugin towards a go-to-
    production goal.
    ●
        prototype, testing, or ready
●
    Certifcation status: Level of audit and control
    by Nuxeo
    ●
        none, primary validation, or Nuxeo certifed
●
    Vendor support: yes/no
                                                      11
Update Center



   Nuxeo Server Package Administration




                                         12
Nuxeo Update Center




●
    Update Center
    ●
        is a part of Admin Center
    ●
        provides a fltered view of Marketplace packages
    ●
        manages package downloads
    ●
        manages installation wizard for packages
                                                          13
Browsing Packages
●
    Update Center provides several views
    ●
        Software updates
        –   Installed packages that can be upgraded
        –   Nuxeo patches and fxes
    ●
        Local packages
        –   packages that have been installed via Update Center
        –   packages that have been downloaded but not installed
    ●
        Marketplace
        –   last version of all Marketplace packages
    ●
        Studio
        –   different versions of Studio projects                  14


        –   quick update button
Browsing Packages
●
    Packages can be fltered
    ●
        by target platform
    ●
        by type (hot fx, addon, studio)




●
    You can see package details
    ●
        description
    ●
        validation status
    ●
        dependencies
    ●
        comments, download counts         15
Install Packages
●
    Downloading package
    ●
        managed as a background task
●
    Dependencies check
    ●
        Update Center will prompt for dependencies installation if
        needed
●
    Setup wizard
    ●
        if needed a setup wizard will be displayed
        (package confguration)
●
    Newly installed components may be
    ●
        hot deployed
        deployed on server restart
                                                                     16
    ●
Package Model



  An update package is the bundled feature
             you want to install.




                                             17
Package Structure
●
    An update feature is packaged as a zip
    ●
        A package descriptor fle: package.xml.
    ●
        An installation descriptor: install.xml.
    ●
        The package data:
        –   JARs to install
        –   confguration fles and other resources to copy on the
            server.
    ●
        Descriptor fles must reside in the ZIP root.



                                                                   18
The Package Descriptor
 ●
     A Package is uniquely identifed by its name and
     version.
 ●
     A Package has a type and a set of properties required
     by the installer.




                                                             19
Package Properties
●
    Main properties:
    ●
        Title – A title to be used in the UI.
    ●
        Description – The package description
    ●
        Vendor – the Vendor name
    ●
        Platforms – a list of target platforms
         –   The target platforms limit the distributions where the
             package can be installed.
    ●
        Dependencies – a list of dependencies, if any.



                                                                      20
Package Dependencies
●
    A package may require some other packages to
    be installed before you install it.
    ●
        Dependencies are identifed using the package ID –
        which has the format: 'name'-'version'.
    ●
        Dependencies are transitive – in order to be able to
        install your package you must install all transitive
        dependencies.
●
    A special dependency are the target platforms.
    ●
        You cannot install a package on an unsupported
        platform.
                                                               21
Package Install - Descriptor
●
    Installable artifacts:
    ●
        Nuxeo bundles (installed in bundles directory)
    ●
        Local third party libraries (installed in Nuxeo 'lib'
        directory)
    ●
        Global third party libraries (installed in container 'lib'
        directory)
    ●
        Static resource fles
    ●
        Confguration fles (installed in Nuxeo 'confg'
        directory)

                                                                     22
Package Install - Example
●
    Use package variables to specify artifact
    locations.




                                                23
Package Install - Variables
●
    In an install.xml you can use a set of useful
    variables like:
    ●
        Package related
        –   package.id, package.name, package version
        –   package.root – the package root
    ●
        Environment
    ●
        env.lib, env.bundles, env.confg, env.syslib
    ●
        sys.timestamp
●
    And also any Java System or Nuxeo Property

                                                        24
Studio Packages
●
    Studio provides integration with Update Center.
●
    You can install a Studio generated plugin in one
    click from Admin Center!
    ●
        You can install either tagged versions either the
        working copy of the project.
●
    Studio Packages are hot deployable.
    ●
        No need to restart the server.
    ●
        Refresh the browser to see the changes.


                                                            25
Update System



 What happens when installing or uninstalling a
                package?




                                                  26
The Installation Process
●
    The package is validated to check if all
    conditions are met – dependencies are resolved
    and the install script is valid.
●
    The installation starts – any user options are
    passed to install commands
    ●
        Each install rule is executed in the order it appear in
        the descriptor.
    ●
        An install log is created by appending in the reverse
        execution order the commands that succeeded.
    ●
        If install succeeds an uninstall.xml fle is generated
        from the install log.                                     27
Automatic Rollback
●
    Installation ensures that failures in an install task
    will not leave the system in an unknown state.
●
    In case of a failure, an automatic rollback is done
    – and thesystem is reset to its initial state (the
    one before starting the installation).
●
    The rollback mechanism executes all the
    commands present in the install log.
●
    Rollback is also done if an uninstall fails.


                                                            28
The Uninstall Process
●
    The uninstall descriptor is auto-generated when
    an install succeeds from the install log.
●
    At install time, a backup is made for any fle
    replaced or removed by the installer.
●
    Also an MD5 fngerprint is generated for any
    installed artifact.
●
    At uninstall backups are restored but only if the
    MD5 of the target fle match the one created by
    the installer.
                                                        29
Uninstall Descriptor




                       30
Hot Reload Support
●
    Limited hot reload after an install / uninstall is
    supported for some packages.
    ●
        Any Studio Packages
    ●
        Any Package that doesn't contain Java code
●
    Hot reload will be improved to also support
    packages containing java classes in the near
    future.



                                                         31
What's Next?
●
    Project delivery through Marketplace
●
    Install wizard improvements
●
    Hot reloading improvements
●
    Nuxeo Studio introspection of Marketplace
    packages
●
    Commercial packages with e-payment




                                                32
Thank you!




             33

Weitere ähnliche Inhalte

Was ist angesagt?

All Work Responsibilities in my whole Life-Testing Profession
All Work Responsibilities in my whole  Life-Testing  ProfessionAll Work Responsibilities in my whole  Life-Testing  Profession
All Work Responsibilities in my whole Life-Testing Profession
Gopi Raghavendra
 

Was ist angesagt? (20)

OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
 
Selenium cloud
Selenium cloudSelenium cloud
Selenium cloud
 
All Work Responsibilities in my whole Life-Testing Profession
All Work Responsibilities in my whole  Life-Testing  ProfessionAll Work Responsibilities in my whole  Life-Testing  Profession
All Work Responsibilities in my whole Life-Testing Profession
 
Modern Development Tools
Modern Development ToolsModern Development Tools
Modern Development Tools
 
Sep Nasiri "Upwork PHP Architecture"
Sep Nasiri "Upwork PHP Architecture"Sep Nasiri "Upwork PHP Architecture"
Sep Nasiri "Upwork PHP Architecture"
 
An introduction to Node.js application development
An introduction to Node.js application developmentAn introduction to Node.js application development
An introduction to Node.js application development
 
OpenCms Days 2014 - Updating to OpenCms 9.5
OpenCms Days 2014 - Updating to OpenCms 9.5OpenCms Days 2014 - Updating to OpenCms 9.5
OpenCms Days 2014 - Updating to OpenCms 9.5
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
 
Selenium camp v1
Selenium camp v1Selenium camp v1
Selenium camp v1
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
 
Chromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChromium: NaCl and Pepper API
Chromium: NaCl and Pepper API
 
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений" Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
Александр Махомет "Feature Flags. Уменьшаем риски при выпуске изменений"
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Cli jbug
Cli jbugCli jbug
Cli jbug
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
 
Integrating the Ruby Debugger into YaST
Integrating the Ruby Debugger into YaSTIntegrating the Ruby Debugger into YaST
Integrating the Ruby Debugger into YaST
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
.NET Core in the Real World
.NET Core in the Real World.NET Core in the Real World
.NET Core in the Real World
 
10 tips for continuous integration
10 tips for continuous integration10 tips for continuous integration
10 tips for continuous integration
 

Ähnlich wie Nuxeo World Session: Building Packages for the Nuxeo Marketplace

Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
ICS
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Nuxeo
 
Nh php may 2014 - composer
Nh php   may 2014 - composerNh php   may 2014 - composer
Nh php may 2014 - composer
David Weingart
 

Ähnlich wie Nuxeo World Session: Building Packages for the Nuxeo Marketplace (20)

Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package Manager
 
Nh php may 2014 - composer
Nh php   may 2014 - composerNh php   may 2014 - composer
Nh php may 2014 - composer
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Understanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for Enterprises
 
Organize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterpriseOrganize your chickens: NuGet for the enterprise
Organize your chickens: NuGet for the enterprise
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)
 
10 11-hart installing pythonsoftware
10 11-hart installing pythonsoftware10 11-hart installing pythonsoftware
10 11-hart installing pythonsoftware
 
Weblogic12 c installation guide
Weblogic12 c installation guideWeblogic12 c installation guide
Weblogic12 c installation guide
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get Started
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Intro to NuGet
Intro to NuGetIntro to NuGet
Intro to NuGet
 
Unlocked package
Unlocked packageUnlocked package
Unlocked package
 
Streamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL AtomicStreamlining Agile Linux Development with Docker and RHEL Atomic
Streamlining Agile Linux Development with Docker and RHEL Atomic
 
Dynamic infrastructure for development
Dynamic infrastructure for developmentDynamic infrastructure for development
Dynamic infrastructure for development
 
Build and deploy scientific Python Applications
Build and deploy scientific Python Applications  Build and deploy scientific Python Applications
Build and deploy scientific Python Applications
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012
 
Automations Presentation New
Automations Presentation NewAutomations Presentation New
Automations Presentation New
 

Mehr von 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
 

Mehr von 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
 
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
 
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
 
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
 
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
 
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
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
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
 
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
 
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
 
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...
 
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
 
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
 
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
 
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...
 
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
 
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
 
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
 
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
 
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
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Nuxeo World Session: Building Packages for the Nuxeo Marketplace

  • 1. Nuxeo Marketplace And the Update Center Thierry Delprat, Stefanescu Bogdan, Alain Escaffre 1
  • 2. Agenda ● Nuxeo Marketplace: presentation and objectives ● Nuxeo Marketplace review ● Behind the scenes – how it works 2
  • 3. Nuxeo chose a modular & extensible design... ● To maximize reuse of components in different use cases, thus improving their quality and usability ● To have an active roadmap ● To beneft from a high level of fexibility towards user requirements ● To have a vibrant and popular plugin ecosystem. 3
  • 4. Nuxeo Community contributes plugins... ● Nuxeo provides many plugins (CAS, importer, etc.) ● SI partners have their own internal shared library of typical improvements and demo scenarios ● Solution providers, through Nuxeo Galaxy, already have vertical solutions on top of Nuxeo DM ● Open source community provides several groups of interest in Nuxeo with various plugins (Yerbabuena, ESUP …) 4
  • 5. … that will now fnd their place in the Marketplace ! ● Federate and focus Nuxeo Social Marketplace momentum ● Make it easier for Nuxeo users to access to all the available resources ● Provide a way for our partners to develop their business on top of the platform with (soon) a distribution solution for commercial plugins ● Provide a way to distribute «safe» customizations ● Keep on improving the Nuxeo user experience ! 5
  • 7. Marketplace, Our Recipe ● The Marketplace portal ● A new plugin packaging system ● A solution for set up in only a few clicks ● An optional and multi-level qualifcation/validation scheme ● And … contributors ! 7
  • 8. Update Center Use Cases ● Distribution of addons ● Distribution of Nuxeo Connect patches ● Nuxeo Studio project deployment (with hot reload!) ● Will soon be a deployment solution for your project 8
  • 10. Contribution Process and Guidelines ● Make sure your development is not buggy! ● Create your Marketplace package and test its deployment locally from the Update Center ● Send your package to Nuxeo with a full description ● Documentation -- provide a user guide, a technical guide if necessary, and optionally a link to the source code 10
  • 11. Validation and Support of Marketplace Packages ● Production state: vendor opinion on level of achievement of the plugin towards a go-to- production goal. ● prototype, testing, or ready ● Certifcation status: Level of audit and control by Nuxeo ● none, primary validation, or Nuxeo certifed ● Vendor support: yes/no 11
  • 12. Update Center Nuxeo Server Package Administration 12
  • 13. Nuxeo Update Center ● Update Center ● is a part of Admin Center ● provides a fltered view of Marketplace packages ● manages package downloads ● manages installation wizard for packages 13
  • 14. Browsing Packages ● Update Center provides several views ● Software updates – Installed packages that can be upgraded – Nuxeo patches and fxes ● Local packages – packages that have been installed via Update Center – packages that have been downloaded but not installed ● Marketplace – last version of all Marketplace packages ● Studio – different versions of Studio projects 14 – quick update button
  • 15. Browsing Packages ● Packages can be fltered ● by target platform ● by type (hot fx, addon, studio) ● You can see package details ● description ● validation status ● dependencies ● comments, download counts 15
  • 16. Install Packages ● Downloading package ● managed as a background task ● Dependencies check ● Update Center will prompt for dependencies installation if needed ● Setup wizard ● if needed a setup wizard will be displayed (package confguration) ● Newly installed components may be ● hot deployed deployed on server restart 16 ●
  • 17. Package Model An update package is the bundled feature you want to install. 17
  • 18. Package Structure ● An update feature is packaged as a zip ● A package descriptor fle: package.xml. ● An installation descriptor: install.xml. ● The package data: – JARs to install – confguration fles and other resources to copy on the server. ● Descriptor fles must reside in the ZIP root. 18
  • 19. The Package Descriptor ● A Package is uniquely identifed by its name and version. ● A Package has a type and a set of properties required by the installer. 19
  • 20. Package Properties ● Main properties: ● Title – A title to be used in the UI. ● Description – The package description ● Vendor – the Vendor name ● Platforms – a list of target platforms – The target platforms limit the distributions where the package can be installed. ● Dependencies – a list of dependencies, if any. 20
  • 21. Package Dependencies ● A package may require some other packages to be installed before you install it. ● Dependencies are identifed using the package ID – which has the format: 'name'-'version'. ● Dependencies are transitive – in order to be able to install your package you must install all transitive dependencies. ● A special dependency are the target platforms. ● You cannot install a package on an unsupported platform. 21
  • 22. Package Install - Descriptor ● Installable artifacts: ● Nuxeo bundles (installed in bundles directory) ● Local third party libraries (installed in Nuxeo 'lib' directory) ● Global third party libraries (installed in container 'lib' directory) ● Static resource fles ● Confguration fles (installed in Nuxeo 'confg' directory) 22
  • 23. Package Install - Example ● Use package variables to specify artifact locations. 23
  • 24. Package Install - Variables ● In an install.xml you can use a set of useful variables like: ● Package related – package.id, package.name, package version – package.root – the package root ● Environment ● env.lib, env.bundles, env.confg, env.syslib ● sys.timestamp ● And also any Java System or Nuxeo Property 24
  • 25. Studio Packages ● Studio provides integration with Update Center. ● You can install a Studio generated plugin in one click from Admin Center! ● You can install either tagged versions either the working copy of the project. ● Studio Packages are hot deployable. ● No need to restart the server. ● Refresh the browser to see the changes. 25
  • 26. Update System What happens when installing or uninstalling a package? 26
  • 27. The Installation Process ● The package is validated to check if all conditions are met – dependencies are resolved and the install script is valid. ● The installation starts – any user options are passed to install commands ● Each install rule is executed in the order it appear in the descriptor. ● An install log is created by appending in the reverse execution order the commands that succeeded. ● If install succeeds an uninstall.xml fle is generated from the install log. 27
  • 28. Automatic Rollback ● Installation ensures that failures in an install task will not leave the system in an unknown state. ● In case of a failure, an automatic rollback is done – and thesystem is reset to its initial state (the one before starting the installation). ● The rollback mechanism executes all the commands present in the install log. ● Rollback is also done if an uninstall fails. 28
  • 29. The Uninstall Process ● The uninstall descriptor is auto-generated when an install succeeds from the install log. ● At install time, a backup is made for any fle replaced or removed by the installer. ● Also an MD5 fngerprint is generated for any installed artifact. ● At uninstall backups are restored but only if the MD5 of the target fle match the one created by the installer. 29
  • 31. Hot Reload Support ● Limited hot reload after an install / uninstall is supported for some packages. ● Any Studio Packages ● Any Package that doesn't contain Java code ● Hot reload will be improved to also support packages containing java classes in the near future. 31
  • 32. What's Next? ● Project delivery through Marketplace ● Install wizard improvements ● Hot reloading improvements ● Nuxeo Studio introspection of Marketplace packages ● Commercial packages with e-payment 32