Your SlideShare is downloading. ×
0
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Nuxeo World Session: Building Packages for the Nuxeo Marketplace
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Nuxeo World Session: Building Packages for the Nuxeo Marketplace

988

Published on

Technical session on Nuxeo Marketplace during Nuxeo World conference 2010 (November 17-18, 2010). Presented by Alain Escaffre, Thierry Delprat, and Stefanescu Bogdan.

Technical session on Nuxeo Marketplace during Nuxeo World conference 2010 (November 17-18, 2010). Presented by Alain Escaffre, Thierry Delprat, and Stefanescu Bogdan.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
988
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×