+ All Categories
Home > Technology > Nuxeo World Session: Building Packages for the Nuxeo Marketplace

Nuxeo World Session: Building Packages for the Nuxeo Marketplace

Date post: 17-Jan-2015
Category:
Upload: nuxeo
View: 955 times
Download: 2 times
Share this document with a friend
Description:
Technical session on Nuxeo Marketplace during Nuxeo World conference 2010 (November 17-18, 2010). Presented by Alain Escaffre, Thierry Delprat, and Stefanescu Bogdan.
Popular Tags:
33
1 Nuxeo Marketplace And the Update Center Thierry Delprat, Stefanescu Bogdan, Alain Escaffre
Transcript
Page 1: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

1

Nuxeo MarketplaceAnd the Update Center

Thierry Delprat, Stefanescu Bogdan, Alain Escaffre

Page 2: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

2

Agenda

● Nuxeo Marketplace: presentation and objectives

● Nuxeo Marketplace review

● Behind the scenes – how it works

Page 3: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 4: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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 …)

Page 5: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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 !

Page 6: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

6

The Nuxeo Marketplace

Page 7: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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 !

Page 8: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 9: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

9

Package View

Page 10: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 11: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 12: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

12

Update Center

Nuxeo Server Package Administration

Page 13: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 14: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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– quick update button

Page 15: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 16: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 17: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

17

Package Model

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

Page 18: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 19: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 20: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 21: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 22: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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)

Page 23: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

23

Package Install - Example● Use package variables to specify artifact

locations.

Page 24: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 25: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 26: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

26

Update System

What happens when installing or uninstalling a package?

Page 27: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 28: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 29: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 30: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

30

Uninstall Descriptor

Page 31: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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.

Page 32: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

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

Page 33: Nuxeo World Session: Building Packages for the Nuxeo Marketplace

33

Thank you!


Recommended