Resolution: Won't Fix
Affects Version/s: None
Fix Version/s: Not version specific
KULRICE-4258 Inconsistent use of Formatters in maintenance framework KULRICE-11390 Create Automated Functional Tests for KRAD Labs - Maintenance Sample - Override Values KULRICE-8794 Perform analysis of the KNS maintenance framework KULRICE-916 Create a confluence page for the Maintenance Framework KULRICE-4102 Maintenance Document framework assumes objects are persistable KULRICE-6420 Javadocs for KRMS api & framework by function KULRICE-13518 Create smoke test for the dd property allowsRecordDeletion KULRICE-139 increase flexibility of field --> lookup associations in the maintenance framework KULRICE-901 DD parse problem when BO & Trans. DD entries have related names KULRICE-13521 Create smoke test for KRAD Maintenance Document to test specifying a maintainableClass in DD
Here are warren's comments. i link the related isue with more info...
I think there should be improvements made to the maintainable's DD override framework. As it stands now,
1) the override functionality is not completely implemented (since vendor was the only one that used the override in a non-trivial way, I took the fastest approach to resolve this issue). There are other places where the override methods need to be called in section/field bridge.
2) every time the maint doc renders, it makes at least 2 (possibly many) copies of each maint doc DD section/field/collection entry (one each for new and old maintainable) using ObjectUtils.deepCopy regardless of whether a meaningful override is implemented. Copying prevents DD corruption issues by preventing changes to the global DD entries. The default meaningless override implementation does nothing, so a copy isn't needed.
This probably isn't the fastest approach and it affects the performance whether or not a meaningful override is performed. Perhaps we could modify the maint doc DD service to return a new copy of the complete maint doc entry so that we can limit the system to one copy of the DD entry for that doc (i.e. make a deep copy at the <maintenanceDocument> level of a maint doc DD xml file) per maint doc web request.
3) the DD override interface could probably be made more meaningful. The current interface is:
public void overrideDataDictionaryFieldConfiguration(DataDictionaryDefinitionBase definition)
public void overrideDataDictionarySectionConfiguration(DataDictionaryDefinitionBase definition)
These methods could at least use parameter types that are more meaningful.