Samples :: Getting Started
Getting Started
Description
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.
Usage
- Run the sample:
- win: GettingStarted.bat
- linux: GettingStarted.sh
- Clean everything:
- win: clean.bat
- linux: clean.sh
Source Code
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());
}
}
Java CME STP (Straight Through Processing)