This PR is the first of the seria brining code-generation of validation to life.
Here's the sequence of changes that we made in relation to this:
The validation codegen was turned on via removing skipValidation() calls in build files.
Several issues in codegen were discovered.
The issues were fixed and tested via local deployment of Validation library and subsequent update and local deployment of McJava.
Then, the skipValidation() was turned back on, and McJava version rolled back to 2.0.0-SNAPSHOT.170, so that we can build it at GitHub.
This, of course, resulted in usage of older code of Validation, which required to disable tests that were written for newer validation code.
Further actions
Publish artifacts of this PR.
Assemble new version of McJava which uses this version of Validation.
Extend McJava allowing to use custom version of Validation, so that we can use McJava with the locally deployed version being built.
Turn test annotated with @Disabled("Until 'skipValidation() is turned off.")` back on.
Other notable changes
Support of external validation constraints was removed.
Tests that required updates because of changes in codegen, were migrated to Kotlin.
A temporary Workaround.kt was introduced to allow using run-time validation for features that are not yet covered by codegen.
Diags class was introduced for gathering diagnostic messages and routines in one place. This is needed for easier introduction of localization in the future.
Kotlin proto DSL was adopted in the modified Kotlin code.
codeBlock { } DSL was adopted.
Stub proto types were separated by a file per test suite.
This PR is the first of the seria brining code-generation of validation to life.
Here's the sequence of changes that we made in relation to this:
skipValidation()
calls in build files.skipValidation()
was turned back on, and McJava version rolled back to2.0.0-SNAPSHOT.170
, so that we can build it at GitHub.Further actions
@Disabled("Until 'skipValidation()
is turned off.")` back on.Other notable changes
Workaround.kt
was introduced to allow using run-time validation for features that are not yet covered by codegen.Diags
class was introduced for gathering diagnostic messages and routines in one place. This is needed for easier introduction of localization in the future.codeBlock { }
DSL was adopted.