This PR introduces the message formatters and unformatters to Felice.
Producer
New MessageConverter interface
MessageConverterV1 is the default implementation of the MessageConverter
Selecting a MessageConverter is mandatory when creating a producer
Consumer
New MessageConverter interface
MessageConverterV1 is the default implementation of the MessageConverter
Selecting a MessageConverter is mandatory when calling setting a handler per topic
Other changes
The message package has been removed. It was difficult to have one type for both the producer and consumer while keeping this type coherent. I created one Message for both packages which is specialized for use in its package.
The handlers had been removed and its code was integrated in the consumer package. With the removal of the message package, we had an import cycle between the consumer package and the handlers package, which forced me to reconsider the organization of this package.
I think for now a Handler is strongly coupled with a Consumer and it is normal to have them in the same package. I also unexported the Collection type as I don't yet see how it can be useful to be used outside of this package. Let me know if you disagree
This PR introduces the message formatters and unformatters to Felice.
Producer
MessageConverter
interfaceMessageConverterV1
is the default implementation of the MessageConverterConsumer
MessageConverter
interfaceMessageConverterV1
is the default implementation of the MessageConverterOther changes
message
package has been removed. It was difficult to have one type for both the producer and consumer while keeping this type coherent. I created oneMessage
for both packages which is specialized for use in its package.handlers
had been removed and its code was integrated in theconsumer
package. With the removal of themessage
package, we had an import cycle between theconsumer
package and thehandlers
package, which forced me to reconsider the organization of this package. I think for now a Handler is strongly coupled with a Consumer and it is normal to have them in the same package. I also unexported theCollection
type as I don't yet see how it can be useful to be used outside of this package. Let me know if you disagree