...
The Transport adapter API supports the extension of the following transport implementations:
JMS endpoint
The JMS endpoint is the implementation of the transport adapter.
There are several ways to add JMS connectivity into the FEJ container.
...
The sysconf/fej-jms.xml
configuration file already contains the basic configuration for the JMS adapter:
Code Block | ||
---|---|---|
| ||
<bean id="jmsProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" p:location="classpath:jms-adaptor.properties"/> <bean id="jmsConfig" class="com.epam.fixengine.jms.config.Config" c:prefix="jms.adaptor" c:properties-ref="jmsProperties"> </bean> <bean id="jmsConfigRegister" class="com.epam.fej.jms.DefaultJmsConfigsRegister" p:jmsManager-ref="jmsAdaptorManager" c:config-ref="jmsConfig" init-method="init"/> <bean id="jmsClientFactory" class="com.epam.fixengine.jms.client.JMSClientFactory" factory-method="getInstance"/> <bean id="jmsAdaptorManager" class="com.epam.fej.jms.JmsAdapterManager" c:endpointRegistry-ref="endpointRegistry" c:clientFactory-ref="jmsClientFactory" depends-on="rulesConfigManager"/> |
...
There are several ways to add Kafka connectivity into the FIXEdge/J container. The sysconf/fej-kafka.xml configuration file already contains the basic configuration for the Kafka adapter:
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="kafkaProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" p:location="classpath:kafka-adaptor.properties"/> <bean id="kafkaConfig" class="com.epam.fixengine.kafka.config.Config" c:prefix="kafka" c:properties-ref="kafkaProperties"> </bean> <bean id="kafkaConfigRegister" class="com.epam.fej.kafka.DefaultKafkaConfigsRegister" p:clientManager-ref="kafkaClientManager" c:config-ref="kafkaConfig"/> <bean id="kafkaClientFactory" class="com.epam.fixengine.kafka.client.ClientFactory" factory-method="getInstance"/> <bean id="kafkaClientManager" class="com.epam.fej.kafka.DefaultKafkaClientManager" c:endpointRegistry-ref="endpointRegistry" c:clientFactory-ref="kafkaClientFactory" c:messageEventPool-ref="messageEventPool" depends-on="rulesConfigManager"/> </beans> |
The kafkaConfigRegister
bean is responsible for loading Kafka session contexts (SessionContext) from the configuration file and registering them with kafkaClientManager
(com.epam.fej.kafka.DefaultKafkaClientManager
) for the routing engine. The kafkaClientManager
bean builds source and destination endpoint adapters from the given SessionContext objects and registers them on the server.
Refer to the Kafka transport configuration.
Business Rules
When FIXEdge/J acts as a Producer and forwards messages to Kafka topics, please use the following business rule:
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="smtpProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" p:location="classpath:smtp-adaptor.properties"/> <bean id="smtpConfigProvider" class="com.epam.fej.smtp.SMTPConfigProvider" c:properties-ref="smtpProperties"> </bean> <util:properties id="velocityProperties"> <prop key="resource.loader">class</prop> <prop key="class.resource.loader.class">org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</prop> </util:properties> <bean id="velocityEngine" class="org.apache.velocity.app.VelocityEngine"> <constructor-arg ref="velocityProperties"/> </bean> <bean id="simpleTemplateConverter" class="com.epam.fej.smtp.TemplateEmailConverter" scope="prototype" p:velocityEngine-ref="velocityEngine"> </bean> <bean id="mimeTemplateConverter" class="com.epam.fej.smtp.TemplateMimeEmailConverter" scope="prototype" p:velocityEngine-ref="velocityEngine"> </bean> <context:component-scan base-package="com.epam.fej.smtp"/> </beans> |
...
For a list of SMTP endpoint properties, refer to the Configuring SMTP endpoints section.
Simple and MIME Converters
...