Provide and Read "agents" "dataItems" & "portables" from input.pb
Request Summary
Instead of using Reflections to find all used classes that extend "Agent", "DataItem", or "Portable", read all required class names from a new section "ModelData.Classes" in the protobuf file. Ignore the section "ModelDataJavaPackages" in this case. Log a warning that "ModelDataJavaPackages" is ignored, if it is also provided.
If the "ModelData.Classes" is not provided in the protobuf file, scan classes using section "ModelDataJavaPackages". Log a deprecation warning.
If neither "ModelData.Classes" nor "ModelDataJavaPackages" is provided, raise an error explaining that one of the two sections is required, and terminate.
If a class is to be instantiated that is not registered previously on the new protobuf section, raise a clear error message containing:
- which class is missing
- where to add the class in the schema
Use case
- Speed up of the FAME-Core initialisation process since full package scans are avoided at runtime.
- Allows adding support for other programming languages of model classes later on.