SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Nuxeo WebEngine
a practical introduction




                           Bogdan Stefanescu |
Overview
●   What is WebEngine?
●   Architecture
    ●   JAX-RS
    ●   Object Model
    ●   Scripting
    ●   Templates
Overview
●   Examples
    ●   Creating a JAX-RS resource
    ●   Creating a Web Module
    ●   Working with Web Objects
    ●   Working with Web Adapters
    ●   Managing Links
    ●   Internationalization
WebEngine – What Is?
A framework to build RESTful Web Applications
  on top of the Nuxeo Platform. Goals:
  ●   Rapid development of Web Applications: intuitive
      and extensible model, scripting, fast startup time,
      hot reload etc.
  ●   An unique platform to develop all kind of content
      oriented Web Applications including
      –   Content oriented Web sites.
      –   REST services for Nuxeo Platform.
      –   Rich front ends based on AJAX frameworks like GWT.
  ●   Pleasant coding experience
  ●   Light packaging
WebEngine - Features
●   Powerful Object Model built on top of JAX-RS.
●   Full Groovy Scripting support.
●   Powerful template engine based on Freemarker
●   Content Management through Nuxeo Platform
●   Packaged in several flavors:
    ●   Standalone server with GlassFish v3 embedded
    ●   Standalone server with Jetty embedded
    ●   Tomcat Web Application
    ●   Nuxeo EP plug-ins
Architecture - JAX-RS
●   WebEngine model is based on JAX-RS
     standard.
●   JAX-RS is a Java API to build RESTful Web
    Services.
●   JAX-RS is exposing Java objects as Web
    resources. Binging objects to Web resources is
    done by using Java annotations.
●   HTTP requests will be resolved to JAX-RS
    resources that will be manipulated using
    common HTTP methods like GET, POST, PUT,
    DELETE, HEAD.
Architecture – Object Model
●   Why an Object Model on top of JAX-RS?
●   Provides a coherent model to build modular
    applications.
    ●   An Web Application is deployed as an Web Module.
    ●   Web Modules can extend other Web Modules.
    ●   Web Modules are bound to a fixed Web path and
        provides access to Web Resources defined inside
        the module or in extended modules.
    ●   Web Resources are extensible and can be shared
        between modules.
Architecture – Object Model
●   Why an Object Model on top of JAX-RS?
●   Provides a coherent model to expose Java
    Objects as Web Resources.
    ●   Web Module Entry Point – the root resource that is
        the entry point for any request on the module. It is
        explicitly bound to a Web path using @Path
        annotation.
    ●   Web Objects – sub-resources that are exposing
        concrete functionality.
    ●   Web Adapters – sub-resources that enable to easily
        extends existing Web Objects.
Architecture – Web Modules
●   An Web Module is defining:
●   Web Resources and templates to expose.
●   Static and i18n resources (CSS, PNG etc)
●   An Web Path under which the module
    resources can be found
●   A JAX-RS root resource – which will usually
    dispatch any request to sub-resources like Web
    Objects and Web Adapters
●   Inherited Web Modules
Architecture – Web Objects
●   Web Objects are JAX-RS resources that
     expose concrete objects to the Web.
●   Web Objects have a type and a set of optional
    facets.
●   Web Object types can be derived to create new
    types that inherit behaviors from the super type.
●   Facets describes the Web Object behaviors.
●   Web Objects may define views using template
    files.
Architecture – Web Adapters
●   Web Adapters are JAX-RS resources that can
     be used to expose additional functionalities
     on existing Web Objects.
●   Is a specialized Web Object and have a type
    and optional facets like any other Web Object.
●   Can be restricted to adapt only specific Web
    Objects by using filters based on target Web
    Object type and facets.
●   Are invoked using a @ prefix
    ●   Example: GET /my/doc/@versions
Architecture – Documents
●   WebEngine is providing built-in support to
     expose Nuxeo Documents as Web Objects.
●   Document Types are mapped to Web Objects
    by respecting the document type hierarchy.
    ●   Provides a generic Document Object that will catch
        any document type which is not explicitly exposed.
●   Document types and facets are transparently
    mapped as Web Object type and facets.
●   Several Web Adapters are provided: Versioning
    Adapter, Lock Adapter, Relations Adapter etc.
Architecture – Scripting
●   Built-in Groovy scripting.
●   Any Web Resource can be defined as a Groovy
    object.
●   Java and Groovy share the same Class Path.
    ●   One can build mixed Web Modules with both
        Groovy and Java objects.
    ●   A Groovy object may call or extend any Java object
        and vice-versa.
●   Hot reload of Groovy classes in debug mode.
Architecture - Templates
●   The template engine is building client
     responses using template files.
●   Based on Freemarker engine.
●   Custom extensions to add dynamic blocks, Wiki
    rendering etc.
●   Dynamic Blocks are used to create extensible
    templates.
    ●   Templates that define dynamic blocks may e
        extended by other templates that may redefine any
        block.
Examples – JAX-RS
Examples – Web Module
Examples – Web Object
Examples – Web Adapter
Examples – Templates
Examples – Links
Examples – Internationalization
Thank you!

