From fd21df73ddba9c496b168acb8a1733d44da0c4be Mon Sep 17 00:00:00 2001 From: lionarius Date: Thu, 28 Nov 2024 05:51:42 +0300 Subject: [PATCH] reformat --- src/main/java/ru/lionarius/api/order/Order.java | 2 -- .../lionarius/impl/InMemoryClientRepository.java | 7 +++++-- .../impl/disruptor/CommandEventHandler.java | 1 - .../impl/disruptor/DisruptorCurrencyExchange.java | 2 +- .../impl/plain/PlainCurrencyExchange.java | 5 ++--- .../lionarius/impl/queue/CommandProcessorTask.java | 14 +------------- .../business/ConcurrentCurrencyExchangeTest.java | 4 +++- .../ConcurrentPlainCurrencyExchangeTest.java | 2 +- src/test/java/business/CurrencyExchangeTest.java | 1 + 9 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/main/java/ru/lionarius/api/order/Order.java b/src/main/java/ru/lionarius/api/order/Order.java index 73e82b7..140b9f1 100644 --- a/src/main/java/ru/lionarius/api/order/Order.java +++ b/src/main/java/ru/lionarius/api/order/Order.java @@ -11,8 +11,6 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; public class Order { private final UUID id = UUID.randomUUID(); diff --git a/src/main/java/ru/lionarius/impl/InMemoryClientRepository.java b/src/main/java/ru/lionarius/impl/InMemoryClientRepository.java index c191e88..418e1e9 100644 --- a/src/main/java/ru/lionarius/impl/InMemoryClientRepository.java +++ b/src/main/java/ru/lionarius/impl/InMemoryClientRepository.java @@ -3,10 +3,13 @@ package ru.lionarius.impl; import com.google.common.collect.ImmutableList; import ru.lionarius.api.client.Client; import ru.lionarius.api.client.ClientRepository; -import ru.lionarius.api.order.OrderList; import ru.lionarius.api.order.Order; +import ru.lionarius.api.order.OrderList; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; public class InMemoryClientRepository implements ClientRepository { diff --git a/src/main/java/ru/lionarius/impl/disruptor/CommandEventHandler.java b/src/main/java/ru/lionarius/impl/disruptor/CommandEventHandler.java index 6cb0540..f87ea67 100644 --- a/src/main/java/ru/lionarius/impl/disruptor/CommandEventHandler.java +++ b/src/main/java/ru/lionarius/impl/disruptor/CommandEventHandler.java @@ -4,7 +4,6 @@ import com.lmax.disruptor.EventHandler; import ru.lionarius.impl.CommandProcessor; public class CommandEventHandler implements EventHandler { - private final CommandProcessor commandProcessor; public CommandEventHandler(CommandProcessor commandProcessor) { diff --git a/src/main/java/ru/lionarius/impl/disruptor/DisruptorCurrencyExchange.java b/src/main/java/ru/lionarius/impl/disruptor/DisruptorCurrencyExchange.java index 4efe7d6..9fef3e9 100644 --- a/src/main/java/ru/lionarius/impl/disruptor/DisruptorCurrencyExchange.java +++ b/src/main/java/ru/lionarius/impl/disruptor/DisruptorCurrencyExchange.java @@ -1,6 +1,6 @@ package ru.lionarius.impl.disruptor; -import com.lmax.disruptor.*; +import com.lmax.disruptor.BusySpinWaitStrategy; import com.lmax.disruptor.dsl.Disruptor; import com.lmax.disruptor.dsl.ProducerType; import ru.lionarius.api.CurrencyExchange; diff --git a/src/main/java/ru/lionarius/impl/plain/PlainCurrencyExchange.java b/src/main/java/ru/lionarius/impl/plain/PlainCurrencyExchange.java index fcd58fc..900d14d 100644 --- a/src/main/java/ru/lionarius/impl/plain/PlainCurrencyExchange.java +++ b/src/main/java/ru/lionarius/impl/plain/PlainCurrencyExchange.java @@ -5,7 +5,6 @@ import com.google.common.collect.ImmutableSet; import ru.lionarius.api.CurrencyExchange; import ru.lionarius.api.client.Client; import ru.lionarius.api.client.ClientRepository; -import ru.lionarius.api.currency.Currency; import ru.lionarius.api.currency.CurrencyPair; import ru.lionarius.api.order.Order; import ru.lionarius.api.order.OrderData; @@ -24,7 +23,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; public class PlainCurrencyExchange implements CurrencyExchange { private final ClientRepository clientRepository = new InMemoryClientRepository(); private final Map orderBooks; - + private final ReadWriteLock lock = new ReentrantReadWriteLock(); private final Set allowedPairs; @@ -67,7 +66,7 @@ public class PlainCurrencyExchange implements CurrencyExchange { if (!allowedPairs.contains(pair)) throw new IllegalArgumentException("Pair is not allowed"); - + lock.writeLock().lock(); try { var orders = clientRepository.getClientOrders(clientId).orElseThrow(); diff --git a/src/main/java/ru/lionarius/impl/queue/CommandProcessorTask.java b/src/main/java/ru/lionarius/impl/queue/CommandProcessorTask.java index 2f21121..61712a7 100644 --- a/src/main/java/ru/lionarius/impl/queue/CommandProcessorTask.java +++ b/src/main/java/ru/lionarius/impl/queue/CommandProcessorTask.java @@ -1,20 +1,8 @@ package ru.lionarius.impl.queue; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import ru.lionarius.api.client.ClientRepository; -import ru.lionarius.api.command.*; -import ru.lionarius.api.currency.CurrencyPair; -import ru.lionarius.api.order.Order; -import ru.lionarius.api.order.OrderData; -import ru.lionarius.api.order.message.OrderClosedMessage; +import ru.lionarius.api.command.Command; import ru.lionarius.impl.CommandProcessor; -import ru.lionarius.impl.InMemoryClientRepository; -import ru.lionarius.impl.OrderBook; -import java.util.AbstractMap; -import java.util.Map; -import java.util.Set; import java.util.concurrent.BlockingQueue; public class CommandProcessorTask implements Runnable { diff --git a/src/test/java/business/ConcurrentCurrencyExchangeTest.java b/src/test/java/business/ConcurrentCurrencyExchangeTest.java index ba4bc74..62ad486 100644 --- a/src/test/java/business/ConcurrentCurrencyExchangeTest.java +++ b/src/test/java/business/ConcurrentCurrencyExchangeTest.java @@ -15,10 +15,12 @@ import java.util.UUID; import java.util.concurrent.*; import java.util.stream.Stream; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; public abstract class ConcurrentCurrencyExchangeTest { protected abstract CurrencyExchange createExchange(Set pairs); + protected abstract void shutdownExchange(CurrencyExchange exchange); private CurrencyExchange exchange; diff --git a/src/test/java/business/ConcurrentPlainCurrencyExchangeTest.java b/src/test/java/business/ConcurrentPlainCurrencyExchangeTest.java index a86b954..0fbc2a0 100644 --- a/src/test/java/business/ConcurrentPlainCurrencyExchangeTest.java +++ b/src/test/java/business/ConcurrentPlainCurrencyExchangeTest.java @@ -4,7 +4,7 @@ import ru.lionarius.api.CurrencyExchange; import ru.lionarius.api.currency.CurrencyPair; import ru.lionarius.impl.plain.PlainCurrencyExchange; -import java.util.*; +import java.util.Set; class ConcurrentPlainCurrencyExchangeTest extends ConcurrentCurrencyExchangeTest { @Override diff --git a/src/test/java/business/CurrencyExchangeTest.java b/src/test/java/business/CurrencyExchangeTest.java index a53881c..e106255 100644 --- a/src/test/java/business/CurrencyExchangeTest.java +++ b/src/test/java/business/CurrencyExchangeTest.java @@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.*; public abstract class CurrencyExchangeTest { protected abstract CurrencyExchange createExchange(Set pairs); + protected abstract void shutdownExchange(CurrencyExchange exchange); private CurrencyExchange exchange;