This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new aa7bbd1 Test camel-xchange with kraken until binance issues are resolved aa7bbd1 is described below commit aa7bbd19942ae3f95d1c40a94ab1a1a8f378fca9 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Thu Aug 19 13:29:23 2021 +0100 Test camel-xchange with kraken until binance issues are resolved --- .../xchange/deployment/XchangeProcessor.java | 5 ++--- integration-tests/xchange/pom.xml | 2 +- .../component/xchange/it/XchangeResource.java | 24 ++++++++++++++-------- .../quarkus/component/xchange/it/XchangeIT.java | 2 -- .../quarkus/component/xchange/it/XchangeTest.java | 13 ++++++------ poms/bom-test/pom.xml | 2 +- 6 files changed, 27 insertions(+), 21 deletions(-) diff --git a/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java b/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java index 09ab5d1..ddb389a 100644 --- a/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java +++ b/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java @@ -97,9 +97,9 @@ class XchangeProcessor { String[] dtoClasses = index.getKnownClasses() .stream() .map(classInfo -> classInfo.name().toString()) - .filter(className -> className.startsWith("org.knowm.xchange.dto")) + .filter(className -> className.matches("^org\\.knowm\\.xchange.*dto.*")) .toArray(String[]::new); - reflectiveClass.produce(new ReflectiveClassBuildItem(false, true, dtoClasses)); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, dtoClasses)); // rescu REST framework needs reflective access to the value method on some JAX-RS annotations String[] jaxrsAnnotations = index.getKnownClasses() @@ -110,7 +110,6 @@ class XchangeProcessor { .filter(className -> className.startsWith("javax.ws.rs")) .toArray(String[]::new); reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, jaxrsAnnotations)); - } @BuildStep diff --git a/integration-tests/xchange/pom.xml b/integration-tests/xchange/pom.xml index e1c1115..af71def 100644 --- a/integration-tests/xchange/pom.xml +++ b/integration-tests/xchange/pom.xml @@ -58,7 +58,7 @@ <!-- Test adding additional crypto exchanges --> <dependency> <groupId>org.knowm.xchange</groupId> - <artifactId>xchange-coinbase</artifactId> + <artifactId>xchange-kraken</artifactId> </dependency> <!-- test dependencies --> diff --git a/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java b/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java index 0e205da..e121b8d 100644 --- a/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java +++ b/integration-tests/xchange/src/main/java/org/apache/camel/quarkus/component/xchange/it/XchangeResource.java @@ -41,6 +41,10 @@ import org.knowm.xchange.dto.meta.CurrencyPairMetaData; @ApplicationScoped public class XchangeResource { + // TODO: Reinstate binance as the default crypto exchange and kraken as the secondary + // https://github.com/apache/camel-quarkus/issues/3016 + public static final String DEFAULT_CRYPTO_EXCHANGE = "kraken"; + @Inject ProducerTemplate producerTemplate; @@ -53,9 +57,9 @@ public class XchangeResource { "xchange:" + cryptoExchange + "?service=marketdata&method=ticker¤cyPair=" + currencyPair, null, Ticker.class); return Json.createObjectBuilder() - .add("open", ticker.getOpen().longValue()) - .add("high", ticker.getHigh().longValue()) - .add("low", ticker.getLow().longValue()) + .add("last", ticker.getLast().longValue()) + .add("bid", ticker.getBid().longValue()) + .add("ask", ticker.getAsk().longValue()) .build(); } @@ -64,7 +68,8 @@ public class XchangeResource { @Produces(MediaType.APPLICATION_JSON) @SuppressWarnings("unchecked") public JsonObject currencies() { - List<Currency> currencies = producerTemplate.requestBody("xchange:binance?service=metadata&method=currencies", null, + List<Currency> currencies = producerTemplate.requestBody( + "xchange:" + DEFAULT_CRYPTO_EXCHANGE + "?service=metadata&method=currencies", null, List.class); JsonArrayBuilder builder = Json.createArrayBuilder(); currencies.forEach(c -> builder.add(c.getSymbol())); @@ -75,9 +80,10 @@ public class XchangeResource { @GET @Produces(MediaType.TEXT_PLAIN) public String currencyMetadata(@PathParam("symbol") String symbol) { - CurrencyMetaData metaData = producerTemplate.requestBody("xchange:binance?service=metadata&method=currencyMetaData", + CurrencyMetaData metaData = producerTemplate.requestBody( + "xchange:" + DEFAULT_CRYPTO_EXCHANGE + "?service=metadata&method=currencyMetaData", Currency.getInstance(symbol), CurrencyMetaData.class); - return metaData.getWithdrawalFee().toPlainString(); + return metaData.getScale().toString(); } @Path("/currency/pairs") @@ -85,7 +91,8 @@ public class XchangeResource { @Produces(MediaType.APPLICATION_JSON) @SuppressWarnings("unchecked") public JsonObject currencyPairs() { - List<CurrencyPair> currencyPairs = producerTemplate.requestBody("xchange:binance?service=metadata&method=currencyPairs", + List<CurrencyPair> currencyPairs = producerTemplate.requestBody( + "xchange:" + DEFAULT_CRYPTO_EXCHANGE + "?service=metadata&method=currencyPairs", null, List.class); JsonArrayBuilder builder = Json.createArrayBuilder(); currencyPairs.forEach(cp -> builder.add(cp.toString())); @@ -97,7 +104,8 @@ public class XchangeResource { @Produces(MediaType.TEXT_PLAIN) public String currencyPairsMetadata(@QueryParam("base") String base, @QueryParam("counter") String counter) { CurrencyPairMetaData metaData = producerTemplate.requestBody( - "xchange:binance?service=metadata&method=currencyPairMetaData", new CurrencyPair(base, counter), + "xchange:" + DEFAULT_CRYPTO_EXCHANGE + "?service=metadata&method=currencyPairMetaData", + new CurrencyPair(base, counter), CurrencyPairMetaData.class); return metaData.getTradingFee().toPlainString(); } diff --git a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java index a26db13..2928901 100644 --- a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java +++ b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java @@ -16,10 +16,8 @@ */ package org.apache.camel.quarkus.component.xchange.it; -import io.quarkus.test.junit.DisabledOnNativeImage; import io.quarkus.test.junit.NativeImageTest; -@DisabledOnNativeImage("https://github.com/apache/camel-quarkus/issues/3016") @NativeImageTest class XchangeIT extends XchangeTest { diff --git a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java index f41be80..30c5c91 100644 --- a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java +++ b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeTest.java @@ -18,7 +18,6 @@ package org.apache.camel.quarkus.component.xchange.it; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -28,12 +27,14 @@ import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.Matchers.not; -@Disabled("https://github.com/apache/camel-quarkus/issues/3016") @QuarkusTest class XchangeTest { + // TODO: Reinstate binance as the default crypto exchange and kraken as the secondary + // https://github.com/apache/camel-quarkus/issues/3016 + // @ValueSource(strings = { DEFAULT_CRYPTO_EXCHANGE, "kraken" }) @ParameterizedTest - @ValueSource(strings = { "binance", "coinbase" }) + @ValueSource(strings = { "kraken" }) public void currencyTicker(String cryptoExchange) { RestAssured.given() .queryParam("currencyPair", "BTC/USDT") @@ -41,9 +42,9 @@ class XchangeTest { .then() .statusCode(200) .body( - "open", greaterThan(0), - "high", greaterThan(0), - "low", greaterThan(0)); + "last", greaterThan(0), + "bid", greaterThan(0), + "ask", greaterThan(0)); } @Test diff --git a/poms/bom-test/pom.xml b/poms/bom-test/pom.xml index 44e43ba..57779c6 100644 --- a/poms/bom-test/pom.xml +++ b/poms/bom-test/pom.xml @@ -208,7 +208,7 @@ </dependency> <dependency> <groupId>org.knowm.xchange</groupId> - <artifactId>xchange-coinbase</artifactId> + <artifactId>xchange-kraken</artifactId> <version>${xchange.version}</version> </dependency> <dependency>