/** * Initialize the exchange provider and start polling thread */ @Override public synchronized void start() { if (!started) { started = true; exchange = ExchangeFactory.INSTANCE.createExchange(exchangeClassName); name = exchange.getExchangeSpecification().getExchangeName(); providerContext = ProviderContext.of(name, RateType.DEFERRED); marketDataService = exchange.getMarketDataService(); future = stpe.scheduleWithFixedDelay(this::poll, initialDelay, period, TimeUnit.SECONDS); } }