Mais conteúdo relacionado

Mais procurados

Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser InternalsSiva Arunachalam
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKitJoone Hur
 
Android chromium web view
Android chromium web viewAndroid chromium web view
Android chromium web view朋 王
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering PipelineHyungwook Lee
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
Understanding Webkit Rendering
Understanding Webkit RenderingUnderstanding Webkit Rendering
Understanding Webkit RenderingAriya Hidayat
 
Meet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis LukssMeet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis LukssAmasty
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Extending Alfresco Share 3.3
Extending Alfresco Share 3.3Extending Alfresco Share 3.3
Extending Alfresco Share 3.3Will Abson
 
Treinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDTTreinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDTallanbezerra
 

Mais procurados (20)

Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser Internals
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
Html 5
Html 5Html 5
Html 5
 
Eclipse orion
Eclipse orionEclipse orion
Eclipse orion
 
Android chromium web view
Android chromium web viewAndroid chromium web view
Android chromium web view
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source Tree
 
How Browsers Work
How Browsers Work How Browsers Work
How Browsers Work
 
Chromium vs. Firefox
Chromium vs. FirefoxChromium vs. Firefox
Chromium vs. Firefox
 
Firefox vs. chrome
Firefox vs. chromeFirefox vs. chrome
Firefox vs. chrome
 
Understanding Webkit Rendering
Understanding Webkit RenderingUnderstanding Webkit Rendering
Understanding Webkit Rendering
 
Web component
Web componentWeb component
Web component
 
Meet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis LukssMeet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis Lukss
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Asp.net
Asp.netAsp.net
Asp.net
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 
Dot Net Nuke
Dot Net NukeDot Net Nuke
Dot Net Nuke
 
Components now!
Components now! Components now!
Components now!
 
Extending Alfresco Share 3.3
Extending Alfresco Share 3.3Extending Alfresco Share 3.3
Extending Alfresco Share 3.3
 
Treinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDTTreinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDT
 

Semelhante a Nuxeo WebEngine: a practical introduction

ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET PresentationRasel Khan
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and ReactMike Melusky
 
React.js for Rails Developers
React.js for Rails DevelopersReact.js for Rails Developers
React.js for Rails DevelopersArkency
 
Jeetrainers.com coursejspservlets00
Jeetrainers.com coursejspservlets00Jeetrainers.com coursejspservlets00
Jeetrainers.com coursejspservlets00Rajesh Moorjani
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesEamonn Boyle
 
Lessons from the Trenches: Engineering Great AJAX Experiences
Lessons from the Trenches: Engineering Great AJAX ExperiencesLessons from the Trenches: Engineering Great AJAX Experiences
Lessons from the Trenches: Engineering Great AJAX Experiencesgoodfriday
 
Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008maddinapudi
 
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...shesmer
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RSFahad Golra
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascriptrajivmordani
 
Java Web services
Java Web servicesJava Web services
Java Web servicesSujit Kumar
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...WebStackAcademy
 

Semelhante a Nuxeo WebEngine: a practical introduction (20)

Nuxeo WebEngine GFv3 Aquarium Paris
Nuxeo WebEngine GFv3 Aquarium ParisNuxeo WebEngine GFv3 Aquarium Paris
Nuxeo WebEngine GFv3 Aquarium Paris
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
Angular or React
Angular or ReactAngular or React
Angular or React
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and React
 
React.js for Rails Developers
React.js for Rails DevelopersReact.js for Rails Developers
React.js for Rails Developers
 
Coursejspservlets00
Coursejspservlets00Coursejspservlets00
Coursejspservlets00
 
Jeetrainers.com coursejspservlets00
Jeetrainers.com coursejspservlets00Jeetrainers.com coursejspservlets00
Jeetrainers.com coursejspservlets00
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
 
Lessons from the Trenches: Engineering Great AJAX Experiences
Lessons from the Trenches: Engineering Great AJAX ExperiencesLessons from the Trenches: Engineering Great AJAX Experiences
Lessons from the Trenches: Engineering Great AJAX Experiences
 
Lessons
LessonsLessons
Lessons
 
Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008
 
AFTAB AHMED.pptx
AFTAB AHMED.pptxAFTAB AHMED.pptx
AFTAB AHMED.pptx
 
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
Develop Engaging and High Performance Portal Themes That Power Exceptional Di...
 
Santosh_Resume_Java
Santosh_Resume_JavaSantosh_Resume_Java
Santosh_Resume_Java
 
Ajax
AjaxAjax
Ajax
 
Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RS
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascript
 
Java Web services
Java Web servicesJava Web services
Java Web services
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 

Mais de Nuxeo

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 CompaniesNuxeo
 
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 FutureNuxeo
 
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 PandemicNuxeo
 
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 NuxeoNuxeo
 
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 SupportNuxeo
 
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 ContinuumNuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021Nuxeo
 
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 innovanteNuxeo
 
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 NuxeoNuxeo
 
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'évaluationNuxeo
 
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
 
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 CompetitionNuxeo
 
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 Nuxeo
 
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 DAMNuxeo
 
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...Nuxeo
 
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 BeyondNuxeo
 
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 DAMNuxeo
 
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 TechnologiesNuxeo
 
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 administratifsNuxeo
 
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 IntelligenceNuxeo
 

