package info.bitrich.xchangestream.cexio;

import info.bitrich.xchangestream.core.ProductSubscription;
import info.bitrich.xchangestream.core.StreamingExchange;
import info.bitrich.xchangestream.core.StreamingMarketDataService;
import io.reactivex.Completable;
import org.knowm.xchange.cexio.CexIOExchange;

public class CexioStreamingExchange extends CexIOExchange implements StreamingExchange {

    private static final String API_URI = "wss://ws.cex.io/ws/";

    private final CexioStreamingMarketDataService streamingMarketDataService;
    private final CexioStreamingRawService streamingOrderDataService;

    public CexioStreamingExchange() {
        this.streamingOrderDataService = new CexioStreamingRawService(API_URI);
        this.streamingMarketDataService = new CexioStreamingMarketDataService();
    }

    @Override
    public Completable connect(ProductSubscription... args) {
        return streamingOrderDataService.connect();
    }

    @Override
    public Completable disconnect() {
        return streamingOrderDataService.disconnect();
    }

    @Override
    public boolean isAlive() {
        return streamingOrderDataService.isSocketOpen();
    }

    @Override
    public StreamingMarketDataService getStreamingMarketDataService() {
        return streamingMarketDataService;
    }

    public void setCredentials(String apiKey, String apiSecret) {
        streamingOrderDataService.setApiKey(apiKey);
        streamingOrderDataService.setApiSecret(apiSecret);
    }

    public CexioStreamingRawService getStreamingRawService() {
        return streamingOrderDataService;
    }

}

@@ -299,16 +299,91 @@
 xchange;
+%0Aimport org.knowm.xchange.exceptions.NotYetImplementedForExchangeException;
 %0A%0Apublic
@@ -1373,32 +1373,180 @@
 Service;%0A    %7D%0A%0A
+    @Override%0A    public void useCompressedMessages(boolean compressedMessages) %7B%0A        throw new NotYetImplementedForExchangeException();%0A    %7D%0A%0A
     public void 

Build fix