CME STP (Straight Through Processing) Handler that connects to the defined host and port. When the session is established, the unfiltered query request is sent to the counterparty.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | import biz.onixs.cme.stp.handler.*; import biz.onixs.util.settings.PropertyBasedSettings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.time.Duration; import java.time.ZonedDateTime; /** * Getting Started sample. */ public class GettingStarted implements ErrorListener, MessageListener, FixmlMessageListener { private static final Logger LOG = LoggerFactory.getLogger(GettingStarted. class ); private void run() throws Exception { try { final PropertyBasedSettings settings = new PropertyBasedSettings( "Sample.properties" ); final boolean isUpToDate = settings.getBoolean( "UpToDate" ); if (!isUpToDate) { throw new Exception( "Please update the configuration file (" + "conf/Sample.properties" + ") with up-to-date values" ); } String url = settings.getString( "Url" ); String senderCompId = settings.getString( "SenderCompId" ); String senderSubId = settings.getString( "SenderSubId" ); String password = settings.getString( "Password" ); Session session = new Session( new URL(url), senderCompId, senderSubId, password); session.registerErrorListener( this ); session.registerMessageListener( this ); session.registerFixmlMessageListener( this ); // Query sample. { TradeCaptureReportRequest req = new TradeCaptureReportRequest(); req.setStartTime(ZonedDateTime.now().minus(Duration.ofDays( 1 ))); req.setEndTime(ZonedDateTime.now()); req.getInstrument().setSecurityExchange( "CME" ); session.query(req); } // Subscription sample { String id = session.subscribe(); System.out.println( "Press Enter to exit..." ); BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); in.readLine(); } session.close(); } catch (RuntimeException ex) { System.out.println( "Exception: " + ex.toString()); LOG.error( "Exception: {}" , ex.toString()); System.out.println( "Press Enter to exit..." ); BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); in.readLine(); } } public static void main(String[] args) throws Exception { GettingStarted program = new GettingStarted(); program.run(); } @Override public void onError(ErrorEventArgs args) { System.out.println( "Error: " + args.getException().toString()); LOG.error( "Error: {}" , args.getException().toString()); } @Override public void onTradeCaptureReportRequestSent(TradeCaptureReportRequestEventArgs args) { System.out.println( "Request sent." ); } @Override public void onTradeCaptureReportRequestAcknowledgmentReceived(TradeCaptureReportRequestAcknowledgmentEventArgs args) { System.out.println( "ReportAck received." ); } @Override public void onTradeCaptureReportReceived(TradeCaptureReportEventArgs args) { System.out.println( "Trade Capture Report received." ); } @Override public void onCollateralReportReceived(CollateralReportEventArgs args) { System.out.println( "Collateral Report received." ); } @Override public void onEndOfQuery(TradeCaptureReportRequestEventArgs args) { System.out.println( "Last report for query received." ); } @Override public void onMessageSent(FixmlMessageEventArgs args) { System.out.println( "Fixml message sent: " + args.getFixmlMessage()); LOG.info( "Fixml message sent: " + args.getFixmlMessage()); } @Override public void onMessageReceived(FixmlMessageEventArgs args) { System.out.println( "Fixml message received: " + args.getFixmlMessage()); LOG.info( "Fixml message received: " + args.getFixmlMessage()); } } |