Mais de 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
 

Último

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.IPLOOK Networks
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTopCSSGallery
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarThousandEyes
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptxHansamali Gamage
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 

Último (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development Companies
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? Webinar
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile Brochure
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 

Nuxeo WebEngine: a practical introduction

  • 1. Nuxeo WebEngine a practical introduction Bogdan Stefanescu |
  • 2. Overview ● What is WebEngine? ● Architecture ● JAX-RS ● Object Model ● Scripting ● Templates
  • 3. Overview ● Examples ● Creating a JAX-RS resource ● Creating a Web Module ● Working with Web Objects ● Working with Web Adapters ● Managing Links ● Internationalization
  • 4. WebEngine – What Is? A framework to build RESTful Web Applications on top of the Nuxeo Platform. Goals: ● Rapid development of Web Applications: intuitive and extensible model, scripting, fast startup time, hot reload etc. ● An unique platform to develop all kind of content oriented Web Applications including – Content oriented Web sites. – REST services for Nuxeo Platform. – Rich front ends based on AJAX frameworks like GWT. ● Pleasant coding experience ● Light packaging
  • 5. WebEngine - Features ● Powerful Object Model built on top of JAX-RS. ● Full Groovy Scripting support. ● Powerful template engine based on Freemarker ● Content Management through Nuxeo Platform ● Packaged in several flavors: ● Standalone server with GlassFish v3 embedded ● Standalone server with Jetty embedded ● Tomcat Web Application ● Nuxeo EP plug-ins
  • 6. Architecture - JAX-RS ● WebEngine model is based on JAX-RS standard. ● JAX-RS is a Java API to build RESTful Web Services. ● JAX-RS is exposing Java objects as Web resources. Binging objects to Web resources is done by using Java annotations. ● HTTP requests will be resolved to JAX-RS resources that will be manipulated using common HTTP methods like GET, POST, PUT, DELETE, HEAD.
  • 7. Architecture – Object Model ● Why an Object Model on top of JAX-RS? ● Provides a coherent model to build modular applications. ● An Web Application is deployed as an Web Module. ● Web Modules can extend other Web Modules. ● Web Modules are bound to a fixed Web path and provides access to Web Resources defined inside the module or in extended modules. ● Web Resources are extensible and can be shared between modules.
  • 8. Architecture – Object Model ● Why an Object Model on top of JAX-RS? ● Provides a coherent model to expose Java Objects as Web Resources. ● Web Module Entry Point – the root resource that is the entry point for any request on the module. It is explicitly bound to a Web path using @Path annotation. ● Web Objects – sub-resources that are exposing concrete functionality. ● Web Adapters – sub-resources that enable to easily extends existing Web Objects.
  • 9. Architecture – Web Modules ● An Web Module is defining: ● Web Resources and templates to expose. ● Static and i18n resources (CSS, PNG etc) ● An Web Path under which the module resources can be found ● A JAX-RS root resource – which will usually dispatch any request to sub-resources like Web Objects and Web Adapters ● Inherited Web Modules
  • 10. Architecture – Web Objects ● Web Objects are JAX-RS resources that expose concrete objects to the Web. ● Web Objects have a type and a set of optional facets. ● Web Object types can be derived to create new types that inherit behaviors from the super type. ● Facets describes the Web Object behaviors. ● Web Objects may define views using template files.
  • 11. Architecture – Web Adapters ● Web Adapters are JAX-RS resources that can be used to expose additional functionalities on existing Web Objects. ● Is a specialized Web Object and have a type and optional facets like any other Web Object. ● Can be restricted to adapt only specific Web Objects by using filters based on target Web Object type and facets. ● Are invoked using a @ prefix ● Example: GET /my/doc/@versions
  • 12. Architecture – Documents ● WebEngine is providing built-in support to expose Nuxeo Documents as Web Objects. ● Document Types are mapped to Web Objects by respecting the document type hierarchy. ● Provides a generic Document Object that will catch any document type which is not explicitly exposed. ● Document types and facets are transparently mapped as Web Object type and facets. ● Several Web Adapters are provided: Versioning Adapter, Lock Adapter, Relations Adapter etc.
  • 13. Architecture – Scripting ● Built-in Groovy scripting. ● Any Web Resource can be defined as a Groovy object. ● Java and Groovy share the same Class Path. ● One can build mixed Web Modules with both Groovy and Java objects. ● A Groovy object may call or extend any Java object and vice-versa. ● Hot reload of Groovy classes in debug mode.
  • 14. Architecture - Templates ● The template engine is building client responses using template files. ● Based on Freemarker engine. ● Custom extensions to add dynamic blocks, Wiki rendering etc. ● Dynamic Blocks are used to create extensible templates. ● Templates that define dynamic blocks may e extended by other templates that may redefine any block.
  • 18. Examples – Web Adapter