Some more thoughts related to this:
*
# We probably want to also split the java serialization part out and using {{ServiceLoader}} to detect and load the available serializer. Module wise I thought about {{serialization/avro}} and {{serialization/javaserialization}}. * # Right now the {{SerializationProvider}} is hard coded in {{SerializationProviderService}}. This would be dynamic and cannot reference a concrete implementation * # Taking this one step further, one might even consider to extract the spi for serialization and add it to its own module. This code is really only needed when one of the remote indexing solutions come into play
On a tangent, {{StandardServiceManager}} seems to imply the use of {{ServiceLoader}} by using {{META-INF/services}}, but it is in reality a different homegrown solution. If nothing else it should not use {{META-INF/services}}. However, I think making proper use of {{ServiceLoader}} would make more sense.
|