mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-10-14 20:17:21 +00:00
deps: Refactor dependencies (#3224)
* remove spring dep move junit, logging, mockito under dep mgmt * upgrade anti-corruption-layer deps * async method invocation * balking, bloc * bridge to bytecode * caching * callback - cqrs * component - health check * hexagonal - metadata mapping * rest of the patterns * remove checkstyle, take spotless into use
This commit is contained in:
1 parent
371439aeaa
commit
0ca162a55c
1863 files changed
+14403
-17632
No files matched your search
@@ -34,6 +34,14 @@
|
||||
</parent>
|
||||
<artifactId>producer-consumer</artifactId>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
|
||||
@@ -54,20 +54,22 @@ public class App {
|
||||
for (var i = 0; i < 2; i++) {
|
||||
|
||||
final var producer = new Producer("Producer_" + i, queue);
|
||||
executorService.submit(() -> {
|
||||
while (true) {
|
||||
producer.produce();
|
||||
}
|
||||
});
|
||||
executorService.submit(
|
||||
() -> {
|
||||
while (true) {
|
||||
producer.produce();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
for (var i = 0; i < 3; i++) {
|
||||
final var consumer = new Consumer("Consumer_" + i, queue);
|
||||
executorService.submit(() -> {
|
||||
while (true) {
|
||||
consumer.consume();
|
||||
}
|
||||
});
|
||||
executorService.submit(
|
||||
() -> {
|
||||
while (true) {
|
||||
consumer.consume();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
executorService.shutdown();
|
||||
|
||||
@@ -26,9 +26,7 @@ package com.iluwatar.producer.consumer;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* Class responsible for consume the {@link Item} produced by {@link Producer}.
|
||||
*/
|
||||
/** Class responsible for consume the {@link Item} produced by {@link Producer}. */
|
||||
@Slf4j
|
||||
public class Consumer {
|
||||
|
||||
@@ -41,13 +39,10 @@ public class Consumer {
|
||||
this.queue = queue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Consume item from the queue.
|
||||
*/
|
||||
/** Consume item from the queue. */
|
||||
public void consume() throws InterruptedException {
|
||||
var item = queue.take();
|
||||
LOGGER.info("Consumer [{}] consume item [{}] produced by [{}]", name,
|
||||
item.id(), item.producer());
|
||||
|
||||
LOGGER.info(
|
||||
"Consumer [{}] consume item [{}] produced by [{}]", name, item.id(), item.producer());
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,5 @@
|
||||
*/
|
||||
package com.iluwatar.producer.consumer;
|
||||
|
||||
/**
|
||||
* Class take part of an {@link Producer}-{@link Consumer} exchange.
|
||||
*/
|
||||
/** Class take part of an {@link Producer}-{@link Consumer} exchange. */
|
||||
public record Item(String producer, int id) {}
|
||||
@@ -27,9 +27,7 @@ package com.iluwatar.producer.consumer;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
/**
|
||||
* Class as a channel for {@link Producer}-{@link Consumer} exchange.
|
||||
*/
|
||||
/** Class as a channel for {@link Producer}-{@link Consumer} exchange. */
|
||||
public class ItemQueue {
|
||||
|
||||
private final BlockingQueue<Item> queue;
|
||||
@@ -48,5 +46,4 @@ public class ItemQueue {
|
||||
|
||||
return queue.take();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -45,9 +45,7 @@ public class Producer {
|
||||
this.queue = queue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Put item in the queue.
|
||||
*/
|
||||
/** Put item in the queue. */
|
||||
public void produce() throws InterruptedException {
|
||||
|
||||
var item = new Item(name, itemId++);
|
||||
|
||||
@@ -24,18 +24,15 @@
|
||||
*/
|
||||
package com.iluwatar.producer.consumer;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
|
||||
/**
|
||||
* Application test
|
||||
*/
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/** Application test */
|
||||
class AppTest {
|
||||
|
||||
@Test
|
||||
void shouldExecuteApplicationWithoutException() {
|
||||
assertDoesNotThrow(() -> App.main(new String[]{}));
|
||||
|
||||
assertDoesNotThrow(() -> App.main(new String[] {}));
|
||||
}
|
||||
}
|
||||
@@ -31,10 +31,7 @@ import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* ConsumerTest
|
||||
*
|
||||
*/
|
||||
/** ConsumerTest */
|
||||
class ConsumerTest {
|
||||
|
||||
private static final int ITEM_COUNT = 5;
|
||||
@@ -55,5 +52,4 @@ class ConsumerTest {
|
||||
|
||||
verify(queue, times(ITEM_COUNT)).take();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -33,23 +33,21 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* ProducerTest
|
||||
*
|
||||
*/
|
||||
/** ProducerTest */
|
||||
class ProducerTest {
|
||||
|
||||
@Test
|
||||
void testProduce() {
|
||||
assertTimeout(ofMillis(6000), () -> {
|
||||
final var queue = mock(ItemQueue.class);
|
||||
final var producer = new Producer("producer", queue);
|
||||
assertTimeout(
|
||||
ofMillis(6000),
|
||||
() -> {
|
||||
final var queue = mock(ItemQueue.class);
|
||||
final var producer = new Producer("producer", queue);
|
||||
|
||||
producer.produce();
|
||||
verify(queue).put(any(Item.class));
|
||||
producer.produce();
|
||||
verify(queue).put(any(Item.class));
|
||||
|
||||
verifyNoMoreInteractions(queue);
|
||||
});
|
||||
verifyNoMoreInteractions(queue);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user