use of quickfix.field.SenderCompID in project wso2-synapse by wso2.
the class FIXIncomingMessageHandler method toApp.
/**
* This is a callback for application messages that are being sent to a
* counter party.
*
* @param message QuickFIX message
* @param sessionID QuickFIX session ID
* @throws DoNotSend This exception aborts message transmission
*/
public void toApp(Message message, SessionID sessionID) throws DoNotSend {
if (log.isDebugEnabled()) {
StringBuffer sb = new StringBuffer();
try {
sb.append("Sending application level FIX message to ").append(message.getHeader().getField(new TargetCompID()).getValue());
sb.append("\nMessage Type: ").append(message.getHeader().getField(new MsgType()).getValue());
sb.append("\nMessage Sequence Number: ").append(message.getHeader().getField(new MsgSeqNum()).getValue());
sb.append("\nSender ID: ").append(message.getHeader().getField(new SenderCompID()).getValue());
} catch (FieldNotFound e) {
sb.append("Sending application level FIX message...");
log.warn("One or more required fields are not found in the response message", e);
}
log.debug(sb.toString());
if (log.isTraceEnabled()) {
log.trace("Message: " + message.toString());
}
}
if (eventHandler != null) {
eventHandler.toApp(this, message, sessionID);
}
}
use of quickfix.field.SenderCompID in project wso2-synapse by wso2.
the class FIXIncomingMessageHandler method fromApp.
/**
* This callback receives messages for the application. This is one of the
* core entry points for the FIX application. Every application level
* request will come through here. A new thread will be spawned from the
* thread pool for each incoming message.
*
* @param message QuickFIX message
* @param sessionID QuickFIX session ID
* @throws FieldNotFound
* @throws IncorrectDataFormat
* @throws IncorrectTagValue
* @throws UnsupportedMessageType
*/
public void fromApp(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType {
if (log.isDebugEnabled()) {
StringBuffer sb = new StringBuffer();
sb.append("Received FIX message from ").append(message.getHeader().getField(new SenderCompID()).getValue());
sb.append("\nMessage Sequence Number: ").append(message.getHeader().getField(new MsgSeqNum()).getValue());
sb.append("\nReceiver ID: ").append(message.getHeader().getField(new TargetCompID()).getValue());
log.debug(sb.toString());
if (log.isTraceEnabled()) {
log.trace("Message: " + message.toString());
}
}
AtomicInteger atomicCounter = countersMap.get(sessionID);
int counter = atomicCounter.incrementAndGet();
boolean rolled = atomicCounter.compareAndSet(FIXConstants.DEFAULT_COUNTER_UPPER_LIMIT, 0);
if (rolled && log.isDebugEnabled()) {
log.debug("Incoming request counter rolled over for the session: " + sessionID);
}
workerPool.execute(new FIXWorkerThread(message, sessionID, counter));
}
use of quickfix.field.SenderCompID in project wso2-synapse by wso2.
the class FIXIncomingMessageHandler method fromAdmin.
/**
* This callback notifies when an administrative message is sent from a
* counterparty to the FIX engine.
*
* @param message QuickFIX message
* @param sessionID QuickFIX session ID
* @throws FieldNotFound
* @throws IncorrectDataFormat
* @throws IncorrectTagValue
* @throws RejectLogon causes a logon reject
*/
public void fromAdmin(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, RejectLogon {
if (log.isDebugEnabled()) {
StringBuffer sb = new StringBuffer();
sb.append("Received admin level FIX message from ").append(message.getHeader().getField(new SenderCompID()).getValue());
sb.append("\nMessage Type: ").append(message.getHeader().getField(new MsgType()).getValue());
sb.append("\nMessage Sequence Number: ").append(message.getHeader().getField(new MsgSeqNum()).getValue());
sb.append("\nReceiver ID: ").append(message.getHeader().getField(new TargetCompID()).getValue());
log.debug(sb.toString());
if (log.isTraceEnabled()) {
log.trace("Message: " + message.toString());
}
}
if (eventHandler != null) {
eventHandler.fromAdmin(this, message, sessionID);
}
}
use of quickfix.field.SenderCompID in project wso2-synapse by wso2.
the class FIXOutgoingMessageHandlerTest method testSendMessage.
@Test
public void testSendMessage() throws Exception {
int SEQ_NUM = 1;
String SESSION_ID = "FIX.4.1:BANZAI->SYNAPSE";
Message message = new NewOrderSingle();
MessageContext msgCtx = new MessageContext();
PowerMockito.when(sessionFactory.getApplication(anyString())).thenReturn(app);
PowerMockito.mockStatic(Session.class);
PowerMockito.when(Session.sendToTarget(any(Message.class), any(SessionID.class))).thenReturn(true);
SessionID id = new SessionID(new BeginString("FIX.4.1"), new SenderCompID("SYNAPSE"), new TargetCompID("BANZAI"), "FIX.4.1:SYNAPSE->BANZAI");
spy.sendMessage(message, id, SESSION_ID, SEQ_NUM, msgCtx, "fix://sample");
PowerMockito.verifyStatic(times(1));
}
use of quickfix.field.SenderCompID in project wso2-synapse by wso2.
the class FIXTransportSenderTest method testIsTargetValid.
@Test
public void testIsTargetValid() throws Exception {
Map<String, String> fieldValues = new HashMap<>();
fieldValues.put(FIXConstants.BEGIN_STRING, "FIX.4.1");
fieldValues.put(FIXConstants.DELIVER_TO_COMP_ID, "SYNAPSE");
fieldValues.put(FIXConstants.DELIVER_TO_SUB_ID, "sy");
fieldValues.put(FIXConstants.DELIVER_TO_LOCATION_ID, "randomLoc");
SessionID id = new SessionID(new BeginString("FIX.4.1"), new SenderCompID("BANZAI"), new SenderSubID("ba"), new SenderLocationID("senderLoc"), new TargetCompID("SYNAPSE"), new TargetSubID("sy"), new TargetLocationID("randomLoc"), "FIX.4.1:SYNAPSE->BANZAI");
FIXTransportSender sender = new FIXTransportSender();
Class senderClass = sender.getClass();
Method isTargetvalid = senderClass.getDeclaredMethod("isTargetValid", Map.class, SessionID.class, boolean.class);
isTargetvalid.setAccessible(true);
Object result = isTargetvalid.invoke(senderClass.newInstance(), fieldValues, id, true);
Assert.assertEquals("Invalid target!", "true", result.toString());
}
Aggregations