diff --git a/pom.xml b/pom.xml
index 2845f784729..a0b2e0b47bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
3.24.2
3.12.0
2.14.1
- 3.0
+ 2.1.0
1.7.0
5.9.3
1.18.26
@@ -583,4 +583,5 @@
-
\ No newline at end of file
+
+
diff --git a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendex.java b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendex.java
index d7d8c676fa4..3eab130d1e0 100644
--- a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendex.java
+++ b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendex.java
@@ -2,11 +2,11 @@
import java.io.IOException;
import java.util.List;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.ascendex.dto.AscendexResponse;
import org.knowm.xchange.ascendex.dto.marketdata.AscendexAssetDto;
import org.knowm.xchange.ascendex.dto.marketdata.AscendexBarHistDto;
@@ -45,4 +45,4 @@ AscendexResponse> getHistoricalBarData(
@QueryParam("from") Long from,
@QueryParam("n") Integer noOfBars)
throws IOException;
-}
\ No newline at end of file
+}
diff --git a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java
index 9e79904e902..50c82851c19 100644
--- a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java
+++ b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java
@@ -2,16 +2,16 @@
import java.io.IOException;
import java.util.List;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.DELETE;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.HeaderParam;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.ascendex.dto.AscendexResponse;
import org.knowm.xchange.ascendex.dto.account.AscendexCashAccountBalanceDto;
import org.knowm.xchange.ascendex.dto.trade.AscendexOpenOrdersResponse;
@@ -95,4 +95,4 @@ AscendexResponse> getOrdersHistory(
@QueryParam("symbol") String symbol,
@QueryParam("executedOnly") boolean executedOnly)
throws IOException;
-}
\ No newline at end of file
+}
diff --git a/xchange-bankera/src/main/java/org/knowm/xchange/bankera/Bankera.java b/xchange-bankera/src/main/java/org/knowm/xchange/bankera/Bankera.java
index ffe30b1faba..4346d7d7c1c 100644
--- a/xchange-bankera/src/main/java/org/knowm/xchange/bankera/Bankera.java
+++ b/xchange-bankera/src/main/java/org/knowm/xchange/bankera/Bankera.java
@@ -1,13 +1,13 @@
package org.knowm.xchange.bankera;
import java.io.IOException;
-import jakarta.ws.rs.FormParam;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.bankera.dto.BankeraException;
import org.knowm.xchange.bankera.dto.BankeraToken;
import org.knowm.xchange.bankera.dto.marketdata.BankeraMarketInfo;
@@ -45,4 +45,4 @@ BankeraTradesResponse getRecentTrades(@PathParam("market") String market)
@GET
@Path("/general/info")
BankeraMarketInfo getMarketInfo() throws BankeraException, IOException;
-}
\ No newline at end of file
+}
diff --git a/xchange-bankera/src/main/java/org/knowm/xchange/bankera/BankeraAuthenticated.java b/xchange-bankera/src/main/java/org/knowm/xchange/bankera/BankeraAuthenticated.java
index a04f6f1fea8..aafa494b16b 100644
--- a/xchange-bankera/src/main/java/org/knowm/xchange/bankera/BankeraAuthenticated.java
+++ b/xchange-bankera/src/main/java/org/knowm/xchange/bankera/BankeraAuthenticated.java
@@ -2,15 +2,15 @@
import java.io.IOException;
import java.util.List;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.HeaderParam;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.bankera.dto.BankeraException;
import org.knowm.xchange.bankera.dto.BaseBankeraRequest;
import org.knowm.xchange.bankera.dto.CreateOrderRequest;
@@ -68,4 +68,4 @@ BankeraUserTrades getUserTrades(
BankeraOrder getUserOrder(
@HeaderParam("Authorization") String authorization, @QueryParam("orderId") String orderId)
throws BankeraException, IOException;
-}
\ No newline at end of file
+}
diff --git a/xchange-bibox/src/main/java/org/knowm/xchange/bibox/Bibox.java b/xchange-bibox/src/main/java/org/knowm/xchange/bibox/Bibox.java
index e2bc7481600..59a06fa8533 100644
--- a/xchange-bibox/src/main/java/org/knowm/xchange/bibox/Bibox.java
+++ b/xchange-bibox/src/main/java/org/knowm/xchange/bibox/Bibox.java
@@ -2,13 +2,13 @@
import java.io.IOException;
import java.util.List;
-import jakarta.ws.rs.FormParam;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.bibox.dto.BiboxMultipleResponses;
import org.knowm.xchange.bibox.dto.BiboxResponse;
import org.knowm.xchange.bibox.dto.marketdata.BiboxMarket;
@@ -88,4 +88,4 @@ BiboxResponse> marketAll(@QueryParam("cmd") String cmd)
@POST
@Path("mdata")
BiboxMultipleResponses orderBooks(@FormParam(FORM_CMDS) String cmds);
-}
\ No newline at end of file
+}
diff --git a/xchange-bibox/src/main/java/org/knowm/xchange/bibox/BiboxAuthenticated.java b/xchange-bibox/src/main/java/org/knowm/xchange/bibox/BiboxAuthenticated.java
index 324ee3d149b..ce59511e86e 100644
--- a/xchange-bibox/src/main/java/org/knowm/xchange/bibox/BiboxAuthenticated.java
+++ b/xchange-bibox/src/main/java/org/knowm/xchange/bibox/BiboxAuthenticated.java
@@ -1,11 +1,11 @@
package org.knowm.xchange.bibox;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.FormParam;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.bibox.dto.BiboxMultipleResponses;
import org.knowm.xchange.bibox.dto.BiboxPagedResponses;
import org.knowm.xchange.bibox.dto.BiboxSingleResponse;
@@ -128,4 +128,4 @@ BiboxMultipleResponses cancelTrades(
@FormParam(FORM_CMDS) String cmds,
@FormParam(FORM_APIKEY) String apiKey,
@FormParam(FORM_SIGNATURE) ParamsDigest signature);
-}
\ No newline at end of file
+}
diff --git a/xchange-bibox/src/main/java/org/knowm/xchange/bibox/service/BiboxDigest.java b/xchange-bibox/src/main/java/org/knowm/xchange/bibox/service/BiboxDigest.java
index 0fda990d3c6..4348d7bf35a 100644
--- a/xchange-bibox/src/main/java/org/knowm/xchange/bibox/service/BiboxDigest.java
+++ b/xchange-bibox/src/main/java/org/knowm/xchange/bibox/service/BiboxDigest.java
@@ -1,7 +1,7 @@
package org.knowm.xchange.bibox.service;
import java.io.UnsupportedEncodingException;
-import jakarta.ws.rs.FormParam;
+import javax.ws.rs.FormParam;
import org.knowm.xchange.bibox.BiboxAuthenticated;
import org.knowm.xchange.service.BaseParamsDigest;
import org.knowm.xchange.utils.DigestUtils;
@@ -37,4 +37,4 @@ public String digestParams(RestInvocation restInvocation) {
throw new RuntimeException(e1.getMessage());
}
}
-}
\ No newline at end of file
+}
diff --git a/xchange-binance/src/main/java/org/knowm/xchange/binance/Binance.java b/xchange-binance/src/main/java/org/knowm/xchange/binance/Binance.java
index 4bfb59fbba7..f3524852b1d 100644
--- a/xchange-binance/src/main/java/org/knowm/xchange/binance/Binance.java
+++ b/xchange-binance/src/main/java/org/knowm/xchange/binance/Binance.java
@@ -2,11 +2,11 @@
import java.io.IOException;
import java.util.List;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.binance.dto.BinanceException;
import org.knowm.xchange.binance.dto.marketdata.BinanceAggTrades;
import org.knowm.xchange.binance.dto.marketdata.BinanceOrderbook;
@@ -181,4 +181,4 @@ BinancePrice tickerPrice(@QueryParam("symbol") String symbol)
@GET
@Path("api/v3/ticker/bookTicker")
List tickerAllBookTickers() throws IOException, BinanceException;
-}
\ No newline at end of file
+}
diff --git a/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceAuthenticated.java b/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceAuthenticated.java
index ddf4dac26c8..59765319124 100644
--- a/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceAuthenticated.java
+++ b/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceAuthenticated.java
@@ -4,17 +4,17 @@
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
-import jakarta.ws.rs.DELETE;
-import jakarta.ws.rs.FormParam;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.HeaderParam;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.PUT;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.binance.dto.BinanceException;
import org.knowm.xchange.binance.dto.account.*;
import org.knowm.xchange.binance.dto.trade.BinanceCancelledOrder;
@@ -549,4 +549,4 @@ BinanceListenKey startUserDataStream(@HeaderParam(X_MBX_APIKEY) String apiKey)
Map, ?> closeUserDataStream(
@HeaderParam(X_MBX_APIKEY) String apiKey, @PathParam("listenKey") String listenKey)
throws IOException, BinanceException;
-}
\ No newline at end of file
+}
diff --git a/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFutures.java b/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFutures.java
index 74774e71757..5c32fa8933f 100644
--- a/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFutures.java
+++ b/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFutures.java
@@ -8,11 +8,11 @@
import org.knowm.xchange.binance.dto.meta.BinanceSystemStatus;
import org.knowm.xchange.binance.dto.meta.exchangeinfo.BinanceExchangeInfo;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import java.io.IOException;
import java.util.List;
@@ -115,4 +115,4 @@ List fundingRates()
BinanceFundingRate fundingRate(
@QueryParam("symbol") String symbol)
throws IOException, BinanceException;
-}
\ No newline at end of file
+}
diff --git a/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFuturesAuthenticated.java b/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFuturesAuthenticated.java
index 30e2ccbccfa..c8179b2ae2e 100644
--- a/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFuturesAuthenticated.java
+++ b/xchange-binance/src/main/java/org/knowm/xchange/binance/BinanceFuturesAuthenticated.java
@@ -7,8 +7,8 @@
import si.mazi.rescu.ParamsDigest;
import si.mazi.rescu.SynchronizedValueFactory;
-import jakarta.ws.rs.*;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
@@ -208,4 +208,4 @@ List cancelAllFutureOpenOrders(
@QueryParam(SIGNATURE) ParamsDigest signature)
throws IOException, BinanceException;
-}
\ No newline at end of file
+}
diff --git a/xchange-binance/src/main/java/org/knowm/xchange/binance/service/BinanceHmacDigest.java b/xchange-binance/src/main/java/org/knowm/xchange/binance/service/BinanceHmacDigest.java
index f9119898f5e..2bcd816c980 100644
--- a/xchange-binance/src/main/java/org/knowm/xchange/binance/service/BinanceHmacDigest.java
+++ b/xchange-binance/src/main/java/org/knowm/xchange/binance/service/BinanceHmacDigest.java
@@ -4,7 +4,7 @@
import java.nio.charset.StandardCharsets;
import javax.crypto.Mac;
-import jakarta.ws.rs.QueryParam;
+import javax.ws.rs.QueryParam;
import org.knowm.xchange.binance.BinanceAuthenticated;
import org.knowm.xchange.service.BaseParamsDigest;
import org.slf4j.Logger;
@@ -59,4 +59,4 @@ public String digestParams(RestInvocation restInvocation) {
String printBase64Binary = bytesToHex(mac.doFinal());
return printBase64Binary;
}
-}
\ No newline at end of file
+}
diff --git a/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/Bitbay.java b/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/Bitbay.java
index 5ee7b773a7d..d621a936287 100644
--- a/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/Bitbay.java
+++ b/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/Bitbay.java
@@ -1,12 +1,12 @@
package org.knowm.xchange.bitbay;
import java.io.IOException;
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.PathParam;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.QueryParam;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.bitbay.dto.marketdata.BitbayOrderBook;
import org.knowm.xchange.bitbay.dto.marketdata.BitbayTicker;
import org.knowm.xchange.bitbay.dto.marketdata.BitbayTrade;
@@ -37,4 +37,4 @@ BitbayTrade[] getBitbayTrades(
@QueryParam("sort") String sort,
@QueryParam("limit") int limit)
throws IOException;
-}
\ No newline at end of file
+}
diff --git a/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/BitbayAuthenticated.java b/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/BitbayAuthenticated.java
index af5e1db7d7c..ea6a9a9c207 100644
--- a/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/BitbayAuthenticated.java
+++ b/xchange-bitbay/src/main/java/org/knowm/xchange/bitbay/BitbayAuthenticated.java
@@ -4,13 +4,13 @@
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.FormParam;
-import jakarta.ws.rs.HeaderParam;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
import org.knowm.xchange.bitbay.dto.BitbayBaseResponse;
import org.knowm.xchange.bitbay.dto.acount.BitbayAccountInfoResponse;
import org.knowm.xchange.bitbay.dto.trade.BitbayCancelResponse;
@@ -117,4 +117,4 @@ List