This PR initiates the migration of codegen processing to ProtoData. The main part of this PR is the migration of codegen of Column classes in messages that implement the EntityState interface.
In details
EntityPlugin was introduced as an umbrella for all codgen operations related to EntityState messages.
The plugin is based on EntityDiscoveryProcess, which transforms TypeDiscovered event to EntityStateDiscovered event, if the discovered message type has appropriate options. Other parts of the EntityPlugin would listen to the event and act accordingly.
The first render of the plugin is ColumnRenderer which renders a public static class Column nested under corresponding message type implementing EntityState.
ColumnRenderer and ColumnClassFactory now do what ColumnGen class used to do. The ColumnGen class was deprecated and is no longer added to protoc plugin of McJava.
Other notable changes
CodegenOptionsConfig class was renamed to MessageCodegenOptions.
MessageGroupConfig class was renamed to ConfigWithFields.
File name pattern patterns are no longer supported for signifying custom types of messages. Please use mixin interfaces or custom code generation.
Validation runtime dependency is added to a project to which McJava applied anyway, because generated code implements ValidatableMessage even if Validation codegen is turned off, and we want new run-time validation being available anyway.
Extensions recently moved to base and tool-base were applied.
Improved filtering for the mc-java-plugin-bundle artifact.
This PR initiates the migration of codegen processing to ProtoData. The main part of this PR is the migration of codegen of
Column
classes in messages that implement theEntityState
interface.In details
EntityPlugin
was introduced as an umbrella for all codgen operations related toEntityState
messages.The plugin is based on
EntityDiscoveryProcess
, which transformsTypeDiscovered
event toEntityStateDiscovered
event, if the discovered message type has appropriate options. Other parts of theEntityPlugin
would listen to the event and act accordingly.The first render of the plugin is
ColumnRenderer
which renders apublic static
classColumn
nested under corresponding message type implementingEntityState
.ColumnRenderer
andColumnClassFactory
now do whatColumnGen
class used to do. TheColumnGen
class was deprecated and is no longer added toprotoc
plugin of McJava.Other notable changes
CodegenOptionsConfig
class was renamed toMessageCodegenOptions
.MessageGroupConfig
class was renamed toConfigWithFields
.ValidatableMessage
even if Validation codegen is turned off, and we want new run-time validation being available anyway.base
andtool-base
were applied.mc-java-plugin-bundle
artifact.