⚠️ DO NOT MERGE THIS PR UNTIL @kjac GIVES THE GREEN LIGHT ⚠️
Prerequisites
[x] I have added steps to test this contribution in the description below
Description
The data type configuration object (ConfigurationObject) has been the culprit of a fair few performance issues, primarily because we do not have an immutable cache.
With V14, the data type configuration object has also partially lost its value, because it is no longer the whole thruth; the data type configuration is now split between client and server.
This PR removes the ConfigurationObject property from IDataType and all derived usages (e.g. PublishedDataType, ContentPropertyData etc.). This should yield a significant performance improvement because we no longer need to deserialize a whole lot of configuration object all over the codebase.
But it doesn't build?
A lot of unit test mocking is currently broken in this PR. Since this PR is quite breaking, we're not going to spend time fixing the unit tests, until we have established the impact of removing ConfigurationObject.
The core, the website and the integration tests do work, which is sufficient for now.
As it happens, the current IDataTypeConfigurationCache implementation has a bug, which only shows itself in this PR... so there are a few failing integration tests - but that's on purpose :)
Loads of TODOs here?
Yep. This is definitively a work in progress. I have tagged all things I need to get around to with TODO KJA 😄
⚠️ DO NOT MERGE THIS PR UNTIL @kjac GIVES THE GREEN LIGHT ⚠️
Prerequisites
Description
The data type configuration object (
ConfigurationObject
) has been the culprit of a fair few performance issues, primarily because we do not have an immutable cache.With V14, the data type configuration object has also partially lost its value, because it is no longer the whole thruth; the data type configuration is now split between client and server.
This PR removes the
ConfigurationObject
property fromIDataType
and all derived usages (e.g.PublishedDataType
,ContentPropertyData
etc.). This should yield a significant performance improvement because we no longer need to deserialize a whole lot of configuration object all over the codebase.But it doesn't build?
A lot of unit test mocking is currently broken in this PR. Since this PR is quite breaking, we're not going to spend time fixing the unit tests, until we have established the impact of removing
ConfigurationObject
.The core, the website and the integration tests do work, which is sufficient for now.
As it happens, the current
IDataTypeConfigurationCache
implementation has a bug, which only shows itself in this PR... so there are a few failing integration tests - but that's on purpose :)Loads of TODOs here?
Yep. This is definitively a work in progress. I have tagged all things I need to get around to with
TODO KJA
😄