📍Use lombok, reformat, and optimize the code (#1560)
* Use lombok, reformat, and optimize the code * Fix merge conflicts and some sonar issues Co-authored-by: va1m <va1m@email.com>
This commit is contained in:
@ -26,8 +26,7 @@ package com.iluwatar.doublechecked.locking;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.IntStream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* Double Checked Locking is a concurrency design pattern used to reduce the overhead of acquiring a
|
||||
@ -40,10 +39,9 @@ import org.slf4j.LoggerFactory;
|
||||
* locking to add item to inventory. In this method, the thread which gets the lock first adds the
|
||||
* item.
|
||||
*/
|
||||
@Slf4j
|
||||
public class App {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
|
||||
|
||||
/**
|
||||
* Program entry point.
|
||||
*
|
||||
@ -63,6 +61,7 @@ public class App {
|
||||
executorService.awaitTermination(5, TimeUnit.SECONDS);
|
||||
} catch (InterruptedException e) {
|
||||
LOGGER.error("Error waiting for ExecutorService shutdown");
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,16 +27,14 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* Inventory.
|
||||
*/
|
||||
@Slf4j
|
||||
public class Inventory {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(Inventory.class);
|
||||
|
||||
private final int inventorySize;
|
||||
private final List<Item> items;
|
||||
private final Lock lock;
|
||||
|
@ -47,17 +47,17 @@ import org.slf4j.LoggerFactory;
|
||||
*
|
||||
* @author Jeroen Meulemeester
|
||||
*/
|
||||
public class InventoryTest {
|
||||
class InventoryTest {
|
||||
|
||||
private InMemoryAppender appender;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
void setUp() {
|
||||
appender = new InMemoryAppender(Inventory.class);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
void tearDown() {
|
||||
appender.stop();
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ public class InventoryTest {
|
||||
* item limit.
|
||||
*/
|
||||
@Test
|
||||
public void testAddItem() throws Exception {
|
||||
void testAddItem() throws Exception {
|
||||
assertTimeout(ofMillis(10000), () -> {
|
||||
// Create a new inventory with a limit of 1000 items and put some load on the add method
|
||||
final var inventory = new Inventory(INVENTORY_SIZE);
|
||||
|
Reference in New Issue
Block a user