Engine has direct protobuf dependencies
in RSXUtils.java is a reference to com.google.protobuf.Message which should not be necessary as this is a implementation detail from RST and should be fully encapsulated there. This will be important if there would be a switch from protobuf to any other lib at some point in the future. The rsb-scxml-engine would then break due to the direct protobuf dependency,see
For now we will delete the protobuf dependency from the rsb-scxml-engine, as the dependency will be resolved upstream via rst.
#2 Updated by J. Wienke over 4 years ago
I'm not quite happy with this solution. Once you use a transitive dependency directly in your own code, you should declare it as your own dependency as well. We had other errors with the situation we have right now with the undeclared dependency.
The correct solution for the referenced issue would be to stick the protobuf version explicitly to something uniform via -D flags.
#5 Updated by A. Nordmann over 4 years ago
I do not have too much inside regarding the actual code, but our impression was that converter registration might be the only point in the API that injects protobuf dependency.
I really don't have enough insight, but if I could register converters just by type name for example?
Maybe we should discuss this in Robotics Systems Types.
#6 Updated by J. Wienke over 4 years ago
From the point of view of this engine, there is no chance to get around this right now. We would need an extension in RST itself comparable to the rst-converters-cpp idea. Moreover, also RSB with the
ProtocolBufferConverter exposes the protobuf dependency to the client code.