Thanks to Soisik Froger in SUPPORT-6874, currently when user set field's config 'readOnly' to 'true', our 'defaultValue' is no longer used when populating its value. This issue leads to no value saved into their JCR persistent.
Expected result: Separate logic of 'defaultValue' and 'readOnly' in fields which means:
1. When a field is readOnly, make it read only from editors.
2. When user set its 'defaultValue', put that value to field's value.
Keep Transformer unaware of definition #readOnly state, only mirror that of the underlying data-source
- Let FieldFactory set defaultValue even if definition is readOnly, but not if underlying property is
- Keep setting field as read-only based on the definition, only at the end of the chain in #setConstraints
- Document Transformer#isReadOnly with intent, and deprecate setter
- In particular, Transformer must not affect the underlying property's read-only state
- Add test from Evzen
- De-abstract BasicTransformer property instantiation for initial value vs. cross-type override (while retaining read-only state);
- Apply lessons learned from BasicTransformer to FileTransformer