[MGNLUI-7726] Make it easier to extend JcrDataProvider Created: 12/Jan/23  Updated: 19/May/23  Resolved: 19/May/23

Status: Closed
Project: Magnolia UI
Component/s: None
Affects Version/s: None
Fix Version/s: 6.3.0, 6.2.35

Type: Improvement Priority: Neutral
Reporter: Daniel Alonso Assignee: Adam Siska
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Issue split
split from MGNLUI-7086 Improve grid performance by using nat... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
MGNLUI-7727 Implementation Sub-task Completed Jaromir Sarf  
MGNLUI-7728 Review Sub-task Closed Antonín Juran  
MGNLUI-7729 Pre-Integration QA Sub-task Completed Adam Siska  
MGNLUI-7730 QA Sub-task Closed Antonín Juran  
MGNLUI-8036 Improve generic type specs for expose... Sub-task Completed Adam Siska  
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)
Date of First Response:
Epic Link: Grid performance
Sprint: Nucleus 35, Nucleus 36
Story Points: 2
Team: Nucleus
Work Started:
Approved:
Yes

 Description   

This was extracted from MGNLUI-7086

At this moment, for JCR List View, all nodes are fetched and filtered from java. Some improvements are on the way, but also, it was mentioned that "making easier to extend JcrDataProvider" would be helpful.

It'd be necessary to know what is needed from JcrDataProvider, in order to design ways of improve its extendability.



 Comments   
Comment by Adam Siska [ 25/Apr/23 ]

Discovery:
to make extending of JcrDataProvider easier and working we need to:
1) expose JcrDataProvider#getNodeIterator as protected
2) use ComponentProvider#newInstance instead of calling constructor here
3) same as (2) here

Comment by Roman Kovařík [ 25/Apr/23 ]

1) expose JcrDataProvider#getNodeIterator as protected

It might be easier to just create a custom JcrDataProvider and see what classes are not accessible from a custom package. I guess most problems come from the fact that some utilities are package protected (e.g. JcrQueryBuilder). This can be done as part of the ticket.

2) use ComponentProvider#newInstance instead of calling constructor here

This is just an impl detail, but these providers might be injected.

3) same as (2) here

This is just a specific data provider for the personalization preview app, any mention of this in the original ticket? Otherwise this can be ignored.

Generated at Mon Feb 12 09:48:47 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.