[PAGES-916] Create PageNodeTypeResolverDefinition and pre-configured PagesNorsuDeliveryEndpointDefinition Created: 07/Nov/22  Updated: 13/Dec/22  Resolved: 15/Nov/22

Status: Closed
Project: Magnolia pages module
Component/s: None
Affects Version/s: None
Fix Version/s: 6.3.0

Type: Improvement Priority: Neutral
Reporter: Canh Nguyen Assignee: Canh Nguyen
Resolution: Done Votes: 0
Labels: None
Σ Remaining Estimate: 0d Remaining Estimate: 0d
Σ Time Spent: 1d 1h Time Spent: 1d 1h
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Cloners
clones MGNLREST-547 Create sub Norsu endpoint definition ... Closed
dependency
is depended upon by PAGES-922 LegacyPageWriter ignores page properties Closed
documentation
to be documented by PAGES-929 DOC: PageNodeTypeResolverDefinition a... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
PAGES-917 Implementation Sub-task Completed Canh Nguyen  
PAGES-918 Review Sub-task Completed Dai Ha  
PAGES-919 Pre-Integration QA Sub-task Completed Dai Ha  
PAGES-920 QA Sub-task Completed Robert Šiška  
Template:
Acceptance criteria:
Empty
Task DoD:
[X]* Doc/release notes changes? Comment present?
[X]* Downstream builds green?
[X]* Solution information and context easily available?
[X]* Tests
[X]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Documentation update required:
Yes
Epic Link: Norsu delivery endpoint (phase 1)
Sprint: DevX 23
Story Points: 0
Team: DeveloperX

 Description   

NorsuEndpointDefinition introduces a new property to configure mapping node types with NodeTypeResolver implementation classes. To simplify the config, we need to introduce a sub definition for NodeTypeResolver so we can config nodeTypeMappings like below:

$type: deliverEndpoint_v2
workspace: ""
rootPath: "/"
depth: 10
nodeTypeMappings:
  pages:
    nodeType: "mgnl:page"
    $type: pagesResolver_v2
  tours:
    $type: customTourDataResolver
includeSystemProperties: true
systemProperties:
  - mgnl:type
  - mgnl:created
  - mgnl:template
referenceDepth: 2
references:
  - name: norsuCombo
    propertyName: norsuCombo
    referenceResolver:
      $type: norsuReferenceResolver
  - name: image
    propertyName: image
    referenceResolver:
      $type: assetReferenceResolver
      assetRenditions:
        - '480'
        - 1600x1200
  - name: destinations
    propertyName: destination
    referenceResolver:
      $type: jcrReferenceResolver
      targetWorkspace: category

nodeType could be optional, pagesResolverV2 will have a default nodeType. But we can configure pagesResolverV2 with other compatible node types.



 Comments   
Comment by Canh Nguyen [ 09/Nov/22 ]

For Norsu pages v2, we can configure the endpoint like below:

$type: pagesDeliveryEndpoint_v2
workspace: ""
rootPath: "/"
depth: 10
referenceDepth: 2
references:
  - name: image
    propertyName: image
    referenceResolver:
      $type: assetReferenceResolver
      assetRenditions:
        - '480'
        - 1600x1200
  - name: destinations
    propertyName: destination
    referenceResolver:
      $type: jcrReferenceResolver
      targetWorkspace: category 

pagesDeliveryEndpoint_v2 is pre-configured the pagesResolver_v2.

Comment by Canh Nguyen [ 14/Nov/22 ]

PagesNorsuDeliveryEndpointDefinition sets default config for nodeTypeMappings, so minimum config could be:

$type: pagesDeliverEndpoint_v2
workspace: "website"

Node: pagesDeliverEndpoint_v2 is not set workspace yet, we could create an improvement for this.

Generated at Mon Feb 12 06:23:23 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.