You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HV-1831 Enhance ExecutableMetaData with tracking information
HV-1831 Create ProcessedBeansTrackingVoter contract
This contract allows to override the default bean process tracking
behavior without exposing our internal structures.
It needs a bit more love on the config side so that we can define it via
XML too and some documentation.
HV-1831 New zero cost approach to processed bean tracking strategy
I removed it from the traditional VF for now as I would like us to focus
on the case where it is useful first.
We will reintroduce it later once we have validated the approach where
it is the most useful.
I'm a bit unclear right now if we should use the same contract for
traditional and predefined scope VF as we are dealing with different
things and they won't be evaluated at the same moment.
I'm thinking that maybe this needs to be a different contract.
HV-1831 : Wrap a `BeanMetaData` in a `NonTrackedBeanMetaDataImpl` if tracking is not required
HV-1831 Add some guidance about next step
HV-1831 Specific benchmark infrastructure for predefined scope
HV-1831 : Update Cascade tests to use PredefinedScopeHibernateValidator with -p=predefined=true
HV-1831 : Experiment detecting cycles in bean classes
Add test for Map
HV-1831 : Experiment detecting cycles in bean classes
Add support for containers; add tests for List w/ and w/o duplicated values
HV-1831 : Experiment detecting cycles in bean classes
HV-1831 Copy nodes when changing the nature of the leaf
HV-1831 Add the same bean to List twice
HV-1831 Clean up another experiment that shouldn't have been committed
HV-1831 Add a couple of examples illustrating various cases
HV-1831 Unfinished experiments
@@ -202,15 +219,32 @@ public PredefinedScopeValidatorFactoryImpl(ConfigurationState configurationState
202
219
xmlMetaDataProvider = null;
203
220
}
204
221
222
+
// collect all metadata, I don't think we need this work to be in BeanMetaDataManager contract, it can be a specific class (or private method if simple enough)
223
+
// it's basically the content of PredefinedScopeBeanMetaDataManager constructor
224
+
// the metadata wouldn't be complete because we want to inject the tracking information
225
+
226
+
// then you build the tracking information from these incomplete metadata
227
+
228
+
// finally you create a PredefinedScopeBeanMetaDataManager with the augmented metadata pushed to it
229
+
// you will need to augment both BeanMetaData and ExecutableMetaData
230
+
// I would prototype BeanMetaData first then discuss it before going further
231
+
232
+
// Note: we want classes to be immutable
233
+
// Might be a good idea to push a default method to BeanMetaData as enabling tracking is the default behavior we want
234
+
// Maybe first try composition and benchmark it and if good enough, we keep it
0 commit comments