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

984

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
984
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
    • Nuxeo Marketplace: presentation and objectives
    • 3. Nuxeo Marketplace review
    • 4. Behind the scenes – how it works
  • 5. Nuxeo chose a modular and extensible design...
    • 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.
  • 9. Nuxeo Community contributes plugins...
    • 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 …)
  • 13. … that will now find their place in the Marketplace !
    • 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 !
  • 18. The Nuxeo Marketplace
  • 19. Marketplace, Our Recipe
    • 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 !
  • 24. Update Center Use Cases
    • 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
  • 28. Package View
  • 29. Contribution Process and Guidelines
    • 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
  • 33. 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
    • Certification status : Level of audit and control by Nuxeo
      • none, primary validation, or Nuxeo certified
    • Vendor support : yes/no
  • 34. Update Center Nuxeo Server Package Administration
  • 35. Nuxeo Update Center
    • Update Center
      • is a part of Admin Center
      • 36. provides a filtered view of Marketplace packages
      • 37. manages package downloads
      • 38. manages installation wizard for packages
  • 39. Browsing Packages
    • Update Center provides several views
      • Software updates
        • Installed packages that can be upgraded
        • 40. Nuxeo patches and fixes
      • Local packages
        • packages that have been installed via Update Center
        • 41. packages that have been downloaded but not installed
      • Marketplace
        • last version of all Marketplace packages
      • Studio
        • different versions of Studio projects
        • 42. quick update button
  • 43. Browsing Packages
    • Packages can be filtered
      • by target platform
      • 44. by type (hot fix, addon, studio)
    • You can see package details
      • description
      • 45. validation status
      • 46. dependencies
      • 47. comments, download counts
  • 48. 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 configuration)
    • Newly installed components may be
      • hot deployed
      • 49. deployed on server restart
  • 50. Package Model An update package is the bundled feature you want to install.
  • 51. Package Structure
    • An update feature is packaged as a zip
      • A package descriptor file: package.xml.
      • 52. An installation descriptor: install.xml.
      • 53. The package data:
        • JARs to install
        • 54. configuration files and other resources to copy on the server.
      • Descriptor files must reside in the ZIP root.
  • 55. The Package Descriptor
      • 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.
  • 57. Package Properties
    • Main properties:
      • 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
        • The target platforms limit the distributions where the package can be installed.
      • Dependencies – a list of dependencies, if any.
  • 61. Package Dependencies
    • A package may require some other packages to be installed before you install it.
      • 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.
    • A special dependency are the target platforms.
      • You cannot install a package on an unsupported platform.
  • 63. Package Install - Descriptor
    • Installable artifacts:
      • 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)
  • 68. Package Install - Example
    • Use package variables to specify artifact locations.
  • 69. Package Install - Variables
    • In an install.xml you can use a set of useful variables like:
      • Package related
        • package.id, package.name, package version
        • 70. package.root – the package root
      • Environment
      • 71. env.lib, env.bundles, env.config, env.syslib
      • 72. sys.timestamp
    • And also any Java System or Nuxeo Property
  • 73. Studio Packages
    • Studio provides integration with Update Center.
    • 74. 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.
      • 75. Refresh the browser to see the changes.
  • 76. Update System What happens when installing or uninstalling a package?
  • 77. The Installation Process
    • 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
      • 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.
  • 81. Automatic Rollback
    • 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.
  • 85. The Uninstall Process
    • 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.
  • 89. Uninstall Descriptor
  • 90. Hot Reload Support
    • Limited hot reload after an install / uninstall is supported for some packages.
      • Any Studio Packages
      • 91. Any Package that doesn't contain Java code
    • Hot reload will be improved to also support packages containing java classes in the near future.
  • 92. What's Next?
    • 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
  • 97. Thank you!

×