I’m wanting to implement Quickfixj with all its built in functionality into a project that uses Spring-Integration. I had thought that I could wrap this library as one of Spring-Integration’s endpoint objects. However, I’m struggling to understand whether I should use a channel adapter or a gateway or if I’m supposed to be using something else. How would I have Quickfixj or any other type server setup to work on its own and pass messages into a channel?

Quickfixj already provides all of the functionality I need for listening to a TCP port, parsing and validating messages, etc. I’m only needing to output the received message to a larger system through a channel.

It should be straightforward, Spring Integration provides the Messaging Gateway to integrate from regular Java code with an integration flow.

Simply provide an interface and the framework will create the implementation.

When you receive a QuickFixJ message, simply call the gateway.

You may want to map a QuickFixJ message to a spring-messaging Message<?> (payload, headers), or you can simply send the QuickFixJ message as the payload of the Message<?> – it really depends on your requirements.