The document discusses Nuxeo's Marketplace and Update Center. It provides an overview of how the Marketplace allows users to access plugins contributed by Nuxeo and partners. Plugins can be packaged and validated for distribution through the Update Center. The Update Center manages downloading, installing, upgrading, and uninstalling packages, handling dependencies and providing rollback functionality. It also supports hot reloading of some package types to enable changes without restarting the server.
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