diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java index a14d8f292..59ca86135 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java @@ -27,8 +27,7 @@ import com.iluwatar.abstractdocument.domain.Car; import com.iluwatar.abstractdocument.domain.enums.Property; import java.util.List; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Abstract Document pattern enables handling additional, non-static properties. This pattern @@ -38,10 +37,9 @@ import org.slf4j.LoggerFactory; *

In Abstract Document pattern,({@link AbstractDocument}) fully implements {@link Document}) * interface. Traits are then defined to enable access to properties in usual, static way. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java index 9fad18d1a..c301b85eb 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java @@ -23,19 +23,18 @@ package com.iluwatar.abstractdocument; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.Test; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; /** * AbstractDocument test class */ -public class AbstractDocumentTest { +class AbstractDocumentTest { private static final String KEY = "key"; private static final String VALUE = "value"; @@ -50,13 +49,13 @@ public class AbstractDocumentTest { private final DocumentImplementation document = new DocumentImplementation(new HashMap<>()); @Test - public void shouldPutAndGetValue() { + void shouldPutAndGetValue() { document.put(KEY, VALUE); assertEquals(VALUE, document.get(KEY)); } @Test - public void shouldRetrieveChildren() { + void shouldRetrieveChildren() { var children = List.of(Map.of(), Map.of()); document.put(KEY, children); @@ -67,14 +66,14 @@ public class AbstractDocumentTest { } @Test - public void shouldRetrieveEmptyStreamForNonExistingChildren() { + void shouldRetrieveEmptyStreamForNonExistingChildren() { var children = document.children(KEY, DocumentImplementation::new); assertNotNull(children); assertEquals(0, children.count()); } @Test - public void shouldIncludePropsInToString() { + void shouldIncludePropsInToString() { var props = Map.of(KEY, (Object) VALUE); var document = new DocumentImplementation(props); assertTrue(document.toString().contains(KEY)); diff --git a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java index bafdb7247..a0e129083 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java @@ -23,19 +23,20 @@ package com.iluwatar.abstractdocument; -import static org.junit.jupiter.api.Assertions.assertEquals; - import com.iluwatar.abstractdocument.domain.Car; import com.iluwatar.abstractdocument.domain.Part; import com.iluwatar.abstractdocument.domain.enums.Property; +import org.junit.jupiter.api.Test; + import java.util.List; import java.util.Map; -import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Test for Part and Car */ -public class DomainTest { +class DomainTest { private static final String TEST_PART_TYPE = "test-part-type"; private static final String TEST_PART_MODEL = "test-part-model"; @@ -45,7 +46,7 @@ public class DomainTest { private static final long TEST_CAR_PRICE = 1L; @Test - public void shouldConstructPart() { + void shouldConstructPart() { var partProperties = Map.of( Property.TYPE.toString(), TEST_PART_TYPE, Property.MODEL.toString(), TEST_PART_MODEL, @@ -58,7 +59,7 @@ public class DomainTest { } @Test - public void shouldConstructCar() { + void shouldConstructCar() { var carProperties = Map.of( Property.MODEL.toString(), TEST_CAR_MODEL, Property.PRICE.toString(), TEST_CAR_PRICE, diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java index db464a231..d208002a7 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java @@ -23,8 +23,7 @@ package com.iluwatar.abstractfactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Abstract Factory pattern provides a way to encapsulate a group of individual factories that @@ -40,10 +39,9 @@ import org.slf4j.LoggerFactory; * and its implementations ( {@link ElfKingdomFactory}, {@link OrcKingdomFactory}). The example uses * both concrete implementations to create a king, a castle and an army. */ +@Slf4j public class App implements Runnable { - private static Logger log = LoggerFactory.getLogger(App.class); - private final Kingdom kingdom = new Kingdom(); public Kingdom getKingdom() { @@ -62,17 +60,17 @@ public class App implements Runnable { @Override public void run() { - log.info("Elf Kingdom"); + LOGGER.info("Elf Kingdom"); createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); - log.info(kingdom.getArmy().getDescription()); - log.info(kingdom.getCastle().getDescription()); - log.info(kingdom.getKing().getDescription()); + LOGGER.info(kingdom.getArmy().getDescription()); + LOGGER.info(kingdom.getCastle().getDescription()); + LOGGER.info(kingdom.getKing().getDescription()); - log.info("Orc Kingdom"); + LOGGER.info("Orc Kingdom"); createKingdom(Kingdom.FactoryMaker.KingdomType.ORC); - log.info(kingdom.getArmy().getDescription()); - log.info(kingdom.getCastle().getDescription()); - log.info(kingdom.getKing().getDescription()); + LOGGER.info(kingdom.getArmy().getDescription()); + LOGGER.info(kingdom.getCastle().getDescription()); + LOGGER.info(kingdom.getKing().getDescription()); } /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Kingdom.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Kingdom.java index 9326c5096..f78e67875 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Kingdom.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Kingdom.java @@ -23,36 +23,17 @@ package com.iluwatar.abstractfactory; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter public class Kingdom { private King king; private Castle castle; private Army army; - public King getKing() { - return king; - } - - public Castle getCastle() { - return castle; - } - - public Army getArmy() { - return army; - } - - public void setKing(King king) { - this.king = king; - } - - public void setCastle(Castle castle) { - this.castle = castle; - } - - public void setArmy(Army army) { - this.army = army; - } - /** * The factory of kingdom factories. */ diff --git a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AbstractFactoryTest.java b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AbstractFactoryTest.java index 582862b30..3136ee29f 100644 --- a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AbstractFactoryTest.java +++ b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AbstractFactoryTest.java @@ -31,12 +31,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue; /** * Test for abstract factory. */ -public class AbstractFactoryTest { +class AbstractFactoryTest { private final App app = new App(); @Test - public void king() { + void king() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -51,7 +51,7 @@ public class AbstractFactoryTest { } @Test - public void castle() { + void castle() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -66,7 +66,7 @@ public class AbstractFactoryTest { } @Test - public void army() { + void army() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -81,7 +81,7 @@ public class AbstractFactoryTest { } @Test - public void createElfKingdom() { + void createElfKingdom() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -97,7 +97,7 @@ public class AbstractFactoryTest { } @Test - public void createOrcKingdom() { + void createOrcKingdom() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ORC); final var kingdom = app.getKingdom(); diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitor.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitor.java index 5313fd6bc..bfe7f6646 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitor.java @@ -23,17 +23,15 @@ package com.iluwatar.acyclicvisitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ConfigureForDosVisitor class implements both zoom's and hayes' visit method for Dos * manufacturer. */ +@Slf4j public class ConfigureForDosVisitor implements AllModemVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(ConfigureForDosVisitor.class); - @Override public void visit(Hayes hayes) { LOGGER.info(hayes + " used with Dos configurator."); diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitor.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitor.java index 3f570d212..1f465967f 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitor.java @@ -23,17 +23,15 @@ package com.iluwatar.acyclicvisitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ConfigureForUnixVisitor class implements zoom's visit method for Unix manufacturer, unlike * traditional visitor pattern, this class may selectively implement visit for other modems. */ +@Slf4j public class ConfigureForUnixVisitor implements ZoomVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(ConfigureForUnixVisitor.class); - @Override public void visit(Zoom zoom) { LOGGER.info(zoom + " used with Unix configurator."); diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Hayes.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Hayes.java index db10bfd2c..3e30258f5 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Hayes.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Hayes.java @@ -23,16 +23,14 @@ package com.iluwatar.acyclicvisitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Hayes class implements its accept method. */ +@Slf4j public class Hayes extends Modem { - private static final Logger LOGGER = LoggerFactory.getLogger(ConfigureForDosVisitor.class); - /** * Accepts all visitors but honors only HayesVisitor. */ diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Zoom.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Zoom.java index 6486c7a5c..01e7e7aca 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Zoom.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Zoom.java @@ -23,16 +23,14 @@ package com.iluwatar.acyclicvisitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Zoom class implements its accept method. */ +@Slf4j public class Zoom extends Modem { - private static final Logger LOGGER = LoggerFactory.getLogger(ConfigureForDosVisitor.class); - /** * Accepts all visitors but honors only ZoomVisitor. */ diff --git a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java index 99424eb32..b41fc956c 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java @@ -35,34 +35,34 @@ import uk.org.lidalia.slf4jtest.TestLoggerFactory; /** * ConfigureForDosVisitor test class */ -public class ConfigureForDosVisitorTest { +class ConfigureForDosVisitorTest { private final TestLogger logger = TestLoggerFactory.getTestLogger(ConfigureForDosVisitor.class); - + @Test - public void testVisitForZoom() { + void testVisitForZoom() { var conDos = new ConfigureForDosVisitor(); var zoom = new Zoom(); - + conDos.visit(zoom); - + assertThat(logger.getLoggingEvents()) .extracting("level", "message") .contains(tuple(INFO, zoom + " used with Dos configurator.")); } - + @Test - public void testVisitForHayes() { + void testVisitForHayes() { var conDos = new ConfigureForDosVisitor(); var hayes = new Hayes(); - + conDos.visit(hayes); - + assertThat(logger.getLoggingEvents()) .extracting("level", "message") .contains(tuple(INFO, hayes + " used with Dos configurator.")); } - + @AfterEach public void clearLoggers() { TestLoggerFactory.clear(); diff --git a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java index 5473e95ef..d2ea55809 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java @@ -23,35 +23,34 @@ package com.iluwatar.acyclicvisitor; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import uk.org.lidalia.slf4jtest.TestLogger; +import uk.org.lidalia.slf4jtest.TestLoggerFactory; + import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.groups.Tuple.tuple; import static uk.org.lidalia.slf4jext.Level.INFO; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Test; - -import uk.org.lidalia.slf4jtest.TestLogger; -import uk.org.lidalia.slf4jtest.TestLoggerFactory; - /** * ConfigureForUnixVisitor test class */ -public class ConfigureForUnixVisitorTest { - +class ConfigureForUnixVisitorTest { + private static final TestLogger LOGGER = TestLoggerFactory.getTestLogger(ConfigureForUnixVisitor.class); - + @AfterEach public void clearLoggers() { TestLoggerFactory.clear(); } - + @Test - public void testVisitForZoom() { + void testVisitForZoom() { var conUnix = new ConfigureForUnixVisitor(); var zoom = new Zoom(); - + conUnix.visit(zoom); - + assertThat(LOGGER.getLoggingEvents()) .extracting("level", "message") .contains(tuple(INFO, zoom + " used with Unix configurator.")); diff --git a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java index a2ded206f..eaf9fb152 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java @@ -23,34 +23,32 @@ package com.iluwatar.acyclicvisitor; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; - import org.junit.jupiter.api.Test; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.*; + /** * Hayes test class */ -public class HayesTest { +class HayesTest { @Test - public void testAcceptForDos() { + void testAcceptForDos() { var hayes = new Hayes(); var mockVisitor = mock(ConfigureForDosVisitor.class); - + hayes.accept(mockVisitor); - verify((HayesVisitor)mockVisitor).visit(eq(hayes)); + verify((HayesVisitor) mockVisitor).visit(eq(hayes)); } - + @Test - public void testAcceptForUnix() { + void testAcceptForUnix() { var hayes = new Hayes(); var mockVisitor = mock(ConfigureForUnixVisitor.class); - + hayes.accept(mockVisitor); - + verifyZeroInteractions(mockVisitor); } } diff --git a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java index 923632228..4373fe818 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java @@ -24,32 +24,32 @@ package com.iluwatar.acyclicvisitor; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.mock; - import org.junit.jupiter.api.Test; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + /** * Zoom test class */ -public class ZoomTest { - +class ZoomTest { + @Test - public void testAcceptForDos() { + void testAcceptForDos() { var zoom = new Zoom(); var mockVisitor = mock(ConfigureForDosVisitor.class); - + zoom.accept(mockVisitor); - verify((ZoomVisitor)mockVisitor).visit(eq(zoom)); + verify((ZoomVisitor) mockVisitor).visit(eq(zoom)); } - + @Test - public void testAcceptForUnix() { + void testAcceptForUnix() { var zoom = new Zoom(); var mockVisitor = mock(ConfigureForUnixVisitor.class); - + zoom.accept(mockVisitor); - verify((ZoomVisitor)mockVisitor).visit(eq(zoom)); + verify((ZoomVisitor) mockVisitor).visit(eq(zoom)); } } diff --git a/adapter/README.md b/adapter/README.md index aef4cdb69..65ffa4fc6 100644 --- a/adapter/README.md +++ b/adapter/README.md @@ -42,8 +42,8 @@ public interface RowingBoat { void row(); } +@Slf4j public class FishingBoat { - private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoat.class); public void sail() { LOGGER.info("The fishing boat is sailing"); } @@ -70,10 +70,9 @@ public class Captain { Now let's say the pirates are coming and our captain needs to escape but there is only fishing boat available. We need to create an adapter that allows the captain to operate the fishing boat with his rowing boat skills. ```java +@Slf4j public class FishingBoatAdapter implements RowingBoat { - private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoatAdapter.class); - private final FishingBoat boat; public FishingBoatAdapter() { diff --git a/adapter/src/main/java/com/iluwatar/adapter/Captain.java b/adapter/src/main/java/com/iluwatar/adapter/Captain.java index 9e6c9f816..036792e8c 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/Captain.java +++ b/adapter/src/main/java/com/iluwatar/adapter/Captain.java @@ -23,24 +23,20 @@ package com.iluwatar.adapter; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import lombok.Setter; + /** * The Captain uses {@link RowingBoat} to sail.
This is the client in the pattern. */ +@Setter +@NoArgsConstructor +@AllArgsConstructor public final class Captain { private RowingBoat rowingBoat; - public Captain() { - } - - public Captain(final RowingBoat boat) { - this.rowingBoat = boat; - } - - void setRowingBoat(final RowingBoat boat) { - this.rowingBoat = boat; - } - void row() { rowingBoat.row(); } diff --git a/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java b/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java index a6af76040..38866dc33 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java +++ b/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java @@ -23,18 +23,15 @@ package com.iluwatar.adapter; -import static org.slf4j.LoggerFactory.getLogger; - -import org.slf4j.Logger; +import lombok.extern.slf4j.Slf4j; /** * Device class (adaptee in the pattern). We want to reuse this class. Fishing boat moves by * sailing. */ +@Slf4j final class FishingBoat { - private static final Logger LOGGER = getLogger(FishingBoat.class); - void sail() { LOGGER.info("The fishing boat is sailing"); } diff --git a/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java b/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java index 84035d62e..73c7dd60e 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java +++ b/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java @@ -29,11 +29,7 @@ package com.iluwatar.adapter; */ public class FishingBoatAdapter implements RowingBoat { - private final FishingBoat boat; - - public FishingBoatAdapter() { - boat = new FishingBoat(); - } + private final FishingBoat boat = new FishingBoat(); public final void row() { boat.sail(); diff --git a/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java b/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java index c8291400d..fc55cd69e 100644 --- a/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java +++ b/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java @@ -23,18 +23,19 @@ package com.iluwatar.adapter; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.HashMap; import java.util.Map; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; + +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; /** * Test class */ -public class AdapterPatternTest { +class AdapterPatternTest { private Map beans; @@ -64,7 +65,7 @@ public class AdapterPatternTest { * by the client ({@link Captain} ). */ @Test - public void testAdapter() { + void testAdapter() { var captain = (Captain) beans.get(ROWING_BEAN); // when captain moves diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Aggregator.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Aggregator.java index c467a25d0..209187bd7 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Aggregator.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Aggregator.java @@ -26,8 +26,7 @@ package com.iluwatar.aggregator.microservices; import static java.util.Objects.requireNonNullElse; import javax.annotation.Resource; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -37,20 +36,18 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class Aggregator { - @Resource private ProductInformationClient informationClient; @Resource private ProductInventoryClient inventoryClient; - /** * Retrieves product data. * * @return a Product. */ - @RequestMapping(path = "/product", method = RequestMethod.GET) + @GetMapping("/product") public Product getProduct() { var product = new Product(); diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Product.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Product.java index ca9af3de1..f451728b9 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Product.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/Product.java @@ -23,9 +23,14 @@ package com.iluwatar.aggregator.microservices; +import lombok.Getter; +import lombok.Setter; + /** * Encapsulates all the data for a Product that clients will request. */ +@Getter +@Setter public class Product { /** @@ -39,20 +44,4 @@ public class Product { */ private int productInventories; - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public int getProductInventories() { - return productInventories; - } - - public void setProductInventories(int productInventories) { - this.productInventories = productInventories; - } - } diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClientImpl.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClientImpl.java index 4164a5e6d..2fcad382e 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClientImpl.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClientImpl.java @@ -28,18 +28,16 @@ import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * An adapter to communicate with information micro-service. */ +@Slf4j @Component public class ProductInformationClientImpl implements ProductInformationClient { - private static final Logger LOGGER = LoggerFactory.getLogger(ProductInformationClientImpl.class); - @Override public String getProductTitle() { var request = HttpRequest.newBuilder() @@ -54,6 +52,7 @@ public class ProductInformationClientImpl implements ProductInformationClient { LOGGER.error("IOException Occurred", ioe); } catch (InterruptedException ie) { LOGGER.error("InterruptedException Occurred", ie); + Thread.currentThread().interrupt(); } return null; } diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClientImpl.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClientImpl.java index 6ed566ac4..cc78d2d8d 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClientImpl.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClientImpl.java @@ -28,18 +28,16 @@ import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * An adapter to communicate with inventory micro-service. */ +@Slf4j @Component public class ProductInventoryClientImpl implements ProductInventoryClient { - private static final Logger LOGGER = LoggerFactory.getLogger(ProductInventoryClientImpl.class); - @Override public Integer getProductInventories() { var response = ""; @@ -56,6 +54,7 @@ public class ProductInventoryClientImpl implements ProductInventoryClient { LOGGER.error("IOException Occurred", ioe); } catch (InterruptedException ie) { LOGGER.error("InterruptedException Occurred", ie); + Thread.currentThread().interrupt(); } if ("".equalsIgnoreCase(response)) { return null; diff --git a/aggregator-microservices/aggregator-service/src/test/java/com/iluwatar/aggregator/microservices/AggregatorTest.java b/aggregator-microservices/aggregator-service/src/test/java/com/iluwatar/aggregator/microservices/AggregatorTest.java index f8ff2173e..2ffa9cd42 100644 --- a/aggregator-microservices/aggregator-service/src/test/java/com/iluwatar/aggregator/microservices/AggregatorTest.java +++ b/aggregator-microservices/aggregator-service/src/test/java/com/iluwatar/aggregator/microservices/AggregatorTest.java @@ -23,19 +23,19 @@ package com.iluwatar.aggregator.microservices; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.when; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.when; + /** * Test Aggregation of domain objects */ -public class AggregatorTest { +class AggregatorTest { @InjectMocks private Aggregator aggregator; @@ -55,7 +55,7 @@ public class AggregatorTest { * Tests getting the data for a desktop client */ @Test - public void testGetProduct() { + void testGetProduct() { var title = "The Product Title."; var inventories = 5; diff --git a/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationController.java b/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationController.java index a8b60ffb8..4849e4228 100644 --- a/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationController.java +++ b/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationController.java @@ -23,8 +23,7 @@ package com.iluwatar.information.microservice; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -38,7 +37,7 @@ public class InformationController { * * @return product inventory. */ - @RequestMapping(value = "/information", method = RequestMethod.GET) + @GetMapping("/information") public String getProductTitle() { return "The Product Title."; } diff --git a/aggregator-microservices/information-microservice/src/test/java/com/iluwatar/information/microservice/InformationControllerTest.java b/aggregator-microservices/information-microservice/src/test/java/com/iluwatar/information/microservice/InformationControllerTest.java index d3e07c552..909392d1d 100644 --- a/aggregator-microservices/information-microservice/src/test/java/com/iluwatar/information/microservice/InformationControllerTest.java +++ b/aggregator-microservices/information-microservice/src/test/java/com/iluwatar/information/microservice/InformationControllerTest.java @@ -23,17 +23,17 @@ package com.iluwatar.information.microservice; -import static org.junit.jupiter.api.Assertions.assertEquals; - import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + /** * Test for Information Rest Controller */ -public class InformationControllerTest { +class InformationControllerTest { @Test - public void shouldGetProductTitle() { + void shouldGetProductTitle() { var infoController = new InformationController(); var title = infoController.getProductTitle(); assertEquals("The Product Title.", title); diff --git a/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryController.java b/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryController.java index e40835860..0e40507cc 100644 --- a/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryController.java +++ b/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryController.java @@ -23,8 +23,7 @@ package com.iluwatar.inventory.microservice; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -38,7 +37,7 @@ public class InventoryController { * * @return product inventory. */ - @RequestMapping(value = "/inventories", method = RequestMethod.GET) + @GetMapping("/inventories") public int getProductInventories() { return 5; } diff --git a/aggregator-microservices/inventory-microservice/src/test/java/com/iluwatar/inventory/microservice/InventoryControllerTest.java b/aggregator-microservices/inventory-microservice/src/test/java/com/iluwatar/inventory/microservice/InventoryControllerTest.java index 5d278dd76..9a85f1d5a 100644 --- a/aggregator-microservices/inventory-microservice/src/test/java/com/iluwatar/inventory/microservice/InventoryControllerTest.java +++ b/aggregator-microservices/inventory-microservice/src/test/java/com/iluwatar/inventory/microservice/InventoryControllerTest.java @@ -23,16 +23,17 @@ package com.iluwatar.inventory.microservice; -import static org.junit.jupiter.api.Assertions.assertEquals; - import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + /** * Test Inventory Rest Controller */ -public class InventoryControllerTest { +class InventoryControllerTest { + @Test - public void testGetProductInventories() { + void testGetProductInventories() { var inventoryController = new InventoryController(); var numberOfInventories = inventoryController.getProductInventories(); assertEquals(5, numberOfInventories); diff --git a/ambassador/README.md b/ambassador/README.md index dfba18649..9010c44b6 100644 --- a/ambassador/README.md +++ b/ambassador/README.md @@ -48,9 +48,8 @@ interface RemoteServiceInterface { A remote services represented as a singleton. ```java +@Slf4j public class RemoteService implements RemoteServiceInterface { - - private static final Logger LOGGER = LoggerFactory.getLogger(RemoteService.class); private static RemoteService service = null; static synchronized RemoteService getRemoteService() { @@ -80,9 +79,8 @@ public class RemoteService implements RemoteServiceInterface { A service ambassador adding additional features such as logging, latency checks ```java +@Slf4j public class ServiceAmbassador implements RemoteServiceInterface { - - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceAmbassador.class); private static final int RETRIES = 3; private static final int DELAY_MS = 3000; @@ -132,9 +130,8 @@ public class ServiceAmbassador implements RemoteServiceInterface { A client has a local service ambassador used to interact with the remote service: ```java +@Slf4j public class Client { - - private static final Logger LOGGER = LoggerFactory.getLogger(Client.class); private final ServiceAmbassador serviceAmbassador = new ServiceAmbassador(); long useService(int value) { diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/Client.java b/ambassador/src/main/java/com/iluwatar/ambassador/Client.java index dde44bd3f..0ec258016 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/Client.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/Client.java @@ -23,20 +23,19 @@ package com.iluwatar.ambassador; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A simple Client. */ +@Slf4j public class Client { - private static final Logger LOGGER = LoggerFactory.getLogger(Client.class); private final ServiceAmbassador serviceAmbassador = new ServiceAmbassador(); long useService(int value) { var result = serviceAmbassador.doRemoteFunction(value); - LOGGER.info("Service result: " + result); + LOGGER.info("Service result: {}", result); return result; } } diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java index c2524ad47..18a2d2214 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java @@ -26,15 +26,14 @@ package com.iluwatar.ambassador; import static java.lang.Thread.sleep; import com.iluwatar.ambassador.util.RandomProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A remote legacy application represented by a Singleton implementation. */ +@Slf4j public class RemoteService implements RemoteServiceInterface { private static final int THRESHOLD = 200; - private static final Logger LOGGER = LoggerFactory.getLogger(RemoteService.class); private static RemoteService service = null; private final RandomProvider randomProvider; @@ -73,8 +72,9 @@ public class RemoteService implements RemoteServiceInterface { sleep(waitTime); } catch (InterruptedException e) { LOGGER.error("Thread sleep state interrupted", e); + Thread.currentThread().interrupt(); } return waitTime <= THRESHOLD ? value * 10 - : RemoteServiceStatus.FAILURE.getRemoteServiceStatusValue(); + : RemoteServiceStatus.FAILURE.getRemoteServiceStatusValue(); } } diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceStatus.java b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceStatus.java index 64cb6eaac..e7ee06af9 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceStatus.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceStatus.java @@ -33,8 +33,7 @@ package com.iluwatar.ambassador; */ public enum RemoteServiceStatus { - FAILURE(-1) - ; + FAILURE(-1); private final long remoteServiceStatusValue; diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java b/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java index 771da8602..bd8481d00 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java @@ -26,17 +26,16 @@ package com.iluwatar.ambassador; import static com.iluwatar.ambassador.RemoteServiceStatus.FAILURE; import static java.lang.Thread.sleep; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ServiceAmbassador provides an interface for a ({@link Client}) to access ({@link RemoteService}). * The interface adds logging, latency testing and usage of the service in a safe way that will not * add stress to the remote service when connectivity issues occur. */ +@Slf4j public class ServiceAmbassador implements RemoteServiceInterface { - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceAmbassador.class); private static final int RETRIES = 3; private static final int DELAY_MS = 3000; @@ -53,7 +52,7 @@ public class ServiceAmbassador implements RemoteServiceInterface { var result = RemoteService.getRemoteService().doRemoteFunction(value); var timeTaken = System.currentTimeMillis() - startTime; - LOGGER.info("Time taken (ms): " + timeTaken); + LOGGER.info("Time taken (ms): {}", timeTaken); return result; } @@ -67,12 +66,13 @@ public class ServiceAmbassador implements RemoteServiceInterface { } if ((result = checkLatency(value)) == FAILURE.getRemoteServiceStatusValue()) { - LOGGER.info("Failed to reach remote: (" + (i + 1) + ")"); + LOGGER.info("Failed to reach remote: ({})", i + 1); retries++; try { sleep(DELAY_MS); } catch (InterruptedException e) { LOGGER.error("Thread sleep state interrupted", e); + Thread.currentThread().interrupt(); } } else { break; diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ApiGateway.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ApiGateway.java index 6d0cde3d3..df060b562 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ApiGateway.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ApiGateway.java @@ -24,8 +24,7 @@ package com.iluwatar.api.gateway; import javax.annotation.Resource; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -45,7 +44,7 @@ public class ApiGateway { * * @return Product information for clients on a desktop */ - @RequestMapping(path = "/desktop", method = RequestMethod.GET) + @GetMapping("/desktop") public DesktopProduct getProductDesktop() { var desktopProduct = new DesktopProduct(); desktopProduct.setImagePath(imageClient.getImagePath()); @@ -58,7 +57,7 @@ public class ApiGateway { * * @return Product information for clients on a mobile device */ - @RequestMapping(path = "/mobile", method = RequestMethod.GET) + @GetMapping("/mobile") public MobileProduct getProductMobile() { var mobileProduct = new MobileProduct(); mobileProduct.setPrice(priceClient.getPrice()); diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/DesktopProduct.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/DesktopProduct.java index e4660c31a..0b0d3cde3 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/DesktopProduct.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/DesktopProduct.java @@ -23,10 +23,16 @@ package com.iluwatar.api.gateway; +import lombok.Getter; +import lombok.Setter; + /** * Encapsulates all of the information that a desktop client needs to display a product. */ +@Getter +@Setter public class DesktopProduct { + /** * The price of the product. */ @@ -37,19 +43,4 @@ public class DesktopProduct { */ private String imagePath; - public String getPrice() { - return price; - } - - public void setPrice(String price) { - this.price = price; - } - - public String getImagePath() { - return imagePath; - } - - public void setImagePath(String imagePath) { - this.imagePath = imagePath; - } } diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClientImpl.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClientImpl.java index 2ec726693..b98d06bf2 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClientImpl.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClientImpl.java @@ -23,24 +23,21 @@ package com.iluwatar.api.gateway; -import static org.slf4j.LoggerFactory.getLogger; - import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandlers; - -import org.slf4j.Logger; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * An adapter to communicate with the Image microservice. */ +@Slf4j @Component public class ImageClientImpl implements ImageClient { - private static final Logger LOGGER = getLogger(ImageClientImpl.class); /** * Makes a simple HTTP Get request to the Image microservice. @@ -60,8 +57,11 @@ public class ImageClientImpl implements ImageClient { var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString()); logResponse(httpResponse); return httpResponse.body(); - } catch (IOException | InterruptedException e) { - LOGGER.error("Failure occurred while getting image path", e); + } catch (IOException ioe) { + LOGGER.error("Failure occurred while getting image path", ioe); + } catch (InterruptedException ie) { + LOGGER.error("Failure occurred while getting image path", ie); + Thread.currentThread().interrupt(); } return null; diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/MobileProduct.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/MobileProduct.java index e59af3693..5fc395c90 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/MobileProduct.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/MobileProduct.java @@ -23,20 +23,17 @@ package com.iluwatar.api.gateway; +import lombok.Getter; +import lombok.Setter; + /** * Encapsulates all of the information that mobile client needs to display a product. */ +@Getter +@Setter public class MobileProduct { /** * The price of the product. */ private String price; - - public String getPrice() { - return price; - } - - public void setPrice(String price) { - this.price = price; - } } diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClientImpl.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClientImpl.java index 801b9a3b6..f5a7b8b5d 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClientImpl.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClientImpl.java @@ -23,25 +23,22 @@ package com.iluwatar.api.gateway; -import static org.slf4j.LoggerFactory.getLogger; - import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandlers; - -import org.slf4j.Logger; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * An adapter to communicate with the Price microservice. */ +@Slf4j @Component public class PriceClientImpl implements PriceClient { - private static final Logger LOGGER = getLogger(PriceClientImpl.class); /** * Makes a simple HTTP Get request to the Price microservice. @@ -61,8 +58,11 @@ public class PriceClientImpl implements PriceClient { var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString()); logResponse(httpResponse); return httpResponse.body(); - } catch (IOException | InterruptedException e) { + } catch (IOException e) { LOGGER.error("Failure occurred while getting price info", e); + } catch (InterruptedException e) { + LOGGER.error("Failure occurred while getting price info", e); + Thread.currentThread().interrupt(); } return null; diff --git a/api-gateway/api-gateway-service/src/test/java/com/iluwatar/api/gateway/ApiGatewayTest.java b/api-gateway/api-gateway-service/src/test/java/com/iluwatar/api/gateway/ApiGatewayTest.java index 5de617fc6..94e76583e 100644 --- a/api-gateway/api-gateway-service/src/test/java/com/iluwatar/api/gateway/ApiGatewayTest.java +++ b/api-gateway/api-gateway-service/src/test/java/com/iluwatar/api/gateway/ApiGatewayTest.java @@ -35,7 +35,7 @@ import org.mockito.MockitoAnnotations; /** * Test API Gateway Pattern */ -public class ApiGatewayTest { +class ApiGatewayTest { @InjectMocks private ApiGateway apiGateway; @@ -55,7 +55,7 @@ public class ApiGatewayTest { * Tests getting the data for a desktop client */ @Test - public void testGetProductDesktop() { + void testGetProductDesktop() { var imagePath = "/product-image.png"; var price = "20"; when(imageClient.getImagePath()).thenReturn(imagePath); @@ -71,7 +71,7 @@ public class ApiGatewayTest { * Tests getting the data for a mobile client */ @Test - public void testGetProductMobile() { + void testGetProductMobile() { var price = "20"; when(priceClient.getPrice()).thenReturn(price); diff --git a/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageController.java b/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageController.java index 232c7004c..44828b269 100644 --- a/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageController.java +++ b/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageController.java @@ -23,27 +23,24 @@ package com.iluwatar.image.microservice; -import static org.slf4j.LoggerFactory.getLogger; - -import org.slf4j.Logger; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * Exposes the Image microservice's endpoints. */ +@Slf4j @RestController public class ImageController { - private static final Logger LOGGER = getLogger(ImageController.class); /** * An endpoint for a user to retrieve an image path. * * @return An image path */ - @RequestMapping(value = "/image-path", method = RequestMethod.GET) + @GetMapping("/image-path") public String getImagePath() { LOGGER.info("Successfully found image path"); return "/product-image.png"; diff --git a/api-gateway/image-microservice/src/test/java/com/iluwatar/image/microservice/ImageControllerTest.java b/api-gateway/image-microservice/src/test/java/com/iluwatar/image/microservice/ImageControllerTest.java index d1a6caf91..4d455a94f 100644 --- a/api-gateway/image-microservice/src/test/java/com/iluwatar/image/microservice/ImageControllerTest.java +++ b/api-gateway/image-microservice/src/test/java/com/iluwatar/image/microservice/ImageControllerTest.java @@ -23,16 +23,17 @@ package com.iluwatar.image.microservice; -import static org.junit.jupiter.api.Assertions.assertEquals; - import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + /** * Test for Image Rest Controller */ -public class ImageControllerTest { +class ImageControllerTest { + @Test - public void testGetImagePath() { + void testGetImagePath() { var imageController = new ImageController(); var imagePath = imageController.getImagePath(); assertEquals("/product-image.png", imagePath); diff --git a/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceController.java b/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceController.java index 7502e0c24..045749c8d 100644 --- a/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceController.java +++ b/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceController.java @@ -23,27 +23,24 @@ package com.iluwatar.price.microservice; -import static org.slf4j.LoggerFactory.getLogger; - -import org.slf4j.Logger; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** * Exposes the Price microservice's endpoints. */ +@Slf4j @RestController public class PriceController { - private static final Logger LOGGER = getLogger(PriceController.class); /** * An endpoint for a user to retrieve a product's price. * * @return A product's price */ - @RequestMapping(value = "/price", method = RequestMethod.GET) + @GetMapping("/price") public String getPrice() { LOGGER.info("Successfully found price info"); return "20"; diff --git a/api-gateway/price-microservice/src/test/java/com/iluwatar/price/microservice/PriceControllerTest.java b/api-gateway/price-microservice/src/test/java/com/iluwatar/price/microservice/PriceControllerTest.java index 4fcc69ebc..b727d3890 100644 --- a/api-gateway/price-microservice/src/test/java/com/iluwatar/price/microservice/PriceControllerTest.java +++ b/api-gateway/price-microservice/src/test/java/com/iluwatar/price/microservice/PriceControllerTest.java @@ -23,16 +23,17 @@ package com.iluwatar.price.microservice; -import static org.junit.jupiter.api.Assertions.assertEquals; - import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + /** * Test for Price Rest Controller */ -public class PriceControllerTest { +class PriceControllerTest { + @Test - public void testgetPrice() { + void testgetPrice() { var priceController = new PriceController(); var price = priceController.getPrice(); assertEquals("20", price); diff --git a/arrange-act-assert/README.md b/arrange-act-assert/README.md index 6b3cb4058..23efdd71e 100644 --- a/arrange-act-assert/README.md +++ b/arrange-act-assert/README.md @@ -81,10 +81,10 @@ Then we write our unit tests according to Arrange/Act/Assert pattern. Notice the separated steps for each unit test. ```java -public class CashAAATest { +class CashAAATest { @Test - public void testPlus() { + void testPlus() { //Arrange var cash = new Cash(3); //Act @@ -94,7 +94,7 @@ public class CashAAATest { } @Test - public void testMinus() { + void testMinus() { //Arrange var cash = new Cash(8); //Act @@ -105,7 +105,7 @@ public class CashAAATest { } @Test - public void testInsufficientMinus() { + void testInsufficientMinus() { //Arrange var cash = new Cash(1); //Act @@ -116,7 +116,7 @@ public class CashAAATest { } @Test - public void testUpdate() { + void testUpdate() { //Arrange var cash = new Cash(5); //Act diff --git a/arrange-act-assert/src/main/java/com/iluwatar/arrangeactassert/Cash.java b/arrange-act-assert/src/main/java/com/iluwatar/arrangeactassert/Cash.java index 317848ae0..53b002f0a 100644 --- a/arrange-act-assert/src/main/java/com/iluwatar/arrangeactassert/Cash.java +++ b/arrange-act-assert/src/main/java/com/iluwatar/arrangeactassert/Cash.java @@ -23,18 +23,17 @@ package com.iluwatar.arrangeactassert; +import lombok.AllArgsConstructor; + /** * Arrange/Act/Assert (AAA) is a unit test pattern. In this simple example, we have a ({@link Cash}) * object for plus, minus and counting amount. */ +@AllArgsConstructor public class Cash { private int amount; - Cash(int amount) { - this.amount = amount; - } - //plus void plus(int addend) { amount += addend; diff --git a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/App.java b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/App.java index 13959f1e3..04902a94c 100644 --- a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/App.java +++ b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/App.java @@ -24,8 +24,7 @@ package com.iluwatar.async.method.invocation; import java.util.concurrent.Callable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This application demonstrates the async method invocation pattern. Key parts of the pattern are @@ -55,10 +54,9 @@ import org.slf4j.LoggerFactory; * @see java.util.concurrent.CompletableFuture * @see java.util.concurrent.ExecutorService */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/balking/src/main/java/com/iluwatar/balking/App.java b/balking/src/main/java/com/iluwatar/balking/App.java index 7d66724b5..68b5eb44a 100644 --- a/balking/src/main/java/com/iluwatar/balking/App.java +++ b/balking/src/main/java/com/iluwatar/balking/App.java @@ -23,11 +23,9 @@ package com.iluwatar.balking; -import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * In Balking Design Pattern if an object’s method is invoked when it is in an inappropriate state, @@ -40,11 +38,9 @@ import org.slf4j.LoggerFactory; * been already washing and any other thread execute wash() it can't do that once again and returns * doing nothing. */ - +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Entry Point. * @@ -61,6 +57,7 @@ public class App { executorService.awaitTermination(10, TimeUnit.SECONDS); } catch (InterruptedException ie) { LOGGER.error("ERROR: Waiting on executor service shutdown!"); + Thread.currentThread().interrupt(); } } diff --git a/balking/src/main/java/com/iluwatar/balking/WashingMachine.java b/balking/src/main/java/com/iluwatar/balking/WashingMachine.java index 401aa5feb..1da2b0204 100644 --- a/balking/src/main/java/com/iluwatar/balking/WashingMachine.java +++ b/balking/src/main/java/com/iluwatar/balking/WashingMachine.java @@ -24,15 +24,14 @@ package com.iluwatar.balking; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Washing machine class. */ +@Slf4j public class WashingMachine { - private static final Logger LOGGER = LoggerFactory.getLogger(WashingMachine.class); private final DelayProvider delayProvider; private WashingMachineState washingMachineState; @@ -44,7 +43,8 @@ public class WashingMachine { try { Thread.sleep(timeUnit.toMillis(interval)); } catch (InterruptedException ie) { - ie.printStackTrace(); + LOGGER.error("", ie); + Thread.currentThread().interrupt(); } task.run(); }); @@ -71,7 +71,7 @@ public class WashingMachine { var machineState = getWashingMachineState(); LOGGER.info("{}: Actual machine state: {}", Thread.currentThread().getName(), machineState); if (this.washingMachineState == WashingMachineState.WASHING) { - LOGGER.error("ERROR: Cannot wash if the machine has been already washing!"); + LOGGER.error("Cannot wash if the machine has been already washing!"); return; } this.washingMachineState = WashingMachineState.WASHING; diff --git a/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java b/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java index 90ad0d9b4..f652a841f 100644 --- a/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java +++ b/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java @@ -28,5 +28,6 @@ package com.iluwatar.balking; * as well as during washing. */ public enum WashingMachineState { - ENABLED, WASHING + ENABLED, + WASHING } diff --git a/bridge/src/main/java/com/iluwatar/bridge/App.java b/bridge/src/main/java/com/iluwatar/bridge/App.java index 218d65b54..639d53f58 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/App.java +++ b/bridge/src/main/java/com/iluwatar/bridge/App.java @@ -23,8 +23,7 @@ package com.iluwatar.bridge; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Composition over inheritance. The Bridge pattern can also be thought of as two layers of @@ -39,10 +38,9 @@ import org.slf4j.LoggerFactory; * enchantments. We can easily combine any weapon with any enchantment using composition instead of * creating deep class hierarchy. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java b/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java index c2300c03d..436b11a70 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java +++ b/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java @@ -23,16 +23,14 @@ package com.iluwatar.bridge; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * FlyingEnchantment. */ +@Slf4j public class FlyingEnchantment implements Enchantment { - private static final Logger LOGGER = LoggerFactory.getLogger(FlyingEnchantment.class); - @Override public void onActivate() { LOGGER.info("The item begins to glow faintly."); diff --git a/bridge/src/main/java/com/iluwatar/bridge/Hammer.java b/bridge/src/main/java/com/iluwatar/bridge/Hammer.java index b535c403c..834a2c54a 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/Hammer.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Hammer.java @@ -23,22 +23,18 @@ package com.iluwatar.bridge; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * Hammer. */ +@Slf4j +@AllArgsConstructor public class Hammer implements Weapon { - private static final Logger LOGGER = LoggerFactory.getLogger(Hammer.class); - private final Enchantment enchantment; - public Hammer(Enchantment enchantment) { - this.enchantment = enchantment; - } - @Override public void wield() { LOGGER.info("The hammer is wielded."); diff --git a/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java index 286272aab..746b827f6 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java +++ b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java @@ -23,16 +23,14 @@ package com.iluwatar.bridge; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * SoulEatingEnchantment. */ +@Slf4j public class SoulEatingEnchantment implements Enchantment { - private static final Logger LOGGER = LoggerFactory.getLogger(SoulEatingEnchantment.class); - @Override public void onActivate() { LOGGER.info("The item spreads bloodlust."); diff --git a/bridge/src/main/java/com/iluwatar/bridge/Sword.java b/bridge/src/main/java/com/iluwatar/bridge/Sword.java index f669c5516..ef9764eca 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/Sword.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Sword.java @@ -23,22 +23,18 @@ package com.iluwatar.bridge; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * Sword. */ +@Slf4j +@AllArgsConstructor public class Sword implements Weapon { - private static final Logger LOGGER = LoggerFactory.getLogger(Sword.class); - private final Enchantment enchantment; - public Sword(Enchantment enchantment) { - this.enchantment = enchantment; - } - @Override public void wield() { LOGGER.info("The sword is wielded."); diff --git a/builder/src/main/java/com/iluwatar/builder/App.java b/builder/src/main/java/com/iluwatar/builder/App.java index 950e018cc..e62dd8ceb 100644 --- a/builder/src/main/java/com/iluwatar/builder/App.java +++ b/builder/src/main/java/com/iluwatar/builder/App.java @@ -24,8 +24,7 @@ package com.iluwatar.builder; import com.iluwatar.builder.Hero.Builder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The intention of the Builder pattern is to find a solution to the telescoping constructor @@ -48,10 +47,9 @@ import org.slf4j.LoggerFactory; * configuration for the {@link Hero} object can be done using the fluent {@link Builder} interface. * When configuration is ready the build method is called to receive the final {@link Hero} object. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * @@ -76,6 +74,5 @@ public class App { .withWeapon(Weapon.BOW) .build(); LOGGER.info(thief.toString()); - } } diff --git a/builder/src/main/java/com/iluwatar/builder/Armor.java b/builder/src/main/java/com/iluwatar/builder/Armor.java index 7f1dc5164..0ed7be12e 100644 --- a/builder/src/main/java/com/iluwatar/builder/Armor.java +++ b/builder/src/main/java/com/iluwatar/builder/Armor.java @@ -23,19 +23,21 @@ package com.iluwatar.builder; +import lombok.AllArgsConstructor; + /** * Armor enumeration. */ +@AllArgsConstructor public enum Armor { - CLOTHES("clothes"), LEATHER("leather"), CHAIN_MAIL("chain mail"), PLATE_MAIL("plate mail"); + CLOTHES("clothes"), + LEATHER("leather"), + CHAIN_MAIL("chain mail"), + PLATE_MAIL("plate mail"); private final String title; - Armor(String title) { - this.title = title; - } - @Override public String toString() { return title; diff --git a/builder/src/main/java/com/iluwatar/builder/HairColor.java b/builder/src/main/java/com/iluwatar/builder/HairColor.java index 9437a4cd5..361bd5556 100644 --- a/builder/src/main/java/com/iluwatar/builder/HairColor.java +++ b/builder/src/main/java/com/iluwatar/builder/HairColor.java @@ -28,7 +28,11 @@ package com.iluwatar.builder; */ public enum HairColor { - WHITE, BLOND, RED, BROWN, BLACK; + WHITE, + BLOND, + RED, + BROWN, + BLACK; @Override public String toString() { diff --git a/builder/src/main/java/com/iluwatar/builder/HairType.java b/builder/src/main/java/com/iluwatar/builder/HairType.java index 882bdd7c5..9342031f6 100644 --- a/builder/src/main/java/com/iluwatar/builder/HairType.java +++ b/builder/src/main/java/com/iluwatar/builder/HairType.java @@ -23,20 +23,22 @@ package com.iluwatar.builder; +import lombok.AllArgsConstructor; + /** * HairType enumeration. */ +@AllArgsConstructor public enum HairType { - BALD("bald"), SHORT("short"), CURLY("curly"), LONG_STRAIGHT("long straight"), LONG_CURLY( - "long curly"); + BALD("bald"), + SHORT("short"), + CURLY("curly"), + LONG_STRAIGHT("long straight"), + LONG_CURLY("long curly"); private final String title; - HairType(String title) { - this.title = title; - } - @Override public String toString() { return title; diff --git a/builder/src/test/java/com/iluwatar/builder/AppTest.java b/builder/src/test/java/com/iluwatar/builder/AppTest.java index 2f32066e1..1c9ccddfa 100644 --- a/builder/src/test/java/com/iluwatar/builder/AppTest.java +++ b/builder/src/test/java/com/iluwatar/builder/AppTest.java @@ -41,7 +41,6 @@ class AppTest { @Test void shouldExecuteApplicationWithoutException() { - assertDoesNotThrow(() -> App.main(new String[]{})); } } diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessDelegate.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessDelegate.java index f2dfc49f6..d1255bf5f 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessDelegate.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessDelegate.java @@ -29,7 +29,6 @@ package com.iluwatar.business.delegate; public class BusinessDelegate { private BusinessLookup lookupService; - private BusinessService businessService; private ServiceType serviceType; public void setLookupService(BusinessLookup businessLookup) { @@ -41,7 +40,7 @@ public class BusinessDelegate { } public void doTask() { - businessService = lookupService.getBusinessService(serviceType); + BusinessService businessService = lookupService.getBusinessService(serviceType); businessService.doProcessing(); } } diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessLookup.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessLookup.java index dabe9664c..07ad6342e 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessLookup.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessLookup.java @@ -23,9 +23,12 @@ package com.iluwatar.business.delegate; +import lombok.Setter; + /** * Class for performing service lookups. */ +@Setter public class BusinessLookup { private EjbService ejbService; @@ -45,12 +48,4 @@ public class BusinessLookup { return jmsService; } } - - public void setJmsService(JmsService jmsService) { - this.jmsService = jmsService; - } - - public void setEjbService(EjbService ejbService) { - this.ejbService = ejbService; - } } diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/EjbService.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/EjbService.java index 4c90c1377..6813dfec1 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/EjbService.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/EjbService.java @@ -23,16 +23,14 @@ package com.iluwatar.business.delegate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Service EJB implementation. */ +@Slf4j public class EjbService implements BusinessService { - private static final Logger LOGGER = LoggerFactory.getLogger(EjbService.class); - @Override public void doProcessing() { LOGGER.info("EjbService is now processing"); diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/JmsService.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/JmsService.java index 1f218a402..932c5038d 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/JmsService.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/JmsService.java @@ -23,16 +23,14 @@ package com.iluwatar.business.delegate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Service JMS implementation. */ +@Slf4j public class JmsService implements BusinessService { - private static final Logger LOGGER = LoggerFactory.getLogger(JmsService.class); - @Override public void doProcessing() { LOGGER.info("JmsService is now processing"); diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/ServiceType.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/ServiceType.java index 68e1bbf72..503f30797 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/ServiceType.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/ServiceType.java @@ -28,5 +28,6 @@ package com.iluwatar.business.delegate; */ public enum ServiceType { - EJB, JMS + EJB, + JMS } diff --git a/business-delegate/src/test/java/com/iluwatar/business/delegate/BusinessDelegateTest.java b/business-delegate/src/test/java/com/iluwatar/business/delegate/BusinessDelegateTest.java index b474ff4a6..b59759328 100644 --- a/business-delegate/src/test/java/com/iluwatar/business/delegate/BusinessDelegateTest.java +++ b/business-delegate/src/test/java/com/iluwatar/business/delegate/BusinessDelegateTest.java @@ -35,19 +35,17 @@ import static org.mockito.Mockito.verify; * tiers. By using the pattern we gain loose coupling between the tiers. The Business Delegate * encapsulates knowledge about how to locate, connect to, and interact with the business objects * that make up the application. - * + * *

Some of the services the Business Delegate uses are instantiated directly, and some can be * retrieved through service lookups. The Business Delegate itself may contain business logic too * potentially tying together multiple service calls, exception handling, retrying etc. */ -public class BusinessDelegateTest { +class BusinessDelegateTest { private EjbService ejbService; private JmsService jmsService; - private BusinessLookup businessLookup; - private BusinessDelegate businessDelegate; /** @@ -59,7 +57,7 @@ public class BusinessDelegateTest { ejbService = spy(new EjbService()); jmsService = spy(new JmsService()); - businessLookup = spy(new BusinessLookup()); + BusinessLookup businessLookup = spy(new BusinessLookup()); businessLookup.setEjbService(ejbService); businessLookup.setJmsService(jmsService); @@ -73,7 +71,7 @@ public class BusinessDelegateTest { * service and makes the service call. */ @Test - public void testBusinessDelegate() { + void testBusinessDelegate() { // setup a client object var client = new Client(businessDelegate); diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/App.java b/bytecode/src/main/java/com/iluwatar/bytecode/App.java index d3754cf2c..4d41fe6b9 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/App.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/App.java @@ -24,8 +24,7 @@ package com.iluwatar.bytecode; import com.iluwatar.bytecode.util.InstructionConverterUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The intention of Bytecode pattern is to give behavior the flexibility of data by encoding it as @@ -40,8 +39,8 @@ import org.slf4j.LoggerFactory; * ensure the behavior being defined can’t break the game, you need to sandbox it from the rest of * the codebase. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** * Main app method. diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java b/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java index ceec9b464..52b6e325a 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java @@ -23,9 +23,14 @@ package com.iluwatar.bytecode; +import lombok.AllArgsConstructor; +import lombok.Getter; + /** * Representation of instructions understandable by virtual machine. */ +@AllArgsConstructor +@Getter public enum Instruction { LITERAL(1), @@ -40,15 +45,7 @@ public enum Instruction { ADD(10), DIVIDE(11); - private final int value; - - Instruction(int value) { - this.value = value; - } - - public int getIntValue() { - return value; - } + private final int intValue; /** * Converts integer value to Instruction. diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java b/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java index c05b159db..526a8a377 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java @@ -24,10 +24,12 @@ package com.iluwatar.bytecode; import java.util.Stack; +import lombok.Getter; /** * Implementation of virtual machine. */ +@Getter public class VirtualMachine { private final Stack stack = new Stack<>(); @@ -108,10 +110,6 @@ public class VirtualMachine { } } - public Stack getStack() { - return stack; - } - public void setHealth(int wizard, int amount) { wizards[wizard].setHealth(amount); } @@ -135,8 +133,4 @@ public class VirtualMachine { public int getAgility(int wizard) { return wizards[wizard].getAgility(); } - - public Wizard[] getWizards() { - return wizards; - } } diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java b/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java index fb258cc13..4db97f119 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java @@ -23,15 +23,18 @@ package com.iluwatar.bytecode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * This class represent game objects which properties can be changed by instructions interpreted by * virtual machine. */ +@Setter +@Getter +@Slf4j public class Wizard { - private static final Logger LOGGER = LoggerFactory.getLogger(Wizard.class); private int health; @@ -41,30 +44,6 @@ public class Wizard { private int numberOfPlayedSounds; private int numberOfSpawnedParticles; - public int getHealth() { - return health; - } - - public void setHealth(int health) { - this.health = health; - } - - public int getAgility() { - return agility; - } - - public void setAgility(int agility) { - this.agility = agility; - } - - public int getWisdom() { - return wisdom; - } - - public void setWisdom(int wisdom) { - this.wisdom = wisdom; - } - public void playSound() { LOGGER.info("Playing sound"); numberOfPlayedSounds++; @@ -75,11 +54,4 @@ public class Wizard { numberOfSpawnedParticles++; } - public int getNumberOfPlayedSounds() { - return numberOfPlayedSounds; - } - - public int getNumberOfSpawnedParticles() { - return numberOfSpawnedParticles; - } } diff --git a/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java b/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java index 5ddf57a6b..1fbe72014 100644 --- a/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java +++ b/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java @@ -23,19 +23,19 @@ package com.iluwatar.bytecode; -import org.junit.jupiter.api.Test; - import static com.iluwatar.bytecode.Instruction.*; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.Test; + /** - * Test for {@Link VirtualMachine} + * Test for {@link VirtualMachine} */ -public class VirtualMachineTest { +class VirtualMachineTest { @Test - public void testLiteral() { + void testLiteral() { var bytecode = new int[2]; bytecode[0] = LITERAL.getIntValue(); bytecode[1] = 10; @@ -48,7 +48,7 @@ public class VirtualMachineTest { } @Test - public void testSetHealth() { + void testSetHealth() { var wizardNumber = 0; var bytecode = new int[5]; bytecode[0] = LITERAL.getIntValue(); @@ -64,7 +64,7 @@ public class VirtualMachineTest { } @Test - public void testSetAgility() { + void testSetAgility() { var wizardNumber = 0; var bytecode = new int[5]; bytecode[0] = LITERAL.getIntValue(); @@ -80,7 +80,7 @@ public class VirtualMachineTest { } @Test - public void testSetWisdom() { + void testSetWisdom() { var wizardNumber = 0; var bytecode = new int[5]; bytecode[0] = LITERAL.getIntValue(); @@ -96,7 +96,7 @@ public class VirtualMachineTest { } @Test - public void testGetHealth() { + void testGetHealth() { var wizardNumber = 0; var bytecode = new int[8]; bytecode[0] = LITERAL.getIntValue(); @@ -115,7 +115,7 @@ public class VirtualMachineTest { } @Test - public void testPlaySound() { + void testPlaySound() { var wizardNumber = 0; var bytecode = new int[3]; bytecode[0] = LITERAL.getIntValue(); @@ -130,7 +130,7 @@ public class VirtualMachineTest { } @Test - public void testSpawnParticles() { + void testSpawnParticles() { var wizardNumber = 0; var bytecode = new int[3]; bytecode[0] = LITERAL.getIntValue(); @@ -145,7 +145,7 @@ public class VirtualMachineTest { } @Test - public void testInvalidInstruction() { + void testInvalidInstruction() { var bytecode = new int[1]; bytecode[0] = 999; var vm = new VirtualMachine(); diff --git a/bytecode/src/test/java/com/iluwatar/bytecode/util/InstructionConverterUtilTest.java b/bytecode/src/test/java/com/iluwatar/bytecode/util/InstructionConverterUtilTest.java index 2b4f0bada..89486a8f7 100644 --- a/bytecode/src/test/java/com/iluwatar/bytecode/util/InstructionConverterUtilTest.java +++ b/bytecode/src/test/java/com/iluwatar/bytecode/util/InstructionConverterUtilTest.java @@ -24,16 +24,16 @@ package com.iluwatar.bytecode.util; import com.iluwatar.bytecode.Instruction; -import com.iluwatar.bytecode.util.InstructionConverterUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; /** - * Test for {@Link InstructionConverterUtil} + * Test for {@link InstructionConverterUtil} */ -public class InstructionConverterUtilTest { +class InstructionConverterUtilTest { + @Test - public void testEmptyInstruction() { + void testEmptyInstruction() { var instruction = ""; var bytecode = InstructionConverterUtil.convertToByteCode(instruction); @@ -42,7 +42,7 @@ public class InstructionConverterUtilTest { } @Test - public void testInstructions() { + void testInstructions() { var instructions = "LITERAL 35 SET_HEALTH SET_WISDOM SET_AGILITY PLAY_SOUND" + " SPAWN_PARTICLES GET_HEALTH ADD DIVIDE"; diff --git a/caching/src/main/java/com/iluwatar/caching/App.java b/caching/src/main/java/com/iluwatar/caching/App.java index b8b226550..f5df323aa 100644 --- a/caching/src/main/java/com/iluwatar/caching/App.java +++ b/caching/src/main/java/com/iluwatar/caching/App.java @@ -23,8 +23,7 @@ package com.iluwatar.caching; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Caching pattern describes how to avoid expensive re-acquisition of resources by not releasing @@ -60,11 +59,9 @@ import org.slf4j.LoggerFactory; * @see LruCache * @see CachingPolicy */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - - /** * Program entry point. * diff --git a/caching/src/main/java/com/iluwatar/caching/CacheStore.java b/caching/src/main/java/com/iluwatar/caching/CacheStore.java index c6767ed2e..156f024d4 100644 --- a/caching/src/main/java/com/iluwatar/caching/CacheStore.java +++ b/caching/src/main/java/com/iluwatar/caching/CacheStore.java @@ -26,16 +26,14 @@ package com.iluwatar.caching; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The caching strategies are implemented in this class. */ +@Slf4j public class CacheStore { - private static final Logger LOGGER = LoggerFactory.getLogger(CacheStore.class); - private static LruCache cache; private CacheStore() { diff --git a/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java b/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java index 3bd948070..0a42cf812 100644 --- a/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java +++ b/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java @@ -23,19 +23,19 @@ package com.iluwatar.caching; +import lombok.AllArgsConstructor; +import lombok.Getter; + /** * Enum class containing the four caching strategies implemented in the pattern. */ +@AllArgsConstructor +@Getter public enum CachingPolicy { - THROUGH("through"), AROUND("around"), BEHIND("behind"), ASIDE("aside"); + THROUGH("through"), + AROUND("around"), + BEHIND("behind"), + ASIDE("aside"); private final String policy; - - CachingPolicy(String policy) { - this.policy = policy; - } - - public String getPolicy() { - return policy; - } } diff --git a/caching/src/main/java/com/iluwatar/caching/LruCache.java b/caching/src/main/java/com/iluwatar/caching/LruCache.java index 88aeb2318..a320e35dc 100644 --- a/caching/src/main/java/com/iluwatar/caching/LruCache.java +++ b/caching/src/main/java/com/iluwatar/caching/LruCache.java @@ -27,8 +27,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Data structure/implementation of the application's cache. The data structure consists of a hash @@ -37,11 +36,10 @@ import org.slf4j.LoggerFactory; * the data is moved to the front of the list to depict itself as the most-recently-used data. The * LRU data is always at the end of the list. */ +@Slf4j public class LruCache { - private static final Logger LOGGER = LoggerFactory.getLogger(LruCache.class); - - class Node { + static class Node { String userId; UserAccount userAccount; Node previous; diff --git a/caching/src/main/java/com/iluwatar/caching/UserAccount.java b/caching/src/main/java/com/iluwatar/caching/UserAccount.java index 7fbccbca3..3681a931b 100644 --- a/caching/src/main/java/com/iluwatar/caching/UserAccount.java +++ b/caching/src/main/java/com/iluwatar/caching/UserAccount.java @@ -23,49 +23,20 @@ package com.iluwatar.caching; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * Entity class (stored in cache and DB) used in the application. */ +@Setter +@Getter +@AllArgsConstructor +@ToString public class UserAccount { private String userId; private String userName; private String additionalInfo; - - /** - * Constructor. - */ - public UserAccount(String userId, String userName, String additionalInfo) { - this.userId = userId; - this.userName = userName; - this.additionalInfo = additionalInfo; - } - - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getAdditionalInfo() { - return additionalInfo; - } - - public void setAdditionalInfo(String additionalInfo) { - this.additionalInfo = additionalInfo; - } - - @Override - public String toString() { - return userId + ", " + userName + ", " + additionalInfo; - } } diff --git a/callback/README.md b/callback/README.md index 34543f0bb..2f45df0c0 100644 --- a/callback/README.md +++ b/callback/README.md @@ -54,10 +54,9 @@ public abstract class Task { public abstract void execute(); } +@Slf4j public final class SimpleTask extends Task { - private static final Logger LOGGER = getLogger(SimpleTask.class); - @Override public void execute() { LOGGER.info("Perform some important activity and after call the callback method."); diff --git a/callback/src/main/java/com/iluwatar/callback/App.java b/callback/src/main/java/com/iluwatar/callback/App.java index 8f504bb03..9bb4eb748 100644 --- a/callback/src/main/java/com/iluwatar/callback/App.java +++ b/callback/src/main/java/com/iluwatar/callback/App.java @@ -23,19 +23,16 @@ package com.iluwatar.callback; -import static org.slf4j.LoggerFactory.getLogger; - -import org.slf4j.Logger; +import lombok.extern.slf4j.Slf4j; /** * Callback pattern is more native for functional languages where functions are treated as * first-class citizens. Prior to Java 8 callbacks can be simulated using simple (alike command) * interfaces. */ +@Slf4j public final class App { - private static final Logger LOGGER = getLogger(App.class); - private App() { } diff --git a/callback/src/main/java/com/iluwatar/callback/SimpleTask.java b/callback/src/main/java/com/iluwatar/callback/SimpleTask.java index 0c380cd22..a56457a17 100644 --- a/callback/src/main/java/com/iluwatar/callback/SimpleTask.java +++ b/callback/src/main/java/com/iluwatar/callback/SimpleTask.java @@ -23,20 +23,16 @@ package com.iluwatar.callback; -import static org.slf4j.LoggerFactory.getLogger; - -import org.slf4j.Logger; +import lombok.extern.slf4j.Slf4j; /** * Implementation of task that need to be executed. */ +@Slf4j public final class SimpleTask extends Task { - private static final Logger LOGGER = getLogger(SimpleTask.class); - @Override public void execute() { - LOGGER.info("Perform some important activity and after call the" - + " callback method."); + LOGGER.info("Perform some important activity and after call the callback method."); } } diff --git a/callback/src/test/java/com/iluwatar/callback/CallbackTest.java b/callback/src/test/java/com/iluwatar/callback/CallbackTest.java index 300acba24..80c42a5a6 100644 --- a/callback/src/test/java/com/iluwatar/callback/CallbackTest.java +++ b/callback/src/test/java/com/iluwatar/callback/CallbackTest.java @@ -38,7 +38,7 @@ public class CallbackTest { private Integer callingCount = 0; @Test - public void test() { + void test() { Callback callback = () -> callingCount++; var task = new SimpleTask(); diff --git a/chain/README.md b/chain/README.md index 8b0508833..bedd64cff 100644 --- a/chain/README.md +++ b/chain/README.md @@ -68,8 +68,8 @@ public enum RequestType { Then the request handler hierarchy ```java +@Slf4j public abstract class RequestHandler { - private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class); private final RequestHandler next; public RequestHandler(RequestHandler next) { diff --git a/chain/src/main/java/com/iluwatar/chain/App.java b/chain/src/main/java/com/iluwatar/chain/App.java index 16641dfb4..d019dd08c 100644 --- a/chain/src/main/java/com/iluwatar/chain/App.java +++ b/chain/src/main/java/com/iluwatar/chain/App.java @@ -47,6 +47,5 @@ public class App { king.makeRequest(new Request(RequestType.DEFEND_CASTLE, "defend castle")); king.makeRequest(new Request(RequestType.TORTURE_PRISONER, "torture prisoner")); king.makeRequest(new Request(RequestType.COLLECT_TAX, "collect tax")); - } } diff --git a/chain/src/main/java/com/iluwatar/chain/RequestHandler.java b/chain/src/main/java/com/iluwatar/chain/RequestHandler.java index c174e22f2..ec3f52d99 100644 --- a/chain/src/main/java/com/iluwatar/chain/RequestHandler.java +++ b/chain/src/main/java/com/iluwatar/chain/RequestHandler.java @@ -23,22 +23,18 @@ package com.iluwatar.chain; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * RequestHandler. */ +@Slf4j +@AllArgsConstructor public abstract class RequestHandler { - private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class); - private final RequestHandler next; - public RequestHandler(RequestHandler next) { - this.next = next; - } - /** * Request handler. */ diff --git a/chain/src/main/java/com/iluwatar/chain/RequestType.java b/chain/src/main/java/com/iluwatar/chain/RequestType.java index 3742f3b02..9ef796bac 100644 --- a/chain/src/main/java/com/iluwatar/chain/RequestType.java +++ b/chain/src/main/java/com/iluwatar/chain/RequestType.java @@ -28,6 +28,8 @@ package com.iluwatar.chain; */ public enum RequestType { - DEFEND_CASTLE, TORTURE_PRISONER, COLLECT_TAX + DEFEND_CASTLE, + TORTURE_PRISONER, + COLLECT_TAX } diff --git a/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java b/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java index 8da944340..285f5a772 100644 --- a/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java +++ b/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class OrcKingTest { +class OrcKingTest { /** * All possible requests @@ -45,7 +45,7 @@ public class OrcKingTest { ); @Test - public void testMakeRequest() { + void testMakeRequest() { final var king = new OrcKing(); REQUESTS.forEach(request -> { diff --git a/circuit-breaker/README.md b/circuit-breaker/README.md index b3a360b33..85fd5e00f 100644 --- a/circuit-breaker/README.md +++ b/circuit-breaker/README.md @@ -54,6 +54,7 @@ The service architecture is as follows: In terms of code, the end user application is: ```java +@Slf4j public class App { private static final Logger LOGGER = LoggerFactory.getLogger(App.class); diff --git a/circuit-breaker/src/main/java/com/iluwatar/circuitbreaker/App.java b/circuit-breaker/src/main/java/com/iluwatar/circuitbreaker/App.java index 898ac2c26..1510319fa 100644 --- a/circuit-breaker/src/main/java/com/iluwatar/circuitbreaker/App.java +++ b/circuit-breaker/src/main/java/com/iluwatar/circuitbreaker/App.java @@ -23,8 +23,7 @@ package com.iluwatar.circuitbreaker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** *

@@ -55,10 +54,9 @@ import org.slf4j.LoggerFactory; * recovers, it goes back to the closed state and the cycle continues. *

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/DefaultCircuitBreakerTest.java b/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/DefaultCircuitBreakerTest.java index b8b031dc8..9fe05c7d8 100644 --- a/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/DefaultCircuitBreakerTest.java +++ b/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/DefaultCircuitBreakerTest.java @@ -35,7 +35,7 @@ public class DefaultCircuitBreakerTest { //long timeout, int failureThreshold, long retryTimePeriod @Test - public void testEvaluateState() { + void testEvaluateState() { var circuitBreaker = new DefaultCircuitBreaker(null, 1, 1, 100); //Right now, failureCount { var obj = new DelayedRemoteService(); obj.call(); diff --git a/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/MonitoringServiceTest.java b/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/MonitoringServiceTest.java index 57408a236..77c9c9414 100644 --- a/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/MonitoringServiceTest.java +++ b/circuit-breaker/src/test/java/com/iluwatar/circuitbreaker/MonitoringServiceTest.java @@ -30,18 +30,18 @@ import org.junit.jupiter.api.Test; /** * Monitoring Service test */ -public class MonitoringServiceTest { +class MonitoringServiceTest { //long timeout, int failureThreshold, long retryTimePeriod @Test - public void testLocalResponse() { + void testLocalResponse() { var monitoringService = new MonitoringService(null,null); var response = monitoringService.localResourceResponse(); assertEquals(response, "Local Service is working"); } @Test - public void testDelayedRemoteResponseSuccess() { + void testDelayedRemoteResponseSuccess() { var delayedService = new DelayedRemoteService(System.nanoTime()-2*1000*1000*1000, 2); var delayedServiceCircuitBreaker = new DefaultCircuitBreaker(delayedService, 3000, 1, @@ -54,7 +54,7 @@ public class MonitoringServiceTest { } @Test - public void testDelayedRemoteResponseFailure() { + void testDelayedRemoteResponseFailure() { var delayedService = new DelayedRemoteService(System.nanoTime(), 2); var delayedServiceCircuitBreaker = new DefaultCircuitBreaker(delayedService, 3000, 1, @@ -66,7 +66,7 @@ public class MonitoringServiceTest { } @Test - public void testQuickRemoteServiceResponse() { + void testQuickRemoteServiceResponse() { var delayedService = new QuickRemoteService(); var delayedServiceCircuitBreaker = new DefaultCircuitBreaker(delayedService, 3000, 1, diff --git a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/App.java b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/App.java index 218248900..4a3b2b85c 100644 --- a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/App.java +++ b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/App.java @@ -24,8 +24,7 @@ package com.iluwatar.collectionpipeline; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * In imperative-style programming, it is common to use for and while loops for most kinds of data @@ -35,10 +34,9 @@ import org.slf4j.LoggerFactory; * create sophisticated programs where data flow from upstream to downstream and is passed through a * series of transformations. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Car.java b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Car.java index 52a3aabd9..eada9987a 100644 --- a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Car.java +++ b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Car.java @@ -23,86 +23,20 @@ package com.iluwatar.collectionpipeline; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * A Car class that has the properties of make, model, year and category. */ +@Getter +@EqualsAndHashCode +@RequiredArgsConstructor public class Car { private final String make; private final String model; private final int year; private final Category category; - /** - * Constructor to create an instance of car. - * - * @param make the make of the car - * @param model the model of the car - * @param yearOfMake the year of built of the car - * @param category the {@link Category} of the car - */ - public Car(String make, String model, int yearOfMake, Category category) { - this.make = make; - this.model = model; - this.year = yearOfMake; - this.category = category; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((category == null) ? 0 : category.hashCode()); - result = prime * result + ((make == null) ? 0 : make.hashCode()); - result = prime * result + ((model == null) ? 0 : model.hashCode()); - result = prime * result + year; - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - Car other = (Car) obj; - if (category != other.category) { - return false; - } - if (make == null) { - if (other.make != null) { - return false; - } - } else if (!make.equals(other.make)) { - return false; - } - if (model == null) { - if (other.model != null) { - return false; - } - } else if (!model.equals(other.model)) { - return false; - } - return year == other.year; - } - - public String getMake() { - return make; - } - - public String getModel() { - return model; - } - - public int getYear() { - return year; - } - - public Category getCategory() { - return category; - } } \ No newline at end of file diff --git a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Category.java b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Category.java index 72a06a0a9..6a58991c9 100644 --- a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Category.java +++ b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Category.java @@ -27,5 +27,7 @@ package com.iluwatar.collectionpipeline; * Enum for the category of car. */ public enum Category { - JEEP, SEDAN, CONVERTIBLE + JEEP, + SEDAN, + CONVERTIBLE } diff --git a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Person.java b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Person.java index fd438f8ec..8b508d6ed 100644 --- a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Person.java +++ b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/Person.java @@ -24,23 +24,16 @@ package com.iluwatar.collectionpipeline; import java.util.List; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * A Person class that has the list of cars that the person owns and use. */ +@Getter +@RequiredArgsConstructor public class Person { + private final List cars; - /** - * Constructor to create an instance of person. - * - * @param cars the list of cars owned - */ - public Person(List cars) { - this.cars = cars; - } - - public List getCars() { - return cars; - } } \ No newline at end of file diff --git a/collection-pipeline/src/test/java/com/iluwatar/collectionpipeline/AppTest.java b/collection-pipeline/src/test/java/com/iluwatar/collectionpipeline/AppTest.java index bc05ea98f..1567d3ff2 100644 --- a/collection-pipeline/src/test/java/com/iluwatar/collectionpipeline/AppTest.java +++ b/collection-pipeline/src/test/java/com/iluwatar/collectionpipeline/AppTest.java @@ -27,32 +27,31 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.Map; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Tests that Collection Pipeline methods work as expected. */ -public class AppTest { - private static final Logger LOGGER = LoggerFactory.getLogger(AppTest.class); +@Slf4j +class AppTest { private final List cars = CarFactory.createCars(); @Test - public void testGetModelsAfter2000UsingFor() { + void testGetModelsAfter2000UsingFor() { var models = ImperativeProgramming.getModelsAfter2000(cars); assertEquals(List.of("Avenger", "Wrangler", "Focus", "Cascada"), models); } @Test - public void testGetModelsAfter2000UsingPipeline() { + void testGetModelsAfter2000UsingPipeline() { var models = FunctionalProgramming.getModelsAfter2000(cars); assertEquals(List.of("Avenger", "Wrangler", "Focus", "Cascada"), models); } @Test - public void testGetGroupingOfCarsByCategory() { + void testGetGroupingOfCarsByCategory() { var modelsExpected = Map.of( Category.CONVERTIBLE, List.of( new Car("Buick", "Cascada", 2016, Category.CONVERTIBLE), @@ -74,7 +73,7 @@ public class AppTest { } @Test - public void testGetSedanCarsOwnedSortedByDate() { + void testGetSedanCarsOwnedSortedByDate() { var john = new Person(cars); var modelsExpected = List.of( new Car("Dodge", "Avenger", 2010, Category.SEDAN), diff --git a/combinator/src/main/java/com/iluwatar/combinator/CombinatorApp.java b/combinator/src/main/java/com/iluwatar/combinator/CombinatorApp.java index d13550bf1..53404ecab 100644 --- a/combinator/src/main/java/com/iluwatar/combinator/CombinatorApp.java +++ b/combinator/src/main/java/com/iluwatar/combinator/CombinatorApp.java @@ -23,8 +23,7 @@ package com.iluwatar.combinator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** @@ -41,13 +40,9 @@ import org.slf4j.LoggerFactory; * {@link Finder#and(Finder)} * Using them the became possible to get more complex functions {@link Finders} */ +@Slf4j public class CombinatorApp { - /** - * Logger. - */ - private static final Logger LOGGER = LoggerFactory.getLogger(CombinatorApp.class); - /** * main. * @param args args @@ -63,14 +58,13 @@ public class CombinatorApp { res = finder.find(text()); LOGGER.info("the result of specialized(and) query[{}] is {}", queriesAnd, res); - finder = Finders.advancedFinder("it was","kingdom","sea"); + finder = Finders.advancedFinder("it was", "kingdom", "sea"); res = finder.find(text()); LOGGER.info("the result of advanced query is {}", res); res = Finders.filteredFinder(" was ", "many", "child").find(text()); LOGGER.info("the result of filtered query is {}", res); - } private static String text() { diff --git a/combinator/src/test/java/com/iluwatar/combinator/CombinatorAppTest.java b/combinator/src/test/java/com/iluwatar/combinator/CombinatorAppTest.java index 2400496dd..705fab9ae 100644 --- a/combinator/src/test/java/com/iluwatar/combinator/CombinatorAppTest.java +++ b/combinator/src/test/java/com/iluwatar/combinator/CombinatorAppTest.java @@ -31,11 +31,10 @@ class CombinatorAppTest { /** * Issue: Add at least one assertion to this test case. - * + *

* Solution: Inserted assertion to check whether the execution of the main method in {@link CombinatorApp#main(String[])} * throws an exception. */ - @Test void shouldExecuteApplicationWithoutException() { assertDoesNotThrow(() -> CombinatorApp.main(new String[]{})); diff --git a/combinator/src/test/java/com/iluwatar/combinator/FinderTest.java b/combinator/src/test/java/com/iluwatar/combinator/FinderTest.java index bbd6e7f1e..d87c71e2b 100644 --- a/combinator/src/test/java/com/iluwatar/combinator/FinderTest.java +++ b/combinator/src/test/java/com/iluwatar/combinator/FinderTest.java @@ -35,7 +35,6 @@ class FinderTest { var result = Finder.contains("second").find(example); assertEquals(1, result.size()); - assertEquals("the second one ", result.get(0)); + assertEquals( "the second one ", result.get(0)); } - } diff --git a/combinator/src/test/java/com/iluwatar/combinator/FindersTest.java b/combinator/src/test/java/com/iluwatar/combinator/FindersTest.java index 688ebdf47..4c5a6a614 100644 --- a/combinator/src/test/java/com/iluwatar/combinator/FindersTest.java +++ b/combinator/src/test/java/com/iluwatar/combinator/FindersTest.java @@ -35,36 +35,36 @@ class FindersTest { @Test void advancedFinderTest() { - var res = advancedFinder("it was","kingdom","sea").find(text()); + var res = advancedFinder("it was", "kingdom", "sea").find(text()); assertEquals(1, res.size()); - assertEquals("It was many and many a year ago,", res.get(0)); + assertEquals( "It was many and many a year ago,", res.get(0)); } @Test void filteredFinderTest() { var res = filteredFinder(" was ", "many", "child").find(text()); assertEquals(1, res.size()); - assertEquals("But we loved with a love that was more than love-", res.get(0)); + assertEquals( "But we loved with a love that was more than love-", res.get(0)); } @Test void specializedFinderTest() { - var res = specializedFinder("love","heaven").find(text()); + var res = specializedFinder("love", "heaven").find(text()); assertEquals(1, res.size()); - assertEquals("With a love that the winged seraphs of heaven", res.get(0)); + assertEquals( "With a love that the winged seraphs of heaven", res.get(0)); } @Test void expandedFinderTest() { - var res = expandedFinder("It was","kingdom").find(text()); + var res = expandedFinder("It was", "kingdom").find(text()); assertEquals(3, res.size()); - assertEquals("It was many and many a year ago,", res.get(0)); - assertEquals("In a kingdom by the sea,", res.get(1)); - assertEquals("In this kingdom by the sea;", res.get(2)); + assertEquals( "It was many and many a year ago,", res.get(0)); + assertEquals( "In a kingdom by the sea,", res.get(1)); + assertEquals( "In this kingdom by the sea;", res.get(2)); } - private String text(){ + private String text() { return "It was many and many a year ago,\n" + "In a kingdom by the sea,\n" diff --git a/command/README.md b/command/README.md index 08783679b..204aca5fb 100644 --- a/command/README.md +++ b/command/README.md @@ -39,6 +39,7 @@ Wikipedia says Here's the sample code with wizard and goblin. Let's start from the `Wizard` class. ```java +@Slf4j public class Wizard { private final Deque undoStack = new LinkedList<>(); @@ -77,10 +78,9 @@ public class Wizard { Next, we have the goblin who's the target of the spells. ```java +@Slf4j public abstract class Target { - private static final Logger LOGGER = LoggerFactory.getLogger(Target.class); - private Size size; private Visibility visibility; diff --git a/command/src/main/java/com/iluwatar/command/Size.java b/command/src/main/java/com/iluwatar/command/Size.java index 446a80ab3..070524f82 100644 --- a/command/src/main/java/com/iluwatar/command/Size.java +++ b/command/src/main/java/com/iluwatar/command/Size.java @@ -23,19 +23,19 @@ package com.iluwatar.command; +import lombok.RequiredArgsConstructor; + /** * Enumeration for target size. */ +@RequiredArgsConstructor public enum Size { - SMALL("small"), NORMAL("normal"); + SMALL("small"), + NORMAL("normal"); private final String title; - Size(String title) { - this.title = title; - } - @Override public String toString() { return title; diff --git a/command/src/main/java/com/iluwatar/command/Target.java b/command/src/main/java/com/iluwatar/command/Target.java index 50d3c0122..940bc020d 100644 --- a/command/src/main/java/com/iluwatar/command/Target.java +++ b/command/src/main/java/com/iluwatar/command/Target.java @@ -23,39 +23,22 @@ package com.iluwatar.command; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * Base class for spell targets. */ +@Setter +@Slf4j +@Getter public abstract class Target { - private static final Logger LOGGER = LoggerFactory.getLogger(Target.class); - private Size size; private Visibility visibility; - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - public Visibility getVisibility() { - return visibility; - } - - public void setVisibility(Visibility visibility) { - this.visibility = visibility; - } - - @Override - public abstract String toString(); - /** * Print status. */ diff --git a/command/src/main/java/com/iluwatar/command/Visibility.java b/command/src/main/java/com/iluwatar/command/Visibility.java index 0a49ee6b2..4885a69c2 100644 --- a/command/src/main/java/com/iluwatar/command/Visibility.java +++ b/command/src/main/java/com/iluwatar/command/Visibility.java @@ -23,19 +23,19 @@ package com.iluwatar.command; +import lombok.RequiredArgsConstructor; + /** * Enumeration for target visibility. */ +@RequiredArgsConstructor public enum Visibility { - VISIBLE("visible"), INVISIBLE("invisible"); + VISIBLE("visible"), + INVISIBLE("invisible"); private final String title; - Visibility(String title) { - this.title = title; - } - @Override public String toString() { return title; diff --git a/command/src/main/java/com/iluwatar/command/Wizard.java b/command/src/main/java/com/iluwatar/command/Wizard.java index 5ff3a6d9f..4ea84e8c3 100644 --- a/command/src/main/java/com/iluwatar/command/Wizard.java +++ b/command/src/main/java/com/iluwatar/command/Wizard.java @@ -25,10 +25,12 @@ package com.iluwatar.command; import java.util.Deque; import java.util.LinkedList; +import lombok.extern.slf4j.Slf4j; /** * Wizard is the invoker of the commands. */ +@Slf4j public class Wizard { private final Deque undoStack = new LinkedList<>(); diff --git a/command/src/test/java/com/iluwatar/command/CommandTest.java b/command/src/test/java/com/iluwatar/command/CommandTest.java index e9f362142..d21982a07 100644 --- a/command/src/test/java/com/iluwatar/command/CommandTest.java +++ b/command/src/test/java/com/iluwatar/command/CommandTest.java @@ -41,7 +41,7 @@ import org.junit.jupiter.api.Test; * objects are held by a client object (app). The client decides which commands to execute at which * points. To execute a command, it passes the command object to the invoker object. */ -public class CommandTest { +class CommandTest { private static final String GOBLIN = "Goblin"; @@ -51,7 +51,7 @@ public class CommandTest { * wizard keeps track of the spells undone, so they can be redone. */ @Test - public void testCommand() { + void testCommand() { var wizard = new Wizard(); var goblin = new Goblin(); diff --git a/commander/src/main/java/com/iluwatar/commander/Commander.java b/commander/src/main/java/com/iluwatar/commander/Commander.java index 097b92bae..59cdc9b22 100644 --- a/commander/src/main/java/com/iluwatar/commander/Commander.java +++ b/commander/src/main/java/com/iluwatar/commander/Commander.java @@ -174,7 +174,7 @@ public class Commander { if (!l.isEmpty()) { if (DatabaseUnavailableException.class.isAssignableFrom(l.get(0).getClass())) { LOG.debug("Order " + order.id + ": Error in connecting to payment service," - + " trying again.."); + + " trying again.."); } else { LOG.debug("Order " + order.id + ": Error in creating payment request.."); } @@ -195,8 +195,8 @@ public class Commander { if (PaymentDetailsErrorException.class.isAssignableFrom(err.getClass())) { if (!finalSiteMsgShown) { LOG.info("There was an error in payment. Your account/card details " - + "may have been incorrect. " - + "Meanwhile, your order has been converted to COD and will be shipped."); + + "may have been incorrect. " + + "Meanwhile, your order has been converted to COD and will be shipped."); finalSiteMsgShown = true; } LOG.error("Order " + order.id + ": Payment details incorrect, failed.."); @@ -206,14 +206,14 @@ public class Commander { if (o.messageSent.equals(MessageSent.NONE_SENT)) { if (!finalSiteMsgShown) { LOG.info("There was an error in payment. We are on it, and will get back to you " - + "asap. Don't worry, your order has been placed and will be shipped."); + + "asap. Don't worry, your order has been placed and will be shipped."); finalSiteMsgShown = true; } LOG.warn("Order " + order.id + ": Payment error, going to queue.."); sendPaymentPossibleErrorMsg(o); } if (o.paid.equals(PaymentStatus.TRYING) && System - .currentTimeMillis() - o.createdTime < paymentTime) { + .currentTimeMillis() - o.createdTime < paymentTime) { var qt = new QueueTask(o, TaskType.PAYMENT, -1); updateQueue(qt); } @@ -475,7 +475,7 @@ public class Commander { } private void handlePaymentPossibleErrorMsgRetryOperation(Order order, List l) - throws Exception { + throws Exception { if (!l.isEmpty()) { if (DatabaseUnavailableException.class.isAssignableFrom(l.get(0).getClass())) { LOG.debug("Order " + order.id + ": Error in connecting to messaging service " @@ -539,10 +539,10 @@ public class Commander { var qt = queue.peek(); //this should probably be cloned here //this is why we have retry for doTasksInQueue LOG.trace("Order " + qt.order.id + ": Started doing task of type " + qt.getType()); - if (qt.firstAttemptTime == -1) { - qt.firstAttemptTime = System.currentTimeMillis(); + if (qt.getFirstAttemptTime() == -1) { + qt.setFirstAttemptTime(System.currentTimeMillis()); } - if (System.currentTimeMillis() - qt.firstAttemptTime >= queueTaskTime) { + if (System.currentTimeMillis() - qt.getFirstAttemptTime() >= queueTaskTime) { tryDequeue(); LOG.trace("Order " + qt.order.id + ": This queue task of type " + qt.getType() + " does not need to be done anymore (timeout), dequeue.."); diff --git a/commander/src/main/java/com/iluwatar/commander/Order.java b/commander/src/main/java/com/iluwatar/commander/Order.java index ff2909237..32e92a6bc 100644 --- a/commander/src/main/java/com/iluwatar/commander/Order.java +++ b/commander/src/main/java/com/iluwatar/commander/Order.java @@ -24,7 +24,8 @@ package com.iluwatar.commander; import java.security.SecureRandom; -import java.util.Hashtable; +import java.util.HashMap; +import java.util.Map; /** * Order class holds details of the order. @@ -33,11 +34,16 @@ import java.util.Hashtable; public class Order { //can store all transactions ids also enum PaymentStatus { - NOT_DONE, TRYING, DONE + NOT_DONE, + TRYING, + DONE } enum MessageSent { - NONE_SENT, PAYMENT_FAIL, PAYMENT_TRYING, PAYMENT_SUCCESSFUL + NONE_SENT, + PAYMENT_FAIL, + PAYMENT_TRYING, + PAYMENT_SUCCESSFUL } final User user; @@ -47,7 +53,7 @@ public class Order { //can store all transactions ids also final long createdTime; private static final SecureRandom RANDOM = new SecureRandom(); private static final String ALL_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - private static final Hashtable USED_IDS = new Hashtable(); + private static final Map USED_IDS = new HashMap<>(); PaymentStatus paid; MessageSent messageSent; //to avoid sending error msg on page and text more than once boolean addedToEmployeeHandle; //to avoid creating more to enqueue diff --git a/commander/src/main/java/com/iluwatar/commander/User.java b/commander/src/main/java/com/iluwatar/commander/User.java index f43821913..f7592105c 100644 --- a/commander/src/main/java/com/iluwatar/commander/User.java +++ b/commander/src/main/java/com/iluwatar/commander/User.java @@ -23,17 +23,13 @@ package com.iluwatar.commander; +import lombok.AllArgsConstructor; + /** * User class contains details of user who places order. */ - +@AllArgsConstructor public class User { String name; String address; - - User(String name, String address) { - this.name = name; - this.address = address; - } - } diff --git a/commander/src/main/java/com/iluwatar/commander/employeehandle/EmployeeDatabase.java b/commander/src/main/java/com/iluwatar/commander/employeehandle/EmployeeDatabase.java index 92baa6da3..8e028f947 100644 --- a/commander/src/main/java/com/iluwatar/commander/employeehandle/EmployeeDatabase.java +++ b/commander/src/main/java/com/iluwatar/commander/employeehandle/EmployeeDatabase.java @@ -26,18 +26,16 @@ package com.iluwatar.commander.employeehandle; import com.iluwatar.commander.Database; import com.iluwatar.commander.Order; import com.iluwatar.commander.exceptions.DatabaseUnavailableException; -import java.util.Hashtable; + +import java.util.HashMap; +import java.util.Map; /** * The Employee Database is where orders which have encountered some issue(s) are added. */ public class EmployeeDatabase extends Database { - private final Hashtable data; - - public EmployeeDatabase() { - this.data = new Hashtable<>(); - } + private final Map data = new HashMap<>(); @Override public Order add(Order o) throws DatabaseUnavailableException { diff --git a/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingDatabase.java b/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingDatabase.java index 42c208d2b..bf7a15aa4 100644 --- a/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingDatabase.java +++ b/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingDatabase.java @@ -24,20 +24,16 @@ package com.iluwatar.commander.messagingservice; import com.iluwatar.commander.Database; -import com.iluwatar.commander.exceptions.DatabaseUnavailableException; import com.iluwatar.commander.messagingservice.MessagingService.MessageRequest; import java.util.Hashtable; +import java.util.Map; /** * The MessagingDatabase is where the MessageRequest is added. */ public class MessagingDatabase extends Database { - private final Hashtable data; - - public MessagingDatabase() { - this.data = new Hashtable<>(); - } + private final Map data = new Hashtable<>(); @Override public MessageRequest add(MessageRequest r) { diff --git a/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingService.java b/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingService.java index ac5154d1b..90219e8c2 100644 --- a/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingService.java +++ b/commander/src/main/java/com/iluwatar/commander/messagingservice/MessagingService.java @@ -25,8 +25,8 @@ package com.iluwatar.commander.messagingservice; import com.iluwatar.commander.Service; import com.iluwatar.commander.exceptions.DatabaseUnavailableException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * The MessagingService is used to send messages to user regarding their order and payment status. @@ -34,21 +34,19 @@ import org.slf4j.LoggerFactory; * is added to the {@link com.iluwatar.commander.employeehandle.EmployeeDatabase}. */ +@Slf4j public class MessagingService extends Service { - private static final Logger LOGGER = LoggerFactory.getLogger(MessagingService.class); enum MessageToSend { - PAYMENT_FAIL, PAYMENT_TRYING, PAYMENT_SUCCESSFUL + PAYMENT_FAIL, + PAYMENT_TRYING, + PAYMENT_SUCCESSFUL } - class MessageRequest { - String reqId; - MessageToSend msg; - - MessageRequest(String reqId, MessageToSend msg) { - this.reqId = reqId; - this.msg = msg; - } + @RequiredArgsConstructor + static class MessageRequest { + final String reqId; + final MessageToSend msg; } public MessagingService(MessagingDatabase db, Exception... exc) { diff --git a/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentDatabase.java b/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentDatabase.java index 655c301e5..4223b4e77 100644 --- a/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentDatabase.java +++ b/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentDatabase.java @@ -24,22 +24,17 @@ package com.iluwatar.commander.paymentservice; import com.iluwatar.commander.Database; -import com.iluwatar.commander.exceptions.DatabaseUnavailableException; import com.iluwatar.commander.paymentservice.PaymentService.PaymentRequest; import java.util.Hashtable; +import java.util.Map; /** * PaymentDatabase is where the PaymentRequest is added, along with details. */ - public class PaymentDatabase extends Database { - private final Hashtable data; - - public PaymentDatabase() { - this.data = new Hashtable<>(); - //0-fail, 1-error, 2-success - } + //0-fail, 1-error, 2-success + private final Map data = new Hashtable<>(); @Override public PaymentRequest add(PaymentRequest r) { diff --git a/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentService.java b/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentService.java index 4b74c5f17..9b5d00328 100644 --- a/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentService.java +++ b/commander/src/main/java/com/iluwatar/commander/paymentservice/PaymentService.java @@ -25,6 +25,7 @@ package com.iluwatar.commander.paymentservice; import com.iluwatar.commander.Service; import com.iluwatar.commander.exceptions.DatabaseUnavailableException; +import lombok.RequiredArgsConstructor; /** * The PaymentService class receives request from the {@link com.iluwatar.commander.Commander} and @@ -33,16 +34,11 @@ import com.iluwatar.commander.exceptions.DatabaseUnavailableException; public class PaymentService extends Service { - class PaymentRequest { - String transactionId; - float payment; + @RequiredArgsConstructor + static class PaymentRequest { + final String transactionId; + final float payment; boolean paid; - - PaymentRequest(String transactionId, float payment) { - this.transactionId = transactionId; - this.payment = payment; - this.paid = false; - } } public PaymentService(PaymentDatabase db, Exception... exc) { diff --git a/commander/src/main/java/com/iluwatar/commander/queue/Queue.java b/commander/src/main/java/com/iluwatar/commander/queue/Queue.java index 69c7a0490..4c6efbe9a 100644 --- a/commander/src/main/java/com/iluwatar/commander/queue/Queue.java +++ b/commander/src/main/java/com/iluwatar/commander/queue/Queue.java @@ -30,7 +30,6 @@ import com.iluwatar.commander.exceptions.IsEmptyException; * * @param is the type of object the queue will hold. */ - public class Queue { private Node front; @@ -47,15 +46,6 @@ public class Queue { } } - /** - * Queue constructor. - */ - Queue() { - front = null; - rear = null; - size = 0; - } - boolean isEmpty() { return size == 0; } diff --git a/commander/src/main/java/com/iluwatar/commander/queue/QueueTask.java b/commander/src/main/java/com/iluwatar/commander/queue/QueueTask.java index 7056e7197..702844268 100644 --- a/commander/src/main/java/com/iluwatar/commander/queue/QueueTask.java +++ b/commander/src/main/java/com/iluwatar/commander/queue/QueueTask.java @@ -24,43 +24,34 @@ package com.iluwatar.commander.queue; import com.iluwatar.commander.Order; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; /** * QueueTask object is the object enqueued in queue. */ - +@RequiredArgsConstructor public class QueueTask { /** * TaskType is the type of task to be done. */ - public enum TaskType { - MESSAGING, PAYMENT, EMPLOYEE_DB + MESSAGING, + PAYMENT, + EMPLOYEE_DB } - public Order order; - public TaskType taskType; - public int messageType; //0-fail, 1-error, 2-success + public final Order order; + public final TaskType taskType; + public final int messageType; //0-fail, 1-error, 2-success + /*we could have varargs Object instead to pass in any parameter instead of just message type but keeping it simple here*/ - public long firstAttemptTime; //when first time attempt made to do task - - /** - * QueueTask constructor. - * - * @param o is the order for which the queuetask is being created - * @param t is the type of task to be done - * @param messageType if it is a message, which type of message - this could have instead been - * object varargs, and contained all additional details related to tasktype. - */ - - public QueueTask(Order o, TaskType t, int messageType) { - this.order = o; - this.taskType = t; - this.messageType = messageType; - this.firstAttemptTime = -1; - } + @Getter + @Setter + private long firstAttemptTime = -1L; //when first time attempt made to do task /** * getType method. diff --git a/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingDatabase.java b/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingDatabase.java index 77807456c..bd8cd63f9 100644 --- a/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingDatabase.java +++ b/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingDatabase.java @@ -24,9 +24,9 @@ package com.iluwatar.commander.shippingservice; import com.iluwatar.commander.Database; -import com.iluwatar.commander.exceptions.DatabaseUnavailableException; import com.iluwatar.commander.shippingservice.ShippingService.ShippingRequest; import java.util.Hashtable; +import java.util.Map; /** * ShippingDatabase is where the ShippingRequest objects are added. @@ -34,11 +34,7 @@ import java.util.Hashtable; public class ShippingDatabase extends Database { - private final Hashtable data; - - public ShippingDatabase() { - this.data = new Hashtable<>(); - } + private final Map data = new Hashtable<>(); @Override public ShippingRequest add(ShippingRequest r) { diff --git a/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingService.java b/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingService.java index c8c70c2d8..f1ed4ccec 100644 --- a/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingService.java +++ b/commander/src/main/java/com/iluwatar/commander/shippingservice/ShippingService.java @@ -25,6 +25,7 @@ package com.iluwatar.commander.shippingservice; import com.iluwatar.commander.Service; import com.iluwatar.commander.exceptions.DatabaseUnavailableException; +import lombok.AllArgsConstructor; /** * ShippingService class receives request from {@link com.iluwatar.commander.Commander} class and @@ -33,16 +34,11 @@ import com.iluwatar.commander.exceptions.DatabaseUnavailableException; public class ShippingService extends Service { + @AllArgsConstructor static class ShippingRequest { String transactionId; String item; String address; - - ShippingRequest(String transactionId, String item, String address) { - this.transactionId = transactionId; - this.item = item; - this.address = address; - } } public ShippingService(ShippingDatabase db, Exception... exc) { diff --git a/composite/src/main/java/com/iluwatar/composite/App.java b/composite/src/main/java/com/iluwatar/composite/App.java index 56f2c747e..0660557ca 100644 --- a/composite/src/main/java/com/iluwatar/composite/App.java +++ b/composite/src/main/java/com/iluwatar/composite/App.java @@ -23,8 +23,7 @@ package com.iluwatar.composite; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Composite pattern is a partitioning design pattern. The Composite pattern describes that a @@ -35,15 +34,14 @@ import org.slf4j.LoggerFactory; * *

In this example we have sentences composed of words composed of letters. All of the objects * can be treated through the same interface ({@link LetterComposite}). - * + * */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. - * + * * @param args command line args */ public static void main(String[] args) { diff --git a/composite/src/main/java/com/iluwatar/composite/Letter.java b/composite/src/main/java/com/iluwatar/composite/Letter.java index 322faf1eb..ad2cbd1c3 100644 --- a/composite/src/main/java/com/iluwatar/composite/Letter.java +++ b/composite/src/main/java/com/iluwatar/composite/Letter.java @@ -23,17 +23,16 @@ package com.iluwatar.composite; +import lombok.RequiredArgsConstructor; + /** * Letter. */ +@RequiredArgsConstructor public class Letter extends LetterComposite { private final char character; - public Letter(char c) { - this.character = c; - } - @Override protected void printThisBefore() { System.out.print(character); diff --git a/composite/src/test/java/com/iluwatar/composite/MessengerTest.java b/composite/src/test/java/com/iluwatar/composite/MessengerTest.java index 65dc29958..e36dfed01 100644 --- a/composite/src/test/java/com/iluwatar/composite/MessengerTest.java +++ b/composite/src/test/java/com/iluwatar/composite/MessengerTest.java @@ -23,22 +23,21 @@ package com.iluwatar.composite; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.ByteArrayOutputStream; import java.io.PrintStream; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * Date: 12/11/15 - 8:12 PM * * @author Jeroen Meulemeester */ -public class MessengerTest { +class MessengerTest { /** * The buffer used to capture every write to {@link System#out} @@ -54,7 +53,7 @@ public class MessengerTest { * Inject the mocked std-out {@link PrintStream} into the {@link System} class before each test */ @BeforeEach - public void setUp() { + void setUp() { this.stdOutBuffer = new ByteArrayOutputStream(); System.setOut(new PrintStream(stdOutBuffer)); } @@ -63,7 +62,7 @@ public class MessengerTest { * Removed the mocked std-out {@link PrintStream} again from the {@link System} class */ @AfterEach - public void tearDown() { + void tearDown() { System.setOut(realStdOut); } @@ -71,7 +70,7 @@ public class MessengerTest { * Test the message from the orcs */ @Test - public void testMessageFromOrcs() { + void testMessageFromOrcs() { final var messenger = new Messenger(); testMessage( messenger.messageFromOrcs(), @@ -83,7 +82,7 @@ public class MessengerTest { * Test the message from the elves */ @Test - public void testMessageFromElves() { + void testMessageFromElves() { final var messenger = new Messenger(); testMessage( messenger.messageFromElves(), diff --git a/converter/src/main/java/com/iluwatar/converter/App.java b/converter/src/main/java/com/iluwatar/converter/App.java index c68b3b5e2..dc3eab53a 100644 --- a/converter/src/main/java/com/iluwatar/converter/App.java +++ b/converter/src/main/java/com/iluwatar/converter/App.java @@ -24,8 +24,7 @@ package com.iluwatar.converter; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Converter pattern is a behavioral design pattern which allows a common way of bidirectional @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; * isomorphic types). Moreover, the pattern introduces a common way of converting a collection of * objects between types. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * @@ -47,7 +45,7 @@ public class App { UserDto dtoUser = new UserDto("John", "Doe", true, "whatever[at]wherever.com"); User user = userConverter.convertFromDto(dtoUser); - LOGGER.info("Entity converted from DTO:" + user); + LOGGER.info("Entity converted from DTO: {}", user); var users = List.of( new User("Camile", "Tough", false, "124sad"), diff --git a/converter/src/main/java/com/iluwatar/converter/Converter.java b/converter/src/main/java/com/iluwatar/converter/Converter.java index d8c1108d5..a40650faf 100644 --- a/converter/src/main/java/com/iluwatar/converter/Converter.java +++ b/converter/src/main/java/com/iluwatar/converter/Converter.java @@ -27,6 +27,7 @@ import java.util.Collection; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; /** * Generic converter, thanks to Java8 features not only provides a way of generic bidirectional @@ -36,22 +37,12 @@ import java.util.stream.Collectors; * @param DTO representation's type * @param Domain representation's type */ +@RequiredArgsConstructor public class Converter { private final Function fromDto; private final Function fromEntity; - /** - * Constructor. - * - * @param fromDto Function that converts given dto entity into the domain entity. - * @param fromEntity Function that converts given domain entity into the dto entity. - */ - public Converter(final Function fromDto, final Function fromEntity) { - this.fromDto = fromDto; - this.fromEntity = fromEntity; - } - /** * Converts DTO to Entity. * diff --git a/converter/src/main/java/com/iluwatar/converter/User.java b/converter/src/main/java/com/iluwatar/converter/User.java index 1ead0c55c..f8b528a56 100644 --- a/converter/src/main/java/com/iluwatar/converter/User.java +++ b/converter/src/main/java/com/iluwatar/converter/User.java @@ -23,69 +23,21 @@ package com.iluwatar.converter; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; /** * User class. */ +@ToString +@EqualsAndHashCode +@Getter +@RequiredArgsConstructor public class User { private final String firstName; private final String lastName; - private final boolean isActive; + private final boolean active; private final String userId; - - /** - * Constructor. - * - * @param firstName user's first name - * @param lastName user's last name - * @param isActive flag indicating whether the user is active - * @param userId user's identificator - */ - public User(String firstName, String lastName, boolean isActive, String userId) { - this.firstName = firstName; - this.lastName = lastName; - this.isActive = isActive; - this.userId = userId; - } - - public String getFirstName() { - return firstName; - } - - public String getLastName() { - return lastName; - } - - public boolean isActive() { - return isActive; - } - - public String getUserId() { - return userId; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var user = (User) o; - return isActive == user.isActive && Objects.equals(firstName, user.firstName) && Objects - .equals(lastName, user.lastName) && Objects.equals(userId, user.userId); - } - - @Override - public int hashCode() { - return Objects.hash(firstName, lastName, isActive, userId); - } - - @Override - public String toString() { - return "User{" + "firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' - + ", isActive=" + isActive + ", userId='" + userId + '\'' + '}'; - } } diff --git a/converter/src/main/java/com/iluwatar/converter/UserDto.java b/converter/src/main/java/com/iluwatar/converter/UserDto.java index bf1af5036..0717c4952 100644 --- a/converter/src/main/java/com/iluwatar/converter/UserDto.java +++ b/converter/src/main/java/com/iluwatar/converter/UserDto.java @@ -23,70 +23,23 @@ package com.iluwatar.converter; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; /** * User DTO class. */ +@RequiredArgsConstructor +@Getter +@EqualsAndHashCode +@ToString public class UserDto { private final String firstName; private final String lastName; - private final boolean isActive; + private final boolean active; private final String email; - /** - * Constructor. - * - * @param firstName user's first name - * @param lastName user's last name - * @param isActive flag indicating whether the user is active - * @param email user's email address - */ - public UserDto(String firstName, String lastName, boolean isActive, String email) { - this.firstName = firstName; - this.lastName = lastName; - this.isActive = isActive; - this.email = email; - } - - public String getFirstName() { - return firstName; - } - - public String getLastName() { - return lastName; - } - - public boolean isActive() { - return isActive; - } - - public String getEmail() { - return email; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var userDto = (UserDto) o; - return isActive == userDto.isActive && Objects.equals(firstName, userDto.firstName) && Objects - .equals(lastName, userDto.lastName) && Objects.equals(email, userDto.email); - } - - @Override - public int hashCode() { - return Objects.hash(firstName, lastName, isActive, email); - } - - @Override - public String toString() { - return "UserDto{" + "firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' - + ", isActive=" + isActive + ", email='" + email + '\'' + '}'; - } } diff --git a/converter/src/test/java/com/iluwatar/converter/ConverterTest.java b/converter/src/test/java/com/iluwatar/converter/ConverterTest.java index 79c874032..d7358d8a4 100644 --- a/converter/src/test/java/com/iluwatar/converter/ConverterTest.java +++ b/converter/src/test/java/com/iluwatar/converter/ConverterTest.java @@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test; /** * Tests for {@link Converter} */ -public class ConverterTest { +class ConverterTest { private final UserConverter userConverter = new UserConverter(); @@ -40,7 +40,7 @@ public class ConverterTest { * Tests whether a converter created of opposite functions holds equality as a bijection. */ @Test - public void testConversionsStartingFromDomain() { + void testConversionsStartingFromDomain() { var u1 = new User("Tom", "Hanks", true, "tom@hanks.com"); var u2 = userConverter.convertFromDto(userConverter.convertFromEntity(u1)); assertEquals(u1, u2); @@ -50,7 +50,7 @@ public class ConverterTest { * Tests whether a converter created of opposite functions holds equality as a bijection. */ @Test - public void testConversionsStartingFromDto() { + void testConversionsStartingFromDto() { var u1 = new UserDto("Tom", "Hanks", true, "tom@hanks.com"); var u2 = userConverter.convertFromEntity(userConverter.convertFromDto(u1)); assertEquals(u1, u2); @@ -61,7 +61,7 @@ public class ConverterTest { * instantiated allowing various different conversion strategies to be implemented. */ @Test - public void testCustomConverter() { + void testCustomConverter() { var converter = new Converter( userDto -> new User( userDto.getFirstName(), @@ -85,7 +85,7 @@ public class ConverterTest { * domain users returns an equal collection. */ @Test - public void testCollectionConversion() { + void testCollectionConversion() { var users = List.of( new User("Camile", "Tough", false, "124sad"), new User("Marti", "Luther", true, "42309fd"), diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java b/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java index 5be436e6a..1d8f69348 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/app/App.java @@ -27,8 +27,7 @@ import com.iluwatar.cqrs.commandes.CommandServiceImpl; import com.iluwatar.cqrs.constants.AppConstants; import com.iluwatar.cqrs.queries.QueryServiceImpl; import com.iluwatar.cqrs.util.HibernateUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * CQRS : Command Query Responsibility Segregation. A pattern used to separate query services from @@ -41,8 +40,8 @@ import org.slf4j.LoggerFactory; * data model to persist(insert,update,delete) objects to a database. And a query side that uses * native queries to get data from the database and return objects as DTOs (Data transfer Objects). */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** * Program entry point. diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Author.java b/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Author.java index a904cb608..aafc4efb1 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Author.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Author.java @@ -27,10 +27,16 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * This is an Author entity. It is used by Hibernate for persistence. */ +@ToString +@Getter +@Setter @Entity public class Author { @Id @@ -56,41 +62,4 @@ public class Author { protected Author() { } - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - @Override - public String toString() { - return "Author [name=" + name + ", email=" + email + "]"; - } - } diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Book.java b/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Book.java index d3ac74e22..c885ffb7a 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Book.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/domain/model/Book.java @@ -28,11 +28,17 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * This is a Book entity. It is used by Hibernate for persistence. Many books can be written by one * {@link Author} */ +@ToString +@Setter +@Getter @Entity public class Book { @Id @@ -59,41 +65,4 @@ public class Book { protected Book() { } - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public double getPrice() { - return price; - } - - public void setPrice(double price) { - this.price = price; - } - - public Author getAuthor() { - return author; - } - - public void setAuthor(Author author) { - this.author = author; - } - - @Override - public String toString() { - return "Book [title=" + title + ", price=" + price + ", author=" + author + "]"; - } - } diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/dto/Author.java b/cqrs/src/main/java/com/iluwatar/cqrs/dto/Author.java index 91ddfce5a..46983b8c9 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/dto/Author.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/dto/Author.java @@ -23,67 +23,24 @@ package com.iluwatar.cqrs.dto; -import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * This is a DTO (Data Transfer Object) author, contains only useful information to be returned. */ +@ToString +@EqualsAndHashCode +@Getter +@NoArgsConstructor +@AllArgsConstructor public class Author { private String name; private String email; private String username; - /** - * Constructor. - * - * @param name name of the author - * @param email email of the author - * @param username username of the author - */ - public Author(String name, String email, String username) { - this.name = name; - this.email = email; - this.username = username; - } - - public Author() { - } - - public String getName() { - return name; - } - - public String getEmail() { - return email; - } - - public String getUsername() { - return username; - } - - @Override - public String toString() { - return "AuthorDTO [name=" + name + ", email=" + email + ", username=" + username + "]"; - } - - @Override - public int hashCode() { - return Objects.hash(username, name, email); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof Author)) { - return false; - } - var other = (Author) obj; - return username.equals(other.getUsername()) && email.equals(other.getEmail()) && name - .equals(other.getName()); - - } - } diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/dto/Book.java b/cqrs/src/main/java/com/iluwatar/cqrs/dto/Book.java index fb1f6200c..5088e98fe 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/dto/Book.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/dto/Book.java @@ -23,58 +23,23 @@ package com.iluwatar.cqrs.dto; -import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * This is a DTO (Data Transfer Object) book, contains only useful information to be returned. */ +@ToString +@EqualsAndHashCode +@Getter +@AllArgsConstructor +@NoArgsConstructor public class Book { private String title; private double price; - /** - * Constructor. - * - * @param title title of the book - * @param price price of the book - */ - public Book(String title, double price) { - this.title = title; - this.price = price; - } - - public Book() { - } - - public String getTitle() { - return title; - } - - public double getPrice() { - return price; - } - - @Override - public String toString() { - return "BookDTO [title=" + title + ", price=" + price + "]"; - } - - @Override - public int hashCode() { - return Objects.hash(title, price); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof Book)) { - return false; - } - var book = (Book) obj; - return title.equals(book.getTitle()) && price == book.getPrice(); - } - } diff --git a/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java b/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java index 3c3e2ce14..5ae535861 100644 --- a/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java +++ b/cqrs/src/main/java/com/iluwatar/cqrs/util/HibernateUtil.java @@ -23,20 +23,19 @@ package com.iluwatar.cqrs.util; +import lombok.extern.slf4j.Slf4j; import org.hibernate.SessionFactory; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * This class simply returns one instance of {@link SessionFactory} initialized when the application * is started. */ +@Slf4j public class HibernateUtil { private static final SessionFactory SESSIONFACTORY = buildSessionFactory(); - private static final Logger LOGGER = LoggerFactory.getLogger(HibernateUtil.class); private static SessionFactory buildSessionFactory() { @@ -46,7 +45,7 @@ public class HibernateUtil { return new MetadataSources(registry).buildMetadata().buildSessionFactory(); } catch (Exception ex) { StandardServiceRegistryBuilder.destroy(registry); - LOGGER.error("Initial SessionFactory creation failed." + ex); + LOGGER.error("Initial SessionFactory creation failed.", ex); throw new ExceptionInInitializerError(ex); } } diff --git a/cqrs/src/test/java/com/iluwatar/cqrs/IntegrationTest.java b/cqrs/src/test/java/com/iluwatar/cqrs/IntegrationTest.java index 64d4a38e8..51c182df6 100644 --- a/cqrs/src/test/java/com/iluwatar/cqrs/IntegrationTest.java +++ b/cqrs/src/test/java/com/iluwatar/cqrs/IntegrationTest.java @@ -38,12 +38,12 @@ import org.junit.jupiter.api.Test; /** * Integration test of IQueryService and ICommandService with h2 data */ -public class IntegrationTest { +class IntegrationTest { private static IQueryService queryService; @BeforeAll - public static void initializeAndPopulateDatabase() { + static void initializeAndPopulateDatabase() { var commandService = new CommandServiceImpl(); queryService = new QueryServiceImpl(); @@ -67,7 +67,7 @@ public class IntegrationTest { } @Test - public void testGetAuthorByUsername() { + void testGetAuthorByUsername() { var author = queryService.getAuthorByUsername("username1"); assertEquals("username1", author.getUsername()); assertEquals("name1", author.getName()); @@ -75,7 +75,7 @@ public class IntegrationTest { } @Test - public void testGetUpdatedAuthorByUsername() { + void testGetUpdatedAuthorByUsername() { var author = queryService.getAuthorByUsername("new_username2"); var expectedAuthor = new Author("new_name2", "new_email2", "new_username2"); assertEquals(expectedAuthor, author); @@ -83,14 +83,14 @@ public class IntegrationTest { } @Test - public void testGetBook() { + void testGetBook() { var book = queryService.getBook("title1"); assertEquals("title1", book.getTitle()); assertEquals(10, book.getPrice(), 0.01); } @Test - public void testGetAuthorBooks() { + void testGetAuthorBooks() { var books = queryService.getAuthorBooks("username1"); assertEquals(2, books.size()); assertTrue(books.contains(new Book("title1", 10))); @@ -98,13 +98,13 @@ public class IntegrationTest { } @Test - public void testGetAuthorBooksCount() { + void testGetAuthorBooksCount() { var bookCount = queryService.getAuthorBooksCount("username1"); assertEquals(new BigInteger("2"), bookCount); } @Test - public void testGetAuthorsCount() { + void testGetAuthorsCount() { var authorCount = queryService.getAuthorsCount(); assertEquals(new BigInteger("2"), authorCount); } diff --git a/dao/README.md b/dao/README.md index 29e64a74f..9e2d6992a 100644 --- a/dao/README.md +++ b/dao/README.md @@ -74,10 +74,9 @@ public class InMemoryCustomerDao implements CustomerDao { ... } +@Slf4j public class DbCustomerDao implements CustomerDao { - private static final Logger LOGGER = LoggerFactory.getLogger(DbCustomerDao.class); - private final DataSource dataSource; public DbCustomerDao(DataSource dataSource) { diff --git a/dao/src/main/java/com/iluwatar/dao/App.java b/dao/src/main/java/com/iluwatar/dao/App.java index 4de690ed3..5c1d36923 100644 --- a/dao/src/main/java/com/iluwatar/dao/App.java +++ b/dao/src/main/java/com/iluwatar/dao/App.java @@ -26,9 +26,8 @@ package com.iluwatar.dao; import java.sql.SQLException; import java.util.List; import javax.sql.DataSource; +import lombok.extern.slf4j.Slf4j; import org.h2.jdbcx.JdbcDataSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Data Access Object (DAO) is an object that provides an abstract interface to some type of @@ -42,9 +41,9 @@ import org.slf4j.LoggerFactory; * without directly interacting with the data source. The below example demonstrates basic CRUD * operations: select, add, update, and delete. */ +@Slf4j public class App { private static final String DB_URL = "jdbc:h2:~/dao"; - private static final Logger log = LoggerFactory.getLogger(App.class); private static final String ALL_CUSTOMERS = "customerDao.getAllCustomers(): "; /** @@ -86,23 +85,23 @@ public class App { private static void performOperationsUsing(final CustomerDao customerDao) throws Exception { addCustomers(customerDao); - log.info(ALL_CUSTOMERS); + LOGGER.info(ALL_CUSTOMERS); try (var customerStream = customerDao.getAll()) { - customerStream.forEach((customer) -> log.info(customer.toString())); + customerStream.forEach(customer -> LOGGER.info(customer.toString())); } - log.info("customerDao.getCustomerById(2): " + customerDao.getById(2)); + LOGGER.info("customerDao.getCustomerById(2): " + customerDao.getById(2)); final var customer = new Customer(4, "Dan", "Danson"); customerDao.add(customer); - log.info(ALL_CUSTOMERS + customerDao.getAll()); + LOGGER.info(ALL_CUSTOMERS + customerDao.getAll()); customer.setFirstName("Daniel"); customer.setLastName("Danielson"); customerDao.update(customer); - log.info(ALL_CUSTOMERS); + LOGGER.info(ALL_CUSTOMERS); try (var customerStream = customerDao.getAll()) { - customerStream.forEach((cust) -> log.info(cust.toString())); + customerStream.forEach(cust -> LOGGER.info(cust.toString())); } customerDao.delete(customer); - log.info(ALL_CUSTOMERS + customerDao.getAll()); + LOGGER.info(ALL_CUSTOMERS + customerDao.getAll()); } private static void addCustomers(CustomerDao customerDao) throws Exception { diff --git a/dao/src/main/java/com/iluwatar/dao/Customer.java b/dao/src/main/java/com/iluwatar/dao/Customer.java index 3cf6bd4a9..d5c0c583e 100644 --- a/dao/src/main/java/com/iluwatar/dao/Customer.java +++ b/dao/src/main/java/com/iluwatar/dao/Customer.java @@ -23,70 +23,25 @@ package com.iluwatar.dao; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * A customer POJO that represents the data that will be read from the data source. */ +@Setter +@Getter +@ToString +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +@AllArgsConstructor public class Customer { + @EqualsAndHashCode.Include private int id; private String firstName; private String lastName; - /** - * Creates an instance of customer. - */ - public Customer(int id, String firstName, String lastName) { - this.id = id; - this.firstName = firstName; - this.lastName = lastName; - } - - public int getId() { - return id; - } - - public void setId(final int id) { - this.id = id; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(final String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(final String lastName) { - this.lastName = lastName; - } - - @Override - public String toString() { - return "Customer{" + "id=" + getId() + ", firstName='" + getFirstName() + '\'' + ", lastName='" - + getLastName() + '\'' + '}'; - } - - @Override - public boolean equals(final Object that) { - var isEqual = false; - if (this == that) { - isEqual = true; - } else if (that != null && getClass() == that.getClass()) { - final var customer = (Customer) that; - if (getId() == customer.getId()) { - isEqual = true; - } - } - return isEqual; - } - - @Override - public int hashCode() { - return getId(); - } } diff --git a/dao/src/main/java/com/iluwatar/dao/DbCustomerDao.java b/dao/src/main/java/com/iluwatar/dao/DbCustomerDao.java index 811ef5a55..6065b32bb 100644 --- a/dao/src/main/java/com/iluwatar/dao/DbCustomerDao.java +++ b/dao/src/main/java/com/iluwatar/dao/DbCustomerDao.java @@ -34,28 +34,18 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; import javax.sql.DataSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * An implementation of {@link CustomerDao} that persists customers in RDBMS. */ +@Slf4j +@RequiredArgsConstructor public class DbCustomerDao implements CustomerDao { - private static final Logger LOGGER = LoggerFactory.getLogger(DbCustomerDao.class); - private final DataSource dataSource; - /** - * Creates an instance of {@link DbCustomerDao} which uses provided dataSource to - * store and retrieve customer information. - * - * @param dataSource a non-null dataSource. - */ - public DbCustomerDao(DataSource dataSource) { - this.dataSource = dataSource; - } - /** * Get all customers as Java Stream. * diff --git a/dao/src/test/java/com/iluwatar/dao/CustomerTest.java b/dao/src/test/java/com/iluwatar/dao/CustomerTest.java index ccfcba142..492325153 100644 --- a/dao/src/test/java/com/iluwatar/dao/CustomerTest.java +++ b/dao/src/test/java/com/iluwatar/dao/CustomerTest.java @@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test; /** * Tests {@link Customer}. */ -public class CustomerTest { +class CustomerTest { private Customer customer; private static final int ID = 1; @@ -40,33 +40,33 @@ public class CustomerTest { private static final String LASTNAME = "Churchill"; @BeforeEach - public void setUp() { + void setUp() { customer = new Customer(ID, FIRSTNAME, LASTNAME); } @Test - public void getAndSetId() { + void getAndSetId() { final var newId = 2; customer.setId(newId); assertEquals(newId, customer.getId()); } @Test - public void getAndSetFirstname() { + void getAndSetFirstname() { final var newFirstname = "Bill"; customer.setFirstName(newFirstname); assertEquals(newFirstname, customer.getFirstName()); } @Test - public void getAndSetLastname() { + void getAndSetLastname() { final var newLastname = "Clinton"; customer.setLastName(newLastname); assertEquals(newLastname, customer.getLastName()); } @Test - public void notEqualWithDifferentId() { + void notEqualWithDifferentId() { final var newId = 2; final var otherCustomer = new Customer(newId, FIRSTNAME, LASTNAME); assertNotEquals(customer, otherCustomer); @@ -74,21 +74,21 @@ public class CustomerTest { } @Test - public void equalsWithSameObjectValues() { + void equalsWithSameObjectValues() { final var otherCustomer = new Customer(ID, FIRSTNAME, LASTNAME); assertEquals(customer, otherCustomer); assertEquals(customer.hashCode(), otherCustomer.hashCode()); } @Test - public void equalsWithSameObjects() { + void equalsWithSameObjects() { assertEquals(customer, customer); assertEquals(customer.hashCode(), customer.hashCode()); } @Test - public void testToString() { - assertEquals(String.format("Customer{id=%s, firstName='%s', lastName='%s'}", + void testToString() { + assertEquals(String.format("Customer(id=%s, firstName=%s, lastName=%s)", customer.getId(), customer.getFirstName(), customer.getLastName()), customer.toString()); } } diff --git a/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java b/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java index 7375ebd64..1c78fbba0 100644 --- a/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java +++ b/dao/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java @@ -46,7 +46,7 @@ import org.mockito.Mockito; /** * Tests {@link DbCustomerDao}. */ -public class DbCustomerDaoTest { +class DbCustomerDaoTest { private static final String DB_URL = "jdbc:h2:~/dao"; private DbCustomerDao dao; @@ -58,7 +58,7 @@ public class DbCustomerDaoTest { * @throws SQLException if there is any error while creating schema. */ @BeforeEach - public void createSchema() throws SQLException { + void createSchema() throws SQLException { try (var connection = DriverManager.getConnection(DB_URL); var statement = connection.createStatement()) { statement.execute(CustomerSchemaSql.CREATE_SCHEMA_SQL); @@ -89,10 +89,10 @@ public class DbCustomerDaoTest { * Represents the scenario when DAO operations are being performed on a non existing customer. */ @Nested - public class NonExistingCustomer { + class NonExistingCustomer { @Test - public void addingShouldResultInSuccess() throws Exception { + void addingShouldResultInSuccess() throws Exception { try (var allCustomers = dao.getAll()) { assumeTrue(allCustomers.count() == 1); } @@ -106,7 +106,7 @@ public class DbCustomerDaoTest { } @Test - public void deletionShouldBeFailureAndNotAffectExistingCustomers() throws Exception { + void deletionShouldBeFailureAndNotAffectExistingCustomers() throws Exception { final var nonExistingCustomer = new Customer(2, "Robert", "Englund"); var result = dao.delete(nonExistingCustomer); @@ -115,7 +115,7 @@ public class DbCustomerDaoTest { } @Test - public void updationShouldBeFailureAndNotAffectExistingCustomers() throws Exception { + void updationShouldBeFailureAndNotAffectExistingCustomers() throws Exception { final var nonExistingId = getNonExistingCustomerId(); final var newFirstname = "Douglas"; final var newLastname = "MacArthur"; @@ -127,7 +127,7 @@ public class DbCustomerDaoTest { } @Test - public void retrieveShouldReturnNoCustomer() throws Exception { + void retrieveShouldReturnNoCustomer() throws Exception { assertFalse(dao.getById(getNonExistingCustomerId()).isPresent()); } } @@ -137,10 +137,10 @@ public class DbCustomerDaoTest { * customer. */ @Nested - public class ExistingCustomer { + class ExistingCustomer { @Test - public void addingShouldResultInFailureAndNotAffectExistingCustomers() throws Exception { + void addingShouldResultInFailureAndNotAffectExistingCustomers() throws Exception { var existingCustomer = new Customer(1, "Freddy", "Krueger"); var result = dao.add(existingCustomer); @@ -150,7 +150,7 @@ public class DbCustomerDaoTest { } @Test - public void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { + void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { var result = dao.delete(existingCustomer); assertTrue(result); @@ -159,7 +159,7 @@ public class DbCustomerDaoTest { } @Test - public void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws + void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws Exception { final var newFirstname = "Bernard"; final var newLastname = "Montgomery"; @@ -180,7 +180,7 @@ public class DbCustomerDaoTest { * unavailable. */ @Nested - public class ConnectivityIssue { + class ConnectivityIssue { private static final String EXCEPTION_CAUSE = "Connection not available"; @@ -204,21 +204,21 @@ public class DbCustomerDaoTest { } @Test - public void addingACustomerFailsWithExceptionAsFeedbackToClient() { + void addingACustomerFailsWithExceptionAsFeedbackToClient() { assertThrows(Exception.class, () -> { dao.add(new Customer(2, "Bernard", "Montgomery")); }); } @Test - public void deletingACustomerFailsWithExceptionAsFeedbackToTheClient() { + void deletingACustomerFailsWithExceptionAsFeedbackToTheClient() { assertThrows(Exception.class, () -> { dao.delete(existingCustomer); }); } @Test - public void updatingACustomerFailsWithFeedbackToTheClient() { + void updatingACustomerFailsWithFeedbackToTheClient() { final var newFirstname = "Bernard"; final var newLastname = "Montgomery"; assertThrows(Exception.class, () -> { @@ -227,14 +227,14 @@ public class DbCustomerDaoTest { } @Test - public void retrievingACustomerByIdFailsWithExceptionAsFeedbackToClient() { + void retrievingACustomerByIdFailsWithExceptionAsFeedbackToClient() { assertThrows(Exception.class, () -> { dao.getById(existingCustomer.getId()); }); } @Test - public void retrievingAllCustomersFailsWithExceptionAsFeedbackToClient() { + void retrievingAllCustomersFailsWithExceptionAsFeedbackToClient() { assertThrows(Exception.class, () -> { dao.getAll(); }); @@ -248,7 +248,7 @@ public class DbCustomerDaoTest { * @throws SQLException if any error occurs. */ @AfterEach - public void deleteSchema() throws SQLException { + void deleteSchema() throws SQLException { try (var connection = DriverManager.getConnection(DB_URL); var statement = connection.createStatement()) { statement.execute(CustomerSchemaSql.DELETE_SCHEMA_SQL); @@ -261,7 +261,6 @@ public class DbCustomerDaoTest { } } - /** * An arbitrary number which does not correspond to an active Customer id. * diff --git a/dao/src/test/java/com/iluwatar/dao/InMemoryCustomerDaoTest.java b/dao/src/test/java/com/iluwatar/dao/InMemoryCustomerDaoTest.java index d4cc79303..9ff9e6a85 100644 --- a/dao/src/test/java/com/iluwatar/dao/InMemoryCustomerDaoTest.java +++ b/dao/src/test/java/com/iluwatar/dao/InMemoryCustomerDaoTest.java @@ -35,13 +35,13 @@ import org.junit.jupiter.api.Test; /** * Tests {@link InMemoryCustomerDao}. */ -public class InMemoryCustomerDaoTest { +class InMemoryCustomerDaoTest { private InMemoryCustomerDao dao; private static final Customer CUSTOMER = new Customer(1, "Freddy", "Krueger"); @BeforeEach - public void setUp() { + void setUp() { dao = new InMemoryCustomerDao(); assertTrue(dao.add(CUSTOMER)); } @@ -51,10 +51,10 @@ public class InMemoryCustomerDaoTest { * customer. */ @Nested - public class NonExistingCustomer { + class NonExistingCustomer { @Test - public void addingShouldResultInSuccess() throws Exception { + void addingShouldResultInSuccess() throws Exception { try (var allCustomers = dao.getAll()) { assumeTrue(allCustomers.count() == 1); } @@ -68,7 +68,7 @@ public class InMemoryCustomerDaoTest { } @Test - public void deletionShouldBeFailureAndNotAffectExistingCustomers() throws Exception { + void deletionShouldBeFailureAndNotAffectExistingCustomers() throws Exception { final var nonExistingCustomer = new Customer(2, "Robert", "Englund"); var result = dao.delete(nonExistingCustomer); @@ -77,7 +77,7 @@ public class InMemoryCustomerDaoTest { } @Test - public void updationShouldBeFailureAndNotAffectExistingCustomers() throws Exception { + void updationShouldBeFailureAndNotAffectExistingCustomers() throws Exception { final var nonExistingId = getNonExistingCustomerId(); final var newFirstname = "Douglas"; final var newLastname = "MacArthur"; @@ -89,7 +89,7 @@ public class InMemoryCustomerDaoTest { } @Test - public void retrieveShouldReturnNoCustomer() throws Exception { + void retrieveShouldReturnNoCustomer() throws Exception { assertFalse(dao.getById(getNonExistingCustomerId()).isPresent()); } } @@ -99,10 +99,10 @@ public class InMemoryCustomerDaoTest { * customer. */ @Nested - public class ExistingCustomer { + class ExistingCustomer { @Test - public void addingShouldResultInFailureAndNotAffectExistingCustomers() throws Exception { + void addingShouldResultInFailureAndNotAffectExistingCustomers() throws Exception { var result = dao.add(CUSTOMER); assertFalse(result); @@ -111,7 +111,7 @@ public class InMemoryCustomerDaoTest { } @Test - public void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { + void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { var result = dao.delete(CUSTOMER); assertTrue(result); @@ -120,7 +120,7 @@ public class InMemoryCustomerDaoTest { } @Test - public void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws + void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws Exception { final var newFirstname = "Bernard"; final var newLastname = "Montgomery"; @@ -135,7 +135,7 @@ public class InMemoryCustomerDaoTest { } @Test - public void retriveShouldReturnTheCustomer() { + void retriveShouldReturnTheCustomer() { var optionalCustomer = dao.getById(CUSTOMER.getId()); assertTrue(optionalCustomer.isPresent()); diff --git a/data-bus/pom.xml b/data-bus/pom.xml index b9d57e091..6355b5682 100644 --- a/data-bus/pom.xml +++ b/data-bus/pom.xml @@ -27,9 +27,6 @@ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - - 1.16.14 - com.iluwatar java-design-patterns diff --git a/data-bus/src/main/java/com/iluwatar/databus/AbstractDataType.java b/data-bus/src/main/java/com/iluwatar/databus/AbstractDataType.java index 90d996291..64efbed9f 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/AbstractDataType.java +++ b/data-bus/src/main/java/com/iluwatar/databus/AbstractDataType.java @@ -47,22 +47,17 @@ SOFTWARE. package com.iluwatar.databus; +import lombok.Getter; +import lombok.Setter; + /** * Base for data to send via the Data-Bus. * * @author Paul Campbell (pcampbell@kemitix.net) */ +@Getter +@Setter public class AbstractDataType implements DataType { private DataBus dataBus; - - @Override - public DataBus getDataBus() { - return dataBus; - } - - @Override - public void setDataBus(DataBus dataBus) { - this.dataBus = dataBus; - } } diff --git a/data-bus/src/main/java/com/iluwatar/databus/data/MessageData.java b/data-bus/src/main/java/com/iluwatar/databus/data/MessageData.java index 26173f417..f79eab084 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/data/MessageData.java +++ b/data-bus/src/main/java/com/iluwatar/databus/data/MessageData.java @@ -25,24 +25,20 @@ package com.iluwatar.databus.data; import com.iluwatar.databus.AbstractDataType; import com.iluwatar.databus.DataType; +import lombok.AllArgsConstructor; +import lombok.Getter; /** * An event raised when a string message is sent. * * @author Paul Campbell (pcampbell@kemitix.net) */ +@Getter +@AllArgsConstructor public class MessageData extends AbstractDataType { private final String message; - public MessageData(String message) { - this.message = message; - } - - public String getMessage() { - return message; - } - public static DataType of(final String message) { return new MessageData(message); } diff --git a/data-bus/src/main/java/com/iluwatar/databus/data/StartingData.java b/data-bus/src/main/java/com/iluwatar/databus/data/StartingData.java index 0b2b2d9b6..5225061c1 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/data/StartingData.java +++ b/data-bus/src/main/java/com/iluwatar/databus/data/StartingData.java @@ -26,24 +26,20 @@ package com.iluwatar.databus.data; import com.iluwatar.databus.AbstractDataType; import com.iluwatar.databus.DataType; import java.time.LocalDateTime; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * An event raised when applications starts, containing the start time of the application. * * @author Paul Campbell (pcampbell@kemitix.net) */ +@RequiredArgsConstructor +@Getter public class StartingData extends AbstractDataType { private final LocalDateTime when; - public StartingData(LocalDateTime when) { - this.when = when; - } - - public LocalDateTime getWhen() { - return when; - } - public static DataType of(final LocalDateTime when) { return new StartingData(when); } diff --git a/data-bus/src/main/java/com/iluwatar/databus/data/StoppingData.java b/data-bus/src/main/java/com/iluwatar/databus/data/StoppingData.java index 1d415135e..a08db1ead 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/data/StoppingData.java +++ b/data-bus/src/main/java/com/iluwatar/databus/data/StoppingData.java @@ -26,24 +26,20 @@ package com.iluwatar.databus.data; import com.iluwatar.databus.AbstractDataType; import com.iluwatar.databus.DataType; import java.time.LocalDateTime; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * An event raised when applications stops, containing the stop time of the application. * * @author Paul Campbell (pcampbell@kemitix.net) */ +@RequiredArgsConstructor +@Getter public class StoppingData extends AbstractDataType { private final LocalDateTime when; - public StoppingData(LocalDateTime when) { - this.when = when; - } - - public LocalDateTime getWhen() { - return when; - } - public static DataType of(final LocalDateTime when) { return new StoppingData(when); } diff --git a/data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java b/data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java index 26ed6b24f..b06045ddc 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java +++ b/data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java @@ -28,17 +28,16 @@ import com.iluwatar.databus.Member; import com.iluwatar.databus.data.MessageData; import java.util.ArrayList; import java.util.List; -import java.util.logging.Logger; +import lombok.extern.slf4j.Slf4j; /** * Receiver of Data-Bus events that collects the messages from each {@link MessageData}. * * @author Paul Campbell (pcampbell@kemitix.net) */ +@Slf4j public class MessageCollectorMember implements Member { - private static final Logger LOGGER = Logger.getLogger(MessageCollectorMember.class.getName()); - private final String name; private final List messages = new ArrayList<>(); @@ -55,7 +54,7 @@ public class MessageCollectorMember implements Member { } private void handleEvent(MessageData data) { - LOGGER.info(String.format("%s sees message %s", name, data.getMessage())); + LOGGER.info("{} sees message {}", name, data.getMessage()); messages.add(data.getMessage()); } diff --git a/data-bus/src/main/java/com/iluwatar/databus/members/StatusMember.java b/data-bus/src/main/java/com/iluwatar/databus/members/StatusMember.java index 65ba87745..03804a46b 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/members/StatusMember.java +++ b/data-bus/src/main/java/com/iluwatar/databus/members/StatusMember.java @@ -29,27 +29,26 @@ import com.iluwatar.databus.data.MessageData; import com.iluwatar.databus.data.StartingData; import com.iluwatar.databus.data.StoppingData; import java.time.LocalDateTime; -import java.util.logging.Logger; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * Receiver of Data-Bus events. * * @author Paul Campbell (pcampbell@kemitix.net) */ +@Getter +@Slf4j +@RequiredArgsConstructor public class StatusMember implements Member { - private static final Logger LOGGER = Logger.getLogger(StatusMember.class.getName()); - private final int id; private LocalDateTime started; private LocalDateTime stopped; - public StatusMember(int id) { - this.id = id; - } - @Override public void accept(final DataType data) { if (data instanceof StartingData) { @@ -61,21 +60,14 @@ public class StatusMember implements Member { private void handleEvent(StartingData data) { started = data.getWhen(); - LOGGER.info(String.format("Receiver #%d sees application started at %s", id, started)); + LOGGER.info("Receiver {} sees application started at {}", id, started); } private void handleEvent(StoppingData data) { stopped = data.getWhen(); - LOGGER.info(String.format("Receiver #%d sees application stopping at %s", id, stopped)); - LOGGER.info(String.format("Receiver #%d sending goodbye message", id)); + LOGGER.info("Receiver {} sees application stopping at {}", id, stopped); + LOGGER.info("Receiver {} sending goodbye message", id); data.getDataBus().publish(MessageData.of(String.format("Goodbye cruel world from #%d!", id))); } - public LocalDateTime getStarted() { - return started; - } - - public LocalDateTime getStopped() { - return stopped; - } } diff --git a/data-bus/src/test/java/com/iluwatar/databus/DataBusTest.java b/data-bus/src/test/java/com/iluwatar/databus/DataBusTest.java index 3f8aa88b0..9278c965b 100644 --- a/data-bus/src/test/java/com/iluwatar/databus/DataBusTest.java +++ b/data-bus/src/test/java/com/iluwatar/databus/DataBusTest.java @@ -36,7 +36,7 @@ import org.mockito.MockitoAnnotations; * * @author Paul Campbell (pcampbell@kemitix.net) */ -public class DataBusTest { +class DataBusTest { @Mock private Member member; @@ -45,12 +45,12 @@ public class DataBusTest { private DataType event; @BeforeEach - public void setUp() { + void setUp() { MockitoAnnotations.initMocks(this); } @Test - public void publishedEventIsReceivedBySubscribedMember() { + void publishedEventIsReceivedBySubscribedMember() { //given final var dataBus = DataBus.getInstance(); dataBus.subscribe(member); @@ -61,7 +61,7 @@ public class DataBusTest { } @Test - public void publishedEventIsNotReceivedByMemberAfterUnsubscribing() { + void publishedEventIsNotReceivedByMemberAfterUnsubscribing() { //given final var dataBus = DataBus.getInstance(); dataBus.subscribe(member); diff --git a/data-bus/src/test/java/com/iluwatar/databus/members/MessageCollectorMemberTest.java b/data-bus/src/test/java/com/iluwatar/databus/members/MessageCollectorMemberTest.java index c6f5b3b40..67ff8ca6b 100644 --- a/data-bus/src/test/java/com/iluwatar/databus/members/MessageCollectorMemberTest.java +++ b/data-bus/src/test/java/com/iluwatar/databus/members/MessageCollectorMemberTest.java @@ -36,10 +36,10 @@ import org.junit.jupiter.api.Test; * * @author Paul Campbell (pcampbell@kemitix.net) */ -public class MessageCollectorMemberTest { +class MessageCollectorMemberTest { @Test - public void collectMessageFromMessageData() { + void collectMessageFromMessageData() { //given final var message = "message"; final var messageData = new MessageData(message); @@ -51,7 +51,7 @@ public class MessageCollectorMemberTest { } @Test - public void collectIgnoresMessageFromOtherDataTypes() { + void collectIgnoresMessageFromOtherDataTypes() { //given final var startingData = new StartingData(LocalDateTime.now()); final var collector = new MessageCollectorMember("collector"); diff --git a/data-bus/src/test/java/com/iluwatar/databus/members/StatusMemberTest.java b/data-bus/src/test/java/com/iluwatar/databus/members/StatusMemberTest.java index b7be285ee..8f59b1a14 100644 --- a/data-bus/src/test/java/com/iluwatar/databus/members/StatusMemberTest.java +++ b/data-bus/src/test/java/com/iluwatar/databus/members/StatusMemberTest.java @@ -39,10 +39,10 @@ import org.junit.jupiter.api.Test; * * @author Paul Campbell (pcampbell@kemitix.net) */ -public class StatusMemberTest { +class StatusMemberTest { @Test - public void statusRecordsTheStartTime() { + void statusRecordsTheStartTime() { //given final var startTime = LocalDateTime.of(2017, Month.APRIL, 1, 19, 9); final var startingData = new StartingData(startTime); @@ -54,7 +54,7 @@ public class StatusMemberTest { } @Test - public void statusRecordsTheStopTime() { + void statusRecordsTheStopTime() { //given final var stop = LocalDateTime.of(2017, Month.APRIL, 1, 19, 12); final var stoppingData = new StoppingData(stop); @@ -67,7 +67,7 @@ public class StatusMemberTest { } @Test - public void statusIgnoresMessageData() { + void statusIgnoresMessageData() { //given final var messageData = new MessageData("message"); final var statusMember = new StatusMember(1); diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/Application.java b/data-locality/src/main/java/com/iluwatar/data/locality/Application.java index 0930cae56..0325130a8 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/Application.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/Application.java @@ -24,8 +24,7 @@ package com.iluwatar.data.locality; import com.iluwatar.data.locality.game.GameEntity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Use the Data Locality pattern is when you have a performance problem. Take advantage of that to @@ -35,10 +34,9 @@ import org.slf4j.LoggerFactory; *

Example: Game loop that processes a bunch of game entities. Those entities are decomposed * into different domains  — AI, physics, and rendering — using the Component pattern. */ +@Slf4j public class Application { - private static final Logger LOGGER = LoggerFactory.getLogger(Application.class); - private static final int NUM_ENTITIES = 5; /** diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/GameEntity.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/GameEntity.java index 340b021f9..e7495424c 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/GameEntity.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/GameEntity.java @@ -26,8 +26,7 @@ package com.iluwatar.data.locality.game; import com.iluwatar.data.locality.game.component.manager.AiComponentManager; import com.iluwatar.data.locality.game.component.manager.PhysicsComponentManager; import com.iluwatar.data.locality.game.component.manager.RenderComponentManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The game Entity maintains a big array of pointers . Each spin of the game loop, we need to run @@ -39,8 +38,8 @@ import org.slf4j.LoggerFactory; * *

Render them using their render components. */ +@Slf4j public class GameEntity { - private static final Logger LOGGER = LoggerFactory.getLogger(GameEntity.class); private final AiComponentManager aiComponentManager; private final PhysicsComponentManager physicsComponentManager; diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/AiComponent.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/AiComponent.java index 58d4c5784..6f895f709 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/AiComponent.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/AiComponent.java @@ -23,16 +23,14 @@ package com.iluwatar.data.locality.game.component; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Implementation of AI component for Game. */ +@Slf4j public class AiComponent implements Component { - private static final Logger LOGGER = LoggerFactory.getLogger(AiComponent.class); - /** * Update ai component. */ diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/PhysicsComponent.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/PhysicsComponent.java index 4636336c2..fa6f5bf1d 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/PhysicsComponent.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/PhysicsComponent.java @@ -23,16 +23,14 @@ package com.iluwatar.data.locality.game.component; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Implementation of Physics Component of Game. */ +@Slf4j public class PhysicsComponent implements Component { - private static final Logger LOGGER = LoggerFactory.getLogger(PhysicsComponent.class); - /** * update physics component of game. */ diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/RenderComponent.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/RenderComponent.java index 5415c4281..696414469 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/RenderComponent.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/RenderComponent.java @@ -23,16 +23,14 @@ package com.iluwatar.data.locality.game.component; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Implementation of Render Component of Game. */ +@Slf4j public class RenderComponent implements Component { - private static final Logger LOGGER = LoggerFactory.getLogger(RenderComponent.class); - @Override public void update() { // do nothing diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/AiComponentManager.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/AiComponentManager.java index 034dd2db1..58b67d524 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/AiComponentManager.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/AiComponentManager.java @@ -26,16 +26,14 @@ package com.iluwatar.data.locality.game.component.manager; import com.iluwatar.data.locality.game.component.AiComponent; import com.iluwatar.data.locality.game.component.Component; import java.util.stream.IntStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * AI component manager for Game. */ +@Slf4j public class AiComponentManager { - private static final Logger LOGGER = LoggerFactory.getLogger(AiComponentManager.class); - private static final int MAX_ENTITIES = 10000; private final int numEntities; diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/PhysicsComponentManager.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/PhysicsComponentManager.java index dc70ba0cc..32885da61 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/PhysicsComponentManager.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/PhysicsComponentManager.java @@ -26,16 +26,14 @@ package com.iluwatar.data.locality.game.component.manager; import com.iluwatar.data.locality.game.component.Component; import com.iluwatar.data.locality.game.component.PhysicsComponent; import java.util.stream.IntStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Physics component Manager for Game. */ +@Slf4j public class PhysicsComponentManager { - private static final Logger LOGGER = LoggerFactory.getLogger(PhysicsComponentManager.class); - private static final int MAX_ENTITIES = 10000; private final int numEntities; diff --git a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/RenderComponentManager.java b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/RenderComponentManager.java index ffc1b4303..804a82667 100644 --- a/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/RenderComponentManager.java +++ b/data-locality/src/main/java/com/iluwatar/data/locality/game/component/manager/RenderComponentManager.java @@ -26,16 +26,14 @@ package com.iluwatar.data.locality.game.component.manager; import com.iluwatar.data.locality.game.component.Component; import com.iluwatar.data.locality.game.component.RenderComponent; import java.util.stream.IntStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Render component manager for Game. */ +@Slf4j public class RenderComponentManager { - private static final Logger LOGGER = LoggerFactory.getLogger(RenderComponentManager.class); - private static final int MAX_ENTITIES = 10000; private final int numEntities; diff --git a/data-locality/src/test/java/com/iluwatar/data/locality/ApplicationTest.java b/data-locality/src/test/java/com/iluwatar/data/locality/ApplicationTest.java index 7be4e9d44..a0d710139 100644 --- a/data-locality/src/test/java/com/iluwatar/data/locality/ApplicationTest.java +++ b/data-locality/src/test/java/com/iluwatar/data/locality/ApplicationTest.java @@ -42,6 +42,6 @@ class ApplicationTest { @Test void shouldExecuteGameApplicationWithoutException() { - assertDoesNotThrow(() -> Application.main(new String[] {})); + assertDoesNotThrow(() -> Application.main(new String[]{})); } } \ No newline at end of file diff --git a/data-mapper/src/main/java/com/iluwatar/datamapper/App.java b/data-mapper/src/main/java/com/iluwatar/datamapper/App.java index e1aa6ecb6..6f4e3a5f0 100644 --- a/data-mapper/src/main/java/com/iluwatar/datamapper/App.java +++ b/data-mapper/src/main/java/com/iluwatar/datamapper/App.java @@ -23,8 +23,7 @@ package com.iluwatar.datamapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Data Mapper (DM) is a layer of software that separates the in-memory objects from the @@ -36,12 +35,11 @@ import org.slf4j.LoggerFactory; * *

The below example demonstrates basic CRUD operations: Create, Read, Update, and Delete. */ +@Slf4j public final class App { - private static final Logger log = LoggerFactory.getLogger(App.class); private static final String STUDENT_STRING = "App.main(), student : "; - /** * Program entry point. * @@ -58,12 +56,12 @@ public final class App { /* Add student in respectibe store */ mapper.insert(student); - log.debug(STUDENT_STRING + student + ", is inserted"); + LOGGER.debug(STUDENT_STRING + student + ", is inserted"); /* Find this student */ final var studentToBeFound = mapper.find(student.getStudentId()); - log.debug(STUDENT_STRING + studentToBeFound + ", is searched"); + LOGGER.debug(STUDENT_STRING + studentToBeFound + ", is searched"); /* Update existing student object */ student = new Student(student.getStudentId(), "AdamUpdated", 'A'); @@ -71,8 +69,8 @@ public final class App { /* Update student in respectibe db */ mapper.update(student); - log.debug(STUDENT_STRING + student + ", is updated"); - log.debug(STUDENT_STRING + student + ", is going to be deleted"); + LOGGER.debug(STUDENT_STRING + student + ", is updated"); + LOGGER.debug(STUDENT_STRING + student + ", is going to be deleted"); /* Delete student in db */ mapper.delete(student); diff --git a/data-mapper/src/main/java/com/iluwatar/datamapper/Student.java b/data-mapper/src/main/java/com/iluwatar/datamapper/Student.java index ec9de8090..cd1fb888e 100644 --- a/data-mapper/src/main/java/com/iluwatar/datamapper/Student.java +++ b/data-mapper/src/main/java/com/iluwatar/datamapper/Student.java @@ -24,88 +24,27 @@ package com.iluwatar.datamapper; import java.io.Serializable; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Class defining Student. */ +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +@ToString +@Getter +@Setter +@AllArgsConstructor public final class Student implements Serializable { private static final long serialVersionUID = 1L; + @EqualsAndHashCode.Include private int studentId; private String name; private char grade; - - /** - * Use this constructor to create a Student with all details. - * - * @param studentId as unique student id - * @param name as student name - * @param grade as respective grade of student - */ - public Student(final int studentId, final String name, final char grade) { - this.studentId = studentId; - this.name = name; - this.grade = grade; - } - - public int getStudentId() { - return studentId; - } - - public void setStudentId(final int studentId) { - this.studentId = studentId; - } - - public String getName() { - return name; - } - - public void setName(final String name) { - this.name = name; - } - - public char getGrade() { - return grade; - } - - public void setGrade(final char grade) { - this.grade = grade; - } - - @Override - public boolean equals(final Object inputObject) { - - boolean isEqual = false; - - /* Check if both objects are same */ - if (this == inputObject) { - - isEqual = true; - } else if (inputObject != null && getClass() == inputObject.getClass()) { - - final var inputStudent = (Student) inputObject; - - /* If student id matched */ - if (this.getStudentId() == inputStudent.getStudentId()) { - - isEqual = true; - } - } - - return isEqual; - } - - @Override - public int hashCode() { - - /* Student id is assumed to be unique */ - return this.getStudentId(); - } - - @Override - public String toString() { - return "Student [studentId=" + studentId + ", name=" + name + ", grade=" + grade + "]"; - } } diff --git a/data-mapper/src/test/java/com/iluwatar/datamapper/DataMapperTest.java b/data-mapper/src/test/java/com/iluwatar/datamapper/DataMapperTest.java index 25ab47eb1..cc953999c 100644 --- a/data-mapper/src/test/java/com/iluwatar/datamapper/DataMapperTest.java +++ b/data-mapper/src/test/java/com/iluwatar/datamapper/DataMapperTest.java @@ -37,13 +37,13 @@ import org.junit.jupiter.api.Test; * Data Mapper itself is even unknown to the domain layer. *

*/ -public class DataMapperTest { +class DataMapperTest { /** * This test verify that first data mapper is able to perform all CRUD operations on Student */ @Test - public void testFirstDataMapper() { + void testFirstDataMapper() { /* Create new data mapper of first type */ final var mapper = new StudentDataMapperImpl(); diff --git a/data-mapper/src/test/java/com/iluwatar/datamapper/StudentTest.java b/data-mapper/src/test/java/com/iluwatar/datamapper/StudentTest.java index 7153ae790..b7b82a4c3 100644 --- a/data-mapper/src/test/java/com/iluwatar/datamapper/StudentTest.java +++ b/data-mapper/src/test/java/com/iluwatar/datamapper/StudentTest.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; /** * Tests {@link Student}. */ -public final class StudentTest { +final class StudentTest { /** * This API tests the equality behaviour of Student object Object Equality should work as per @@ -40,7 +40,7 @@ public final class StudentTest { * @throws Exception if any execution error during test */ @Test - public void testEquality() throws Exception { + void testEquality() throws Exception { /* Create some students */ final var firstStudent = new Student(1, "Adam", 'A'); diff --git a/data-transfer-object/src/main/java/com/iluwatar/datatransfer/App.java b/data-transfer-object/src/main/java/com/iluwatar/datatransfer/App.java index ae9aadf32..aa8f192c4 100644 --- a/data-transfer-object/src/main/java/com/iluwatar/datatransfer/App.java +++ b/data-transfer-object/src/main/java/com/iluwatar/datatransfer/App.java @@ -31,8 +31,7 @@ import com.iluwatar.datatransfer.product.ProductResource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Data Transfer Object pattern is a design pattern in which an data transfer object is used to @@ -50,10 +49,9 @@ import org.slf4j.LoggerFactory; * thought as a traditional example and the second is an enum based implementation. * */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Method as act client and request to server for details. * diff --git a/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerDto.java b/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerDto.java index 6f653de53..2fee00d30 100644 --- a/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerDto.java +++ b/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerDto.java @@ -23,39 +23,20 @@ package com.iluwatar.datatransfer.customer; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * {@link CustomerDto} is a data transfer object POJO. Instead of sending individual information to * client We can send related information together in POJO. * *

Dto will not have any business logic in it. */ +@Getter +@RequiredArgsConstructor public class CustomerDto { private final String id; private final String firstName; private final String lastName; - /** - * Constructor. - * - * @param id customer id - * @param firstName customer first name - * @param lastName customer last name - */ - public CustomerDto(String id, String firstName, String lastName) { - this.id = id; - this.firstName = firstName; - this.lastName = lastName; - } - - public String getId() { - return id; - } - - public String getFirstName() { - return firstName; - } - - public String getLastName() { - return lastName; - } } diff --git a/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerResource.java b/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerResource.java index 2c5b88663..c9e4fa261 100644 --- a/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerResource.java +++ b/data-transfer-object/src/main/java/com/iluwatar/datatransfer/customer/CustomerResource.java @@ -24,23 +24,16 @@ package com.iluwatar.datatransfer.customer; import java.util.List; +import lombok.RequiredArgsConstructor; /** * The resource class which serves customer information. This class act as server in the demo. Which * has all customer details. */ +@RequiredArgsConstructor public class CustomerResource { private final List customers; - /** - * Initialise resource with existing customers. - * - * @param customers initialize resource with existing customers. Act as database. - */ - public CustomerResource(List customers) { - this.customers = customers; - } - /** * Get all customers. * diff --git a/data-transfer-object/src/test/java/com/iluwatar/datatransfer/AppTest.java b/data-transfer-object/src/test/java/com/iluwatar/datatransfer/AppTest.java index 5cd12868f..c170593af 100644 --- a/data-transfer-object/src/test/java/com/iluwatar/datatransfer/AppTest.java +++ b/data-transfer-object/src/test/java/com/iluwatar/datatransfer/AppTest.java @@ -29,15 +29,15 @@ import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; class AppTest { - /** - * Issue: Add at least one assertion to this test case. - * - * Solution: Inserted assertion to check whether the execution of the main method in {@link App#main(String[])} - * throws an exception. - */ + /** + * Issue: Add at least one assertion to this test case. + * + * Solution: Inserted assertion to check whether the execution of the main method in {@link App#main(String[])} + * throws an exception. + */ - @Test - void shouldExecuteApplicationWithoutException() { - assertDoesNotThrow(() -> App.main(new String[]{})); - } + @Test + void shouldExecuteApplicationWithoutException() { + assertDoesNotThrow(() -> App.main(new String[]{})); + } } diff --git a/data-transfer-object/src/test/java/com/iluwatar/datatransfer/customer/CustomerResourceTest.java b/data-transfer-object/src/test/java/com/iluwatar/datatransfer/customer/CustomerResourceTest.java index 1a9e7eb84..e106cf002 100644 --- a/data-transfer-object/src/test/java/com/iluwatar/datatransfer/customer/CustomerResourceTest.java +++ b/data-transfer-object/src/test/java/com/iluwatar/datatransfer/customer/CustomerResourceTest.java @@ -36,9 +36,10 @@ import org.junit.jupiter.api.Test; /** * tests {@link CustomerResource}. */ -public class CustomerResourceTest { +class CustomerResourceTest { + @Test - public void shouldGetAllCustomers() { + void shouldGetAllCustomers() { var customers = List.of(new CustomerDto("1", "Melody", "Yates")); var customerResource = new CustomerResource(customers); var allCustomers = customerResource.getAllCustomers(); @@ -50,7 +51,7 @@ public class CustomerResourceTest { } @Test - public void shouldSaveCustomer() { + void shouldSaveCustomer() { var customer = new CustomerDto("1", "Rita", "Reynolds"); var customerResource = new CustomerResource(new ArrayList<>()); @@ -63,7 +64,7 @@ public class CustomerResourceTest { } @Test - public void shouldDeleteCustomer() { + void shouldDeleteCustomer() { var customer = new CustomerDto("1", "Terry", "Nguyen"); var customers = new ArrayList<>(List.of(customer)); var customerResource = new CustomerResource(customers); diff --git a/decorator/README.md b/decorator/README.md index 7ac0bb94c..ae1287b54 100644 --- a/decorator/README.md +++ b/decorator/README.md @@ -51,10 +51,9 @@ public interface Troll { void fleeBattle(); } +@Slf4j public class SimpleTroll implements Troll { - private static final Logger LOGGER = LoggerFactory.getLogger(SimpleTroll.class); - @Override public void attack() { LOGGER.info("The troll tries to grab you!"); @@ -75,10 +74,9 @@ public class SimpleTroll implements Troll { Next we want to add club for the troll. We can do it dynamically by using a decorator: ```java +@Slf4j public class ClubbedTroll implements Troll { - private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class); - private final Troll decorated; public ClubbedTroll(Troll decorated) { diff --git a/decorator/src/main/java/com/iluwatar/decorator/App.java b/decorator/src/main/java/com/iluwatar/decorator/App.java index c74b52c83..90ea972f6 100644 --- a/decorator/src/main/java/com/iluwatar/decorator/App.java +++ b/decorator/src/main/java/com/iluwatar/decorator/App.java @@ -23,8 +23,7 @@ package com.iluwatar.decorator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Decorator pattern is a more flexible alternative to subclassing. The Decorator class @@ -36,10 +35,9 @@ import org.slf4j.LoggerFactory; * battle. Then we decorate the {@link SimpleTroll} with a {@link ClubbedTroll} and perform the * attack again. You can see how the behavior changes after the decoration. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/decorator/src/main/java/com/iluwatar/decorator/ClubbedTroll.java b/decorator/src/main/java/com/iluwatar/decorator/ClubbedTroll.java index ab7fcbe53..96a6d4b30 100644 --- a/decorator/src/main/java/com/iluwatar/decorator/ClubbedTroll.java +++ b/decorator/src/main/java/com/iluwatar/decorator/ClubbedTroll.java @@ -23,22 +23,18 @@ package com.iluwatar.decorator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * Decorator that adds a club for the troll. */ +@Slf4j +@RequiredArgsConstructor public class ClubbedTroll implements Troll { - private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class); - private final Troll decorated; - public ClubbedTroll(Troll decorated) { - this.decorated = decorated; - } - @Override public void attack() { decorated.attack(); diff --git a/decorator/src/main/java/com/iluwatar/decorator/SimpleTroll.java b/decorator/src/main/java/com/iluwatar/decorator/SimpleTroll.java index a9bf2bdad..cd382bce7 100644 --- a/decorator/src/main/java/com/iluwatar/decorator/SimpleTroll.java +++ b/decorator/src/main/java/com/iluwatar/decorator/SimpleTroll.java @@ -23,16 +23,14 @@ package com.iluwatar.decorator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * SimpleTroll implements {@link Troll} interface directly. */ +@Slf4j public class SimpleTroll implements Troll { - private static final Logger LOGGER = LoggerFactory.getLogger(SimpleTroll.class); - @Override public void attack() { LOGGER.info("The troll tries to grab you!"); diff --git a/decorator/src/test/java/com/iluwatar/decorator/ClubbedTrollTest.java b/decorator/src/test/java/com/iluwatar/decorator/ClubbedTrollTest.java index 1bb677a4e..e576b86c1 100644 --- a/decorator/src/test/java/com/iluwatar/decorator/ClubbedTrollTest.java +++ b/decorator/src/test/java/com/iluwatar/decorator/ClubbedTrollTest.java @@ -34,10 +34,10 @@ import org.junit.jupiter.api.Test; /** * Tests for {@link ClubbedTroll} */ -public class ClubbedTrollTest { +class ClubbedTrollTest { @Test - public void testClubbedTroll() { + void testClubbedTroll() { // Create a normal troll first, but make sure we can spy on it later on. final var simpleTroll = spy(new SimpleTroll()); diff --git a/decorator/src/test/java/com/iluwatar/decorator/SimpleTrollTest.java b/decorator/src/test/java/com/iluwatar/decorator/SimpleTrollTest.java index 2d98a120d..8a2fa1999 100644 --- a/decorator/src/test/java/com/iluwatar/decorator/SimpleTrollTest.java +++ b/decorator/src/test/java/com/iluwatar/decorator/SimpleTrollTest.java @@ -38,22 +38,22 @@ import org.slf4j.LoggerFactory; /** * Tests for {@link SimpleTroll} */ -public class SimpleTrollTest { +class SimpleTrollTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(SimpleTroll.class); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @Test - public void testTrollActions() { + void testTrollActions() { final var troll = new SimpleTroll(); assertEquals(10, troll.getAttackPower()); @@ -70,7 +70,7 @@ public class SimpleTrollTest { private final List log = new LinkedList<>(); - public InMemoryAppender(Class clazz) { + InMemoryAppender(Class clazz) { ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); start(); } @@ -80,11 +80,11 @@ public class SimpleTrollTest { log.add(eventObject); } - public String getLastMessage() { + String getLastMessage() { return log.get(log.size() - 1).getMessage(); } - public int getLogSize() { + int getLogSize() { return log.size(); } } diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java index 025dbe92b..3084b1d4c 100644 --- a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java @@ -24,8 +24,7 @@ package com.iluwatar.delegation.simple.printers; import com.iluwatar.delegation.simple.Printer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Specialised Implementation of {@link Printer} for a Canon Printer, in this case the message to be @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; * * @see Printer */ +@Slf4j public class CanonPrinter implements Printer { - private static final Logger LOGGER = LoggerFactory.getLogger(CanonPrinter.class); - /** * {@inheritDoc} */ diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java index ef0026cb8..cfa8ecb72 100644 --- a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java @@ -24,8 +24,7 @@ package com.iluwatar.delegation.simple.printers; import com.iluwatar.delegation.simple.Printer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Specialised Implementation of {@link Printer} for a Epson Printer, in this case the message to be @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; * * @see Printer */ +@Slf4j public class EpsonPrinter implements Printer { - private static final Logger LOGGER = LoggerFactory.getLogger(EpsonPrinter.class); - /** * {@inheritDoc} */ diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HpPrinter.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HpPrinter.java index 0e9af1284..871537ce8 100644 --- a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HpPrinter.java +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HpPrinter.java @@ -24,8 +24,7 @@ package com.iluwatar.delegation.simple.printers; import com.iluwatar.delegation.simple.Printer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Specialised Implementation of {@link Printer} for a HP Printer, in this case the message to be @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; * * @see Printer */ +@Slf4j public class HpPrinter implements Printer { - private static final Logger LOGGER = LoggerFactory.getLogger(HpPrinter.class); - /** * {@inheritDoc} */ diff --git a/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java b/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java index 093549428..29ec7a544 100644 --- a/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java +++ b/delegation/src/test/java/com/iluwatar/delegation/simple/DelegateTest.java @@ -41,24 +41,24 @@ import org.slf4j.LoggerFactory; /** * Test for Delegation Pattern */ -public class DelegateTest { +class DelegateTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } private static final String MESSAGE = "Test Message Printed"; @Test - public void testCanonPrinter() throws Exception { + void testCanonPrinter() throws Exception { var printerController = new PrinterController(new CanonPrinter()); printerController.print(MESSAGE); @@ -66,7 +66,7 @@ public class DelegateTest { } @Test - public void testHpPrinter() throws Exception { + void testHpPrinter() throws Exception { var printerController = new PrinterController(new HpPrinter()); printerController.print(MESSAGE); @@ -74,7 +74,7 @@ public class DelegateTest { } @Test - public void testEpsonPrinter() throws Exception { + void testEpsonPrinter() throws Exception { var printerController = new PrinterController(new EpsonPrinter()); printerController.print(MESSAGE); @@ -84,7 +84,7 @@ public class DelegateTest { /** * Logging Appender */ - private class InMemoryAppender extends AppenderBase { + private static class InMemoryAppender extends AppenderBase { private final List log = new LinkedList<>(); diff --git a/dependency-injection/README.md b/dependency-injection/README.md index e5bf93387..e03f492c6 100644 --- a/dependency-injection/README.md +++ b/dependency-injection/README.md @@ -37,10 +37,9 @@ Wikipedia says Let's first introduce the `Tobacco` interface and the concrete brands. ```java +@Slf4j public abstract class Tobacco { - private static final Logger LOGGER = LoggerFactory.getLogger(Tobacco.class); - public void smoke(Wizard wizard) { LOGGER.info("{} smoking {}", wizard.getClass().getSimpleName(), this.getClass().getSimpleName()); diff --git a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedSorceress.java b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedSorceress.java index edbe039b9..453af18b1 100644 --- a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedSorceress.java +++ b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedSorceress.java @@ -23,18 +23,17 @@ package com.iluwatar.dependency.injection; +import lombok.Setter; + /** * AdvancedSorceress implements inversion of control. It depends on abstraction that can be injected * through its setter. */ +@Setter public class AdvancedSorceress implements Wizard { private Tobacco tobacco; - public void setTobacco(Tobacco tobacco) { - this.tobacco = tobacco; - } - @Override public void smoke() { tobacco.smoke(this); diff --git a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedWizard.java b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedWizard.java index 46758a718..2912f927a 100644 --- a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedWizard.java +++ b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/AdvancedWizard.java @@ -23,18 +23,17 @@ package com.iluwatar.dependency.injection; +import lombok.RequiredArgsConstructor; + /** * AdvancedWizard implements inversion of control. It depends on abstraction that can be injected * through its constructor. */ +@RequiredArgsConstructor public class AdvancedWizard implements Wizard { private final Tobacco tobacco; - public AdvancedWizard(Tobacco tobacco) { - this.tobacco = tobacco; - } - @Override public void smoke() { tobacco.smoke(this); diff --git a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/Tobacco.java b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/Tobacco.java index 191655e79..72adf3972 100644 --- a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/Tobacco.java +++ b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/Tobacco.java @@ -23,16 +23,14 @@ package com.iluwatar.dependency.injection; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Tobacco abstraction. */ +@Slf4j public abstract class Tobacco { - private static final Logger LOGGER = LoggerFactory.getLogger(Tobacco.class); - public void smoke(Wizard wizard) { LOGGER.info("{} smoking {}", wizard.getClass().getSimpleName(), this.getClass().getSimpleName()); diff --git a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedSorceressTest.java b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedSorceressTest.java index d985d5975..3d53c0074 100644 --- a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedSorceressTest.java +++ b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedSorceressTest.java @@ -38,17 +38,17 @@ import org.junit.jupiter.api.Test; * @author Stanislav Kapinus */ -public class AdvancedSorceressTest { +class AdvancedSorceressTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(Tobacco.class); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @@ -57,7 +57,7 @@ public class AdvancedSorceressTest { * her through the setter's parameter */ @Test - public void testSmokeEveryThing() throws Exception { + void testSmokeEveryThing() throws Exception { List tobaccos = List.of( new OldTobyTobacco(), diff --git a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedWizardTest.java b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedWizardTest.java index bd5046389..cf8013bae 100644 --- a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedWizardTest.java +++ b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/AdvancedWizardTest.java @@ -37,17 +37,17 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class AdvancedWizardTest { +class AdvancedWizardTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(Tobacco.class); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @@ -56,7 +56,7 @@ public class AdvancedWizardTest { * through the constructor parameter */ @Test - public void testSmokeEveryThing() throws Exception { + void testSmokeEveryThing() throws Exception { List tobaccos = List.of( new OldTobyTobacco(), diff --git a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/GuiceWizardTest.java b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/GuiceWizardTest.java index 658ab2876..2c7988512 100644 --- a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/GuiceWizardTest.java +++ b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/GuiceWizardTest.java @@ -38,17 +38,17 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class GuiceWizardTest { +class GuiceWizardTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(Tobacco.class); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @@ -57,7 +57,7 @@ public class GuiceWizardTest { * through the constructor parameter */ @Test - public void testSmokeEveryThingThroughConstructor() throws Exception { + void testSmokeEveryThingThroughConstructor() throws Exception { List tobaccos = List.of( new OldTobyTobacco(), @@ -82,7 +82,7 @@ public class GuiceWizardTest { * through the Guice google inject framework */ @Test - public void testSmokeEveryThingThroughInjectionFramework() throws Exception { + void testSmokeEveryThingThroughInjectionFramework() throws Exception { List> tobaccos = List.of( OldTobyTobacco.class, diff --git a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/SimpleWizardTest.java b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/SimpleWizardTest.java index b67005ad8..f5a4f9235 100644 --- a/dependency-injection/src/test/java/com/iluwatar/dependency/injection/SimpleWizardTest.java +++ b/dependency-injection/src/test/java/com/iluwatar/dependency/injection/SimpleWizardTest.java @@ -35,17 +35,17 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class SimpleWizardTest { +class SimpleWizardTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(Tobacco.class); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @@ -54,7 +54,7 @@ public class SimpleWizardTest { * OldTobyTobacco} */ @Test - public void testSmoke() { + void testSmoke() { final var simpleWizard = new SimpleWizard(); simpleWizard.smoke(); assertEquals("SimpleWizard smoking OldTobyTobacco", appender.getLastMessage()); diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java index 49c96d3a1..93eb01af2 100644 --- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java +++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/App.java @@ -25,8 +25,7 @@ package com.iluwatar.dirtyflag; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This application demonstrates the Dirty Flag pattern. The dirty flag behavioral pattern @@ -51,10 +50,9 @@ import org.slf4j.LoggerFactory; * re-fetches from world.txt when needed. {@link World} mainly serves the data to the * front-end. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program execution point. */ diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java index 5d5c981fe..e71dd636f 100644 --- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java +++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/DataFetcher.java @@ -29,18 +29,16 @@ import java.io.FileReader; import java.io.IOException; import java.util.List; import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A mock database manager -- Fetches data from a raw file. * * @author swaisuan */ +@Slf4j public class DataFetcher { - private static final Logger LOGGER = LoggerFactory.getLogger(DataFetcher.class); - private final String filename = "world.txt"; private long lastFetched; diff --git a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java index 1c5f7e81f..076653002 100644 --- a/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java +++ b/dirty-flag/src/main/java/com/iluwatar/dirtyflag/World.java @@ -37,7 +37,7 @@ public class World { private final DataFetcher df; public World() { - this.countries = new ArrayList(); + this.countries = new ArrayList<>(); this.df = new DataFetcher(); } diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java index 7b510eddd..a2587e1c8 100644 --- a/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java @@ -24,9 +24,8 @@ package com.iluwatar.doublebuffer; import java.util.List; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.MutablePair; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Double buffering is a term used to describe a device that has two buffers. The usage of multiple @@ -35,10 +34,9 @@ import org.slf4j.LoggerFactory; * separate frame is being buffered to be shown next. This method makes animations and games look * more realistic than the same done in a single buffer mode. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program main entry point. * diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java index 3e4ba93a4..95891c337 100644 --- a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java @@ -28,12 +28,6 @@ package com.iluwatar.doublebuffer; */ public enum Pixel { - WHITE(0), - BLACK(1); - - private final int color; - - Pixel(int color) { - this.color = color; - } + WHITE, + BLACK; } diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java index 7f6d7fffe..413b15f43 100644 --- a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java @@ -24,17 +24,15 @@ package com.iluwatar.doublebuffer; import java.util.List; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.tuple.Pair; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Scene class. Render the output frame. */ +@Slf4j public class Scene { - private static final Logger LOGGER = LoggerFactory.getLogger(Scene.class); - private final Buffer[] frameBuffers; private int current; diff --git a/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java b/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java index f6e25566f..2e43be3ae 100644 --- a/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java +++ b/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java @@ -34,7 +34,7 @@ class AppTest { /** * Issue: Add at least one assertion to this test case. - * + *

* Solution: Inserted assertion to check whether the execution of the main method in {@link App#main(String[])} * throws an exception. */ diff --git a/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/App.java b/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/App.java index a61e41550..b74639433 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/App.java +++ b/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/App.java @@ -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(); } } } diff --git a/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/Inventory.java b/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/Inventory.java index 735195645..bae88899b 100644 --- a/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/Inventory.java +++ b/double-checked-locking/src/main/java/com/iluwatar/doublechecked/locking/Inventory.java @@ -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 items; private final Lock lock; diff --git a/double-checked-locking/src/test/java/com/iluwatar/doublechecked/locking/InventoryTest.java b/double-checked-locking/src/test/java/com/iluwatar/doublechecked/locking/InventoryTest.java index 5ecd8ddca..53417786d 100644 --- a/double-checked-locking/src/test/java/com/iluwatar/doublechecked/locking/InventoryTest.java +++ b/double-checked-locking/src/test/java/com/iluwatar/doublechecked/locking/InventoryTest.java @@ -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); diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/App.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/App.java index 0774516c7..e0816b022 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/App.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/App.java @@ -24,8 +24,7 @@ package com.iluwatar.doubledispatch; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * When a message with a parameter is sent to an object, the resultant behaviour is defined by the @@ -46,10 +45,9 @@ import org.slf4j.LoggerFactory; * coordinates. If there is an overlap, then the objects collide utilizing the Double Dispatch * pattern. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java index 58c28c43a..c1f3f8233 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Meteoroid.java @@ -24,16 +24,14 @@ package com.iluwatar.doubledispatch; import com.iluwatar.doubledispatch.constants.AppConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Meteoroid game object. */ +@Slf4j public class Meteoroid extends GameObject { - private static final Logger LOGGER = LoggerFactory.getLogger(Meteoroid.class); - public Meteoroid(int left, int top, int right, int bottom) { super(left, top, right, bottom); } diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Rectangle.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Rectangle.java index 1fbae4635..f448faa8a 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Rectangle.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/Rectangle.java @@ -23,9 +23,14 @@ package com.iluwatar.doubledispatch; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * Rectangle has coordinates and can be checked for overlap against other Rectangles. */ +@Getter +@RequiredArgsConstructor public class Rectangle { private final int left; @@ -33,32 +38,6 @@ public class Rectangle { private final int right; private final int bottom; - /** - * Constructor. - */ - public Rectangle(int left, int top, int right, int bottom) { - this.left = left; - this.top = top; - this.right = right; - this.bottom = bottom; - } - - public int getLeft() { - return left; - } - - public int getTop() { - return top; - } - - public int getRight() { - return right; - } - - public int getBottom() { - return bottom; - } - boolean intersectsWith(Rectangle r) { return !(r.getLeft() > getRight() || r.getRight() < getLeft() || r.getTop() > getBottom() || r .getBottom() < getTop()); diff --git a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java index 13d0a6d75..27f806bce 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/SpaceStationMir.java @@ -24,16 +24,14 @@ package com.iluwatar.doubledispatch; import com.iluwatar.doubledispatch.constants.AppConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Space station Mir game object. */ +@Slf4j public class SpaceStationMir extends GameObject { - private static final Logger LOGGER = LoggerFactory.getLogger(SpaceStationMir.class); - public SpaceStationMir(int left, int top, int right, int bottom) { super(left, top, right, bottom); } diff --git a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/FlamingAsteroidTest.java b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/FlamingAsteroidTest.java index 173f3fcba..bb3c5bdee 100644 --- a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/FlamingAsteroidTest.java +++ b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/FlamingAsteroidTest.java @@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class FlamingAsteroidTest extends CollisionTest { +class FlamingAsteroidTest extends CollisionTest { @Override final FlamingAsteroid getTestedObject() { @@ -45,7 +45,7 @@ public class FlamingAsteroidTest extends CollisionTest { * Test the constructor parameters */ @Test - public void testConstructor() { + void testConstructor() { final var asteroid = new FlamingAsteroid(1, 2, 3, 4); assertEquals(1, asteroid.getLeft()); assertEquals(2, asteroid.getTop()); @@ -60,7 +60,7 @@ public class FlamingAsteroidTest extends CollisionTest { * Test what happens we collide with an asteroid */ @Test - public void testCollideFlamingAsteroid() { + void testCollideFlamingAsteroid() { testCollision( new FlamingAsteroid(1, 2, 3, 4), false, true, @@ -72,7 +72,7 @@ public class FlamingAsteroidTest extends CollisionTest { * Test what happens we collide with an meteoroid */ @Test - public void testCollideMeteoroid() { + void testCollideMeteoroid() { testCollision( new Meteoroid(1, 1, 3, 4), false, false, @@ -84,7 +84,7 @@ public class FlamingAsteroidTest extends CollisionTest { * Test what happens we collide with ISS */ @Test - public void testCollideSpaceStationIss() { + void testCollideSpaceStationIss() { testCollision( new SpaceStationIss(1, 1, 3, 4), true, true, @@ -96,7 +96,7 @@ public class FlamingAsteroidTest extends CollisionTest { * Test what happens we collide with MIR */ @Test - public void testCollideSpaceStationMir() { + void testCollideSpaceStationMir() { testCollision( new SpaceStationMir(1, 1, 3, 4), true, true, diff --git a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/MeteoroidTest.java b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/MeteoroidTest.java index d49026261..4a715589f 100644 --- a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/MeteoroidTest.java +++ b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/MeteoroidTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class MeteoroidTest extends CollisionTest { +class MeteoroidTest extends CollisionTest { @Override final Meteoroid getTestedObject() { @@ -44,7 +44,7 @@ public class MeteoroidTest extends CollisionTest { * Test the constructor parameters */ @Test - public void testConstructor() { + void testConstructor() { final var meteoroid = new Meteoroid(1, 2, 3, 4); assertEquals(1, meteoroid.getLeft()); assertEquals(2, meteoroid.getTop()); @@ -59,7 +59,7 @@ public class MeteoroidTest extends CollisionTest { * Test what happens we collide with an asteroid */ @Test - public void testCollideFlamingAsteroid() { + void testCollideFlamingAsteroid() { testCollision( new FlamingAsteroid(1, 1, 3, 4), false, true, @@ -71,7 +71,7 @@ public class MeteoroidTest extends CollisionTest { * Test what happens we collide with an meteoroid */ @Test - public void testCollideMeteoroid() { + void testCollideMeteoroid() { testCollision( new Meteoroid(1, 1, 3, 4), false, false, @@ -83,7 +83,7 @@ public class MeteoroidTest extends CollisionTest { * Test what happens we collide with ISS */ @Test - public void testCollideSpaceStationIss() { + void testCollideSpaceStationIss() { testCollision( new SpaceStationIss(1, 1, 3, 4), true, false, @@ -95,7 +95,7 @@ public class MeteoroidTest extends CollisionTest { * Test what happens we collide with MIR */ @Test - public void testCollideSpaceStationMir() { + void testCollideSpaceStationMir() { testCollision( new SpaceStationMir(1, 1, 3, 4), true, false, diff --git a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/RectangleTest.java b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/RectangleTest.java index 628838dc5..ada5cf9cd 100644 --- a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/RectangleTest.java +++ b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/RectangleTest.java @@ -32,13 +32,13 @@ import org.junit.jupiter.api.Test; /** * Unit test for Rectangle */ -public class RectangleTest { +class RectangleTest { /** * Test if the values passed through the constructor matches the values fetched from the getters */ @Test - public void testConstructor() { + void testConstructor() { final var rectangle = new Rectangle(1, 2, 3, 4); assertEquals(1, rectangle.getLeft()); assertEquals(2, rectangle.getTop()); @@ -51,7 +51,7 @@ public class RectangleTest { * #toString()} */ @Test - public void testToString() throws Exception { + void testToString() throws Exception { final var rectangle = new Rectangle(1, 2, 3, 4); assertEquals("[1,2,3,4]", rectangle.toString()); } @@ -60,7 +60,7 @@ public class RectangleTest { * Test if the {@link Rectangle} class can detect if it intersects with another rectangle. */ @Test - public void testIntersection() { + void testIntersection() { assertTrue(new Rectangle(0, 0, 1, 1).intersectsWith(new Rectangle(0, 0, 1, 1))); assertTrue(new Rectangle(0, 0, 1, 1).intersectsWith(new Rectangle(-1, -5, 7, 8))); assertFalse(new Rectangle(0, 0, 1, 1).intersectsWith(new Rectangle(2, 2, 3, 3))); diff --git a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationIssTest.java b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationIssTest.java index 7138160d5..9a6cd78b5 100644 --- a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationIssTest.java +++ b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationIssTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class SpaceStationIssTest extends CollisionTest { +class SpaceStationIssTest extends CollisionTest { @Override final SpaceStationIss getTestedObject() { @@ -44,7 +44,7 @@ public class SpaceStationIssTest extends CollisionTest { * Test the constructor parameters */ @Test - public void testConstructor() { + void testConstructor() { final var iss = new SpaceStationIss(1, 2, 3, 4); assertEquals(1, iss.getLeft()); assertEquals(2, iss.getTop()); @@ -59,7 +59,7 @@ public class SpaceStationIssTest extends CollisionTest { * Test what happens we collide with an asteroid */ @Test - public void testCollideFlamingAsteroid() { + void testCollideFlamingAsteroid() { testCollision( new FlamingAsteroid(1, 1, 3, 4), false, true, @@ -71,7 +71,7 @@ public class SpaceStationIssTest extends CollisionTest { * Test what happens we collide with an meteoroid */ @Test - public void testCollideMeteoroid() { + void testCollideMeteoroid() { testCollision( new Meteoroid(1, 1, 3, 4), false, false, @@ -83,7 +83,7 @@ public class SpaceStationIssTest extends CollisionTest { * Test what happens we collide with ISS */ @Test - public void testCollideSpaceStationIss() { + void testCollideSpaceStationIss() { testCollision( new SpaceStationIss(1, 1, 3, 4), true, false, @@ -95,7 +95,7 @@ public class SpaceStationIssTest extends CollisionTest { * Test what happens we collide with MIR */ @Test - public void testCollideSpaceStationMir() { + void testCollideSpaceStationMir() { testCollision( new SpaceStationMir(1, 1, 3, 4), true, false, diff --git a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationMirTest.java b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationMirTest.java index d72f71172..3c4fb7de0 100644 --- a/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationMirTest.java +++ b/double-dispatch/src/test/java/com/iluwatar/doubledispatch/SpaceStationMirTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class SpaceStationMirTest extends CollisionTest { +class SpaceStationMirTest extends CollisionTest { @Override final SpaceStationMir getTestedObject() { @@ -44,7 +44,7 @@ public class SpaceStationMirTest extends CollisionTest { * Test the constructor parameters */ @Test - public void testConstructor() { + void testConstructor() { final var mir = new SpaceStationMir(1, 2, 3, 4); assertEquals(1, mir.getLeft()); assertEquals(2, mir.getTop()); @@ -59,7 +59,7 @@ public class SpaceStationMirTest extends CollisionTest { * Test what happens we collide with an asteroid */ @Test - public void testCollideFlamingAsteroid() { + void testCollideFlamingAsteroid() { testCollision( new FlamingAsteroid(1, 1, 3, 4), false, true, @@ -71,7 +71,7 @@ public class SpaceStationMirTest extends CollisionTest { * Test what happens we collide with an meteoroid */ @Test - public void testCollideMeteoroid() { + void testCollideMeteoroid() { testCollision( new Meteoroid(1, 1, 3, 4), false, false, @@ -83,7 +83,7 @@ public class SpaceStationMirTest extends CollisionTest { * Test what happens we collide with ISS */ @Test - public void testCollideSpaceStationIss() { + void testCollideSpaceStationIss() { testCollision( new SpaceStationIss(1, 1, 3, 4), true, false, @@ -95,7 +95,7 @@ public class SpaceStationMirTest extends CollisionTest { * Test what happens we collide with MIR */ @Test - public void testCollideSpaceStationMir() { + void testCollideSpaceStationMir() { testCollision( new SpaceStationMir(1, 1, 3, 4), true, false, diff --git a/eip-aggregator/pom.xml b/eip-aggregator/pom.xml index 06733a51e..d06f26262 100644 --- a/eip-aggregator/pom.xml +++ b/eip-aggregator/pom.xml @@ -61,11 +61,6 @@ - - com.github.sbrannen - spring-test-junit5 - test - org.junit.jupiter junit-jupiter-engine diff --git a/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/AggregatorRouteTest.java b/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/AggregatorRouteTest.java index 17f9ea61d..305201694 100644 --- a/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/AggregatorRouteTest.java +++ b/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/AggregatorRouteTest.java @@ -49,7 +49,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @ActiveProfiles("test") @EnableAutoConfiguration @ComponentScan -public class AggregatorRouteTest { +class AggregatorRouteTest { @EndpointInject(uri = "{{entry}}") private ProducerTemplate entry; @@ -64,7 +64,7 @@ public class AggregatorRouteTest { */ @Test @DirtiesContext - public void testSplitter() throws Exception { + void testSplitter() throws Exception { // Three items in one entry message entry.sendBody("TEST1"); diff --git a/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/MessageAggregationStrategyTest.java b/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/MessageAggregationStrategyTest.java index 9279f11eb..40c15b370 100644 --- a/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/MessageAggregationStrategyTest.java +++ b/eip-aggregator/src/test/java/com/iluwatar/eip/aggregator/routes/MessageAggregationStrategyTest.java @@ -32,10 +32,10 @@ import org.junit.jupiter.api.Test; /** * Tests MessageAggregationStrategy */ -public class MessageAggregationStrategyTest { +class MessageAggregationStrategyTest { @Test - public void testAggregate() { + void testAggregate() { var mas = new MessageAggregationStrategy(); var oldExchange = new DefaultExchange((CamelContext) null); oldExchange.getIn().setBody("TEST1"); @@ -49,7 +49,7 @@ public class MessageAggregationStrategyTest { } @Test - public void testAggregateOldNull() { + void testAggregateOldNull() { var mas = new MessageAggregationStrategy(); var newExchange = new DefaultExchange((CamelContext) null); diff --git a/eip-message-channel/src/main/java/com/iluwatar/eip/message/channel/App.java b/eip-message-channel/src/main/java/com/iluwatar/eip/message/channel/App.java index 9d8a4644d..05fe94dba 100644 --- a/eip-message-channel/src/main/java/com/iluwatar/eip/message/channel/App.java +++ b/eip-message-channel/src/main/java/com/iluwatar/eip/message/channel/App.java @@ -23,10 +23,9 @@ package com.iluwatar.eip.message.channel; +import lombok.extern.slf4j.Slf4j; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * When two applications communicate with each other using a messaging system they first need to @@ -48,10 +47,9 @@ import org.slf4j.LoggerFactory; * Channel is established from the Direct component to console output. No actual messages are sent, * only the established routes are printed to standard output. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/eip-publish-subscribe/src/main/java/com/iluwatar/eip/publish/subscribe/App.java b/eip-publish-subscribe/src/main/java/com/iluwatar/eip/publish/subscribe/App.java index 3d04c631c..ef586a563 100644 --- a/eip-publish-subscribe/src/main/java/com/iluwatar/eip/publish/subscribe/App.java +++ b/eip-publish-subscribe/src/main/java/com/iluwatar/eip/publish/subscribe/App.java @@ -23,10 +23,9 @@ package com.iluwatar.eip.publish.subscribe; +import lombok.extern.slf4j.Slf4j; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * There are well-established patterns for implementing broadcasting. The Observer pattern describes @@ -45,10 +44,9 @@ import org.slf4j.LoggerFactory; *

In this example we use Apache Camel to establish a Publish-Subscribe Channel from * "direct-origin" to "mock:foo", "mock:bar" and "stream:out". */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/eip-splitter/pom.xml b/eip-splitter/pom.xml index 57c28125a..feda75c58 100644 --- a/eip-splitter/pom.xml +++ b/eip-splitter/pom.xml @@ -60,13 +60,7 @@ jaxb-api - - - com.github.sbrannen - spring-test-junit5 - test - org.junit.jupiter junit-jupiter-engine diff --git a/eip-splitter/src/test/java/com/iluwatar/eip/splitter/routes/SplitterRouteTest.java b/eip-splitter/src/test/java/com/iluwatar/eip/splitter/routes/SplitterRouteTest.java index cdd930985..bc48e9ab4 100644 --- a/eip-splitter/src/test/java/com/iluwatar/eip/splitter/routes/SplitterRouteTest.java +++ b/eip-splitter/src/test/java/com/iluwatar/eip/splitter/routes/SplitterRouteTest.java @@ -47,7 +47,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @ActiveProfiles("test") @EnableAutoConfiguration @ComponentScan -public class SplitterRouteTest { +class SplitterRouteTest { @EndpointInject(uri = "{{entry}}") private ProducerTemplate entry; @@ -62,7 +62,7 @@ public class SplitterRouteTest { */ @Test @DirtiesContext - public void testSplitter() throws Exception { + void testSplitter() throws Exception { // Three items in one entry message entry.sendBody(new String[]{"TEST1", "TEST2", "TEST3"}); diff --git a/eip-wire-tap/pom.xml b/eip-wire-tap/pom.xml index 365f793dd..d7c2d1568 100644 --- a/eip-wire-tap/pom.xml +++ b/eip-wire-tap/pom.xml @@ -60,13 +60,7 @@ jaxb-api - - - com.github.sbrannen - spring-test-junit5 - test - org.junit.jupiter junit-jupiter-engine diff --git a/eip-wire-tap/src/test/java/com/iluwatar/eip/wiretap/routes/WireTapRouteTest.java b/eip-wire-tap/src/test/java/com/iluwatar/eip/wiretap/routes/WireTapRouteTest.java index 2323d8bf9..49bb043c4 100644 --- a/eip-wire-tap/src/test/java/com/iluwatar/eip/wiretap/routes/WireTapRouteTest.java +++ b/eip-wire-tap/src/test/java/com/iluwatar/eip/wiretap/routes/WireTapRouteTest.java @@ -49,7 +49,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @ActiveProfiles("test") @EnableAutoConfiguration @ComponentScan -public class WireTapRouteTest { +class WireTapRouteTest { @EndpointInject(uri = "{{entry}}") private ProducerTemplate entry; @@ -67,7 +67,7 @@ public class WireTapRouteTest { */ @Test @DirtiesContext - public void testWireTap() throws Exception { + void testWireTap() throws Exception { entry.sendBody("TEST"); endpoint.expectedMessageCount(1); diff --git a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Event.java b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Event.java index be74d14e6..61b9d713a 100644 --- a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Event.java +++ b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Event.java @@ -23,20 +23,21 @@ package com.iluwatar.event.aggregator; +import lombok.RequiredArgsConstructor; + /** * Event enumeration. */ +@RequiredArgsConstructor public enum Event { - STARK_SIGHTED("Stark sighted"), WARSHIPS_APPROACHING("Warships approaching"), TRAITOR_DETECTED( - "Traitor detected"); + STARK_SIGHTED("Stark sighted"), + WARSHIPS_APPROACHING("Warships approaching"), + TRAITOR_DETECTED("Traitor detected"); private final String description; - Event(String description) { - this.description = description; - } - + @Override public String toString() { return description; } diff --git a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingJoffrey.java b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingJoffrey.java index 014ca89c0..55666451b 100644 --- a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingJoffrey.java +++ b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingJoffrey.java @@ -23,16 +23,14 @@ package com.iluwatar.event.aggregator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * KingJoffrey observes events from {@link KingsHand}. */ +@Slf4j public class KingJoffrey implements EventObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(KingJoffrey.class); - @Override public void onEvent(Event e) { LOGGER.info("Received event from the King's Hand: {}", e.toString()); diff --git a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Weekday.java b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Weekday.java index fcd367e25..0f93a90db 100644 --- a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Weekday.java +++ b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/Weekday.java @@ -23,9 +23,12 @@ package com.iluwatar.event.aggregator; +import lombok.RequiredArgsConstructor; + /** * Weekday enumeration. */ +@RequiredArgsConstructor public enum Weekday { MONDAY("Monday"), @@ -38,10 +41,7 @@ public enum Weekday { private final String description; - Weekday(String description) { - this.description = description; - } - + @Override public String toString() { return description; } diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventEmitterTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventEmitterTest.java index dcf1c71e3..1378ead9e 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventEmitterTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventEmitterTest.java @@ -41,7 +41,7 @@ import org.junit.jupiter.api.Test; * @param Type of Event Emitter * @author Jeroen Meulemeester */ -public abstract class EventEmitterTest { +abstract class EventEmitterTest { /** * Factory used to create a new instance of the test object with a default observer @@ -81,7 +81,7 @@ public abstract class EventEmitterTest { * is executed twice, once without a default emitter and once with */ @Test - public void testAllDays() { + void testAllDays() { testAllDaysWithoutDefaultObserver(specialDay, event); testAllDaysWithDefaultObserver(specialDay, event); } diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventTest.java index 891bbd10c..38e621acf 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/EventTest.java @@ -34,13 +34,13 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class EventTest { +class EventTest { /** * Verify if every event has a non-null, non-empty description */ @Test - public void testToString() { + void testToString() { Arrays.stream(Event.values()).map(Event::toString).forEach(toString -> { assertNotNull(toString); assertFalse(toString.trim().isEmpty()); diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingJoffreyTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingJoffreyTest.java index deb468e40..6195ac0bf 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingJoffreyTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingJoffreyTest.java @@ -41,17 +41,17 @@ import org.slf4j.LoggerFactory; * * @author Jeroen Meulemeester */ -public class KingJoffreyTest { +class KingJoffreyTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(KingJoffrey.class); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @@ -59,7 +59,7 @@ public class KingJoffreyTest { * Test if {@link KingJoffrey} tells us what event he received */ @Test - public void testOnEvent() { + void testOnEvent() { final var kingJoffrey = new KingJoffrey(); IntStream.range(0, Event.values().length).forEach(i -> { diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingsHandTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingsHandTest.java index 8a8d4eaef..51229b155 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingsHandTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/KingsHandTest.java @@ -38,7 +38,7 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class KingsHandTest extends EventEmitterTest { +class KingsHandTest extends EventEmitterTest { /** * Create a new test instance, using the correct object factory @@ -53,7 +53,7 @@ public class KingsHandTest extends EventEmitterTest { * just a mocked observer. */ @Test - public void testPassThrough() throws Exception { + void testPassThrough() throws Exception { final var observer = mock(EventObserver.class); final var kingsHand = new KingsHand(observer); diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordBaelishTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordBaelishTest.java index 5fe55f136..e227c80d7 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordBaelishTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordBaelishTest.java @@ -28,7 +28,7 @@ package com.iluwatar.event.aggregator; * * @author Jeroen Meulemeester */ -public class LordBaelishTest extends EventEmitterTest { +class LordBaelishTest extends EventEmitterTest { /** * Create a new test instance, using the correct object factory diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordVarysTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordVarysTest.java index c00c9002e..d0dcd42bd 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordVarysTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/LordVarysTest.java @@ -28,7 +28,7 @@ package com.iluwatar.event.aggregator; * * @author Jeroen Meulemeester */ -public class LordVarysTest extends EventEmitterTest { +class LordVarysTest extends EventEmitterTest { /** * Create a new test instance, using the correct object factory diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/ScoutTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/ScoutTest.java index 90bb8e45c..3a13869d2 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/ScoutTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/ScoutTest.java @@ -28,7 +28,7 @@ package com.iluwatar.event.aggregator; * * @author Jeroen Meulemeester */ -public class ScoutTest extends EventEmitterTest { +class ScoutTest extends EventEmitterTest { /** * Create a new test instance, using the correct object factory diff --git a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/WeekdayTest.java b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/WeekdayTest.java index 47d1d015e..e3bae241d 100644 --- a/event-aggregator/src/test/java/com/iluwatar/event/aggregator/WeekdayTest.java +++ b/event-aggregator/src/test/java/com/iluwatar/event/aggregator/WeekdayTest.java @@ -34,10 +34,10 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class WeekdayTest { +class WeekdayTest { @Test - public void testToString() { + void testToString() { Arrays.stream(Weekday.values()).forEach(weekday -> { final String toString = weekday.toString(); assertNotNull(toString); diff --git a/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/App.java b/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/App.java index 79159314f..fd7282fc2 100644 --- a/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/App.java +++ b/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/App.java @@ -26,8 +26,7 @@ package com.iluwatar.event.asynchronous; import java.io.IOException; import java.util.Properties; import java.util.Scanner; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This application demonstrates the Event-based Asynchronous pattern. Essentially, users (of @@ -55,10 +54,9 @@ import org.slf4j.LoggerFactory; * @see EventManager * @see Event */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - public static final String PROP_FILE_NAME = "config.properties"; boolean interactiveMode = false; diff --git a/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/Event.java b/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/Event.java index 323689e5d..77d6ab8c4 100644 --- a/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/Event.java +++ b/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/Event.java @@ -23,40 +23,25 @@ package com.iluwatar.event.asynchronous; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * Each Event runs as a separate/individual thread. */ +@Slf4j +@RequiredArgsConstructor public class Event implements IEvent, Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Event.class); - private final int eventId; private final int eventTime; - private final boolean isSynchronous; + @Getter + private final boolean synchronous; private Thread thread; private boolean isComplete = false; private ThreadCompleteListener eventListener; - /** - * Constructor. - * - * @param eventId event ID - * @param eventTime event time - * @param isSynchronous is of synchronous type - */ - public Event(final int eventId, final int eventTime, final boolean isSynchronous) { - this.eventId = eventId; - this.eventTime = eventTime; - this.isSynchronous = isSynchronous; - } - - public boolean isSynchronous() { - return isSynchronous; - } - @Override public void start() { thread = new Thread(this); @@ -88,6 +73,7 @@ public class Event implements IEvent, Runnable { try { Thread.sleep(1000); // Sleep for 1 second. } catch (InterruptedException e) { + Thread.currentThread().interrupt(); return; } } diff --git a/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/EventManager.java b/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/EventManager.java index abd3e9be4..dd83e23a9 100644 --- a/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/EventManager.java +++ b/event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/EventManager.java @@ -53,7 +53,7 @@ public class EventManager implements ThreadCompleteListener { */ public EventManager() { rand = new SecureRandom(); - eventPool = new ConcurrentHashMap(MAX_RUNNING_EVENTS); + eventPool = new ConcurrentHashMap<>(MAX_RUNNING_EVENTS); } diff --git a/event-asynchronous/src/test/java/com/iluwatar/event/asynchronous/EventAsynchronousTest.java b/event-asynchronous/src/test/java/com/iluwatar/event/asynchronous/EventAsynchronousTest.java index a590d2be8..9ece86a7a 100644 --- a/event-asynchronous/src/test/java/com/iluwatar/event/asynchronous/EventAsynchronousTest.java +++ b/event-asynchronous/src/test/java/com/iluwatar/event/asynchronous/EventAsynchronousTest.java @@ -35,11 +35,11 @@ import org.slf4j.LoggerFactory; /** * Application test */ -public class EventAsynchronousTest { +class EventAsynchronousTest { private static final Logger LOGGER = LoggerFactory.getLogger(EventAsynchronousTest.class); @Test - public void testAsynchronousEvent() { + void testAsynchronousEvent() { var eventManager = new EventManager(); try { var aEventId = eventManager.createAsync(60); @@ -55,7 +55,7 @@ public class EventAsynchronousTest { } @Test - public void testSynchronousEvent() { + void testSynchronousEvent() { var eventManager = new EventManager(); try { var sEventId = eventManager.create(60); @@ -72,7 +72,7 @@ public class EventAsynchronousTest { } @Test - public void testUnsuccessfulSynchronousEvent() { + void testUnsuccessfulSynchronousEvent() { assertThrows(InvalidOperationException.class, () -> { var eventManager = new EventManager(); try { @@ -87,7 +87,7 @@ public class EventAsynchronousTest { } @Test - public void testFullSynchronousEvent() { + void testFullSynchronousEvent() { var eventManager = new EventManager(); try { var eventTime = 1; @@ -110,7 +110,7 @@ public class EventAsynchronousTest { } @Test - public void testFullAsynchronousEvent() { + void testFullAsynchronousEvent() { var eventManager = new EventManager(); try { var eventTime = 1; diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserCreatedEvent.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserCreatedEvent.java index 9b11125dd..0a50be401 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserCreatedEvent.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserCreatedEvent.java @@ -24,21 +24,17 @@ package com.iluwatar.eda.event; import com.iluwatar.eda.model.User; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * The {@link UserCreatedEvent} should should be dispatched whenever a user has been created. This * class can be extended to contain details about the user has been created. In this example, the * entire {@link User} object is passed on as data with the event. */ +@RequiredArgsConstructor +@Getter public class UserCreatedEvent extends AbstractEvent { private final User user; - - public UserCreatedEvent(User user) { - this.user = user; - } - - public User getUser() { - return user; - } } diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserUpdatedEvent.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserUpdatedEvent.java index 6df09f97d..beab7fbf8 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserUpdatedEvent.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/event/UserUpdatedEvent.java @@ -24,21 +24,17 @@ package com.iluwatar.eda.event; import com.iluwatar.eda.model.User; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * The {@link UserUpdatedEvent} should should be dispatched whenever a user has been updated. This * class can be extended to contain details about the user has been updated. In this example, the * entire {@link User} object is passed on as data with the event. */ +@RequiredArgsConstructor +@Getter public class UserUpdatedEvent extends AbstractEvent { private final User user; - - public UserUpdatedEvent(User user) { - this.user = user; - } - - public User getUser() { - return user; - } } diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserCreatedEventHandler.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserCreatedEventHandler.java index e8805d90f..793ace392 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserCreatedEventHandler.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserCreatedEventHandler.java @@ -25,16 +25,14 @@ package com.iluwatar.eda.handler; import com.iluwatar.eda.event.UserCreatedEvent; import com.iluwatar.eda.framework.Handler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Handles the {@link UserCreatedEvent} message. */ +@Slf4j public class UserCreatedEventHandler implements Handler { - private static final Logger LOGGER = LoggerFactory.getLogger(UserCreatedEventHandler.class); - @Override public void onEvent(UserCreatedEvent event) { LOGGER.info("User '{}' has been Created!", event.getUser().getUsername()); diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserUpdatedEventHandler.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserUpdatedEventHandler.java index ee2b64ac0..976c6ab46 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserUpdatedEventHandler.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/handler/UserUpdatedEventHandler.java @@ -25,16 +25,14 @@ package com.iluwatar.eda.handler; import com.iluwatar.eda.event.UserUpdatedEvent; import com.iluwatar.eda.framework.Handler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Handles the {@link UserUpdatedEvent} message. */ +@Slf4j public class UserUpdatedEventHandler implements Handler { - private static final Logger LOGGER = LoggerFactory.getLogger(UserUpdatedEventHandler.class); - @Override public void onEvent(UserUpdatedEvent event) { LOGGER.info("User '{}' has been Updated!", event.getUser().getUsername()); diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/model/User.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/model/User.java index 43bd8da49..4d28c7605 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/model/User.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/model/User.java @@ -25,20 +25,16 @@ package com.iluwatar.eda.model; import com.iluwatar.eda.event.UserCreatedEvent; import com.iluwatar.eda.event.UserUpdatedEvent; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * This {@link User} class is a basic pojo used to demonstrate user data sent along with the {@link * UserCreatedEvent} and {@link UserUpdatedEvent} events. */ +@RequiredArgsConstructor +@Getter public class User { private final String username; - - public User(String username) { - this.username = username; - } - - public String getUsername() { - return username; - } } diff --git a/event-driven-architecture/src/test/java/com/iluwatar/eda/event/UserCreatedEventTest.java b/event-driven-architecture/src/test/java/com/iluwatar/eda/event/UserCreatedEventTest.java index 97c368513..67e420fd0 100644 --- a/event-driven-architecture/src/test/java/com/iluwatar/eda/event/UserCreatedEventTest.java +++ b/event-driven-architecture/src/test/java/com/iluwatar/eda/event/UserCreatedEventTest.java @@ -31,14 +31,14 @@ import org.junit.jupiter.api.Test; /** * {@link UserCreatedEventTest} tests and verifies {@link AbstractEvent} behaviour. */ -public class UserCreatedEventTest { +class UserCreatedEventTest { /** * This unit test should correctly return the {@link AbstractEvent} class type when calling the * {@link AbstractEvent#getType() getType} method. */ @Test - public void testGetEventType() { + void testGetEventType() { var user = new User("iluwatar"); var userCreatedEvent = new UserCreatedEvent(user); assertEquals(UserCreatedEvent.class, userCreatedEvent.getType()); diff --git a/event-driven-architecture/src/test/java/com/iluwatar/eda/framework/EventDispatcherTest.java b/event-driven-architecture/src/test/java/com/iluwatar/eda/framework/EventDispatcherTest.java index 7d0fb2346..1283aab1c 100644 --- a/event-driven-architecture/src/test/java/com/iluwatar/eda/framework/EventDispatcherTest.java +++ b/event-driven-architecture/src/test/java/com/iluwatar/eda/framework/EventDispatcherTest.java @@ -36,14 +36,14 @@ import org.junit.jupiter.api.Test; /** * Event Dispatcher unit tests to assert and verify correct event dispatcher behaviour */ -public class EventDispatcherTest { +class EventDispatcherTest { /** * This unit test should register events and event handlers correctly with the event dispatcher * and events should be dispatched accordingly. */ @Test - public void testEventDriverPattern() { + void testEventDriverPattern() { var dispatcher = spy(new EventDispatcher()); var userCreatedEventHandler = spy(new UserCreatedEventHandler()); diff --git a/event-queue/src/main/java/com/iluwatar/event/queue/App.java b/event-queue/src/main/java/com/iluwatar/event/queue/App.java index 2987d0e06..8d779623d 100644 --- a/event-queue/src/main/java/com/iluwatar/event/queue/App.java +++ b/event-queue/src/main/java/com/iluwatar/event/queue/App.java @@ -27,8 +27,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import javax.sound.sampled.UnsupportedAudioFileException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Event or message queues provide an asynchronous communications protocol, meaning that the sender @@ -40,10 +39,9 @@ import org.slf4j.LoggerFactory; * enqueues the request and returns. The request processor then processes items from the queue at a * later time. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java b/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java index 1b97095c7..7d7bf2a34 100644 --- a/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java +++ b/event-queue/src/main/java/com/iluwatar/event/queue/Audio.java @@ -29,16 +29,15 @@ import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This class implements the Event Queue pattern. * * @author mkuprivecz */ +@Slf4j public class Audio { - private static final Logger LOGGER = LoggerFactory.getLogger(Audio.class); private static final Audio INSTANCE = new Audio(); private static final int MAX_PENDING = 16; diff --git a/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java b/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java index da462c74c..4364483bd 100644 --- a/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java +++ b/event-queue/src/main/java/com/iluwatar/event/queue/PlayMessage.java @@ -24,36 +24,22 @@ package com.iluwatar.event.queue; import javax.sound.sampled.AudioInputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; /** * The Event Queue's queue will store the instances of this class. * * @author mkuprivecz */ +@Getter +@AllArgsConstructor public class PlayMessage { - private AudioInputStream stream; + private final AudioInputStream stream; + @Setter private float volume; - public PlayMessage(AudioInputStream stream, float volume) { - setStream(stream); - setVolume(volume); - } - - public AudioInputStream getStream() { - return stream; - } - - private void setStream(AudioInputStream stream) { - this.stream = stream; - } - - public float getVolume() { - return volume; - } - - public void setVolume(float volume) { - this.volume = volume; - } } diff --git a/event-queue/src/test/java/com/iluwatar/event/queue/AudioTest.java b/event-queue/src/test/java/com/iluwatar/event/queue/AudioTest.java index bfe16c839..9e2cdcbc6 100644 --- a/event-queue/src/test/java/com/iluwatar/event/queue/AudioTest.java +++ b/event-queue/src/test/java/com/iluwatar/event/queue/AudioTest.java @@ -23,22 +23,21 @@ package com.iluwatar.event.queue; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import javax.sound.sampled.UnsupportedAudioFileException; -import java.io.IOException; - import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.IOException; +import javax.sound.sampled.UnsupportedAudioFileException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + /** * Testing the Audio service of the Queue * @author mkuprivecz * */ -public class AudioTest { +class AudioTest { private Audio audio; @@ -46,6 +45,7 @@ public class AudioTest { void createAudioInstance() { audio = new Audio(); } + /** * Test here that the playSound method works correctly * @throws UnsupportedAudioFileException when the audio file is not supported @@ -53,7 +53,7 @@ public class AudioTest { * @throws InterruptedException when the test is interrupted externally */ @Test - public void testPlaySound() throws UnsupportedAudioFileException, IOException, InterruptedException { + void testPlaySound() throws UnsupportedAudioFileException, IOException, InterruptedException { audio.playSound(audio.getAudioStream("./etc/Bass-Drum-1.wav"), -10.0f); // test that service is started assertTrue(audio.isServiceRunning()); @@ -72,7 +72,7 @@ public class AudioTest { * @throws InterruptedException when the test is interrupted externally */ @Test - public void testQueue() throws UnsupportedAudioFileException, IOException, InterruptedException { + void testQueue() throws UnsupportedAudioFileException, IOException, InterruptedException { audio.playSound(audio.getAudioStream("./etc/Bass-Drum-1.aif"), -10.0f); audio.playSound(audio.getAudioStream("./etc/Bass-Drum-1.aif"), -10.0f); audio.playSound(audio.getAudioStream("./etc/Bass-Drum-1.aif"), -10.0f); diff --git a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/app/App.java b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/app/App.java index dd67366ee..6635dddf7 100644 --- a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/app/App.java +++ b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/app/App.java @@ -30,8 +30,7 @@ import com.iluwatar.event.sourcing.processor.DomainEventProcessor; import com.iluwatar.event.sourcing.state.AccountAggregate; import java.math.BigDecimal; import java.util.Date; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Event Sourcing : Instead of storing just the current state of the data in a domain, use an @@ -50,9 +49,8 @@ import org.slf4j.LoggerFactory; * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Slf4j public class App { - - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** * The constant ACCOUNT OF DAENERYS. */ diff --git a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/domain/Account.java b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/domain/Account.java index bb4ba7e12..3f4945d1b 100644 --- a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/domain/Account.java +++ b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/domain/Account.java @@ -28,8 +28,10 @@ import com.iluwatar.event.sourcing.event.MoneyDepositEvent; import com.iluwatar.event.sourcing.event.MoneyTransferEvent; import com.iluwatar.event.sourcing.state.AccountAggregate; import java.math.BigDecimal; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * This is the Account class that holds the account info, the account number, account owner name and @@ -38,66 +40,19 @@ import org.slf4j.LoggerFactory; * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Setter +@Getter +@RequiredArgsConstructor +@Slf4j public class Account { - private static final Logger LOGGER = LoggerFactory.getLogger(Account.class); - private final int accountNo; private final String owner; - private BigDecimal money; + private BigDecimal money = BigDecimal.ZERO; private static final String MSG = "Some external api for only realtime execution could be called here."; - /** - * Instantiates a new Account. - * - * @param accountNo the account no - * @param owner the owner - */ - public Account(int accountNo, String owner) { - this.accountNo = accountNo; - this.owner = owner; - money = BigDecimal.ZERO; - } - - /** - * Gets account no. - * - * @return the account no - */ - public int getAccountNo() { - return accountNo; - } - - /** - * Gets owner. - * - * @return the owner - */ - public String getOwner() { - return owner; - } - - /** - * Gets money. - * - * @return the money - */ - public BigDecimal getMoney() { - return money; - } - - /** - * Sets money. - * - * @param money the money - */ - public void setMoney(BigDecimal money) { - this.money = money; - } - - /** * Copy account. * diff --git a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/AccountCreateEvent.java b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/AccountCreateEvent.java index 1d7b042dd..0845590eb 100644 --- a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/AccountCreateEvent.java +++ b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/AccountCreateEvent.java @@ -25,6 +25,7 @@ package com.iluwatar.event.sourcing.event; import com.iluwatar.event.sourcing.domain.Account; import com.iluwatar.event.sourcing.state.AccountAggregate; +import lombok.Getter; /** * This is the class that implements account create event. Holds the necessary info for an account @@ -33,6 +34,7 @@ import com.iluwatar.event.sourcing.state.AccountAggregate; * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Getter public class AccountCreateEvent extends DomainEvent { private final int accountNo; @@ -52,24 +54,6 @@ public class AccountCreateEvent extends DomainEvent { this.owner = owner; } - /** - * Gets account no. - * - * @return the account no - */ - public int getAccountNo() { - return accountNo; - } - - /** - * Gets owner. - * - * @return the owner - */ - public String getOwner() { - return owner; - } - @Override public void process() { var account = AccountAggregate.getAccount(accountNo); diff --git a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/DomainEvent.java b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/DomainEvent.java index 059970f6d..05c0c2173 100644 --- a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/DomainEvent.java +++ b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/DomainEvent.java @@ -24,12 +24,18 @@ package com.iluwatar.event.sourcing.event; import java.io.Serializable; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; /** * This is the base class for domain events. All events must extend this class. * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Setter +@Getter +@RequiredArgsConstructor public abstract class DomainEvent implements Serializable { private final long sequenceId; @@ -37,66 +43,9 @@ public abstract class DomainEvent implements Serializable { private final String eventClassName; private boolean realTime = true; - /** - * Instantiates a new Domain event. - * - * @param sequenceId the sequence id - * @param createdTime the created time - * @param eventClassName the event class name - */ - public DomainEvent(long sequenceId, long createdTime, String eventClassName) { - this.sequenceId = sequenceId; - this.createdTime = createdTime; - this.eventClassName = eventClassName; - } - - /** - * Gets sequence id. - * - * @return the sequence id - */ - public long getSequenceId() { - return sequenceId; - } - - /** - * Gets created time. - * - * @return the created time - */ - public long getCreatedTime() { - return createdTime; - } - - /** - * Is real time boolean. - * - * @return the boolean - */ - public boolean isRealTime() { - return realTime; - } - - /** - * Sets real time. - * - * @param realTime the real time - */ - public void setRealTime(boolean realTime) { - this.realTime = realTime; - } - /** * Process. */ public abstract void process(); - /** - * Gets event class name. - * - * @return the event class name - */ - public String getEventClassName() { - return eventClassName; - } } diff --git a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyDepositEvent.java b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyDepositEvent.java index 9acf0d506..27bcd15b7 100644 --- a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyDepositEvent.java +++ b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyDepositEvent.java @@ -26,6 +26,7 @@ package com.iluwatar.event.sourcing.event; import com.iluwatar.event.sourcing.state.AccountAggregate; import java.math.BigDecimal; import java.util.Optional; +import lombok.Getter; /** * This is the class that implements money deposit event. Holds the necessary info for a money @@ -34,6 +35,7 @@ import java.util.Optional; * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Getter public class MoneyDepositEvent extends DomainEvent { private final BigDecimal money; @@ -53,24 +55,6 @@ public class MoneyDepositEvent extends DomainEvent { this.accountNo = accountNo; } - /** - * Gets money. - * - * @return the money - */ - public BigDecimal getMoney() { - return money; - } - - /** - * Gets account no. - * - * @return the account no - */ - public int getAccountNo() { - return accountNo; - } - @Override public void process() { var account = Optional.ofNullable(AccountAggregate.getAccount(accountNo)) diff --git a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyTransferEvent.java b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyTransferEvent.java index b76f8e22f..51f0a23b1 100644 --- a/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyTransferEvent.java +++ b/event-sourcing/src/main/java/com/iluwatar/event/sourcing/event/MoneyTransferEvent.java @@ -26,6 +26,7 @@ package com.iluwatar.event.sourcing.event; import com.iluwatar.event.sourcing.state.AccountAggregate; import java.math.BigDecimal; import java.util.Optional; +import lombok.Getter; /** * This is the class that implements money transfer event. Holds the necessary info for a money @@ -34,6 +35,7 @@ import java.util.Optional; * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Getter public class MoneyTransferEvent extends DomainEvent { private final BigDecimal money; @@ -57,33 +59,6 @@ public class MoneyTransferEvent extends DomainEvent { this.accountNoTo = accountNoTo; } - /** - * Gets money. - * - * @return the money - */ - public BigDecimal getMoney() { - return money; - } - - /** - * Gets account no which the money comes from. - * - * @return the account no from - */ - public int getAccountNoFrom() { - return accountNoFrom; - } - - /** - * Gets account no which the money goes to. - * - * @return the account no to - */ - public int getAccountNoTo() { - return accountNoTo; - } - @Override public void process() { var accountFrom = Optional.ofNullable(AccountAggregate.getAccount(accountNoFrom)) diff --git a/event-sourcing/src/test/java/IntegrationTest.java b/event-sourcing/src/test/java/IntegrationTest.java index dfa405809..1530e6e17 100644 --- a/event-sourcing/src/test/java/IntegrationTest.java +++ b/event-sourcing/src/test/java/IntegrationTest.java @@ -40,7 +40,7 @@ import org.junit.jupiter.api.Test; *

* Created by Serdar Hamzaogullari on 19.08.2017. */ -public class IntegrationTest { +class IntegrationTest { /** * The Domain event processor. @@ -51,7 +51,7 @@ public class IntegrationTest { * Initialize. */ @BeforeEach - public void initialize() { + void initialize() { eventProcessor = new DomainEventProcessor(); } @@ -59,7 +59,7 @@ public class IntegrationTest { * Test state recovery. */ @Test - public void testStateRecovery() { + void testStateRecovery() { eventProcessor.reset(); eventProcessor.process(new AccountCreateEvent( diff --git a/execute-around/src/test/java/com/iluwatar/execute/around/SimpleFileWriterTest.java b/execute-around/src/test/java/com/iluwatar/execute/around/SimpleFileWriterTest.java index 621dccee6..a927ab246 100644 --- a/execute-around/src/test/java/com/iluwatar/execute/around/SimpleFileWriterTest.java +++ b/execute-around/src/test/java/com/iluwatar/execute/around/SimpleFileWriterTest.java @@ -42,19 +42,19 @@ import org.junit.rules.TemporaryFolder; * @author Jeroen Meulemeester */ @EnableRuleMigrationSupport -public class SimpleFileWriterTest { +class SimpleFileWriterTest { @Rule public final TemporaryFolder testFolder = new TemporaryFolder(); @Test - public void testWriterNotNull() throws Exception { + void testWriterNotNull() throws Exception { final var temporaryFile = this.testFolder.newFile(); new SimpleFileWriter(temporaryFile.getPath(), Assertions::assertNotNull); } @Test - public void testCreatesNonExistentFile() throws Exception { + void testCreatesNonExistentFile() throws Exception { final var nonExistingFile = new File(this.testFolder.getRoot(), "non-existing-file"); assertFalse(nonExistingFile.exists()); @@ -63,7 +63,7 @@ public class SimpleFileWriterTest { } @Test - public void testContentsAreWrittenToFile() throws Exception { + void testContentsAreWrittenToFile() throws Exception { final var testMessage = "Test message"; final var temporaryFile = this.testFolder.newFile(); @@ -74,7 +74,7 @@ public class SimpleFileWriterTest { } @Test - public void testRipplesIoExceptionOccurredWhileWriting() { + void testRipplesIoExceptionOccurredWhileWriting() { var message = "Some error"; assertThrows(IOException.class, () -> { final var temporaryFile = this.testFolder.newFile(); diff --git a/extension-objects/src/main/java/concreteextensions/Commander.java b/extension-objects/src/main/java/concreteextensions/Commander.java index 6981d303c..24d8351fc 100644 --- a/extension-objects/src/main/java/concreteextensions/Commander.java +++ b/extension-objects/src/main/java/concreteextensions/Commander.java @@ -24,29 +24,24 @@ package concreteextensions; import abstractextensions.CommanderExtension; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import units.CommanderUnit; /** * Class defining Commander. */ +@Getter +@RequiredArgsConstructor +@Slf4j public class Commander implements CommanderExtension { - private static final Logger LOGGER = LoggerFactory.getLogger(Commander.class); - private final CommanderUnit unit; - public Commander(CommanderUnit commanderUnit) { - this.unit = commanderUnit; - } - @Override public void commanderReady() { LOGGER.info("[Commander] " + unit.getName() + " is ready!"); } - public CommanderUnit getUnit() { - return unit; - } } diff --git a/extension-objects/src/main/java/concreteextensions/Sergeant.java b/extension-objects/src/main/java/concreteextensions/Sergeant.java index 97dc80443..0f10466f2 100644 --- a/extension-objects/src/main/java/concreteextensions/Sergeant.java +++ b/extension-objects/src/main/java/concreteextensions/Sergeant.java @@ -24,29 +24,24 @@ package concreteextensions; import abstractextensions.SergeantExtension; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import units.SergeantUnit; /** * Class defining Sergeant. */ +@Getter +@RequiredArgsConstructor +@Slf4j public class Sergeant implements SergeantExtension { - private static final Logger LOGGER = LoggerFactory.getLogger(Sergeant.class); - private final SergeantUnit unit; - public Sergeant(SergeantUnit sergeantUnit) { - this.unit = sergeantUnit; - } - @Override public void sergeantReady() { LOGGER.info("[Sergeant] " + unit.getName() + " is ready!"); } - public SergeantUnit getUnit() { - return unit; - } } diff --git a/extension-objects/src/main/java/concreteextensions/Soldier.java b/extension-objects/src/main/java/concreteextensions/Soldier.java index 65f50f254..74b45089b 100644 --- a/extension-objects/src/main/java/concreteextensions/Soldier.java +++ b/extension-objects/src/main/java/concreteextensions/Soldier.java @@ -24,28 +24,24 @@ package concreteextensions; import abstractextensions.SoldierExtension; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import units.SoldierUnit; /** * Class defining Soldier. */ +@Getter +@RequiredArgsConstructor +@Slf4j public class Soldier implements SoldierExtension { - private static final Logger LOGGER = LoggerFactory.getLogger(Soldier.class); private final SoldierUnit unit; - public Soldier(SoldierUnit soldierUnit) { - this.unit = soldierUnit; - } - @Override public void soldierReady() { LOGGER.info("[Soldier] " + unit.getName() + " is ready!"); } - public SoldierUnit getUnit() { - return unit; - } } diff --git a/extension-objects/src/main/java/units/Unit.java b/extension-objects/src/main/java/units/Unit.java index 799a473a4..4847ec06a 100644 --- a/extension-objects/src/main/java/units/Unit.java +++ b/extension-objects/src/main/java/units/Unit.java @@ -24,10 +24,14 @@ package units; import abstractextensions.UnitExtension; +import lombok.Getter; +import lombok.Setter; /** * Class defining Unit, other units will extend this class. */ +@Setter +@Getter public class Unit { private String name; @@ -37,14 +41,6 @@ public class Unit { this.name = name; } - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - public UnitExtension getUnitExtension(String extensionName) { return null; } diff --git a/extension-objects/src/test/java/concreteextensions/CommanderTest.java b/extension-objects/src/test/java/concreteextensions/CommanderTest.java index 4378131e6..79e219588 100644 --- a/extension-objects/src/test/java/concreteextensions/CommanderTest.java +++ b/extension-objects/src/test/java/concreteextensions/CommanderTest.java @@ -57,9 +57,9 @@ class CommanderTest { List logsList = listAppender.list; assertEquals("[Commander] " + commander.getUnit().getName() + " is ready!", logsList.get(0) - .getMessage()); + .getMessage()); assertEquals(Level.INFO, logsList.get(0) - .getLevel()); + .getLevel()); } } \ No newline at end of file diff --git a/extension-objects/src/test/java/concreteextensions/SergeantTest.java b/extension-objects/src/test/java/concreteextensions/SergeantTest.java index 0d24d0fe3..8b59c3b48 100644 --- a/extension-objects/src/test/java/concreteextensions/SergeantTest.java +++ b/extension-objects/src/test/java/concreteextensions/SergeantTest.java @@ -55,9 +55,9 @@ class SergeantTest { List logsList = listAppender.list; assertEquals("[Sergeant] " + sergeant.getUnit().getName() + " is ready!", logsList.get(0) - .getMessage()); + .getMessage()); assertEquals(Level.INFO, logsList.get(0) - .getLevel()); + .getLevel()); } } \ No newline at end of file diff --git a/extension-objects/src/test/java/concreteextensions/SoldierTest.java b/extension-objects/src/test/java/concreteextensions/SoldierTest.java index 48af362c1..6286bf7a8 100644 --- a/extension-objects/src/test/java/concreteextensions/SoldierTest.java +++ b/extension-objects/src/test/java/concreteextensions/SoldierTest.java @@ -55,9 +55,9 @@ class SoldierTest { List logsList = listAppender.list; assertEquals("[Soldier] " + soldier.getUnit().getName() + " is ready!", logsList.get(0) - .getMessage()); + .getMessage()); assertEquals(Level.INFO, logsList.get(0) - .getLevel()); + .getLevel()); } } \ No newline at end of file diff --git a/extension-objects/src/test/java/units/CommanderUnitTest.java b/extension-objects/src/test/java/units/CommanderUnitTest.java index 11fc84240..e15106c90 100644 --- a/extension-objects/src/test/java/units/CommanderUnitTest.java +++ b/extension-objects/src/test/java/units/CommanderUnitTest.java @@ -31,9 +31,10 @@ import org.junit.jupiter.api.Test; /** * Created by Srdjan on 03-May-17. */ -public class CommanderUnitTest { +class CommanderUnitTest { + @Test - public void getUnitExtension() { + void getUnitExtension() { final var unit = new CommanderUnit("CommanderUnitName"); assertNull(unit.getUnitExtension("SoldierExtension")); diff --git a/extension-objects/src/test/java/units/SergeantUnitTest.java b/extension-objects/src/test/java/units/SergeantUnitTest.java index 3afa2cc81..6db646371 100644 --- a/extension-objects/src/test/java/units/SergeantUnitTest.java +++ b/extension-objects/src/test/java/units/SergeantUnitTest.java @@ -31,9 +31,10 @@ import org.junit.jupiter.api.Test; /** * Created by Srdjan on 03-May-17. */ -public class SergeantUnitTest { +class SergeantUnitTest { + @Test - public void getUnitExtension() { + void getUnitExtension() { final var unit = new SergeantUnit("SergeantUnitName"); assertNull(unit.getUnitExtension("SoldierExtension")); diff --git a/extension-objects/src/test/java/units/SoldierUnitTest.java b/extension-objects/src/test/java/units/SoldierUnitTest.java index 51c8c63ca..cba9dbb48 100644 --- a/extension-objects/src/test/java/units/SoldierUnitTest.java +++ b/extension-objects/src/test/java/units/SoldierUnitTest.java @@ -31,9 +31,10 @@ import org.junit.jupiter.api.Test; /** * Created by Srdjan on 03-May-17. */ -public class SoldierUnitTest { +class SoldierUnitTest { + @Test - public void getUnitExtension() { + void getUnitExtension() { final var unit = new SoldierUnit("SoldierUnitName"); assertNotNull(unit.getUnitExtension("SoldierExtension")); diff --git a/extension-objects/src/test/java/units/UnitTest.java b/extension-objects/src/test/java/units/UnitTest.java index cbb90ff24..ec194e10b 100644 --- a/extension-objects/src/test/java/units/UnitTest.java +++ b/extension-objects/src/test/java/units/UnitTest.java @@ -31,10 +31,10 @@ import org.junit.jupiter.api.Test; /** * Created by Srdjan on 03-May-17. */ -public class UnitTest { +class UnitTest { @Test - public void testConstGetSet() throws Exception { + void testConstGetSet() throws Exception { final var name = "testName"; final var unit = new Unit(name); assertEquals(name, unit.getName()); diff --git a/facade/README.md b/facade/README.md index f6765e325..f08aecdb2 100644 --- a/facade/README.md +++ b/facade/README.md @@ -38,10 +38,9 @@ Let's take our goldmine example from above. Here we have the dwarven mine worker there's a base class `DwarvenMineWorker`: ```java +@Slf4j public abstract class DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenMineWorker.class); - public void goToSleep() { LOGGER.info("{} goes to sleep.", name()); } @@ -99,10 +98,9 @@ Then we have the concrete dwarf classes `DwarvenTunnelDigger`, `DwarvenGoldDigge `DwarvenCartOperator`: ```java +@Slf4j public class DwarvenTunnelDigger extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenTunnelDigger.class); - @Override public void work() { LOGGER.info("{} creates another promising tunnel.", name()); @@ -114,10 +112,9 @@ public class DwarvenTunnelDigger extends DwarvenMineWorker { } } +@Slf4j public class DwarvenGoldDigger extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenGoldDigger.class); - @Override public void work() { LOGGER.info("{} digs for gold.", name()); @@ -129,10 +126,9 @@ public class DwarvenGoldDigger extends DwarvenMineWorker { } } +@Slf4j public class DwarvenCartOperator extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenCartOperator.class); - @Override public void work() { LOGGER.info("{} moves gold chunks out of the mine.", name()); diff --git a/facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java b/facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java index db383e47b..14881f3e7 100644 --- a/facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenCartOperator.java @@ -23,16 +23,14 @@ package com.iluwatar.facade; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * DwarvenCartOperator is one of the goldmine subsystems. */ +@Slf4j public class DwarvenCartOperator extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenCartOperator.class); - @Override public void work() { LOGGER.info("{} moves gold chunks out of the mine.", name()); diff --git a/facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java index 6a1a8f057..70c946e40 100644 --- a/facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldDigger.java @@ -23,16 +23,14 @@ package com.iluwatar.facade; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * DwarvenGoldDigger is one of the goldmine subsystems. */ +@Slf4j public class DwarvenGoldDigger extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenGoldDigger.class); - @Override public void work() { LOGGER.info("{} digs for gold.", name()); diff --git a/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java b/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java index a6b832cd1..d963f1da5 100644 --- a/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java @@ -24,16 +24,14 @@ package com.iluwatar.facade; import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * DwarvenMineWorker is one of the goldmine subsystems. */ +@Slf4j public abstract class DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenMineWorker.class); - public void goToSleep() { LOGGER.info("{} goes to sleep.", name()); } diff --git a/facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java b/facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java index 2fea7955a..f5bb6dd4f 100644 --- a/facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenTunnelDigger.java @@ -23,16 +23,14 @@ package com.iluwatar.facade; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * DwarvenTunnelDigger is one of the goldmine subsystems. */ +@Slf4j public class DwarvenTunnelDigger extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenTunnelDigger.class); - @Override public void work() { LOGGER.info("{} creates another promising tunnel.", name()); diff --git a/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java b/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java index d93ba2a5e..2eccf3b4f 100644 --- a/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java +++ b/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java @@ -41,17 +41,17 @@ import org.slf4j.LoggerFactory; * * @author Jeroen Meulemeester */ -public class DwarvenGoldmineFacadeTest { +class DwarvenGoldmineFacadeTest { private InMemoryAppender appender; @BeforeEach - public void setUp() { + void setUp() { appender = new InMemoryAppender(); } @AfterEach - public void tearDown() { + void tearDown() { appender.stop(); } @@ -63,7 +63,7 @@ public class DwarvenGoldmineFacadeTest { * See if the workers are doing what's expected from them on each step. */ @Test - public void testFullWorkDay() { + void testFullWorkDay() { final var goldMine = new DwarvenGoldmineFacade(); goldMine.startNewDay(); @@ -108,7 +108,7 @@ public class DwarvenGoldmineFacadeTest { assertEquals(15, appender.getLogSize()); } - private class InMemoryAppender extends AppenderBase { + private static class InMemoryAppender extends AppenderBase { private final List log = new LinkedList<>(); diff --git a/factory-kit/src/main/java/com/iluwatar/factorykit/App.java b/factory-kit/src/main/java/com/iluwatar/factorykit/App.java index 580e60006..e5f0b4285 100644 --- a/factory-kit/src/main/java/com/iluwatar/factorykit/App.java +++ b/factory-kit/src/main/java/com/iluwatar/factorykit/App.java @@ -23,8 +23,7 @@ package com.iluwatar.factorykit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Factory-kit is a creational pattern which defines a factory of immutable content with separated @@ -38,10 +37,9 @@ import org.slf4j.LoggerFactory; * an input representing an instance of {@link WeaponType} that needs to be mapped explicitly with * desired class type in the factory instance. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponType.java b/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponType.java index cc4a1df1f..42fd89c4e 100644 --- a/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponType.java +++ b/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponType.java @@ -27,5 +27,8 @@ package com.iluwatar.factorykit; * Enumerates {@link Weapon} types. */ public enum WeaponType { - SWORD, AXE, BOW, SPEAR + SWORD, + AXE, + BOW, + SPEAR } diff --git a/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java b/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java index f05dd4f8a..79241a9f5 100644 --- a/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java +++ b/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java @@ -37,12 +37,12 @@ import org.junit.jupiter.api.Test; /** * Test Factory Kit Pattern */ -public class FactoryKitTest { +class FactoryKitTest { private WeaponFactory factory; @BeforeEach - public void init() { + void init() { factory = WeaponFactory.factory(builder -> { builder.add(WeaponType.SPEAR, Spear::new); builder.add(WeaponType.AXE, Axe::new); @@ -55,7 +55,7 @@ public class FactoryKitTest { * {@link Spear} */ @Test - public void testSpearWeapon() { + void testSpearWeapon() { var weapon = factory.create(WeaponType.SPEAR); verifyWeapon(weapon, Spear.class); } @@ -65,7 +65,7 @@ public class FactoryKitTest { * {@link Axe} */ @Test - public void testAxeWeapon() { + void testAxeWeapon() { var weapon = factory.create(WeaponType.AXE); verifyWeapon(weapon, Axe.class); } @@ -76,7 +76,7 @@ public class FactoryKitTest { * {@link Sword} */ @Test - public void testWeapon() { + void testWeapon() { var weapon = factory.create(WeaponType.SWORD); verifyWeapon(weapon, Sword.class); } diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/App.java b/factory-method/src/main/java/com/iluwatar/factory/method/App.java index ee92abe24..126114a84 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/App.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/App.java @@ -23,8 +23,7 @@ package com.iluwatar.factory.method; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Factory Method is a creational design pattern which uses factory methods to deal with the @@ -37,14 +36,13 @@ import org.slf4j.LoggerFactory; * creating objects ({@link Blacksmith#manufactureWeapon}). The concrete subclasses ( * {@link OrcBlacksmith}, {@link ElfBlacksmith}) then override the method to produce objects of * their liking. - * + * */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private final Blacksmith blacksmith; - + /** * Creates an instance of App which will use blacksmith to manufacture * the weapons for war. @@ -56,22 +54,22 @@ public class App { public App(Blacksmith blacksmith) { this.blacksmith = blacksmith; } - + /** * Program entry point. - * + * * @param args command line args */ public static void main(String[] args) { // Lets go to war with Orc weapons var app = new App(new OrcBlacksmith()); app.manufactureWeapons(); - + // Lets go to war with Elf weapons app = new App(new ElfBlacksmith()); app.manufactureWeapons(); } - + private void manufactureWeapons() { var weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); LOGGER.info(weapon.toString()); diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java index 4c49ebaa3..d801f43b8 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java @@ -24,7 +24,7 @@ package com.iluwatar.factory.method; import java.util.Arrays; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Map; /** @@ -35,7 +35,7 @@ public class ElfBlacksmith implements Blacksmith { private static final Map ELFARSENAL; static { - ELFARSENAL = new HashMap<>(WeaponType.values().length); + ELFARSENAL = new EnumMap<>(WeaponType.class); Arrays.stream(WeaponType.values()).forEach(type -> ELFARSENAL.put(type, new ElfWeapon(type))); } diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java b/factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java index e3b436554..321f24873 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/ElfWeapon.java @@ -23,24 +23,20 @@ package com.iluwatar.factory.method; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * ElfWeapon. */ +@RequiredArgsConstructor +@Getter public class ElfWeapon implements Weapon { private final WeaponType weaponType; - public ElfWeapon(WeaponType weaponType) { - this.weaponType = weaponType; - } - @Override public String toString() { return "Elven " + weaponType; } - - @Override - public WeaponType getWeaponType() { - return weaponType; - } } diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java index d97bfc92a..1ef87b86f 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/OrcBlacksmith.java @@ -24,7 +24,7 @@ package com.iluwatar.factory.method; import java.util.Arrays; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Map; /** @@ -35,10 +35,10 @@ public class OrcBlacksmith implements Blacksmith { private static final Map ORCARSENAL; static { - ORCARSENAL = new HashMap<>(WeaponType.values().length); + ORCARSENAL = new EnumMap<>(WeaponType.class); Arrays.stream(WeaponType.values()).forEach(type -> ORCARSENAL.put(type, new OrcWeapon(type))); } - + @Override public Weapon manufactureWeapon(WeaponType weaponType) { return ORCARSENAL.get(weaponType); diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java b/factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java index c3a9c8688..560c7aaf7 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/OrcWeapon.java @@ -23,24 +23,20 @@ package com.iluwatar.factory.method; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * OrcWeapon. */ +@RequiredArgsConstructor +@Getter public class OrcWeapon implements Weapon { private final WeaponType weaponType; - public OrcWeapon(WeaponType weaponType) { - this.weaponType = weaponType; - } - @Override public String toString() { return "Orcish " + weaponType; } - - @Override - public WeaponType getWeaponType() { - return weaponType; - } } diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java b/factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java index b600f5a25..8f7fc1aa4 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/WeaponType.java @@ -23,19 +23,21 @@ package com.iluwatar.factory.method; +import lombok.RequiredArgsConstructor; + /** * WeaponType enumeration. */ +@RequiredArgsConstructor public enum WeaponType { - SHORT_SWORD("short sword"), SPEAR("spear"), AXE("axe"), UNDEFINED(""); + SHORT_SWORD("short sword"), + SPEAR("spear"), + AXE("axe"), + UNDEFINED(""); private final String title; - WeaponType(String title) { - this.title = title; - } - @Override public String toString() { return title; diff --git a/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java b/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java index f7bbf6f97..a206c06b4 100644 --- a/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java +++ b/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java @@ -40,14 +40,14 @@ import org.junit.jupiter.api.Test; * implementation it is referring to. *

*/ -public class FactoryMethodTest { +class FactoryMethodTest { /** * Testing {@link OrcBlacksmith} to produce a SPEAR asserting that the Weapon is an instance of * {@link OrcWeapon}. */ @Test - public void testOrcBlacksmithWithSpear() { + void testOrcBlacksmithWithSpear() { var blacksmith = new OrcBlacksmith(); var weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); verifyWeapon(weapon, WeaponType.SPEAR, OrcWeapon.class); @@ -58,7 +58,7 @@ public class FactoryMethodTest { * {@link OrcWeapon}. */ @Test - public void testOrcBlacksmithWithAxe() { + void testOrcBlacksmithWithAxe() { var blacksmith = new OrcBlacksmith(); var weapon = blacksmith.manufactureWeapon(WeaponType.AXE); verifyWeapon(weapon, WeaponType.AXE, OrcWeapon.class); @@ -69,7 +69,7 @@ public class FactoryMethodTest { * of {@link ElfWeapon}. */ @Test - public void testElfBlacksmithWithShortSword() { + void testElfBlacksmithWithShortSword() { var blacksmith = new ElfBlacksmith(); var weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD); verifyWeapon(weapon, WeaponType.SHORT_SWORD, ElfWeapon.class); @@ -80,7 +80,7 @@ public class FactoryMethodTest { * {@link ElfWeapon}. */ @Test - public void testElfBlacksmithWithSpear() { + void testElfBlacksmithWithSpear() { var blacksmith = new ElfBlacksmith(); var weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); verifyWeapon(weapon, WeaponType.SPEAR, ElfWeapon.class); diff --git a/factory/src/main/java/com/iluwatar/factory/App.java b/factory/src/main/java/com/iluwatar/factory/App.java index 554baeeb1..732f5458f 100644 --- a/factory/src/main/java/com/iluwatar/factory/App.java +++ b/factory/src/main/java/com/iluwatar/factory/App.java @@ -23,22 +23,20 @@ package com.iluwatar.factory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Factory is an object for creating other objects, it providing Providing a static method to * create and return objects of varying classes, in order to hide the implementation logic * and makes client code focus on usage rather then objects initialization and management. - * + * *

In this example the CarFactory is the factory class and it provides a static method to * create different cars. */ +@Slf4j public class App { - - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - + /** * Program main entry point. */ diff --git a/factory/src/main/java/com/iluwatar/factory/Car.java b/factory/src/main/java/com/iluwatar/factory/Car.java index e1f82d41e..e1e248fb4 100644 --- a/factory/src/main/java/com/iluwatar/factory/Car.java +++ b/factory/src/main/java/com/iluwatar/factory/Car.java @@ -27,7 +27,7 @@ package com.iluwatar.factory; * Car interface. */ public interface Car { - + String getDescription(); - + } diff --git a/factory/src/main/java/com/iluwatar/factory/CarType.java b/factory/src/main/java/com/iluwatar/factory/CarType.java index 33d5a521a..074ea32bc 100644 --- a/factory/src/main/java/com/iluwatar/factory/CarType.java +++ b/factory/src/main/java/com/iluwatar/factory/CarType.java @@ -24,22 +24,19 @@ package com.iluwatar.factory; import java.util.function.Supplier; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +/** + * Enumeration for different types of cars. + */ +@RequiredArgsConstructor +@Getter public enum CarType { - - /** - * Enumeration for different types of cars. - */ - FORD(Ford::new), + + FORD(Ford::new), FERRARI(Ferrari::new); - - private final Supplier constructor; - - CarType(Supplier constructor) { - this.constructor = constructor; - } - - public Supplier getConstructor() { - return this.constructor; - } + + private final Supplier constructor; + } diff --git a/factory/src/main/java/com/iluwatar/factory/CarsFactory.java b/factory/src/main/java/com/iluwatar/factory/CarsFactory.java index a802da039..941552065 100644 --- a/factory/src/main/java/com/iluwatar/factory/CarsFactory.java +++ b/factory/src/main/java/com/iluwatar/factory/CarsFactory.java @@ -27,7 +27,7 @@ package com.iluwatar.factory; * Factory of cars. */ public class CarsFactory { - + /** * Factory method takes as parameter a car type and initiate the appropriate class. */ diff --git a/factory/src/main/java/com/iluwatar/factory/Ferrari.java b/factory/src/main/java/com/iluwatar/factory/Ferrari.java index 294a04fcc..c11ee3679 100644 --- a/factory/src/main/java/com/iluwatar/factory/Ferrari.java +++ b/factory/src/main/java/com/iluwatar/factory/Ferrari.java @@ -27,7 +27,7 @@ package com.iluwatar.factory; * Ferrari implementation. */ public class Ferrari implements Car { - + static final String DESCRIPTION = "This is Ferrari."; @Override diff --git a/factory/src/test/java/com/iluwatar/factory/AppTest.java b/factory/src/test/java/com/iluwatar/factory/AppTest.java index 69a581e88..9bb244500 100644 --- a/factory/src/test/java/com/iluwatar/factory/AppTest.java +++ b/factory/src/test/java/com/iluwatar/factory/AppTest.java @@ -29,9 +29,9 @@ import org.junit.jupiter.api.Test; class AppTest { - @Test - void shouldExecuteWithoutExceptions() { - assertDoesNotThrow(() -> App.main(new String[]{})); - } + @Test + void shouldExecuteWithoutExceptions() { + assertDoesNotThrow(() -> App.main(new String[]{})); + } } diff --git a/factory/src/test/java/com/iluwatar/factory/CarsFactoryTest.java b/factory/src/test/java/com/iluwatar/factory/CarsFactoryTest.java index b93ca91f5..c29cbbeb4 100644 --- a/factory/src/test/java/com/iluwatar/factory/CarsFactoryTest.java +++ b/factory/src/test/java/com/iluwatar/factory/CarsFactoryTest.java @@ -29,10 +29,10 @@ import org.junit.jupiter.api.Test; class CarsFactoryTest { - @Test - void shouldReturnFerrariInstance() { - final var ferrari = CarsFactory.getCar(CarType.FERRARI); - assertTrue(ferrari instanceof Ferrari); - } + @Test + void shouldReturnFerrariInstance() { + final var ferrari = CarsFactory.getCar(CarType.FERRARI); + assertTrue(ferrari instanceof Ferrari); + } } diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java index e00fb45a4..5c1e47f65 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java @@ -29,8 +29,7 @@ import com.iluwatar.featuretoggle.pattern.tieredversion.TieredFeatureToggleVersi import com.iluwatar.featuretoggle.user.User; import com.iluwatar.featuretoggle.user.UserGroup; import java.util.Properties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Feature Toggle pattern allows for complete code executions to be turned on or off with ease. @@ -45,10 +44,9 @@ import org.slf4j.LoggerFactory; *

Note that this pattern can easily introduce code complexity, and if not kept in check can * result in redundant unmaintained code within the codebase. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Block 1 shows the {@link PropertiesFeatureToggleVersion} being run with {@link Properties} * setting the feature toggle to enabled. diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java index 631f90687..8f1503634 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java @@ -26,6 +26,7 @@ package com.iluwatar.featuretoggle.pattern.propertiesversion; import com.iluwatar.featuretoggle.pattern.Service; import com.iluwatar.featuretoggle.user.User; import java.util.Properties; +import lombok.Getter; /** * This example of the Feature Toogle pattern is less dynamic version than {@link @@ -40,9 +41,15 @@ import java.util.Properties; * @see com.iluwatar.featuretoggle.pattern.tieredversion.TieredFeatureToggleVersion * @see User */ +@Getter public class PropertiesFeatureToggleVersion implements Service { - private final boolean isEnhanced; + /** + * True if the welcome message to be returned is the enhanced venison or not. For + * this service it will see the value of the boolean that was set in the constructor {@link + * PropertiesFeatureToggleVersion#PropertiesFeatureToggleVersion(Properties)} + */ + private final boolean enhanced; /** * Creates an instance of {@link PropertiesFeatureToggleVersion} using the passed {@link @@ -59,7 +66,7 @@ public class PropertiesFeatureToggleVersion implements Service { throw new IllegalArgumentException("No Properties Provided."); } else { try { - isEnhanced = (boolean) properties.get("enhancedWelcome"); + enhanced = (boolean) properties.get("enhancedWelcome"); } catch (Exception e) { throw new IllegalArgumentException("Invalid Enhancement Settings Provided."); } @@ -87,16 +94,4 @@ public class PropertiesFeatureToggleVersion implements Service { return "Welcome to the application."; } - - /** - * Method that checks if the welcome message to be returned is the enhanced venison or not. For - * this service it will see the value of the boolean that was set in the constructor {@link - * PropertiesFeatureToggleVersion#PropertiesFeatureToggleVersion(Properties)} - * - * @return Boolean value {@code true} if enhanced. - */ - @Override - public boolean isEnhanced() { - return isEnhanced; - } } diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java index 7c7dc5d6b..395c473af 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java @@ -23,23 +23,17 @@ package com.iluwatar.featuretoggle.user; +import lombok.RequiredArgsConstructor; + /** * Used to demonstrate the purpose of the feature toggle. This class actually has nothing to do with * the pattern. */ +@RequiredArgsConstructor public class User { private final String name; - /** - * Default Constructor setting the username. - * - * @param name {@link String} to represent the name of the user. - */ - public User(String name) { - this.name = name; - } - /** * {@inheritDoc} * diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java index ec4e21a91..523a6cb30 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java @@ -38,7 +38,6 @@ public class UserGroup { private static final List freeGroup = new ArrayList<>(); private static final List paidGroup = new ArrayList<>(); - /** * Add the passed {@link User} to the free user group list. * diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java index 9fa8d9052..c7d703f51 100644 --- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java +++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java @@ -35,17 +35,17 @@ import org.junit.jupiter.api.Test; /** * Test Properties Toggle */ -public class PropertiesFeatureToggleVersionTest { +class PropertiesFeatureToggleVersionTest { @Test - public void testNullPropertiesPassed() { + void testNullPropertiesPassed() { assertThrows(IllegalArgumentException.class, () -> { new PropertiesFeatureToggleVersion(null); }); } @Test - public void testNonBooleanProperty() { + void testNonBooleanProperty() { assertThrows(IllegalArgumentException.class, () -> { final var properties = new Properties(); properties.setProperty("enhancedWelcome", "Something"); @@ -54,7 +54,7 @@ public class PropertiesFeatureToggleVersionTest { } @Test - public void testFeatureTurnedOn() { + void testFeatureTurnedOn() { final var properties = new Properties(); properties.put("enhancedWelcome", true); var service = new PropertiesFeatureToggleVersion(properties); @@ -64,7 +64,7 @@ public class PropertiesFeatureToggleVersionTest { } @Test - public void testFeatureTurnedOff() { + void testFeatureTurnedOff() { final var properties = new Properties(); properties.put("enhancedWelcome", false); var service = new PropertiesFeatureToggleVersion(properties); diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java index de45d9254..4feb4207d 100644 --- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java +++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java @@ -35,34 +35,34 @@ import org.junit.jupiter.api.Test; /** * Test Tiered Feature Toggle */ -public class TieredFeatureToggleVersionTest { +class TieredFeatureToggleVersionTest { final User paidUser = new User("Jamie Coder"); final User freeUser = new User("Alan Defect"); final Service service = new TieredFeatureToggleVersion(); @BeforeEach - public void setUp() { + void setUp() { UserGroup.addUserToPaidGroup(paidUser); UserGroup.addUserToFreeGroup(freeUser); } @Test - public void testGetWelcomeMessageForPaidUser() { + void testGetWelcomeMessageForPaidUser() { final var welcomeMessage = service.getWelcomeMessage(paidUser); final var expected = "You're amazing Jamie Coder. Thanks for paying for this awesome software."; assertEquals(expected, welcomeMessage); } @Test - public void testGetWelcomeMessageForFreeUser() { + void testGetWelcomeMessageForFreeUser() { final var welcomeMessage = service.getWelcomeMessage(freeUser); final var expected = "I suppose you can use this software."; assertEquals(expected, welcomeMessage); } @Test - public void testIsEnhancedAlwaysTrueAsTiered() { + void testIsEnhancedAlwaysTrueAsTiered() { assertTrue(service.isEnhanced()); } } diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java index db1569cf4..f4768d541 100644 --- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java +++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java @@ -32,24 +32,24 @@ import org.junit.jupiter.api.Test; /** * Test User Group specific feature */ -public class UserGroupTest { +class UserGroupTest { @Test - public void testAddUserToFreeGroup() { + void testAddUserToFreeGroup() { var user = new User("Free User"); UserGroup.addUserToFreeGroup(user); assertFalse(UserGroup.isPaid(user)); } @Test - public void testAddUserToPaidGroup() { + void testAddUserToPaidGroup() { var user = new User("Paid User"); UserGroup.addUserToPaidGroup(user); assertTrue(UserGroup.isPaid(user)); } @Test - public void testAddUserToPaidWhenOnFree() { + void testAddUserToPaidWhenOnFree() { var user = new User("Paid User"); UserGroup.addUserToFreeGroup(user); assertThrows(IllegalArgumentException.class, () -> { @@ -58,7 +58,7 @@ public class UserGroupTest { } @Test - public void testAddUserToFreeWhenOnPaid() { + void testAddUserToFreeWhenOnPaid() { var user = new User("Free User"); UserGroup.addUserToPaidGroup(user); assertThrows(IllegalArgumentException.class, () -> { diff --git a/filterer/src/main/java/com/iluwatar/filterer/App.java b/filterer/src/main/java/com/iluwatar/filterer/App.java index 2555dd7f8..d25c73a55 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/App.java +++ b/filterer/src/main/java/com/iluwatar/filterer/App.java @@ -31,12 +31,9 @@ import com.iluwatar.filterer.threat.SimpleThreatAwareSystem; import com.iluwatar.filterer.threat.Threat; import com.iluwatar.filterer.threat.ThreatAwareSystem; import com.iluwatar.filterer.threat.ThreatType; - import java.util.List; import java.util.function.Predicate; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This demo class represent how {@link com.iluwatar.filterer.domain.Filterer} pattern is used to @@ -46,10 +43,9 @@ import org.slf4j.LoggerFactory; * The thing is to keep it simple if we add new subtype of {@link Threat} * (for example {@link ProbableThreat}) - we still need to be able to filter by it's properties. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - public static void main(String[] args) { filteringSimpleThreats(); filteringSimpleProbableThreats(); @@ -62,7 +58,7 @@ public class App { * as predicate argument. */ private static void filteringSimpleProbableThreats() { - LOGGER.info(" ### Filtering ProbabilisticThreatAwareSystem by probability ###"); + LOGGER.info("### Filtering ProbabilisticThreatAwareSystem by probability ###"); var trojanArcBomb = new SimpleProbableThreat("Trojan-ArcBomb", 1, ThreatType.TROJAN, 0.99); var rootkit = new SimpleProbableThreat("Rootkit-Kernel", 2, ThreatType.ROOTKIT, 0.8); @@ -70,14 +66,14 @@ public class App { List probableThreats = List.of(trojanArcBomb, rootkit); var probabilisticThreatAwareSystem = - new SimpleProbabilisticThreatAwareSystem("Sys-1", probableThreats); + new SimpleProbabilisticThreatAwareSystem("Sys-1", probableThreats); LOGGER.info("Filtering ProbabilisticThreatAwareSystem. Initial : " - + probabilisticThreatAwareSystem); + + probabilisticThreatAwareSystem); //Filtering using filterer var filteredThreatAwareSystem = probabilisticThreatAwareSystem.filtered() - .by(probableThreat -> Double.compare(probableThreat.probability(), 0.99) == 0); + .by(probableThreat -> Double.compare(probableThreat.probability(), 0.99) == 0); LOGGER.info("Filtered by probability = 0.99 : " + filteredThreatAwareSystem); } @@ -100,7 +96,7 @@ public class App { //Filtering using Filterer var rootkitThreatAwareSystem = threatAwareSystem.filtered() - .by(threat -> threat.type() == ThreatType.ROOTKIT); + .by(threat -> threat.type() == ThreatType.ROOTKIT); LOGGER.info("Filtered by threatType = ROOTKIT : " + rootkitThreatAwareSystem); } diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystem.java b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystem.java index ea431042a..ac16e6614 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystem.java +++ b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystem.java @@ -23,29 +23,24 @@ package com.iluwatar.filterer.threat; -import com.google.common.collect.ImmutableList; import com.iluwatar.filterer.domain.Filterer; - import java.util.List; -import java.util.Objects; import java.util.function.Predicate; import java.util.stream.Collectors; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; +import lombok.ToString; /** * {@inheritDoc} */ +@ToString +@EqualsAndHashCode +@RequiredArgsConstructor public class SimpleProbabilisticThreatAwareSystem implements ProbabilisticThreatAwareSystem { private final String systemId; - private final ImmutableList threats; - - public SimpleProbabilisticThreatAwareSystem( - final String systemId, - final List threats - ) { - this.systemId = systemId; - this.threats = ImmutableList.copyOf(threats); - } + private final List threats; /** * {@inheritDoc} @@ -72,42 +67,15 @@ public class SimpleProbabilisticThreatAwareSystem implements ProbabilisticThreat } private ProbabilisticThreatAwareSystem filteredGroup( - final Predicate predicate - ) { + final Predicate predicate) { return new SimpleProbabilisticThreatAwareSystem(this.systemId, filteredItems(predicate)); } private List filteredItems( - final Predicate predicate - ) { + final Predicate predicate) { return this.threats.stream() - .filter(predicate) - .collect(Collectors.toList()); + .filter(predicate) + .collect(Collectors.toUnmodifiableList()); } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var that = (SimpleProbabilisticThreatAwareSystem) o; - return systemId.equals(that.systemId) - && threats.equals(that.threats); - } - - @Override - public int hashCode() { - return Objects.hash(systemId, threats); - } - - @Override - public String toString() { - return "SimpleProbabilisticThreatAwareSystem{" - + "systemId='" + systemId + '\'' - + ", threats=" + threats - + '}'; - } } diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbableThreat.java b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbableThreat.java index 5c1183fb2..307e6d41b 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbableThreat.java +++ b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleProbableThreat.java @@ -23,20 +23,18 @@ package com.iluwatar.filterer.threat; -import java.util.Objects; +import lombok.EqualsAndHashCode; /** * {@inheritDoc} */ +@EqualsAndHashCode(callSuper = false) public class SimpleProbableThreat extends SimpleThreat implements ProbableThreat { private final double probability; - public SimpleProbableThreat(final String name, - final int id, - final ThreatType threatType, - final double probability - ) { + public SimpleProbableThreat(final String name, final int id, final ThreatType threatType, + final double probability) { super(threatType, id, name); this.probability = probability; } @@ -49,31 +47,11 @@ public class SimpleProbableThreat extends SimpleThreat implements ProbableThreat return probability; } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - var that = (SimpleProbableThreat) o; - return Double.compare(that.probability, probability) == 0; - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), probability); - } - @Override public String toString() { return "SimpleProbableThreat{" - + "probability=" + probability - + "} " - + super.toString(); + + "probability=" + probability + + "} " + + super.toString(); } } diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreat.java b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreat.java index ab1977bc8..44294b1db 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreat.java +++ b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreat.java @@ -23,30 +23,22 @@ package com.iluwatar.filterer.threat; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; +import lombok.ToString; /** * Represents a simple threat. */ +@ToString +@EqualsAndHashCode +@RequiredArgsConstructor public class SimpleThreat implements Threat { private final ThreatType threatType; private final int id; private final String name; - /** - * Constructor. - * - * @param threatType {@link ThreatType}. - * @param id threat id. - * @param name threat name. - */ - public SimpleThreat(final ThreatType threatType, final int id, String name) { - this.threatType = threatType; - this.id = id; - this.name = name; - } - /** * {@inheritDoc} */ @@ -71,31 +63,4 @@ public class SimpleThreat implements Threat { return threatType; } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var that = (SimpleThreat) o; - return id == that.id - && threatType == that.threatType - && Objects.equals(name, that.name); - } - - @Override - public int hashCode() { - return Objects.hash(threatType, id, name); - } - - @Override - public String toString() { - return "SimpleThreat{" - + "threatType=" + threatType - + ", id=" + id - + ", name='" + name + '\'' - + '}'; - } } diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystem.java b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystem.java index 428521ad9..7a165c3f3 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystem.java +++ b/filterer/src/main/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystem.java @@ -23,27 +23,25 @@ package com.iluwatar.filterer.threat; -import com.google.common.collect.ImmutableList; import com.iluwatar.filterer.domain.Filterer; - import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.function.Predicate; import java.util.stream.Collectors; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; +import lombok.ToString; /** * {@inheritDoc} */ +@ToString +@EqualsAndHashCode +@RequiredArgsConstructor public class SimpleThreatAwareSystem implements ThreatAwareSystem { private final String systemId; - private final ImmutableList issues; - - public SimpleThreatAwareSystem(final String systemId, final List issues) { - this.systemId = systemId; - this.issues = ImmutableList.copyOf(issues); - } + private final List issues; /** * {@inheritDoc} @@ -75,33 +73,8 @@ public class SimpleThreatAwareSystem implements ThreatAwareSystem { private List filteredItems(Predicate predicate) { return this.issues.stream() - .filter(predicate) - .collect(Collectors.toList()); + .filter(predicate) + .collect(Collectors.toUnmodifiableList()); } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var that = (SimpleThreatAwareSystem) o; - return systemId.equals(that.systemId) - && issues.equals(that.issues); - } - - @Override - public int hashCode() { - return Objects.hash(systemId, issues); - } - - @Override - public String toString() { - return "SimpleThreatAwareSystem{" - + "systemId='" + systemId - + '\'' + ", issues=" + issues - + '}'; - } } diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatType.java b/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatType.java index 4c9a23b21..417db3e0c 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatType.java +++ b/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatType.java @@ -23,4 +23,8 @@ package com.iluwatar.filterer.threat; -public enum ThreatType { TROJAN, WORM, ROOTKIT } +public enum ThreatType { + TROJAN, + WORM, + ROOTKIT +} diff --git a/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystemTest.java b/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystemTest.java index 082496175..50fca774c 100644 --- a/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystemTest.java +++ b/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleProbabilisticThreatAwareSystemTest.java @@ -23,13 +23,13 @@ package com.iluwatar.filterer.threat; -import org.junit.jupiter.api.Test; - -import java.util.List; - import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.List; +import org.junit.jupiter.api.Test; + class SimpleProbabilisticThreatAwareSystemTest { + @Test void shouldFilterByProbability() { //given @@ -38,11 +38,11 @@ class SimpleProbabilisticThreatAwareSystemTest { List probableThreats = List.of(trojan, rootkit); var simpleProbabilisticThreatAwareSystem = - new SimpleProbabilisticThreatAwareSystem("System-1", probableThreats); + new SimpleProbabilisticThreatAwareSystem("System-1", probableThreats); //when var filtered = simpleProbabilisticThreatAwareSystem.filtered() - .by(probableThreat -> Double.compare(probableThreat.probability(), 0.99) == 0); + .by(probableThreat -> Double.compare(probableThreat.probability(), 0.99) == 0); //then assertEquals(filtered.threats().size(), 1); diff --git a/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystemTest.java b/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystemTest.java index 9f93fa50f..d8b28e18a 100644 --- a/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystemTest.java +++ b/filterer/src/test/java/com/iluwatar/filterer/threat/SimpleThreatAwareSystemTest.java @@ -41,7 +41,7 @@ class SimpleThreatAwareSystemTest { //when var rootkitThreatAwareSystem = threatAwareSystem.filtered() - .by(threat -> threat.type() == ThreatType.ROOTKIT); + .by(threat -> threat.type() == ThreatType.ROOTKIT); //then assertEquals(rootkitThreatAwareSystem.threats().size(), 1); diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java index c51c488c7..51519b427 100644 --- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java +++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java @@ -30,8 +30,7 @@ import java.util.List; import java.util.StringJoiner; import java.util.function.Function; import java.util.function.Predicate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Fluent Interface pattern is useful when you want to provide an easy readable, flowing API. @@ -44,10 +43,9 @@ import org.slf4j.LoggerFactory; * demonstrated with a simple number list that is filtered, transformed and collected. The result is * printed afterwards. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java index d6acd1771..c5f600b1f 100644 --- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java +++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.Optional; import java.util.function.Function; import java.util.function.Predicate; +import lombok.RequiredArgsConstructor; /** * This is a lazy implementation of the FluentIterable interface. It evaluates all chained @@ -37,19 +38,11 @@ import java.util.function.Predicate; * * @param the type of the objects the iteration is about */ +@RequiredArgsConstructor public class LazyFluentIterable implements FluentIterable { private final Iterable iterable; - /** - * This constructor creates a new LazyFluentIterable. It wraps the given iterable. - * - * @param iterable the iterable this FluentIterable works on. - */ - protected LazyFluentIterable(Iterable iterable) { - this.iterable = iterable; - } - /** * This constructor can be used to implement anonymous subclasses of the LazyFluentIterable. */ diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java index 0c6a3b4af..55aa86767 100644 --- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java +++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java @@ -32,6 +32,7 @@ import java.util.Spliterator; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; +import lombok.RequiredArgsConstructor; /** * This is a simple implementation of the FluentIterable interface. It evaluates all chained @@ -39,19 +40,11 @@ import java.util.function.Predicate; * * @param the type of the objects the iteration is about */ +@RequiredArgsConstructor public class SimpleFluentIterable implements FluentIterable { private final Iterable iterable; - /** - * This constructor creates a copy of a given iterable's contents. - * - * @param iterable the iterable this interface copies to work on. - */ - protected SimpleFluentIterable(Iterable iterable) { - this.iterable = iterable; - } - /** * Filters the contents of Iterable using the given predicate, leaving only the ones which satisfy * the predicate. diff --git a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java index 7eb2b59c1..275134adc 100644 --- a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java +++ b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java @@ -53,7 +53,7 @@ public abstract class FluentIterableTest { protected abstract FluentIterable createFluentIterable(final Iterable integers); @Test - public void testFirst() { + void testFirst() { final var integers = List.of(1, 2, 3, 10, 9, 8); final var first = createFluentIterable(integers).first(); assertNotNull(first); @@ -62,7 +62,7 @@ public abstract class FluentIterableTest { } @Test - public void testFirstEmptyCollection() { + void testFirstEmptyCollection() { final var integers = Collections.emptyList(); final var first = createFluentIterable(integers).first(); assertNotNull(first); @@ -70,7 +70,7 @@ public abstract class FluentIterableTest { } @Test - public void testFirstCount() { + void testFirstCount() { final var integers = List.of(1, 2, 3, 10, 9, 8); final var first4 = createFluentIterable(integers) .first(4) @@ -86,7 +86,7 @@ public abstract class FluentIterableTest { } @Test - public void testFirstCountLessItems() { + void testFirstCountLessItems() { final var integers = List.of(1, 2, 3); final var first4 = createFluentIterable(integers) .first(4) @@ -101,7 +101,7 @@ public abstract class FluentIterableTest { } @Test - public void testLast() { + void testLast() { final var integers = List.of(1, 2, 3, 10, 9, 8); final var last = createFluentIterable(integers).last(); assertNotNull(last); @@ -110,7 +110,7 @@ public abstract class FluentIterableTest { } @Test - public void testLastEmptyCollection() { + void testLastEmptyCollection() { final var integers = Collections.emptyList(); final var last = createFluentIterable(integers).last(); assertNotNull(last); @@ -118,7 +118,7 @@ public abstract class FluentIterableTest { } @Test - public void testLastCount() { + void testLastCount() { final var integers = List.of(1, 2, 3, 10, 9, 8); final var last4 = createFluentIterable(integers) .last(4) @@ -133,7 +133,7 @@ public abstract class FluentIterableTest { } @Test - public void testLastCountLessItems() { + void testLastCountLessItems() { final var integers = List.of(1, 2, 3); final var last4 = createFluentIterable(integers) .last(4) @@ -148,7 +148,7 @@ public abstract class FluentIterableTest { } @Test - public void testFilter() { + void testFilter() { final var integers = List.of(1, 2, 3, 10, 9, 8); final var evenItems = createFluentIterable(integers) .filter(i -> i % 2 == 0) @@ -162,7 +162,7 @@ public abstract class FluentIterableTest { } @Test - public void testMap() { + void testMap() { final var integers = List.of(1, 2, 3); final var longs = createFluentIterable(integers) .map(Integer::longValue) @@ -176,7 +176,7 @@ public abstract class FluentIterableTest { } @Test - public void testForEach() { + void testForEach() { final var integers = List.of(1, 2, 3); final Consumer consumer = mock(Consumer.class); @@ -190,7 +190,7 @@ public abstract class FluentIterableTest { } @Test - public void testSpliterator() throws Exception { + void testSpliterator() throws Exception { final var integers = List.of(1, 2, 3); final var split = createFluentIterable(integers).spliterator(); assertNotNull(split); diff --git a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterableTest.java b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterableTest.java index 9a88e5bba..02e41bb91 100644 --- a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterableTest.java +++ b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterableTest.java @@ -31,7 +31,7 @@ import com.iluwatar.fluentinterface.fluentiterable.FluentIterableTest; * * @author Jeroen Meulemeester */ -public class LazyFluentIterableTest extends FluentIterableTest { +class LazyFluentIterableTest extends FluentIterableTest { @Override protected FluentIterable createFluentIterable(Iterable integers) { diff --git a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterableTest.java b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterableTest.java index 85e358cf1..fbe1bb270 100644 --- a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterableTest.java +++ b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterableTest.java @@ -31,7 +31,7 @@ import com.iluwatar.fluentinterface.fluentiterable.FluentIterableTest; * * @author Jeroen Meulemeester */ -public class SimpleFluentIterableTest extends FluentIterableTest { +class SimpleFluentIterableTest extends FluentIterableTest { @Override protected FluentIterable createFluentIterable(Iterable integers) { diff --git a/flux/src/main/java/com/iluwatar/flux/action/Action.java b/flux/src/main/java/com/iluwatar/flux/action/Action.java index 5dff8444b..9a22b0cd1 100644 --- a/flux/src/main/java/com/iluwatar/flux/action/Action.java +++ b/flux/src/main/java/com/iluwatar/flux/action/Action.java @@ -23,18 +23,16 @@ package com.iluwatar.flux.action; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * Action is the data payload dispatched to the stores when something happens. */ +@RequiredArgsConstructor +@Getter public abstract class Action { private final ActionType type; - public Action(ActionType type) { - this.type = type; - } - - public ActionType getType() { - return type; - } } diff --git a/flux/src/main/java/com/iluwatar/flux/action/ActionType.java b/flux/src/main/java/com/iluwatar/flux/action/ActionType.java index bb852279f..25bd2962f 100644 --- a/flux/src/main/java/com/iluwatar/flux/action/ActionType.java +++ b/flux/src/main/java/com/iluwatar/flux/action/ActionType.java @@ -28,6 +28,7 @@ package com.iluwatar.flux.action; */ public enum ActionType { - MENU_ITEM_SELECTED, CONTENT_CHANGED + MENU_ITEM_SELECTED, + CONTENT_CHANGED } diff --git a/flux/src/main/java/com/iluwatar/flux/action/Content.java b/flux/src/main/java/com/iluwatar/flux/action/Content.java index 5832a0f45..e0bd87f1a 100644 --- a/flux/src/main/java/com/iluwatar/flux/action/Content.java +++ b/flux/src/main/java/com/iluwatar/flux/action/Content.java @@ -23,20 +23,19 @@ package com.iluwatar.flux.action; +import lombok.RequiredArgsConstructor; + /** * Content items. */ +@RequiredArgsConstructor public enum Content { - PRODUCTS("Products - This page lists the company's products."), COMPANY( - "Company - This page displays information about the company."); + PRODUCTS("Products - This page lists the company's products."), + COMPANY("Company - This page displays information about the company."); private final String title; - Content(String title) { - this.title = title; - } - @Override public String toString() { return title; diff --git a/flux/src/main/java/com/iluwatar/flux/view/ContentView.java b/flux/src/main/java/com/iluwatar/flux/view/ContentView.java index e194d46f9..a02fcacef 100644 --- a/flux/src/main/java/com/iluwatar/flux/view/ContentView.java +++ b/flux/src/main/java/com/iluwatar/flux/view/ContentView.java @@ -26,16 +26,14 @@ package com.iluwatar.flux.view; import com.iluwatar.flux.action.Content; import com.iluwatar.flux.store.ContentStore; import com.iluwatar.flux.store.Store; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ContentView is a concrete view. */ +@Slf4j public class ContentView implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(ContentView.class); - private Content content = Content.PRODUCTS; @Override diff --git a/flux/src/main/java/com/iluwatar/flux/view/MenuView.java b/flux/src/main/java/com/iluwatar/flux/view/MenuView.java index 090cab5c7..3d62a82e9 100644 --- a/flux/src/main/java/com/iluwatar/flux/view/MenuView.java +++ b/flux/src/main/java/com/iluwatar/flux/view/MenuView.java @@ -27,16 +27,14 @@ import com.iluwatar.flux.action.MenuItem; import com.iluwatar.flux.dispatcher.Dispatcher; import com.iluwatar.flux.store.MenuStore; import com.iluwatar.flux.store.Store; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * MenuView is a concrete view. */ +@Slf4j public class MenuView implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(MenuView.class); - private MenuItem selected = MenuItem.HOME; @Override diff --git a/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java b/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java index d99e17a13..a25cb630b 100644 --- a/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java +++ b/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java @@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test; public class ContentTest { @Test - public void testToString() { + void testToString() { for (final var content : Content.values()) { final var toString = content.toString(); assertNotNull(toString); diff --git a/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java b/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java index b8772b69c..f5726062e 100644 --- a/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java +++ b/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java @@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test; public class MenuItemTest { @Test - public void testToString() { + void testToString() { for (final var menuItem : MenuItem.values()) { final var toString = menuItem.toString(); assertNotNull(toString); diff --git a/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java b/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java index b8491b514..a8fc7e01b 100644 --- a/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java +++ b/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java @@ -38,7 +38,6 @@ import com.iluwatar.flux.action.ContentAction; import com.iluwatar.flux.action.MenuAction; import com.iluwatar.flux.action.MenuItem; import com.iluwatar.flux.store.Store; -import java.util.List; import java.util.stream.Collectors; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -67,13 +66,13 @@ public class DispatcherTest { } @Test - public void testGetInstance() { + void testGetInstance() { assertNotNull(Dispatcher.getInstance()); assertSame(Dispatcher.getInstance(), Dispatcher.getInstance()); } @Test - public void testMenuItemSelected() { + void testMenuItemSelected() { final var dispatcher = Dispatcher.getInstance(); final var store = mock(Store.class); diff --git a/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java b/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java index 264502e3e..79b83a97c 100644 --- a/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java +++ b/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java @@ -46,7 +46,7 @@ import org.junit.jupiter.api.Test; public class ContentStoreTest { @Test - public void testOnAction() { + void testOnAction() { final var contentStore = new ContentStore(); final var view = mock(View.class); diff --git a/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java b/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java index 1a3be2fa4..837f2526a 100644 --- a/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java +++ b/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java @@ -46,7 +46,7 @@ import org.junit.jupiter.api.Test; public class MenuStoreTest { @Test - public void testOnAction() { + void testOnAction() { final var menuStore = new MenuStore(); final var view = mock(View.class); diff --git a/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java b/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java index 11b69857f..49de88da7 100644 --- a/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java +++ b/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java @@ -41,7 +41,7 @@ import org.junit.jupiter.api.Test; public class ContentViewTest { @Test - public void testStoreChanged() { + void testStoreChanged() { final var store = mock(ContentStore.class); when(store.getContent()).thenReturn(Content.PRODUCTS); diff --git a/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java b/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java index 6813c61b7..2bd036232 100644 --- a/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java +++ b/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java @@ -45,7 +45,7 @@ import org.junit.jupiter.api.Test; public class MenuViewTest { @Test - public void testStoreChanged() { + void testStoreChanged() { final var store = mock(MenuStore.class); when(store.getSelected()).thenReturn(MenuItem.HOME); @@ -57,7 +57,7 @@ public class MenuViewTest { } @Test - public void testItemClicked() { + void testItemClicked() { final var store = mock(Store.class); Dispatcher.getInstance().registerStore(store); diff --git a/flyweight/README.md b/flyweight/README.md index fbefd3740..8a794f63d 100644 --- a/flyweight/README.md +++ b/flyweight/README.md @@ -42,24 +42,24 @@ public interface Potion { void drink(); } +@Slf4j public class HealingPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(HealingPotion.class); @Override public void drink() { LOGGER.info("You feel healed. (Potion={})", System.identityHashCode(this)); } } +@Slf4j public class HolyWaterPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(HolyWaterPotion.class); @Override public void drink() { LOGGER.info("You feel blessed. (Potion={})", System.identityHashCode(this)); } } +@Slf4j public class InvisibilityPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(InvisibilityPotion.class); @Override public void drink() { LOGGER.info("You become invisible. (Potion={})", System.identityHashCode(this)); diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java index 140bad760..135712718 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java @@ -24,16 +24,14 @@ package com.iluwatar.flyweight; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * AlchemistShop holds potions on its shelves. It uses PotionFactory to provide the potions. */ +@Slf4j public class AlchemistShop { - private static final Logger LOGGER = LoggerFactory.getLogger(AlchemistShop.class); - private final List topShelf; private final List bottomShelf; diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java index 368c25326..ef750117e 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/HealingPotion.java @@ -23,16 +23,14 @@ package com.iluwatar.flyweight; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * HealingPotion. */ +@Slf4j public class HealingPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(HealingPotion.class); - @Override public void drink() { LOGGER.info("You feel healed. (Potion={})", System.identityHashCode(this)); diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java index 30c980769..c594939ca 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/HolyWaterPotion.java @@ -23,16 +23,14 @@ package com.iluwatar.flyweight; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * HolyWaterPotion. */ +@Slf4j public class HolyWaterPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(HolyWaterPotion.class); - @Override public void drink() { LOGGER.info("You feel blessed. (Potion={})", System.identityHashCode(this)); diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java index 8ae18279e..7e5ffccf3 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/InvisibilityPotion.java @@ -23,16 +23,14 @@ package com.iluwatar.flyweight; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * InvisibilityPotion. */ +@Slf4j public class InvisibilityPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(InvisibilityPotion.class); - @Override public void drink() { LOGGER.info("You become invisible. (Potion={})", System.identityHashCode(this)); diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java index 816c8634b..470c7fc3f 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/PoisonPotion.java @@ -23,16 +23,14 @@ package com.iluwatar.flyweight; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * PoisonPotion. */ +@Slf4j public class PoisonPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(PoisonPotion.class); - @Override public void drink() { LOGGER.info("Urgh! This is poisonous. (Potion={})", System.identityHashCode(this)); diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java b/flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java index bceccfe01..0c5bbc433 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/StrengthPotion.java @@ -23,16 +23,14 @@ package com.iluwatar.flyweight; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * StrengthPotion. */ +@Slf4j public class StrengthPotion implements Potion { - private static final Logger LOGGER = LoggerFactory.getLogger(StrengthPotion.class); - @Override public void drink() { LOGGER.info("You feel strong. (Potion={})", System.identityHashCode(this)); diff --git a/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java b/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java index 83516e8a3..4f76ee5ee 100644 --- a/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java +++ b/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java @@ -37,7 +37,7 @@ import org.junit.jupiter.api.Test; public class AlchemistShopTest { @Test - public void testShop() { + void testShop() { final var shop = new AlchemistShop(); final var bottomShelf = shop.getBottomShelf(); diff --git a/front-controller/src/main/java/com/iluwatar/front/controller/ArcherView.java b/front-controller/src/main/java/com/iluwatar/front/controller/ArcherView.java index 7f567c8c4..16893fb6a 100644 --- a/front-controller/src/main/java/com/iluwatar/front/controller/ArcherView.java +++ b/front-controller/src/main/java/com/iluwatar/front/controller/ArcherView.java @@ -23,16 +23,14 @@ package com.iluwatar.front.controller; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * View for archers. */ +@Slf4j public class ArcherView implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(ArcherView.class); - @Override public void display() { LOGGER.info("Displaying archers"); diff --git a/front-controller/src/main/java/com/iluwatar/front/controller/CatapultView.java b/front-controller/src/main/java/com/iluwatar/front/controller/CatapultView.java index 9f23fb608..b24b53164 100644 --- a/front-controller/src/main/java/com/iluwatar/front/controller/CatapultView.java +++ b/front-controller/src/main/java/com/iluwatar/front/controller/CatapultView.java @@ -23,16 +23,14 @@ package com.iluwatar.front.controller; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * View for catapults. */ +@Slf4j public class CatapultView implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(CatapultView.class); - @Override public void display() { LOGGER.info("Displaying catapults"); diff --git a/front-controller/src/main/java/com/iluwatar/front/controller/ErrorView.java b/front-controller/src/main/java/com/iluwatar/front/controller/ErrorView.java index 22757514a..4779ef7a5 100644 --- a/front-controller/src/main/java/com/iluwatar/front/controller/ErrorView.java +++ b/front-controller/src/main/java/com/iluwatar/front/controller/ErrorView.java @@ -23,16 +23,14 @@ package com.iluwatar.front.controller; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * View for errors. */ +@Slf4j public class ErrorView implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(ErrorView.class); - @Override public void display() { LOGGER.error("Error 500"); diff --git a/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java b/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java index 15ccd5caa..ba3bd5467 100644 --- a/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java +++ b/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java @@ -23,10 +23,10 @@ package com.iluwatar.front.controller; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertSame; +import org.junit.jupiter.api.Test; + /** * Date: 12/13/15 - 1:35 PM * @@ -35,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertSame; public class ApplicationExceptionTest { @Test - public void testCause() { + void testCause() { final var cause = new Exception(); assertSame(cause, new ApplicationException(cause).getCause()); } diff --git a/game-loop/src/main/java/com/iluwatar/gameloop/App.java b/game-loop/src/main/java/com/iluwatar/gameloop/App.java index cccba9098..002558a8e 100644 --- a/game-loop/src/main/java/com/iluwatar/gameloop/App.java +++ b/game-loop/src/main/java/com/iluwatar/gameloop/App.java @@ -23,18 +23,16 @@ package com.iluwatar.gameloop; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A game loop runs continuously during gameplay. Each turn of the loop, it processes * user input without blocking, updates the game state, and renders the game. It tracks * the passage of time to control the rate of gameplay. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Each type of game loop will run for 2 seconds. */ diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java index e01bf0c1e..dab983e5e 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java @@ -23,17 +23,17 @@ package com.iluwatar.gameloop; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import org.junit.jupiter.api.Test; + /** * App unit test class. */ public class AppTest { @Test - public void shouldExecuteApplicationWithoutException() { + void shouldExecuteApplicationWithoutException() { assertDoesNotThrow(() -> App.main(new String[]{})); } diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/FixedStepGameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/FixedStepGameLoopTest.java index 6c282f7d5..5817d9260 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/FixedStepGameLoopTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/FixedStepGameLoopTest.java @@ -47,7 +47,7 @@ public class FixedStepGameLoopTest { } @Test - public void testUpdate() { + void testUpdate() { gameLoop.update(); assertEquals(0.01f, gameLoop.controller.getBulletPosition(), 0); } diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/FrameBasedGameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/FrameBasedGameLoopTest.java index e6e7a75e7..3e5a30c8e 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/FrameBasedGameLoopTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/FrameBasedGameLoopTest.java @@ -27,26 +27,27 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * FrameBasedGameLoop unit test class. */ -public class FrameBasedGameLoopTest { +class FrameBasedGameLoopTest { private FrameBasedGameLoop gameLoop; @BeforeEach - public void setup() { + void setup() { gameLoop = new FrameBasedGameLoop(); } @AfterEach - public void tearDown() { + void tearDown() { gameLoop = null; } - @org.junit.jupiter.api.Test - public void testUpdate() { + @Test + void testUpdate() { gameLoop.update(); assertEquals(0.5f, gameLoop.controller.getBulletPosition(), 0); } diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/GameControllerTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/GameControllerTest.java index d15bc4054..d6b7ca459 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/GameControllerTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/GameControllerTest.java @@ -23,11 +23,13 @@ package com.iluwatar.gameloop; -import org.junit.jupiter.api.Assertions; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; -public class GameControllerTest { +class GameControllerTest { private GameController controller; @@ -41,15 +43,15 @@ public class GameControllerTest { controller = null; } - @org.junit.jupiter.api.Test - public void testMoveBullet() { + @Test + void testMoveBullet() { controller.moveBullet(1.5f); - Assertions.assertEquals(1.5f, controller.bullet.getPosition(), 0); + assertEquals(1.5f, controller.bullet.getPosition(), 0); } - @org.junit.jupiter.api.Test - public void testGetBulletPosition() { - Assertions.assertEquals(controller.bullet.getPosition(), controller.getBulletPosition(), 0); + @Test + void testGetBulletPosition() { + assertEquals(controller.bullet.getPosition(), controller.getBulletPosition(), 0); } } diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java index 7edb65204..ec141cf81 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java @@ -23,14 +23,17 @@ package com.iluwatar.gameloop; +import static org.junit.jupiter.api.Assertions.assertFalse; + import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * GameLoop unit test class. */ -public class GameLoopTest { +class GameLoopTest { private GameLoop gameLoop; @@ -38,33 +41,33 @@ public class GameLoopTest { * Create mock implementation of GameLoop. */ @BeforeEach - public void setup() { + void setup() { gameLoop = new GameLoop() { @Override - protected void processGameLoop() {} + protected void processGameLoop() { + } }; } @AfterEach - public void tearDown() { + void tearDown() { gameLoop = null; } - @org.junit.jupiter.api.Test - public void testRun() { + @Test + void testRun() { gameLoop.run(); Assertions.assertEquals(GameStatus.RUNNING, gameLoop.status); } - @org.junit.jupiter.api.Test - public void testStop() { + @Test + void testStop() { gameLoop.stop(); Assertions.assertEquals(GameStatus.STOPPED, gameLoop.status); } - @org.junit.jupiter.api.Test - public void testIsGameRunning() { - Assertions.assertFalse(gameLoop.isGameRunning()); + @Test + void testIsGameRunning() { + assertFalse(gameLoop.isGameRunning()); } - } diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/VariableStepGameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/VariableStepGameLoopTest.java index ca2c0262b..cb0148783 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/VariableStepGameLoopTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/VariableStepGameLoopTest.java @@ -23,29 +23,30 @@ package com.iluwatar.gameloop; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * VariableStepGameLoop unit test class. */ -public class VariableStepGameLoopTest { +class VariableStepGameLoopTest { private VariableStepGameLoop gameLoop; @BeforeEach - public void setup() { + void setup() { gameLoop = new VariableStepGameLoop(); } @AfterEach - public void tearDown() { + void tearDown() { gameLoop = null; } - @org.junit.jupiter.api.Test - public void testUpdate() { + @Test + void testUpdate() { gameLoop.update(20L); Assertions.assertEquals(0.01f, gameLoop.controller.getBulletPosition(), 0); } diff --git a/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java b/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java index abc124be1..91bd67fb4 100644 --- a/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java +++ b/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/GuardedQueue.java @@ -25,8 +25,7 @@ package com.iluwatar.guarded.suspension; import java.util.LinkedList; import java.util.Queue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Guarded Queue is an implementation for Guarded Suspension Pattern Guarded suspension pattern is @@ -35,8 +34,8 @@ import org.slf4j.LoggerFactory; * * @see http://java-design-patterns.com/patterns/guarded-suspension/ */ +@Slf4j public class GuardedQueue { - private static final Logger LOGGER = LoggerFactory.getLogger(GuardedQueue.class); private final Queue sourceList; public GuardedQueue() { diff --git a/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java b/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java index 683f3c1e1..e4a17499a 100644 --- a/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java +++ b/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java @@ -36,7 +36,7 @@ public class GuardedQueueTest { private volatile Integer value; @Test - public void testGet() { + void testGet() { var g = new GuardedQueue(); var executorService = Executors.newFixedThreadPool(2); executorService.submit(() -> value = g.get()); @@ -51,7 +51,7 @@ public class GuardedQueueTest { } @Test - public void testPut() { + void testPut() { var g = new GuardedQueue(); g.put(12); assertEquals(Integer.valueOf(12), g.get()); diff --git a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java index de4591a22..5f771574d 100644 --- a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java +++ b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java @@ -24,8 +24,7 @@ package com.iluwatar.halfsynchalfasync; import java.util.concurrent.LinkedBlockingQueue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This application demonstrates Half-Sync/Half-Async pattern. Key parts of the pattern are {@link @@ -60,10 +59,9 @@ import org.slf4j.LoggerFactory; * tasks are executed. Our implementation is just one simple way of implementing this pattern, there * are many variants possible as described in its applications. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java index 6361e5d41..4ade8c0af 100644 --- a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java +++ b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java @@ -29,8 +29,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.FutureTask; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This is the asynchronous layer which does not block when a new request arrives. It just passes @@ -39,9 +38,8 @@ import org.slf4j.LoggerFactory; * thread picks up the task and executes it synchronously in background and the result is posted * back to the caller via callback. */ +@Slf4j public class AsynchronousService { - - private static final Logger LOGGER = LoggerFactory.getLogger(AsynchronousService.class); /* * This represents the queuing layer as well as synchronous layer of the pattern. The thread pool * contains worker threads which execute the tasks in blocking/synchronous manner. Long running diff --git a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java index 05c2272b6..fa7f42e40 100644 --- a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java +++ b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java @@ -23,13 +23,6 @@ package com.iluwatar.halfsynchalfasync; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.InOrder; - -import java.io.IOException; -import java.util.concurrent.LinkedBlockingQueue; - import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.inOrder; @@ -40,6 +33,11 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; +import java.io.IOException; +import java.util.concurrent.LinkedBlockingQueue; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + /** * Date: 12/12/15 - 11:15 PM * @@ -56,7 +54,7 @@ public class AsynchronousServiceTest { } @Test - public void testPerfectExecution() throws Exception { + void testPerfectExecution() throws Exception { final var result = new Object(); when(task.call()).thenReturn(result); service.execute(task); @@ -72,7 +70,7 @@ public class AsynchronousServiceTest { } @Test - public void testCallException() throws Exception { + void testCallException() throws Exception { final var exception = new IOException(); when(task.call()).thenThrow(exception); service.execute(task); @@ -88,7 +86,7 @@ public class AsynchronousServiceTest { } @Test - public void testPreCallException() { + void testPreCallException() { final var exception = new IllegalStateException(); doThrow(exception).when(task).onPreCall(); service.execute(task); diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java index f14e6925f..abe6de900 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java @@ -30,16 +30,14 @@ import com.iluwatar.hexagonal.module.LotteryModule; import com.iluwatar.hexagonal.mongo.MongoConnectionPropertiesLoader; import com.iluwatar.hexagonal.sampledata.SampleData; import java.util.Scanner; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Console interface for lottery administration. */ +@Slf4j public class ConsoleAdministration { - private static final Logger LOGGER = LoggerFactory.getLogger(ConsoleAdministration.class); - /** * Program entry point. */ diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java index 728c2e057..d3659818a 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java @@ -147,7 +147,7 @@ public class MongoTicketRepository implements LotteryTicketRepository { doc.put("email", ticket.getPlayerDetails().getEmail()); doc.put("bank", ticket.getPlayerDetails().getBankAccount()); doc.put("phone", ticket.getPlayerDetails().getPhoneNumber()); - doc.put("numbers", ticket.getNumbers().getNumbersAsString()); + doc.put("numbers", ticket.getLotteryNumbers().getNumbersAsString()); ticketsCollection.insertOne(doc); return Optional.of(new LotteryTicketId(ticketId)); } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java index 4672b7688..ec4bd691e 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java @@ -29,11 +29,15 @@ import java.util.Collections; import java.util.HashSet; import java.util.PrimitiveIterator; import java.util.Set; +import lombok.EqualsAndHashCode; +import lombok.ToString; /** * Value object representing lottery numbers. This lottery uses sets of 4 numbers. The numbers must * be unique and between 1 and 20. */ +@EqualsAndHashCode +@ToString public class LotteryNumbers { private final Set numbers; @@ -106,11 +110,6 @@ public class LotteryNumbers { } } - @Override - public String toString() { - return "LotteryNumbers{" + "numbers=" + numbers + '}'; - } - /** * Helper class for generating random numbers. */ @@ -139,30 +138,4 @@ public class LotteryNumbers { } } - @Override - public int hashCode() { - final var prime = 31; - var result = 1; - result = prime * result + ((numbers == null) ? 0 : numbers.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (LotteryNumbers) obj; - if (numbers == null) { - return other.numbers == null; - } else { - return numbers.equals(other.numbers); - } - } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java index 9017e4480..f96b6fbee 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java @@ -23,63 +23,22 @@ package com.iluwatar.hexagonal.domain; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; + /** * Immutable value object representing lottery ticket. */ +@Getter +@ToString +@RequiredArgsConstructor public class LotteryTicket { - private LotteryTicketId id; + private final LotteryTicketId id; private final PlayerDetails playerDetails; private final LotteryNumbers lotteryNumbers; - /** - * Constructor. - */ - public LotteryTicket(LotteryTicketId id, PlayerDetails details, LotteryNumbers numbers) { - this.id = id; - playerDetails = details; - lotteryNumbers = numbers; - } - - /** - * Get player details. - * - * @return player details - */ - public PlayerDetails getPlayerDetails() { - return playerDetails; - } - - /** - * Get lottery numbers. - * - * @return lottery numbers - */ - public LotteryNumbers getNumbers() { - return lotteryNumbers; - } - - /** - * Get ticket id. - * - * @return id - */ - public LotteryTicketId getId() { - return id; - } - - /** - * Set ticket id. - */ - public void setId(LotteryTicketId id) { - this.id = id; - } - - @Override - public String toString() { - return playerDetails.toString() + " " + lotteryNumbers.toString(); - } - @Override public int hashCode() { final var prime = 31; @@ -114,4 +73,5 @@ public class LotteryTicket { return playerDetails.equals(other.playerDetails); } } + } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java index 5cc7bf6b2..10e5fc358 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java @@ -23,9 +23,16 @@ package com.iluwatar.hexagonal.domain; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * Represents lottery ticket check result. */ +@Getter +@EqualsAndHashCode +@RequiredArgsConstructor public class LotteryTicketCheckResult { /** @@ -37,64 +44,15 @@ public class LotteryTicketCheckResult { TICKET_NOT_SUBMITTED } - private final CheckResult checkResult; + private final CheckResult result; private final int prizeAmount; /** * Constructor. */ public LotteryTicketCheckResult(CheckResult result) { - checkResult = result; + this.result = result; prizeAmount = 0; } - /** - * Constructor. - */ - public LotteryTicketCheckResult(CheckResult result, int amount) { - checkResult = result; - prizeAmount = amount; - } - - /** - * Get result. - * - * @return check result - */ - public CheckResult getResult() { - return checkResult; - } - - /** - * Get prize amount. - * - * @return prize amount - */ - public int getPrizeAmount() { - return prizeAmount; - } - - @Override - public int hashCode() { - final var prime = 31; - var result = 1; - result = prime * result + ((checkResult == null) ? 0 : checkResult.hashCode()); - result = prime * result + prizeAmount; - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (LotteryTicketCheckResult) obj; - return checkResult == other.checkResult && prizeAmount == other.prizeAmount; - } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java index 4ab167fce..624854cb7 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java @@ -24,10 +24,16 @@ package com.iluwatar.hexagonal.domain; import java.util.concurrent.atomic.AtomicInteger; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * Lottery ticked id. */ +@Getter +@EqualsAndHashCode +@RequiredArgsConstructor public class LotteryTicketId { private static final AtomicInteger numAllocated = new AtomicInteger(0); @@ -37,35 +43,9 @@ public class LotteryTicketId { this.id = numAllocated.incrementAndGet(); } - public LotteryTicketId(int id) { - this.id = id; - } - - public int getId() { - return id; - } - @Override public String toString() { return String.format("%d", id); } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - var that = (LotteryTicketId) o; - - return id == that.id; - } - - @Override - public int hashCode() { - return id; - } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java index 562ca140d..6b7bcf12b 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java @@ -44,7 +44,7 @@ public class LotteryUtils { ) { var optional = repository.findById(id); if (optional.isPresent()) { - if (optional.get().getNumbers().equals(winningNumbers)) { + if (optional.get().getLotteryNumbers().equals(winningNumbers)) { return new LotteryTicketCheckResult(CheckResult.WIN_PRIZE, 1000); } else { return new LotteryTicketCheckResult(CheckResult.NO_PRIZE); diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java index d40024a6a..9df222b57 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java @@ -23,98 +23,22 @@ package com.iluwatar.hexagonal.domain; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; + /** * Immutable value object containing lottery player details. */ +@EqualsAndHashCode +@ToString +@Getter +@RequiredArgsConstructor public class PlayerDetails { - private final String emailAddress; - private final String bankAccountNumber; + private final String email; + private final String bankAccount; private final String phoneNumber; - /** - * Constructor. - */ - public PlayerDetails(String email, String bankAccount, String phone) { - emailAddress = email; - bankAccountNumber = bankAccount; - phoneNumber = phone; - } - - /** - * Get email. - * - * @return email - */ - public String getEmail() { - return emailAddress; - } - - /** - * Get back account number. - * - * @return bank account number - */ - public String getBankAccount() { - return bankAccountNumber; - } - - /** - * Get phone number. - * - * @return phone number - */ - public String getPhoneNumber() { - return phoneNumber; - } - - @Override - public String toString() { - return "PlayerDetails{" + "emailAddress='" + emailAddress + '\'' - + ", bankAccountNumber='" + bankAccountNumber + '\'' - + ", phoneNumber='" + phoneNumber + '\'' + '}'; - } - - @Override - public int hashCode() { - final var prime = 31; - var result = 1; - result = prime * result + ((bankAccountNumber == null) ? 0 : bankAccountNumber.hashCode()); - result = prime * result + ((emailAddress == null) ? 0 : emailAddress.hashCode()); - result = prime * result + ((phoneNumber == null) ? 0 : phoneNumber.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (PlayerDetails) obj; - if (bankAccountNumber == null) { - if (other.bankAccountNumber != null) { - return false; - } - } else if (!bankAccountNumber.equals(other.bankAccountNumber)) { - return false; - } - if (emailAddress == null) { - if (other.emailAddress != null) { - return false; - } - } else if (!emailAddress.equals(other.emailAddress)) { - return false; - } - if (phoneNumber == null) { - return other.phoneNumber == null; - } else { - return phoneNumber.equals(other.phoneNumber); - } - } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java index 4bee37103..373660c3c 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java @@ -24,16 +24,14 @@ package com.iluwatar.hexagonal.eventlog; import com.iluwatar.hexagonal.domain.PlayerDetails; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Standard output event log. */ +@Slf4j public class StdOutEventLog implements LotteryEventLog { - private static final Logger LOGGER = LoggerFactory.getLogger(StdOutEventLog.class); - @Override public void ticketSubmitted(PlayerDetails details) { LOGGER.info("Lottery ticket for {} was submitted. Bank account {} was charged for 3 credits.", diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java index bc17c3662..ee503fe69 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java @@ -29,16 +29,14 @@ import com.iluwatar.hexagonal.domain.LotteryService; import com.iluwatar.hexagonal.module.LotteryModule; import com.iluwatar.hexagonal.mongo.MongoConnectionPropertiesLoader; import java.util.Scanner; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Console interface for lottery players. */ +@Slf4j public class ConsoleLottery { - private static final Logger LOGGER = LoggerFactory.getLogger(ConsoleLottery.class); - /** * Program entry point. */ diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java index eb9369ef6..4473ce49e 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java @@ -88,7 +88,7 @@ class MongoTicketRepositoryTest { assertEquals("foo@bar.com", ticket.getPlayerDetails().getEmail()); assertEquals("123-123", ticket.getPlayerDetails().getBankAccount()); assertEquals("07001234", ticket.getPlayerDetails().getPhoneNumber()); - assertEquals(original.getNumbers(), ticket.getNumbers()); + assertEquals(original.getLotteryNumbers(), ticket.getLotteryNumbers()); // clear the collection repository.deleteAll(); assertEquals(0, repository.getTicketsCollection().count()); diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java index 1a94a8b80..f24699168 100644 --- a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java +++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java @@ -41,7 +41,7 @@ import org.junit.jupiter.api.Test; public class FilterManagerTest { @Test - public void testFilterRequest() { + void testFilterRequest() { final var target = mock(Target.class); final var filterManager = new FilterManager(); assertEquals("RUNNING...", filterManager.filterRequest(mock(Order.class))); @@ -49,7 +49,7 @@ public class FilterManagerTest { } @Test - public void testAddFilter() { + void testAddFilter() { final var target = mock(Target.class); final var filterManager = new FilterManager(); diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java index ab08d2dfe..00f16ec84 100644 --- a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java +++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java @@ -37,35 +37,35 @@ public class OrderTest { private static final String EXPECTED_VALUE = "test"; @Test - public void testSetName() { + void testSetName() { final var order = new Order(); order.setName(EXPECTED_VALUE); assertEquals(EXPECTED_VALUE, order.getName()); } @Test - public void testSetContactNumber() { + void testSetContactNumber() { final var order = new Order(); order.setContactNumber(EXPECTED_VALUE); assertEquals(EXPECTED_VALUE, order.getContactNumber()); } @Test - public void testSetAddress() { + void testSetAddress() { final var order = new Order(); order.setAddress(EXPECTED_VALUE); assertEquals(EXPECTED_VALUE, order.getAddress()); } @Test - public void testSetDepositNumber() { + void testSetDepositNumber() { final var order = new Order(); order.setDepositNumber(EXPECTED_VALUE); assertEquals(EXPECTED_VALUE, order.getDepositNumber()); } @Test - public void testSetOrder() { + void testSetOrder() { final var order = new Order(); order.setOrderItem(EXPECTED_VALUE); assertEquals(EXPECTED_VALUE, order.getOrderItem()); diff --git a/interpreter/src/main/java/com/iluwatar/interpreter/App.java b/interpreter/src/main/java/com/iluwatar/interpreter/App.java index c0c4dce63..ebff7b532 100644 --- a/interpreter/src/main/java/com/iluwatar/interpreter/App.java +++ b/interpreter/src/main/java/com/iluwatar/interpreter/App.java @@ -24,8 +24,7 @@ package com.iluwatar.interpreter; import java.util.Stack; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Interpreter pattern is a design pattern that specifies how to evaluate sentences in a @@ -36,10 +35,9 @@ import org.slf4j.LoggerFactory; *

In this example we use the Interpreter pattern to break sentences into expressions ({@link * Expression}) that can be evaluated and as a whole form the result. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/iterator/src/main/java/com/iluwatar/iterator/App.java b/iterator/src/main/java/com/iluwatar/iterator/App.java index 6141f7fcc..230d67fb4 100644 --- a/iterator/src/main/java/com/iluwatar/iterator/App.java +++ b/iterator/src/main/java/com/iluwatar/iterator/App.java @@ -32,8 +32,7 @@ import com.iluwatar.iterator.bst.BstIterator; import com.iluwatar.iterator.bst.TreeNode; import com.iluwatar.iterator.list.ItemType; import com.iluwatar.iterator.list.TreasureChest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Iterator pattern is a design pattern in which an iterator is used to traverse a container and @@ -43,10 +42,9 @@ import org.slf4j.LoggerFactory; * ({@link TreasureChest}). This way the collection can change its internal implementation without * affecting its clients. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private static final TreasureChest TREASURE_CHEST = new TreasureChest(); private static void demonstrateTreasureChestIteratorForType(ItemType itemType) { diff --git a/layers/README.md b/layers/README.md index d29ad40d0..1c8a695a0 100644 --- a/layers/README.md +++ b/layers/README.md @@ -82,10 +82,9 @@ public interface View { } +@Slf4j public class CakeViewImpl implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(CakeViewImpl.class); - private final CakeBakingService cakeBakingService; public CakeViewImpl(CakeBakingService cakeBakingService) { diff --git a/layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java b/layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java index 76674c025..d477d49ed 100644 --- a/layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java +++ b/layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java @@ -24,16 +24,14 @@ package com.iluwatar.layers.view; import com.iluwatar.layers.service.CakeBakingService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * View implementation for displaying cakes. */ +@Slf4j public class CakeViewImpl implements View { - private static final Logger LOGGER = LoggerFactory.getLogger(CakeViewImpl.class); - private final CakeBakingService cakeBakingService; public CakeViewImpl(CakeBakingService cakeBakingService) { diff --git a/layers/src/test/java/com/iluwatar/layers/app/AppTest.java b/layers/src/test/java/com/iluwatar/layers/app/AppTest.java index 22be5a810..84af96ee1 100644 --- a/layers/src/test/java/com/iluwatar/layers/app/AppTest.java +++ b/layers/src/test/java/com/iluwatar/layers/app/AppTest.java @@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; /** - * + * * Application test * */ diff --git a/layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java b/layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java index 106ef1e0f..e8ed3bf9f 100644 --- a/layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java +++ b/layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java @@ -23,19 +23,15 @@ package com.iluwatar.layers.entity; -import com.iluwatar.layers.entity.Cake; -import com.iluwatar.layers.entity.CakeLayer; -import com.iluwatar.layers.entity.CakeTopping; -import org.junit.jupiter.api.Test; - -import java.util.HashSet; -import java.util.Set; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.HashSet; +import java.util.Set; +import org.junit.jupiter.api.Test; + /** * Date: 12/15/15 - 8:02 PM * @@ -44,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class CakeTest { @Test - public void testSetId() { + void testSetId() { final var cake = new Cake(); assertNull(cake.getId()); @@ -54,7 +50,7 @@ public class CakeTest { } @Test - public void testSetTopping() { + void testSetTopping() { final var cake = new Cake(); assertNull(cake.getTopping()); @@ -64,21 +60,21 @@ public class CakeTest { } @Test - public void testSetLayers() { + void testSetLayers() { final var cake = new Cake(); assertNotNull(cake.getLayers()); assertTrue(cake.getLayers().isEmpty()); final var expectedLayers = Set.of( - new CakeLayer("layer1", 1000), - new CakeLayer("layer2", 2000), - new CakeLayer("layer3", 3000)); + new CakeLayer("layer1", 1000), + new CakeLayer("layer2", 2000), + new CakeLayer("layer3", 3000)); cake.setLayers(expectedLayers); assertEquals(expectedLayers, cake.getLayers()); } @Test - public void testAddLayer() { + void testAddLayer() { final var cake = new Cake(); assertNotNull(cake.getLayers()); assertTrue(cake.getLayers().isEmpty()); @@ -101,7 +97,7 @@ public class CakeTest { } @Test - public void testToString() { + void testToString() { final var topping = new CakeTopping("topping", 20); topping.setId(2345L); @@ -114,7 +110,7 @@ public class CakeTest { cake.addLayer(layer); final var expected = "id=1234 topping=id=2345 name=topping calories=20 " - + "layers=[id=3456 name=layer calories=100]"; + + "layers=[id=3456 name=layer calories=100]"; assertEquals(expected, cake.toString()); } diff --git a/layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java b/layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java index 253a8634f..a14ed8997 100644 --- a/layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java +++ b/layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java @@ -23,12 +23,11 @@ package com.iluwatar.layers.exception; -import com.iluwatar.layers.exception.CakeBakingException; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; +import org.junit.jupiter.api.Test; + /** * Date: 12/15/15 - 7:57 PM * @@ -37,14 +36,14 @@ import static org.junit.jupiter.api.Assertions.assertNull; public class CakeBakingExceptionTest { @Test - public void testConstructor() { + void testConstructor() { final var exception = new CakeBakingException(); assertNull(exception.getMessage()); assertNull(exception.getCause()); } @Test - public void testConstructorWithMessage() { + void testConstructorWithMessage() { final var expectedMessage = "message"; final var exception = new CakeBakingException(expectedMessage); assertEquals(expectedMessage, exception.getMessage()); diff --git a/layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java b/layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java index 465d8f034..3b8d8fc1e 100644 --- a/layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java +++ b/layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java @@ -23,17 +23,19 @@ package com.iluwatar.layers.service; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + import com.iluwatar.layers.dto.CakeInfo; import com.iluwatar.layers.dto.CakeLayerInfo; import com.iluwatar.layers.dto.CakeToppingInfo; import com.iluwatar.layers.exception.CakeBakingException; -import com.iluwatar.layers.service.CakeBakingServiceImpl; -import org.junit.jupiter.api.Test; - import java.util.Collections; import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * Date: 12/15/15 - 9:55 PM @@ -43,7 +45,7 @@ import static org.junit.jupiter.api.Assertions.*; public class CakeBakingServiceImplTest { @Test - public void testLayers() { + void testLayers() { final var service = new CakeBakingServiceImpl(); final var initialLayers = service.getAvailableLayers(); @@ -66,7 +68,7 @@ public class CakeBakingServiceImplTest { } @Test - public void testToppings() { + void testToppings() { final var service = new CakeBakingServiceImpl(); final var initialToppings = service.getAvailableToppings(); @@ -89,7 +91,7 @@ public class CakeBakingServiceImplTest { } @Test - public void testBakeCakes() throws CakeBakingException { + void testBakeCakes() throws CakeBakingException { final var service = new CakeBakingServiceImpl(); final var initialCakes = service.getAllCakes(); @@ -126,7 +128,7 @@ public class CakeBakingServiceImplTest { } @Test - public void testBakeCakeMissingTopping() { + void testBakeCakeMissingTopping() { final var service = new CakeBakingServiceImpl(); final var layer1 = new CakeLayerInfo("Layer1", 1000); @@ -141,7 +143,7 @@ public class CakeBakingServiceImplTest { } @Test - public void testBakeCakeMissingLayer() { + void testBakeCakeMissingLayer() { final var service = new CakeBakingServiceImpl(); final var initialCakes = service.getAllCakes(); @@ -161,7 +163,7 @@ public class CakeBakingServiceImplTest { } @Test - public void testBakeCakesUsedLayer() throws CakeBakingException { + void testBakeCakesUsedLayer() throws CakeBakingException { final var service = new CakeBakingServiceImpl(); final var initialCakes = service.getAllCakes(); diff --git a/layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java b/layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java index ed0ff3803..e348c1d8b 100644 --- a/layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java +++ b/layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java @@ -23,6 +23,10 @@ package com.iluwatar.layers.view; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.AppenderBase; @@ -30,19 +34,13 @@ import com.iluwatar.layers.dto.CakeInfo; import com.iluwatar.layers.dto.CakeLayerInfo; import com.iluwatar.layers.dto.CakeToppingInfo; import com.iluwatar.layers.service.CakeBakingService; -import com.iluwatar.layers.view.CakeViewImpl; +import java.util.LinkedList; +import java.util.List; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.LoggerFactory; -import java.util.LinkedList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - /** * Date: 12/15/15 - 10:04 PM * @@ -66,12 +64,12 @@ public class CakeViewImplTest { * Verify if the cake view renders the expected result */ @Test - public void testRender() { + void testRender() { final var layers = List.of( - new CakeLayerInfo("layer1", 1000), - new CakeLayerInfo("layer2", 2000), - new CakeLayerInfo("layer3", 3000)); + new CakeLayerInfo("layer1", 1000), + new CakeLayerInfo("layer2", 2000), + new CakeLayerInfo("layer3", 3000)); final var cake = new CakeInfo(new CakeToppingInfo("topping", 1000), layers); final var cakes = List.of(cake); diff --git a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/App.java b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/App.java index a4b268403..6b1927a9d 100644 --- a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/App.java +++ b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/App.java @@ -23,8 +23,7 @@ package com.iluwatar.lazy.loading; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Lazy loading idiom defers object creation until needed. @@ -34,10 +33,9 @@ import org.slf4j.LoggerFactory; *

Additional information and lazy loading flavours are described in * http://martinfowler.com/eaaCatalog/lazyLoad.html */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Heavy.java b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Heavy.java index f0cbc6e93..ed4255200 100644 --- a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Heavy.java +++ b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Heavy.java @@ -23,16 +23,14 @@ package com.iluwatar.lazy.loading; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Heavy objects are expensive to create. */ +@Slf4j public class Heavy { - private static final Logger LOGGER = LoggerFactory.getLogger(Heavy.class); - /** * Constructor. */ diff --git a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderNaive.java b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderNaive.java index d42f09ecb..d351336ce 100644 --- a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderNaive.java +++ b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderNaive.java @@ -23,16 +23,14 @@ package com.iluwatar.lazy.loading; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Simple implementation of the lazy loading idiom. However, this is not thread safe. */ +@Slf4j public class HolderNaive { - private static final Logger LOGGER = LoggerFactory.getLogger(HolderNaive.class); - private Heavy heavy; /** diff --git a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderThreadSafe.java b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderThreadSafe.java index 7a3196172..8224535bf 100644 --- a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderThreadSafe.java +++ b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/HolderThreadSafe.java @@ -23,17 +23,15 @@ package com.iluwatar.lazy.loading; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Same as HolderNaive but with added synchronization. This implementation is thread safe, but each * {@link #getHeavy()} call costs additional synchronization overhead. */ +@Slf4j public class HolderThreadSafe { - private static final Logger LOGGER = LoggerFactory.getLogger(HolderThreadSafe.class); - private Heavy heavy; /** diff --git a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Java8Holder.java b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Java8Holder.java index ba0c2de40..226876254 100644 --- a/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Java8Holder.java +++ b/lazy-loading/src/main/java/com/iluwatar/lazy/loading/Java8Holder.java @@ -24,17 +24,15 @@ package com.iluwatar.lazy.loading; import java.util.function.Supplier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This lazy loader is thread safe and more efficient than {@link HolderThreadSafe}. It utilizes * Java 8 functional interface {@link Supplier} as {@link Heavy} factory. */ +@Slf4j public class Java8Holder { - private static final Logger LOGGER = LoggerFactory.getLogger(Java8Holder.class); - private Supplier heavy = this::createAndCacheHeavy; public Java8Holder() { diff --git a/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AbstractHolderTest.java b/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AbstractHolderTest.java index 5e46ab678..7bbf37dc1 100644 --- a/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AbstractHolderTest.java +++ b/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AbstractHolderTest.java @@ -23,14 +23,14 @@ package com.iluwatar.lazy.loading; -import org.junit.jupiter.api.Test; - import static java.time.Duration.ofMillis; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertTimeout; +import org.junit.jupiter.api.Test; + /** * Date: 12/19/15 - 11:58 AM * @@ -56,7 +56,7 @@ public abstract class AbstractHolderTest { * This test shows that the heavy field is not instantiated until the method getHeavy is called */ @Test - public void testGetHeavy() throws Exception { + void testGetHeavy() throws Exception { assertTimeout(ofMillis(3000), () -> { assertNull(getInternalHeavyValue()); assertNotNull(getHeavy()); diff --git a/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AppTest.java b/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AppTest.java index 6a3f6ccac..8ffdcbfa2 100644 --- a/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AppTest.java +++ b/lazy-loading/src/test/java/com/iluwatar/lazy/loading/AppTest.java @@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; /** - * + * * Application test * */ diff --git a/leader-election/src/main/java/com/iluwatar/leaderelection/AbstractInstance.java b/leader-election/src/main/java/com/iluwatar/leaderelection/AbstractInstance.java index 0a26808e9..15e48fa96 100644 --- a/leader-election/src/main/java/com/iluwatar/leaderelection/AbstractInstance.java +++ b/leader-election/src/main/java/com/iluwatar/leaderelection/AbstractInstance.java @@ -25,16 +25,14 @@ package com.iluwatar.leaderelection; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Abstract class of all the instance implementation classes. */ +@Slf4j public abstract class AbstractInstance implements Instance, Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(AbstractInstance.class); - protected static final int HEARTBEAT_INTERVAL = 5000; private static final String INSTANCE = "Instance "; diff --git a/leader-election/src/main/java/com/iluwatar/leaderelection/Message.java b/leader-election/src/main/java/com/iluwatar/leaderelection/Message.java index b6fa0f9a8..f99d5a477 100644 --- a/leader-election/src/main/java/com/iluwatar/leaderelection/Message.java +++ b/leader-election/src/main/java/com/iluwatar/leaderelection/Message.java @@ -23,55 +23,23 @@ package com.iluwatar.leaderelection; -import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; /** * Message used to transport data between instances. */ +@Setter +@Getter +@EqualsAndHashCode +@AllArgsConstructor +@NoArgsConstructor public class Message { private MessageType type; - private String content; - public Message() { - } - - public Message(MessageType type, String content) { - this.type = type; - this.content = content; - } - - public MessageType getType() { - return type; - } - - public void setType(MessageType type) { - this.type = type; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - var message = (Message) o; - return type == message.type && Objects.equals(content, message.content); - } - - @Override - public int hashCode() { - return Objects.hash(type, content); - } } diff --git a/leader-election/src/main/java/com/iluwatar/leaderelection/bully/BullyInstance.java b/leader-election/src/main/java/com/iluwatar/leaderelection/bully/BullyInstance.java index acf50faa9..fd6f36f0c 100644 --- a/leader-election/src/main/java/com/iluwatar/leaderelection/bully/BullyInstance.java +++ b/leader-election/src/main/java/com/iluwatar/leaderelection/bully/BullyInstance.java @@ -26,8 +26,7 @@ package com.iluwatar.leaderelection.bully; import com.iluwatar.leaderelection.AbstractInstance; import com.iluwatar.leaderelection.Message; import com.iluwatar.leaderelection.MessageManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Impelemetation with bully algorithm. Each instance should have a sequential id and is able to @@ -38,9 +37,8 @@ import org.slf4j.LoggerFactory; * it will return an alive message (in this sample return true) and then send election message with * its ID. If not, the original instance will send leader message to all the other instances. */ +@Slf4j public class BullyInstance extends AbstractInstance { - - private static final Logger LOGGER = LoggerFactory.getLogger(BullyInstance.class); private static final String INSTANCE = "Instance "; /** diff --git a/leader-election/src/main/java/com/iluwatar/leaderelection/ring/RingInstance.java b/leader-election/src/main/java/com/iluwatar/leaderelection/ring/RingInstance.java index a7c4a4551..cc3100f9e 100644 --- a/leader-election/src/main/java/com/iluwatar/leaderelection/ring/RingInstance.java +++ b/leader-election/src/main/java/com/iluwatar/leaderelection/ring/RingInstance.java @@ -27,10 +27,8 @@ import com.iluwatar.leaderelection.AbstractInstance; import com.iluwatar.leaderelection.Message; import com.iluwatar.leaderelection.MessageManager; import java.util.Arrays; -import java.util.List; import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Implementation with token ring algorithm. The instances in the system are organized as a ring. @@ -43,9 +41,8 @@ import org.slf4j.LoggerFactory; * smallest ID to be the new leader, and then send a leader message to other instances to inform the * result. */ +@Slf4j public class RingInstance extends AbstractInstance { - - private static final Logger LOGGER = LoggerFactory.getLogger(RingInstance.class); private static final String INSTANCE = "Instance "; /** diff --git a/leader-election/src/test/java/com/iluwatar/leaderelection/MessageTest.java b/leader-election/src/test/java/com/iluwatar/leaderelection/MessageTest.java index ce36ccc2f..61776c6ce 100644 --- a/leader-election/src/test/java/com/iluwatar/leaderelection/MessageTest.java +++ b/leader-election/src/test/java/com/iluwatar/leaderelection/MessageTest.java @@ -23,23 +23,23 @@ package com.iluwatar.leaderelection; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + /** * Message test case. */ public class MessageTest { @Test - public void testGetType() { + void testGetType() { var message = new Message(MessageType.HEARTBEAT, ""); assertEquals(MessageType.HEARTBEAT, message.getType()); } @Test - public void testGetContent() { + void testGetContent() { var content = "test"; var message = new Message(MessageType.HEARTBEAT, content); assertEquals(content, message.getContent()); diff --git a/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyMessageManagerTest.java b/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyMessageManagerTest.java index de1cdc480..b04b76597 100644 --- a/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyMessageManagerTest.java +++ b/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyMessageManagerTest.java @@ -23,14 +23,17 @@ package com.iluwatar.leaderelection.bully; -import com.iluwatar.leaderelection.*; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; -import java.lang.reflect.Field; +import com.iluwatar.leaderelection.AbstractInstance; +import com.iluwatar.leaderelection.Instance; +import com.iluwatar.leaderelection.Message; +import com.iluwatar.leaderelection.MessageType; import java.util.Map; import java.util.Queue; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * BullyMessageManager unit test. @@ -38,7 +41,7 @@ import static org.junit.jupiter.api.Assertions.*; public class BullyMessageManagerTest { @Test - public void testSendHeartbeatMessage() { + void testSendHeartbeatMessage() { var instance1 = new BullyInstance(null, 1, 1); Map instanceMap = Map.of(1, instance1); var messageManager = new BullyMessageManager(instanceMap); @@ -46,7 +49,7 @@ public class BullyMessageManagerTest { } @Test - public void testSendElectionMessageNotAccepted() { + void testSendElectionMessageNotAccepted() { try { var instance1 = new BullyInstance(null, 1, 1); var instance2 = new BullyInstance(null, 1, 2); @@ -71,7 +74,7 @@ public class BullyMessageManagerTest { } @Test - public void testElectionMessageAccepted() { + void testElectionMessageAccepted() { var instance1 = new BullyInstance(null, 1, 1); var instance2 = new BullyInstance(null, 1, 2); var instance3 = new BullyInstance(null, 1, 3); @@ -84,7 +87,7 @@ public class BullyMessageManagerTest { } @Test - public void testSendLeaderMessage() { + void testSendLeaderMessage() { try { var instance1 = new BullyInstance(null, 1, 1); var instance2 = new BullyInstance(null, 1, 2); @@ -108,7 +111,7 @@ public class BullyMessageManagerTest { } @Test - public void testSendHeartbeatInvokeMessage() { + void testSendHeartbeatInvokeMessage() { try { var instance1 = new BullyInstance(null, 1, 1); var instance2 = new BullyInstance(null, 1, 2); diff --git a/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyinstanceTest.java b/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyinstanceTest.java index b6836983b..8baab03f2 100644 --- a/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyinstanceTest.java +++ b/leader-election/src/test/java/com/iluwatar/leaderelection/bully/BullyinstanceTest.java @@ -23,15 +23,15 @@ package com.iluwatar.leaderelection.bully; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.fail; + import com.iluwatar.leaderelection.AbstractInstance; import com.iluwatar.leaderelection.Message; import com.iluwatar.leaderelection.MessageType; -import org.junit.jupiter.api.Test; - -import java.lang.reflect.Field; import java.util.Queue; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * BullyInstance unit test. @@ -39,7 +39,7 @@ import static org.junit.jupiter.api.Assertions.*; public class BullyinstanceTest { @Test - public void testOnMessage() { + void testOnMessage() { try { final var bullyInstance = new BullyInstance(null, 1, 1); var bullyMessage = new Message(MessageType.HEARTBEAT, ""); @@ -55,7 +55,7 @@ public class BullyinstanceTest { } @Test - public void testIsAlive() { + void testIsAlive() { try { final var bullyInstance = new BullyInstance(null, 1, 1); var instanceClass = AbstractInstance.class; @@ -69,7 +69,7 @@ public class BullyinstanceTest { } @Test - public void testSetAlive() { + void testSetAlive() { final var bullyInstance = new BullyInstance(null, 1, 1); bullyInstance.setAlive(false); assertFalse(bullyInstance.isAlive()); diff --git a/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingInstanceTest.java b/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingInstanceTest.java index 69bc636de..f3e9b4552 100644 --- a/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingInstanceTest.java +++ b/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingInstanceTest.java @@ -23,15 +23,15 @@ package com.iluwatar.leaderelection.ring; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.fail; + import com.iluwatar.leaderelection.AbstractInstance; import com.iluwatar.leaderelection.Message; import com.iluwatar.leaderelection.MessageType; -import org.junit.jupiter.api.Test; - -import java.lang.reflect.Field; import java.util.Queue; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * RingInstance unit test. @@ -39,7 +39,7 @@ import static org.junit.jupiter.api.Assertions.*; public class RingInstanceTest { @Test - public void testOnMessage() { + void testOnMessage() { try { final var ringInstance = new RingInstance(null, 1, 1); var ringMessage = new Message(MessageType.HEARTBEAT, ""); @@ -54,7 +54,7 @@ public class RingInstanceTest { } @Test - public void testIsAlive() { + void testIsAlive() { try { final var ringInstance = new RingInstance(null, 1, 1); var ringInstanceClass = AbstractInstance.class; @@ -68,7 +68,7 @@ public class RingInstanceTest { } @Test - public void testSetAlive() { + void testSetAlive() { final var ringInstance = new RingInstance(null, 1, 1); ringInstance.setAlive(false); assertFalse(ringInstance.isAlive()); diff --git a/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingMessageManagerTest.java b/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingMessageManagerTest.java index fe4590a02..aea516c05 100644 --- a/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingMessageManagerTest.java +++ b/leader-election/src/test/java/com/iluwatar/leaderelection/ring/RingMessageManagerTest.java @@ -23,14 +23,17 @@ package com.iluwatar.leaderelection.ring; -import com.iluwatar.leaderelection.*; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; -import java.lang.reflect.Field; +import com.iluwatar.leaderelection.AbstractInstance; +import com.iluwatar.leaderelection.Instance; +import com.iluwatar.leaderelection.Message; +import com.iluwatar.leaderelection.MessageType; import java.util.Map; import java.util.Queue; - -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * RingMessageManager unit test. @@ -38,7 +41,7 @@ import static org.junit.jupiter.api.Assertions.*; public class RingMessageManagerTest { @Test - public void testSendHeartbeatMessage() { + void testSendHeartbeatMessage() { var instance1 = new RingInstance(null, 1, 1); Map instanceMap = Map.of(1, instance1); var messageManager = new RingMessageManager(instanceMap); @@ -46,7 +49,7 @@ public class RingMessageManagerTest { } @Test - public void testSendElectionMessage() { + void testSendElectionMessage() { try { var instance1 = new RingInstance(null, 1, 1); var instance2 = new RingInstance(null, 1, 2); @@ -68,7 +71,7 @@ public class RingMessageManagerTest { } @Test - public void testSendLeaderMessage() { + void testSendLeaderMessage() { try { var instance1 = new RingInstance(null, 1, 1); var instance2 = new RingInstance(null, 1, 2); @@ -89,7 +92,7 @@ public class RingMessageManagerTest { } @Test - public void testSendHeartbeatInvokeMessage() { + void testSendHeartbeatInvokeMessage() { try { var instance1 = new RingInstance(null, 1, 1); var instance2 = new RingInstance(null, 1, 2); diff --git a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/TaskHandler.java b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/TaskHandler.java index 81f2ed044..d4d1f5f54 100644 --- a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/TaskHandler.java +++ b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/TaskHandler.java @@ -23,16 +23,14 @@ package com.iluwatar.leaderfollowers; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The TaskHandler is used by the {@link Worker} to process the newly arrived task. */ +@Slf4j public class TaskHandler { - private static final Logger LOGGER = LoggerFactory.getLogger(TaskHandler.class); - /** * This interface handles one task at a time. */ diff --git a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java index 773eb1c6a..6c7caed24 100644 --- a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java +++ b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java @@ -23,14 +23,14 @@ package com.iluwatar.leaderfollowers; -import java.util.Objects; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.EqualsAndHashCode; +import lombok.extern.slf4j.Slf4j; +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +@Slf4j public class Worker implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Worker.class); - + @EqualsAndHashCode.Include private final long id; private final WorkCenter workCenter; private final TaskSet taskSet; @@ -72,25 +72,10 @@ public class Worker implements Runnable { workCenter.addWorker(this); } catch (InterruptedException e) { LOGGER.warn("Worker interrupted"); + Thread.currentThread().interrupt(); return; } } } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Worker)) { - return false; - } - var worker = (Worker) o; - return id == worker.id; - } - - @Override - public int hashCode() { - return Objects.hash(id); - } } diff --git a/leader-followers/src/test/java/com/AppTest.java b/leader-followers/src/test/java/com/AppTest.java index e764304d6..450a3a59d 100644 --- a/leader-followers/src/test/java/com/AppTest.java +++ b/leader-followers/src/test/java/com/AppTest.java @@ -26,18 +26,17 @@ package com; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import com.iluwatar.leaderfollowers.App; + import org.junit.jupiter.api.Test; /** - * * Application test - * */ class AppTest { - @Test - void shouldExecuteApplicationWithoutException() { - assertDoesNotThrow(() -> App.main(new String[]{})); - } + @Test + void shouldExecuteApplicationWithoutException() { + assertDoesNotThrow(() -> App.main(new String[]{})); + } } diff --git a/leader-followers/src/test/java/com/TaskHandlerTest.java b/leader-followers/src/test/java/com/TaskHandlerTest.java index b3e2f7577..07727726e 100644 --- a/leader-followers/src/test/java/com/TaskHandlerTest.java +++ b/leader-followers/src/test/java/com/TaskHandlerTest.java @@ -34,12 +34,12 @@ import org.junit.jupiter.api.Test; */ class TaskHandlerTest { - @Test - void testHandleTask() throws InterruptedException { - var taskHandler = new TaskHandler(); - var handle = new Task(100); - taskHandler.handleTask(handle); - assertTrue(handle.isFinished()); - } + @Test + void testHandleTask() throws InterruptedException { + var taskHandler = new TaskHandler(); + var handle = new Task(100); + taskHandler.handleTask(handle); + assertTrue(handle.isFinished()); + } } diff --git a/leader-followers/src/test/java/com/TaskSetTest.java b/leader-followers/src/test/java/com/TaskSetTest.java index af5f6b8a0..2c3b2b003 100644 --- a/leader-followers/src/test/java/com/TaskSetTest.java +++ b/leader-followers/src/test/java/com/TaskSetTest.java @@ -34,20 +34,20 @@ import org.junit.jupiter.api.Test; */ class TaskSetTest { - @Test - void testAddTask() throws InterruptedException { - var taskSet = new TaskSet(); - taskSet.addTask(new Task(10)); - assertEquals(1, taskSet.getSize()); - } + @Test + void testAddTask() throws InterruptedException { + var taskSet = new TaskSet(); + taskSet.addTask(new Task(10)); + assertEquals(1, taskSet.getSize()); + } - @Test - void testGetTask() throws InterruptedException { - var taskSet = new TaskSet(); - taskSet.addTask(new Task(100)); - Task task = taskSet.getTask(); - assertEquals(100, task.getTime()); - assertEquals(0, taskSet.getSize()); - } + @Test + void testGetTask() throws InterruptedException { + var taskSet = new TaskSet(); + taskSet.addTask(new Task(100)); + Task task = taskSet.getTask(); + assertEquals(100, task.getTime()); + assertEquals(0, taskSet.getSize()); + } } diff --git a/lombok.config b/lombok.config new file mode 100644 index 000000000..753b316b5 --- /dev/null +++ b/lombok.config @@ -0,0 +1,2 @@ +lombok.log.fieldName = LOGGER + diff --git a/marker/src/main/java/Guard.java b/marker/src/main/java/Guard.java index edf585263..23ad81edb 100644 --- a/marker/src/main/java/Guard.java +++ b/marker/src/main/java/Guard.java @@ -21,14 +21,13 @@ * THE SOFTWARE. */ -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class defining Guard. */ +@Slf4j public class Guard implements Permission { - private static final Logger LOGGER = LoggerFactory.getLogger(Guard.class); protected void enter() { LOGGER.info("You can enter"); diff --git a/marker/src/main/java/Thief.java b/marker/src/main/java/Thief.java index 9f068d46f..cf44b0872 100644 --- a/marker/src/main/java/Thief.java +++ b/marker/src/main/java/Thief.java @@ -21,14 +21,13 @@ * THE SOFTWARE. */ -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class defining Thief. */ +@Slf4j public class Thief { - private static final Logger LOGGER = LoggerFactory.getLogger(Thief.class); protected void steal() { LOGGER.info("Steal valuable items"); diff --git a/marker/src/test/java/ThiefTest.java b/marker/src/test/java/ThiefTest.java index e1eaf1e40..669779337 100644 --- a/marker/src/test/java/ThiefTest.java +++ b/marker/src/test/java/ThiefTest.java @@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test; */ public class ThiefTest { @Test - public void testThief() { + void testThief() { var thief = new Thief(); assertThat(thief, not(instanceOf(Permission.class))); } diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/App.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/App.java index 8f2c6296b..a611335ad 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/App.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/App.java @@ -29,8 +29,7 @@ import com.iluwatar.masterworker.system.systemmaster.ArrayTransposeMaster; import com.iluwatar.masterworker.system.systemmaster.Master; import com.iluwatar.masterworker.system.systemworkers.ArrayTransposeWorker; import com.iluwatar.masterworker.system.systemworkers.Worker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** *

The Master-Worker pattern is used when the problem at hand can be solved by @@ -55,10 +54,9 @@ import org.slf4j.LoggerFactory; * ArrayInput} and {@link ArrayResult}.

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayUtilityMethods.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayUtilityMethods.java index c4ca47b95..0dc0b56d1 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayUtilityMethods.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayUtilityMethods.java @@ -24,17 +24,15 @@ package com.iluwatar.masterworker; import java.security.SecureRandom; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class ArrayUtilityMethods has some utility methods for matrices and arrays. */ +@Slf4j public class ArrayUtilityMethods { - private static final Logger LOGGER = LoggerFactory.getLogger(ArrayUtilityMethods.class); - private static final SecureRandom RANDOM = new SecureRandom(); /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java b/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java index 6ec619752..b176c9145 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java @@ -23,16 +23,14 @@ package com.iluwatar.mediator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Abstract base class for party members. */ +@Slf4j public abstract class PartyMemberBase implements PartyMember { - private static final Logger LOGGER = LoggerFactory.getLogger(PartyMemberBase.class); - protected Party party; @Override diff --git a/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java b/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java index 293708890..f814cf89e 100644 --- a/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java +++ b/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java @@ -23,13 +23,13 @@ package com.iluwatar.mediator; -import org.junit.jupiter.api.Test; - import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; +import org.junit.jupiter.api.Test; + /** * Date: 12/19/15 - 10:00 PM * @@ -42,7 +42,7 @@ public class PartyImplTest { * other member gets it. Also check members don't get their own actions. */ @Test - public void testPartyAction() { + void testPartyAction() { final var partyMember1 = mock(PartyMember.class); final var partyMember2 = mock(PartyMember.class); diff --git a/memento/src/main/java/com/iluwatar/memento/App.java b/memento/src/main/java/com/iluwatar/memento/App.java index 217bb741a..29beadc65 100644 --- a/memento/src/main/java/com/iluwatar/memento/App.java +++ b/memento/src/main/java/com/iluwatar/memento/App.java @@ -24,8 +24,7 @@ package com.iluwatar.memento; import java.util.Stack; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Memento pattern is a software design pattern that provides the ability to restore an object @@ -44,10 +43,9 @@ import org.slf4j.LoggerFactory; * contains the state of the object. Later on the memento can be set back to the object restoring * the state. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/memento/src/test/java/com/iluwatar/memento/StarTest.java b/memento/src/test/java/com/iluwatar/memento/StarTest.java index b90a67768..1707a626c 100644 --- a/memento/src/test/java/com/iluwatar/memento/StarTest.java +++ b/memento/src/test/java/com/iluwatar/memento/StarTest.java @@ -38,7 +38,7 @@ public class StarTest { * Verify the stages of a dying sun, without going back in time */ @Test - public void testTimePasses() { + void testTimePasses() { final var star = new Star(StarType.SUN, 1, 2); assertEquals("sun age: 1 years mass: 2 tons", star.toString()); @@ -65,7 +65,7 @@ public class StarTest { * Verify some stage of a dying sun, but go back in time to test the memento */ @Test - public void testSetMemento() { + void testSetMemento() { final var star = new Star(StarType.SUN, 1, 2); final var firstMemento = star.getMemento(); assertEquals("sun age: 1 years mass: 2 tons", star.toString()); diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantView.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantView.java index c19f1e188..d7d000b20 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantView.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantView.java @@ -23,16 +23,14 @@ package com.iluwatar.model.view.controller; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * GiantView displays the giant. */ +@Slf4j public class GiantView { - private static final Logger LOGGER = LoggerFactory.getLogger(GiantView.class); - public void displayGiant(GiantModel giant) { LOGGER.info(giant.toString()); } diff --git a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantControllerTest.java b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantControllerTest.java index 65cde953f..e9c6aecdd 100644 --- a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantControllerTest.java +++ b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantControllerTest.java @@ -41,7 +41,7 @@ public class GiantControllerTest { * Verify if the controller passes the health level through to the model and vice versa */ @Test - public void testSetHealth() { + void testSetHealth() { final var model = mock(GiantModel.class); final var view = mock(GiantView.class); final var controller = new GiantController(model, view); @@ -65,7 +65,7 @@ public class GiantControllerTest { * Verify if the controller passes the fatigue level through to the model and vice versa */ @Test - public void testSetFatigue() { + void testSetFatigue() { final var model = mock(GiantModel.class); final var view = mock(GiantView.class); final var controller = new GiantController(model, view); @@ -89,7 +89,7 @@ public class GiantControllerTest { * Verify if the controller passes the nourishment level through to the model and vice versa */ @Test - public void testSetNourishment() { + void testSetNourishment() { final var model = mock(GiantModel.class); final var view = mock(GiantView.class); final var controller = new GiantController(model, view); @@ -110,7 +110,7 @@ public class GiantControllerTest { } @Test - public void testUpdateView() { + void testUpdateView() { final var model = mock(GiantModel.class); final var view = mock(GiantView.class); final var controller = new GiantController(model, view); diff --git a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantModelTest.java b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantModelTest.java index c820e5f1b..af657d41b 100644 --- a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantModelTest.java +++ b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantModelTest.java @@ -38,7 +38,7 @@ public class GiantModelTest { * Verify if the health value is set properly though the constructor and setter */ @Test - public void testSetHealth() { + void testSetHealth() { final var model = new GiantModel(Health.HEALTHY, Fatigue.ALERT, Nourishment.SATURATED); assertEquals(Health.HEALTHY, model.getHealth()); var messageFormat = "The giant looks %s, alert and saturated."; @@ -53,7 +53,7 @@ public class GiantModelTest { * Verify if the fatigue level is set properly though the constructor and setter */ @Test - public void testSetFatigue() { + void testSetFatigue() { final var model = new GiantModel(Health.HEALTHY, Fatigue.ALERT, Nourishment.SATURATED); assertEquals(Fatigue.ALERT, model.getFatigue()); var messageFormat = "The giant looks healthy, %s and saturated."; @@ -68,7 +68,7 @@ public class GiantModelTest { * Verify if the nourishment level is set properly though the constructor and setter */ @Test - public void testSetNourishment() { + void testSetNourishment() { final var model = new GiantModel(Health.HEALTHY, Fatigue.ALERT, Nourishment.SATURATED); assertEquals(Nourishment.SATURATED, model.getNourishment()); var messageFormat = "The giant looks healthy, alert and %s."; diff --git a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantViewTest.java b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantViewTest.java index 59537f5b2..b100617b5 100644 --- a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantViewTest.java +++ b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/GiantViewTest.java @@ -60,7 +60,7 @@ public class GiantViewTest { * standard out stream, nothing more, nothing less. */ @Test - public void testDisplayGiant() { + void testDisplayGiant() { final var view = new GiantView(); final var model = mock(GiantModel.class); diff --git a/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileLoaderTest.java b/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileLoaderTest.java index e7a5abdc3..6f8810208 100644 --- a/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileLoaderTest.java +++ b/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileLoaderTest.java @@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test; public class FileLoaderTest { @Test - public void testLoadData() { + void testLoadData() { final var fileLoader = new FileLoader(); fileLoader.setFileName("non-existing-file"); assertNull(fileLoader.loadData()); diff --git a/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileSelectorPresenterTest.java b/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileSelectorPresenterTest.java index 954c13817..1700e3087 100644 --- a/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileSelectorPresenterTest.java +++ b/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/FileSelectorPresenterTest.java @@ -67,7 +67,7 @@ public class FileSelectorPresenterTest { * Tests if the Presenter was successfully connected with the View. */ @Test - public void wiring() { + void wiring() { presenter.start(); assertNotNull(stub.getPresenter()); @@ -78,7 +78,7 @@ public class FileSelectorPresenterTest { * Tests if the name of the file changes. */ @Test - public void updateFileNameToLoader() { + void updateFileNameToLoader() { var expectedFile = "Stamatis"; stub.setFileName(expectedFile); @@ -93,7 +93,7 @@ public class FileSelectorPresenterTest { * empty string. */ @Test - public void fileConfirmationWhenNameIsNull() { + void fileConfirmationWhenNameIsNull() { stub.setFileName(null); presenter.start(); @@ -108,7 +108,7 @@ public class FileSelectorPresenterTest { * Tests if we receive a confirmation when we attempt to open a file that it doesn't exist. */ @Test - public void fileConfirmationWhenFileDoesNotExist() { + void fileConfirmationWhenFileDoesNotExist() { stub.setFileName("RandomName.txt"); presenter.start(); @@ -123,7 +123,7 @@ public class FileSelectorPresenterTest { * Tests if we can open the file, when it exists. */ @Test - public void fileConfirmationWhenFileExists() { + void fileConfirmationWhenFileExists() { stub.setFileName("etc/data/test.txt"); presenter.start(); presenter.fileNameChanged(); @@ -137,7 +137,7 @@ public class FileSelectorPresenterTest { * Tests if the view closes after cancellation. */ @Test - public void cancellation() { + void cancellation() { presenter.start(); presenter.cancelled(); diff --git a/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java b/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java index 32ae77db1..e8e79bce5 100644 --- a/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java +++ b/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java @@ -24,8 +24,7 @@ package com.iluwatar.module; import java.io.PrintStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The ConsoleLoggerModule is responsible for showing logs on System Console. @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; *

The below example demonstrates a Console logger module, which can print simple and error * messages in two designated formats */ +@Slf4j public final class ConsoleLoggerModule { - private static final Logger LOGGER = LoggerFactory.getLogger(ConsoleLoggerModule.class); - private static ConsoleLoggerModule singleton = null; public PrintStream output = null; diff --git a/module/src/main/java/com/iluwatar/module/FileLoggerModule.java b/module/src/main/java/com/iluwatar/module/FileLoggerModule.java index 590988cbd..337f4a567 100644 --- a/module/src/main/java/com/iluwatar/module/FileLoggerModule.java +++ b/module/src/main/java/com/iluwatar/module/FileLoggerModule.java @@ -26,8 +26,7 @@ package com.iluwatar.module; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The FileLoggerModule is responsible for showing logs on File System. @@ -35,10 +34,9 @@ import org.slf4j.LoggerFactory; *

The below example demonstrates a File logger module, which can print simple and error * messages in two designated files */ +@Slf4j public final class FileLoggerModule { - private static final Logger LOGGER = LoggerFactory.getLogger(FileLoggerModule.class); - private static FileLoggerModule singleton = null; private static final String OUTPUT_FILE = "output.txt"; diff --git a/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java b/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java index 2386f16ad..302062e3a 100644 --- a/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java +++ b/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java @@ -30,9 +30,8 @@ import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * The Module pattern can be considered a Creational pattern and a Structural pattern. It manages @@ -44,10 +43,9 @@ import org.slf4j.LoggerFactory; * The below example demonstrates a JUnit test for testing two different modules: File Logger and * Console Logger */ +@Slf4j public final class FileLoggerModuleTest { - private static final Logger LOGGER = LoggerFactory.getLogger(FileLoggerModuleTest.class); - private static final String OUTPUT_FILE = "output.txt"; private static final String ERROR_FILE = "error.txt"; @@ -61,7 +59,7 @@ public final class FileLoggerModuleTest { * @throws IOException if program is not able to find log files (output.txt and error.txt) */ @Test - public void testFileMessage() throws IOException { + void testFileMessage() throws IOException { /* Get singleton instance of File Logger Module */ final var fileLoggerModule = FileLoggerModule.getSingleton(); @@ -85,7 +83,7 @@ public final class FileLoggerModuleTest { * @throws IOException if program is not able to find log files (output.txt and error.txt) */ @Test - public void testNoFileMessage() throws IOException { + void testNoFileMessage() throws IOException { /* Get singleton instance of File Logger Module */ final var fileLoggerModule = FileLoggerModule.getSingleton(); @@ -107,7 +105,7 @@ public final class FileLoggerModuleTest { * error.txt) */ @Test - public void testFileErrorMessage() throws FileNotFoundException { + void testFileErrorMessage() throws FileNotFoundException { /* Get singleton instance of File Logger Module */ final var fileLoggerModule = FileLoggerModule.getSingleton(); @@ -132,7 +130,7 @@ public final class FileLoggerModuleTest { * error.txt) */ @Test - public void testNoFileErrorMessage() throws FileNotFoundException { + void testNoFileErrorMessage() throws FileNotFoundException { /* Get singleton instance of File Logger Module */ final var fileLoggerModule = FileLoggerModule.getSingleton(); diff --git a/monad/src/main/java/com/iluwatar/monad/App.java b/monad/src/main/java/com/iluwatar/monad/App.java index 040161ef2..36bf9d676 100644 --- a/monad/src/main/java/com/iluwatar/monad/App.java +++ b/monad/src/main/java/com/iluwatar/monad/App.java @@ -26,8 +26,7 @@ package com.iluwatar.monad; import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Monad pattern defines a monad structure, that enables chaining operations in pipelines and @@ -44,10 +43,9 @@ import org.slf4j.LoggerFactory; *

As a validation result {@link Validator#get()} either returns valid object * or throws {@link IllegalStateException} with list of exceptions collected during validation. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/monad/src/test/java/com/iluwatar/monad/AppTest.java b/monad/src/test/java/com/iluwatar/monad/AppTest.java index 41e60e980..f7ecc6d50 100644 --- a/monad/src/test/java/com/iluwatar/monad/AppTest.java +++ b/monad/src/test/java/com/iluwatar/monad/AppTest.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; public class AppTest { @Test - public void testMain() { + void testMain() { App.main(new String[]{}); } diff --git a/monad/src/test/java/com/iluwatar/monad/MonadTest.java b/monad/src/test/java/com/iluwatar/monad/MonadTest.java index da90f0dd0..6613b1955 100644 --- a/monad/src/test/java/com/iluwatar/monad/MonadTest.java +++ b/monad/src/test/java/com/iluwatar/monad/MonadTest.java @@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test; public class MonadTest { @Test - public void testForInvalidName() { + void testForInvalidName() { var tom = new User(null, 21, Sex.MALE, "tom@foo.bar"); assertThrows( IllegalStateException.class, @@ -46,7 +46,7 @@ public class MonadTest { } @Test - public void testForInvalidAge() { + void testForInvalidAge() { var john = new User("John", 17, Sex.MALE, "john@qwe.bar"); assertThrows( IllegalStateException.class, @@ -58,7 +58,7 @@ public class MonadTest { } @Test - public void testForValid() { + void testForValid() { var sarah = new User("Sarah", 42, Sex.FEMALE, "sarah@det.org"); var validated = Validator.of(sarah) .validate(User::getName, Objects::nonNull, "name cannot be null") diff --git a/monostate/src/main/java/com/iluwatar/monostate/Server.java b/monostate/src/main/java/com/iluwatar/monostate/Server.java index e86a5f374..e88a7c752 100644 --- a/monostate/src/main/java/com/iluwatar/monostate/Server.java +++ b/monostate/src/main/java/com/iluwatar/monostate/Server.java @@ -23,17 +23,15 @@ package com.iluwatar.monostate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Server class. Each Server sits behind a LoadBalancer which delegates the call to the servers * in a simplistic Round Robin fashion. */ +@Slf4j public class Server { - private static final Logger LOGGER = LoggerFactory.getLogger(Server.class); - public final String host; public final int port; public final int id; diff --git a/monostate/src/test/java/com/iluwatar/monostate/AppTest.java b/monostate/src/test/java/com/iluwatar/monostate/AppTest.java index 427a6e920..f03b7fa5a 100644 --- a/monostate/src/test/java/com/iluwatar/monostate/AppTest.java +++ b/monostate/src/test/java/com/iluwatar/monostate/AppTest.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; public class AppTest { @Test - public void testMain() { + void testMain() { App.main(new String[]{}); } diff --git a/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java b/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java index e649ebb60..c091571bd 100644 --- a/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java +++ b/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java @@ -43,7 +43,7 @@ import org.junit.jupiter.api.Test; public class LoadBalancerTest { @Test - public void testSameStateAmongstAllInstances() { + void testSameStateAmongstAllInstances() { final var firstBalancer = new LoadBalancer(); final var secondBalancer = new LoadBalancer(); firstBalancer.addServer(new Server("localhost", 8085, 6)); @@ -54,7 +54,7 @@ public class LoadBalancerTest { } @Test - public void testServe() { + void testServe() { final var server = mock(Server.class); when(server.getHost()).thenReturn("testhost"); when(server.getPort()).thenReturn(1234); diff --git a/multiton/src/main/java/com/iluwatar/multiton/App.java b/multiton/src/main/java/com/iluwatar/multiton/App.java index 994424e34..e21cd11a2 100644 --- a/multiton/src/main/java/com/iluwatar/multiton/App.java +++ b/multiton/src/main/java/com/iluwatar/multiton/App.java @@ -23,8 +23,7 @@ package com.iluwatar.multiton; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Whereas Singleton design pattern introduces single globally accessible object the Multiton @@ -38,10 +37,9 @@ import org.slf4j.LoggerFactory; *

In the enum implementation {@link NazgulEnum} is the multiton. It is static and mutable * because of the way java supports enums. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/multiton/src/test/java/com/iluwatar/multiton/AppTest.java b/multiton/src/test/java/com/iluwatar/multiton/AppTest.java index dd3f8af5d..0a092dcf3 100644 --- a/multiton/src/test/java/com/iluwatar/multiton/AppTest.java +++ b/multiton/src/test/java/com/iluwatar/multiton/AppTest.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test; public class AppTest { @Test - public void test() { + void test() { App.main(new String[]{}); } } diff --git a/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java b/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java index 18bdcf99a..5c0aa4f08 100644 --- a/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java +++ b/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java @@ -23,7 +23,7 @@ package com.iluwatar.multiton; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertSame; import org.junit.jupiter.api.Test; @@ -34,11 +34,11 @@ import org.junit.jupiter.api.Test; class NazgulEnumTest { /** - * Check that multiple calls to any one of the instances in the multiton returns + * Check that multiple calls to any one of the instances in the multiton returns * only that one particular instance, and do that for all instances in multiton */ @Test - public void testTheSameObjectIsReturnedWithMultipleCalls() { + void testTheSameObjectIsReturnedWithMultipleCalls() { for (var i = 0; i < NazgulEnum.values().length; i++) { var instance1 = NazgulEnum.values()[i]; var instance2 = NazgulEnum.values()[i]; diff --git a/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java b/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java index 4563d7bcc..88255c015 100644 --- a/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java +++ b/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java @@ -23,12 +23,12 @@ package com.iluwatar.multiton; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertSame; +import org.junit.jupiter.api.Test; + /** * Date: 12/22/15 - 22:28 AM * @@ -40,7 +40,7 @@ public class NazgulTest { * Verify if {@link Nazgul#getInstance(NazgulName)} returns the correct Nazgul multiton instance */ @Test - public void testGetInstance() { + void testGetInstance() { for (final var name : NazgulName.values()) { final var nazgul = Nazgul.getInstance(name); assertNotNull(nazgul); diff --git a/mute-idiom/src/main/java/com/iluwatar/mute/App.java b/mute-idiom/src/main/java/com/iluwatar/mute/App.java index 773ea690b..c5af59e9d 100644 --- a/mute-idiom/src/main/java/com/iluwatar/mute/App.java +++ b/mute-idiom/src/main/java/com/iluwatar/mute/App.java @@ -26,8 +26,7 @@ package com.iluwatar.mute; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Optional; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Mute pattern is utilized when we need to suppress an exception due to an API flaw or in situation @@ -44,10 +43,9 @@ import org.slf4j.LoggerFactory; * * every time we need to ignore an exception. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectTest.java b/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectTest.java index 126bae2e5..9310c8224 100644 --- a/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectTest.java +++ b/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectTest.java @@ -40,7 +40,7 @@ public class SimpleObjectTest { public void setUp() { simpleObject = new SimpleObject(); } - + @Test public void testName() { // given diff --git a/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectsTest.java b/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectsTest.java index 0c090dd2e..a5f052b64 100644 --- a/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectsTest.java +++ b/naked-objects/dom/src/test/java/domainapp/dom/modules/simple/SimpleObjectsTest.java @@ -23,10 +23,9 @@ package domainapp.dom.modules.simple; -import com.google.common.collect.Lists; - import static org.junit.Assert.assertEquals; +import com.google.common.collect.Lists; import java.util.List; import org.apache.isis.applib.DomainObjectContainer; import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2; @@ -56,7 +55,7 @@ public class SimpleObjectsTest { simpleObjects = new SimpleObjects(); simpleObjects.container = mockContainer; } - + @Test public void testCreate() { @@ -83,7 +82,7 @@ public class SimpleObjectsTest { assertEquals(simpleObject, obj); assertEquals(objectName, obj.getName()); } - + @Test public void testListAll() { diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/specs/RunSpecs.java b/naked-objects/integtests/src/test/java/domainapp/integtests/specs/RunSpecs.java index d077528a1..54bb425cc 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/specs/RunSpecs.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/specs/RunSpecs.java @@ -35,7 +35,7 @@ import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(format = {"html:target/cucumber-html-report", "json:target/cucumber.json"}, glue = {"classpath:domainapp.integtests.specglue"}, strict = true, tags = {"~@backlog", - "~@ignore"}) + "~@ignore"}) public class RunSpecs { // intentionally empty } diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java b/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java index 3cf4efd18..03ad6183b 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java @@ -50,7 +50,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest { RecreateSimpleObjects fs; SimpleObject simpleObjectPojo; SimpleObject simpleObjectWrapped; - + private static final String NEW_NAME = "new name"; @Before @@ -64,7 +64,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest { assertNotNull(simpleObjectPojo); simpleObjectWrapped = wrap(simpleObjectPojo); } - + @Test public void testNameAccessible() { /* when */ @@ -72,7 +72,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest { // then assertEquals(fs.names.get(0), name); } - + @Test public void testNameCannotBeUpdatedDirectly() { @@ -82,7 +82,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest { // when simpleObjectWrapped.setName(NEW_NAME); } - + @Test public void testUpdateName() { @@ -92,7 +92,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest { // then assertEquals(NEW_NAME, simpleObjectWrapped.getName()); } - + @Test public void testUpdateNameFailsValidation() { @@ -103,7 +103,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest { // when simpleObjectWrapped.updateName(NEW_NAME + "!"); } - + @Test public void testInterpolatesName() { diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java b/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java index be4e5ccfd..fe1e8ca3a 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java @@ -46,6 +46,7 @@ public class SimpleObjectsIntegTest extends SimpleAppIntegTest { @Inject FixtureScripts fixtureScripts; + @Inject SimpleObjects simpleObjects; diff --git a/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java b/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java index 95cd3ea01..980d43845 100644 --- a/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java +++ b/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java @@ -37,14 +37,13 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import javax.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication; import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis; import org.apache.wicket.Session; import org.apache.wicket.request.Request; import org.apache.wicket.request.Response; import org.apache.wicket.request.http.WebRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** @@ -63,9 +62,8 @@ import org.slf4j.LoggerFactory; * </filter> * */ +@Slf4j public class SimpleApplication extends IsisWicketApplication { - - private static final Logger LOGGER = LoggerFactory.getLogger(SimpleApplication.class); private static final long serialVersionUID = 1L; /** diff --git a/null-object/README.md b/null-object/README.md index 0e95453cb..3d01f829e 100644 --- a/null-object/README.md +++ b/null-object/README.md @@ -57,10 +57,9 @@ We have two implementations of `Node`. The normal implementation `NodeImpl` and empty nodes. ```java +@Slf4j public class NodeImpl implements Node { - private static final Logger LOGGER = LoggerFactory.getLogger(NodeImpl.class); - private final String name; private final Node left; private final Node right; diff --git a/null-object/src/main/java/com/iluwatar/nullobject/NodeImpl.java b/null-object/src/main/java/com/iluwatar/nullobject/NodeImpl.java index 5cbeda88f..18fae1e85 100644 --- a/null-object/src/main/java/com/iluwatar/nullobject/NodeImpl.java +++ b/null-object/src/main/java/com/iluwatar/nullobject/NodeImpl.java @@ -23,16 +23,14 @@ package com.iluwatar.nullobject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Implementation for binary tree's normal nodes. */ +@Slf4j public class NodeImpl implements Node { - private static final Logger LOGGER = LoggerFactory.getLogger(NodeImpl.class); - private final String name; private final Node left; private final Node right; diff --git a/null-object/src/test/java/com/iluwatar/nullobject/TreeTest.java b/null-object/src/test/java/com/iluwatar/nullobject/TreeTest.java index f51171946..f8a702157 100644 --- a/null-object/src/test/java/com/iluwatar/nullobject/TreeTest.java +++ b/null-object/src/test/java/com/iluwatar/nullobject/TreeTest.java @@ -88,7 +88,7 @@ public class TreeTest { * Node#getTreeSize()} of 7 {@link Node}s in total. */ @Test - public void testTreeSize() { + void testTreeSize() { assertEquals(7, TREE_ROOT.getTreeSize()); } @@ -96,7 +96,7 @@ public class TreeTest { * Walk through the tree and verify if every item is handled */ @Test - public void testWalk() { + void testWalk() { TREE_ROOT.walk(); assertTrue(appender.logContains("root")); @@ -110,7 +110,7 @@ public class TreeTest { } @Test - public void testGetLeft() { + void testGetLeft() { final var level1 = TREE_ROOT.getLeft(); assertNotNull(level1); assertEquals("level1_a", level1.getName()); @@ -130,7 +130,7 @@ public class TreeTest { } @Test - public void testGetRight() { + void testGetRight() { final var level1 = TREE_ROOT.getRight(); assertNotNull(level1); assertEquals("level1_b", level1.getName()); diff --git a/object-mother/src/test/java/com/iluwatar/objectmother/test/RoyaltyObjectMotherTest.java b/object-mother/src/test/java/com/iluwatar/objectmother/test/RoyaltyObjectMotherTest.java index b167a06a0..d15ada4e2 100644 --- a/object-mother/src/test/java/com/iluwatar/objectmother/test/RoyaltyObjectMotherTest.java +++ b/object-mother/src/test/java/com/iluwatar/objectmother/test/RoyaltyObjectMotherTest.java @@ -23,23 +23,22 @@ package com.iluwatar.objectmother.test; -import com.iluwatar.objectmother.King; -import com.iluwatar.objectmother.Queen; -import com.iluwatar.objectmother.Royalty; -import com.iluwatar.objectmother.RoyaltyObjectMother; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.iluwatar.objectmother.King; +import com.iluwatar.objectmother.Queen; +import com.iluwatar.objectmother.RoyaltyObjectMother; +import org.junit.jupiter.api.Test; + /** * Test Generation of Royalty Types using the object-mother */ public class RoyaltyObjectMotherTest { @Test - public void unsuccessfulKingFlirt() { + void unsuccessfulKingFlirt() { var soberUnhappyKing = RoyaltyObjectMother.createSoberUnhappyKing(); var flirtyQueen = RoyaltyObjectMother.createFlirtyQueen(); soberUnhappyKing.flirt(flirtyQueen); @@ -47,7 +46,7 @@ public class RoyaltyObjectMotherTest { } @Test - public void queenIsBlockingFlirtCauseDrunkKing() { + void queenIsBlockingFlirtCauseDrunkKing() { var drunkUnhappyKing = RoyaltyObjectMother.createDrunkKing(); var notFlirtyQueen = RoyaltyObjectMother.createNotFlirtyQueen(); drunkUnhappyKing.flirt(notFlirtyQueen); @@ -55,7 +54,7 @@ public class RoyaltyObjectMotherTest { } @Test - public void queenIsBlockingFlirt() { + void queenIsBlockingFlirt() { var soberHappyKing = RoyaltyObjectMother.createHappyKing(); var notFlirtyQueen = RoyaltyObjectMother.createNotFlirtyQueen(); soberHappyKing.flirt(notFlirtyQueen); @@ -63,7 +62,7 @@ public class RoyaltyObjectMotherTest { } @Test - public void successfullKingFlirt() { + void successfullKingFlirt() { var soberHappyKing = RoyaltyObjectMother.createHappyKing(); var flirtyQueen = RoyaltyObjectMother.createFlirtyQueen(); soberHappyKing.flirt(flirtyQueen); @@ -71,7 +70,7 @@ public class RoyaltyObjectMotherTest { } @Test - public void testQueenType() { + void testQueenType() { var flirtyQueen = RoyaltyObjectMother.createFlirtyQueen(); var notFlirtyQueen = RoyaltyObjectMother.createNotFlirtyQueen(); assertEquals(flirtyQueen.getClass(), Queen.class); @@ -79,7 +78,7 @@ public class RoyaltyObjectMotherTest { } @Test - public void testKingType() { + void testKingType() { var drunkKing = RoyaltyObjectMother.createDrunkKing(); var happyDrunkKing = RoyaltyObjectMother.createHappyDrunkKing(); var happyKing = RoyaltyObjectMother.createHappyKing(); diff --git a/object-pool/src/main/java/com/iluwatar/object/pool/App.java b/object-pool/src/main/java/com/iluwatar/object/pool/App.java index 4c544d8e0..381cc1b01 100644 --- a/object-pool/src/main/java/com/iluwatar/object/pool/App.java +++ b/object-pool/src/main/java/com/iluwatar/object/pool/App.java @@ -23,8 +23,7 @@ package com.iluwatar.object.pool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * When it is necessary to work with a large number of objects that are particularly expensive to @@ -44,10 +43,9 @@ import org.slf4j.LoggerFactory; * ObjectPool}. {@link Oliphaunt}s can be checked out from the pool and later returned to it. The * pool tracks created instances and their status (available, inUse). */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/object-pool/src/test/java/com/iluwatar/object/pool/AppTest.java b/object-pool/src/test/java/com/iluwatar/object/pool/AppTest.java index fd90b48c9..202a162c8 100644 --- a/object-pool/src/test/java/com/iluwatar/object/pool/AppTest.java +++ b/object-pool/src/test/java/com/iluwatar/object/pool/AppTest.java @@ -26,7 +26,7 @@ package com.iluwatar.object.pool; import org.junit.jupiter.api.Test; /** - * + * * Application test * */ diff --git a/object-pool/src/test/java/com/iluwatar/object/pool/OliphauntPoolTest.java b/object-pool/src/test/java/com/iluwatar/object/pool/OliphauntPoolTest.java index e78a895e2..0b22aa434 100644 --- a/object-pool/src/test/java/com/iluwatar/object/pool/OliphauntPoolTest.java +++ b/object-pool/src/test/java/com/iluwatar/object/pool/OliphauntPoolTest.java @@ -23,26 +23,29 @@ package com.iluwatar.object.pool; -import org.junit.jupiter.api.Test; +import static java.time.Duration.ofMillis; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTimeout; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; - -import static java.time.Duration.ofMillis; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * Date: 12/27/15 - 1:05 AM * * @author Jeroen Meulemeester */ -public class OliphauntPoolTest { +class OliphauntPoolTest { /** * Use the same object 100 times subsequently. This should not take much time since the heavy * object instantiation is done only once. Verify if we get the same object each time. */ @Test - public void testSubsequentCheckinCheckout() { + void testSubsequentCheckinCheckout() { assertTimeout(ofMillis(5000), () -> { final var pool = new OliphauntPool(); assertEquals("Pool available=0 inUse=0", pool.toString()); @@ -71,7 +74,7 @@ public class OliphauntPoolTest { * object instantiation is done only once. Verify if we get the same object each time. */ @Test - public void testConcurrentCheckinCheckout() { + void testConcurrentCheckinCheckout() { assertTimeout(ofMillis(5000), () -> { final var pool = new OliphauntPool(); assertEquals(pool.toString(), "Pool available=0 inUse=0"); diff --git a/observer/README.md b/observer/README.md index cbde540ab..1834f68ef 100644 --- a/observer/README.md +++ b/observer/README.md @@ -46,20 +46,18 @@ public interface WeatherObserver { void update(WeatherType currentWeather); } +@Slf4j public class Orcs implements WeatherObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(Orcs.class); - @Override public void update(WeatherType currentWeather) { LOGGER.info("The orcs are facing " + currentWeather.getDescription() + " weather now"); } } +@Slf4j public class Hobbits implements WeatherObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(Hobbits.class); - @Override public void update(WeatherType currentWeather) { switch (currentWeather) { @@ -72,10 +70,9 @@ public class Hobbits implements WeatherObserver { Then here's the `Weather` that is constantly changing. ```java +@Slf4j public class Weather { - private static final Logger LOGGER = LoggerFactory.getLogger(Weather.class); - private WeatherType currentWeather; private final List observers; diff --git a/observer/src/main/java/com/iluwatar/observer/App.java b/observer/src/main/java/com/iluwatar/observer/App.java index df8ac8dfc..f261651fe 100644 --- a/observer/src/main/java/com/iluwatar/observer/App.java +++ b/observer/src/main/java/com/iluwatar/observer/App.java @@ -26,8 +26,7 @@ package com.iluwatar.observer; import com.iluwatar.observer.generic.GHobbits; import com.iluwatar.observer.generic.GOrcs; import com.iluwatar.observer.generic.GWeather; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Observer pattern is a software design pattern in which an object, called the subject, @@ -40,10 +39,9 @@ import org.slf4j.LoggerFactory; *

In this example {@link Weather} has a state that can be observed. The {@link Orcs} and {@link * Hobbits} register as observers and receive notifications when the {@link Weather} changes. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/observer/src/main/java/com/iluwatar/observer/Hobbits.java b/observer/src/main/java/com/iluwatar/observer/Hobbits.java index 09ac75ceb..c6c8a295c 100644 --- a/observer/src/main/java/com/iluwatar/observer/Hobbits.java +++ b/observer/src/main/java/com/iluwatar/observer/Hobbits.java @@ -23,18 +23,16 @@ package com.iluwatar.observer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Hobbits. */ +@Slf4j public class Hobbits implements WeatherObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(Hobbits.class); - @Override public void update(WeatherType currentWeather) { - LOGGER.info("The hobbits are facing " + currentWeather.getDescription() + " weather now"); + LOGGER.info("The hobbits are facing {} weather now", currentWeather.getDescription()); } } diff --git a/observer/src/main/java/com/iluwatar/observer/Orcs.java b/observer/src/main/java/com/iluwatar/observer/Orcs.java index 396ae78d8..0f3307b71 100644 --- a/observer/src/main/java/com/iluwatar/observer/Orcs.java +++ b/observer/src/main/java/com/iluwatar/observer/Orcs.java @@ -23,16 +23,14 @@ package com.iluwatar.observer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Orcs. */ +@Slf4j public class Orcs implements WeatherObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(Orcs.class); - @Override public void update(WeatherType currentWeather) { LOGGER.info("The orcs are facing " + currentWeather.getDescription() + " weather now"); diff --git a/observer/src/main/java/com/iluwatar/observer/Weather.java b/observer/src/main/java/com/iluwatar/observer/Weather.java index 70ad63345..0ee7f7f73 100644 --- a/observer/src/main/java/com/iluwatar/observer/Weather.java +++ b/observer/src/main/java/com/iluwatar/observer/Weather.java @@ -25,17 +25,15 @@ package com.iluwatar.observer; import java.util.ArrayList; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Weather can be observed by implementing {@link WeatherObserver} interface and registering as * listener. */ +@Slf4j public class Weather { - private static final Logger LOGGER = LoggerFactory.getLogger(Weather.class); - private WeatherType currentWeather; private final List observers; diff --git a/observer/src/main/java/com/iluwatar/observer/generic/GHobbits.java b/observer/src/main/java/com/iluwatar/observer/generic/GHobbits.java index 1e6f99aee..fd410d78d 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/GHobbits.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/GHobbits.java @@ -24,16 +24,14 @@ package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * GHobbits. */ +@Slf4j public class GHobbits implements Race { - private static final Logger LOGGER = LoggerFactory.getLogger(GHobbits.class); - @Override public void update(GWeather weather, WeatherType weatherType) { LOGGER.info("The hobbits are facing " + weatherType.getDescription() + " weather now"); diff --git a/observer/src/main/java/com/iluwatar/observer/generic/GOrcs.java b/observer/src/main/java/com/iluwatar/observer/generic/GOrcs.java index 59e4dfd54..410550353 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/GOrcs.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/GOrcs.java @@ -24,16 +24,14 @@ package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * GOrcs. */ +@Slf4j public class GOrcs implements Race { - private static final Logger LOGGER = LoggerFactory.getLogger(GOrcs.class); - @Override public void update(GWeather weather, WeatherType weatherType) { LOGGER.info("The orcs are facing " + weatherType.getDescription() + " weather now"); diff --git a/observer/src/main/java/com/iluwatar/observer/generic/GWeather.java b/observer/src/main/java/com/iluwatar/observer/generic/GWeather.java index 46d44bd83..e829ebeb8 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/GWeather.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/GWeather.java @@ -24,16 +24,14 @@ package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * GWeather. */ +@Slf4j public class GWeather extends Observable { - private static final Logger LOGGER = LoggerFactory.getLogger(GWeather.class); - private WeatherType currentWeather; public GWeather() { diff --git a/observer/src/test/java/com/iluwatar/observer/AppTest.java b/observer/src/test/java/com/iluwatar/observer/AppTest.java index e16a59872..059fadd31 100644 --- a/observer/src/test/java/com/iluwatar/observer/AppTest.java +++ b/observer/src/test/java/com/iluwatar/observer/AppTest.java @@ -23,12 +23,12 @@ package com.iluwatar.observer; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import org.junit.jupiter.api.Test; + /** - * + * * Application test * */ diff --git a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java index 67d3f2068..455d07a1d 100644 --- a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java @@ -36,10 +36,10 @@ public class HobbitsTest extends WeatherObserverTest { @Override public Collection dataProvider() { return List.of( - new Object[]{WeatherType.SUNNY, "The hobbits are facing Sunny weather now"}, - new Object[]{WeatherType.RAINY, "The hobbits are facing Rainy weather now"}, - new Object[]{WeatherType.WINDY, "The hobbits are facing Windy weather now"}, - new Object[]{WeatherType.COLD, "The hobbits are facing Cold weather now"}); + new Object[]{WeatherType.SUNNY, "The hobbits are facing Sunny weather now"}, + new Object[]{WeatherType.RAINY, "The hobbits are facing Rainy weather now"}, + new Object[]{WeatherType.WINDY, "The hobbits are facing Windy weather now"}, + new Object[]{WeatherType.COLD, "The hobbits are facing Cold weather now"}); } /** diff --git a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java index 40af6638a..446628618 100644 --- a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java @@ -36,10 +36,10 @@ public class OrcsTest extends WeatherObserverTest { @Override public Collection dataProvider() { return List.of( - new Object[]{WeatherType.SUNNY, "The orcs are facing Sunny weather now"}, - new Object[]{WeatherType.RAINY, "The orcs are facing Rainy weather now"}, - new Object[]{WeatherType.WINDY, "The orcs are facing Windy weather now"}, - new Object[]{WeatherType.COLD, "The orcs are facing Cold weather now"}); + new Object[]{WeatherType.SUNNY, "The orcs are facing Sunny weather now"}, + new Object[]{WeatherType.RAINY, "The orcs are facing Rainy weather now"}, + new Object[]{WeatherType.WINDY, "The orcs are facing Windy weather now"}, + new Object[]{WeatherType.COLD, "The orcs are facing Cold weather now"}); } /** diff --git a/observer/src/test/java/com/iluwatar/observer/WeatherTest.java b/observer/src/test/java/com/iluwatar/observer/WeatherTest.java index c2ca327e4..938331299 100644 --- a/observer/src/test/java/com/iluwatar/observer/WeatherTest.java +++ b/observer/src/test/java/com/iluwatar/observer/WeatherTest.java @@ -23,12 +23,6 @@ package com.iluwatar.observer; -import com.iluwatar.observer.utils.InMemoryAppender; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.InOrder; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; @@ -36,6 +30,11 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; +import com.iluwatar.observer.utils.InMemoryAppender; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + /** * Date: 12/27/15 - 11:08 AM * @@ -60,7 +59,7 @@ public class WeatherTest { * observer again and verify that there are no more notifications. */ @Test - public void testAddRemoveObserver() { + void testAddRemoveObserver() { final var observer = mock(WeatherObserver.class); final var weather = new Weather(); @@ -83,7 +82,7 @@ public class WeatherTest { * Verify if the weather passes in the order of the {@link WeatherType}s */ @Test - public void testTimePasses() { + void testTimePasses() { final var observer = mock(WeatherObserver.class); final var weather = new Weather(); weather.addObserver(observer); diff --git a/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java b/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java index 5fef1a3cd..252778ef6 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java @@ -38,10 +38,10 @@ public class GHobbitsTest extends ObserverTest { @Override public Collection dataProvider() { return List.of( - new Object[]{WeatherType.SUNNY, "The hobbits are facing Sunny weather now"}, - new Object[]{WeatherType.RAINY, "The hobbits are facing Rainy weather now"}, - new Object[]{WeatherType.WINDY, "The hobbits are facing Windy weather now"}, - new Object[]{WeatherType.COLD, "The hobbits are facing Cold weather now"} + new Object[]{WeatherType.SUNNY, "The hobbits are facing Sunny weather now"}, + new Object[]{WeatherType.RAINY, "The hobbits are facing Rainy weather now"}, + new Object[]{WeatherType.WINDY, "The hobbits are facing Windy weather now"}, + new Object[]{WeatherType.COLD, "The hobbits are facing Cold weather now"} ); } diff --git a/observer/src/test/java/com/iluwatar/observer/generic/GWeatherTest.java b/observer/src/test/java/com/iluwatar/observer/generic/GWeatherTest.java index 6f062e048..2c2721e24 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/GWeatherTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/GWeatherTest.java @@ -23,16 +23,19 @@ package com.iluwatar.observer.generic; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.inOrder; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.verifyZeroInteractions; + import com.iluwatar.observer.WeatherObserver; import com.iluwatar.observer.WeatherType; import com.iluwatar.observer.utils.InMemoryAppender; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.InOrder; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.*; /** * Date: 12/27/15 - 11:08 AM @@ -58,7 +61,7 @@ public class GWeatherTest { * observer again and verify that there are no more notifications. */ @Test - public void testAddRemoveObserver() { + void testAddRemoveObserver() { final var observer = mock(Race.class); final var weather = new GWeather(); @@ -81,7 +84,7 @@ public class GWeatherTest { * Verify if the weather passes in the order of the {@link WeatherType}s */ @Test - public void testTimePasses() { + void testTimePasses() { final var observer = mock(Race.class); final var weather = new GWeather(); weather.addObserver(observer); diff --git a/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java b/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java index 5f0cef1d6..cb27ed1b4 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java @@ -38,10 +38,10 @@ public class OrcsTest extends ObserverTest { @Override public Collection dataProvider() { return List.of( - new Object[]{WeatherType.SUNNY, "The orcs are facing Sunny weather now"}, - new Object[]{WeatherType.RAINY, "The orcs are facing Rainy weather now"}, - new Object[]{WeatherType.WINDY, "The orcs are facing Windy weather now"}, - new Object[]{WeatherType.COLD, "The orcs are facing Cold weather now"} + new Object[]{WeatherType.SUNNY, "The orcs are facing Sunny weather now"}, + new Object[]{WeatherType.RAINY, "The orcs are facing Rainy weather now"}, + new Object[]{WeatherType.WINDY, "The orcs are facing Windy weather now"}, + new Object[]{WeatherType.COLD, "The orcs are facing Cold weather now"} ); } diff --git a/page-object/sample-application/src/main/java/com/iluwatar/pageobject/App.java b/page-object/sample-application/src/main/java/com/iluwatar/pageobject/App.java index f3f152518..bb5b6d952 100644 --- a/page-object/sample-application/src/main/java/com/iluwatar/pageobject/App.java +++ b/page-object/sample-application/src/main/java/com/iluwatar/pageobject/App.java @@ -26,8 +26,7 @@ package com.iluwatar.pageobject; import java.awt.Desktop; import java.io.File; import java.io.IOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Page Object pattern wraps an UI component with an application specific API allowing you to @@ -49,10 +48,9 @@ import org.slf4j.LoggerFactory; * example is just to provide a simple version that showcase the intentions of this pattern and how * this pattern is used in order to understand it. */ +@Slf4j public final class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private App() { } diff --git a/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java b/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java index ff35635cf..4dce7aabc 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java @@ -27,7 +27,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import com.gargoylesoftware.htmlunit.WebClient; import com.iluwatar.pageobject.pages.AlbumListPage; -import com.iluwatar.pageobject.pages.AlbumPage; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -44,7 +43,7 @@ public class AlbumListPageTest { } @Test - public void testSelectAlbum() { + void testSelectAlbum() { var albumPage = albumListPage.selectAlbum("21"); albumPage.navigateToPage(); assertTrue(albumPage.isAt()); diff --git a/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java b/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java index a68bf51ad..55af9746e 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java @@ -26,7 +26,6 @@ package com.iluwatar.pageobject; import static org.junit.jupiter.api.Assertions.assertTrue; import com.gargoylesoftware.htmlunit.WebClient; -import com.iluwatar.pageobject.pages.AlbumListPage; import com.iluwatar.pageobject.pages.AlbumPage; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -44,7 +43,7 @@ public class AlbumPageTest { } @Test - public void testSaveAlbum() { + void testSaveAlbum() { var albumPageAfterChanges = albumPage .changeAlbumTitle("25") @@ -59,7 +58,7 @@ public class AlbumPageTest { } @Test - public void testCancelChanges() { + void testCancelChanges() { var albumListPage = albumPage.cancelChanges(); albumListPage.navigateToPage(); assertTrue(albumListPage.isAt()); diff --git a/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java b/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java index a3ee088e5..8ba1e92fd 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java @@ -26,7 +26,6 @@ package com.iluwatar.pageobject; import static org.junit.jupiter.api.Assertions.assertTrue; import com.gargoylesoftware.htmlunit.WebClient; -import com.iluwatar.pageobject.pages.AlbumListPage; import com.iluwatar.pageobject.pages.LoginPage; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -44,7 +43,7 @@ public class LoginPageTest { } @Test - public void testLogin() { + void testLogin() { var albumListPage = loginPage .enterUsername("admin") .enterPassword("password") diff --git a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumListPage.java b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumListPage.java index f943ee178..71a28651a 100644 --- a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumListPage.java +++ b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumListPage.java @@ -28,15 +28,13 @@ import com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.html.HtmlPage; import java.io.IOException; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Page Object encapsulating the Album List page (album-list.html) */ +@Slf4j public class AlbumListPage extends Page { - - private static final Logger LOGGER = LoggerFactory.getLogger(AlbumListPage.class); private static final String ALBUM_LIST_HTML_FILE = "album-list.html"; private static final String PAGE_URL = "file:" + AUT_PATH + ALBUM_LIST_HTML_FILE; diff --git a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumPage.java b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumPage.java index ca238222f..67339f161 100644 --- a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumPage.java +++ b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/AlbumPage.java @@ -30,15 +30,13 @@ import com.gargoylesoftware.htmlunit.html.HtmlSelect; import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; import com.gargoylesoftware.htmlunit.html.HtmlTextInput; import java.io.IOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Page Object encapsulating the Album Page (album-page.html) */ +@Slf4j public class AlbumPage extends Page { - - private static final Logger LOGGER = LoggerFactory.getLogger(AlbumPage.class); private static final String ALBUM_PAGE_HTML_FILE = "album-page.html"; private static final String PAGE_URL = "file:" + AUT_PATH + ALBUM_PAGE_HTML_FILE; diff --git a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/LoginPage.java b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/LoginPage.java index e5a0d5053..78b559b4a 100644 --- a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/LoginPage.java +++ b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/LoginPage.java @@ -29,15 +29,13 @@ import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput; import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; import com.gargoylesoftware.htmlunit.html.HtmlTextInput; import java.io.IOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Page Object encapsulating the Login Page (login.html) */ +@Slf4j public class LoginPage extends Page { - - private static final Logger LOGGER = LoggerFactory.getLogger(LoginPage.class); private static final String LOGIN_PAGE_HTML_FILE = "login.html"; private static final String PAGE_URL = "file:" + AUT_PATH + LOGIN_PAGE_HTML_FILE; diff --git a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java index c5d8fc701..58052583f 100644 --- a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java +++ b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java @@ -42,7 +42,7 @@ public class AlbumListPageTest { } @Test - public void testSelectAlbum() { + void testSelectAlbum() { var albumPage = albumListPage.selectAlbum("21"); albumPage.navigateToPage(); assertTrue(albumPage.isAt()); diff --git a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java index 27af5713d..99a141f53 100644 --- a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java +++ b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java @@ -42,7 +42,7 @@ public class AlbumPageTest { } @Test - public void testSaveAlbum() { + void testSaveAlbum() { var albumPageAfterChanges = albumPage .changeAlbumTitle("25") @@ -57,7 +57,7 @@ public class AlbumPageTest { } @Test - public void testCancelChanges() { + void testCancelChanges() { var albumListPage = albumPage.cancelChanges(); albumListPage.navigateToPage(); assertTrue(albumListPage.isAt()); diff --git a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/LoginPageTest.java b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/LoginPageTest.java index 80b0ba8d4..bd3333706 100644 --- a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/LoginPageTest.java +++ b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/LoginPageTest.java @@ -42,7 +42,7 @@ public class LoginPageTest { } @Test - public void testLogin() { + void testLogin() { var albumListPage = loginPage .enterUsername("admin") .enterPassword("password") diff --git a/partial-response/src/main/java/com/iluwatar/partialresponse/App.java b/partial-response/src/main/java/com/iluwatar/partialresponse/App.java index 58d50d4c2..ba842bc1d 100644 --- a/partial-response/src/main/java/com/iluwatar/partialresponse/App.java +++ b/partial-response/src/main/java/com/iluwatar/partialresponse/App.java @@ -24,8 +24,7 @@ package com.iluwatar.partialresponse; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Partial response pattern is a design pattern in which client specifies fields to fetch to @@ -35,8 +34,8 @@ import org.slf4j.LoggerFactory; *

{@link VideoResource} act as server to serve video information. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** * Method as act client and request to server for video details. diff --git a/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java b/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java index e54085be8..0e45226c9 100644 --- a/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java +++ b/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; public class PipelineTest { @Test - public void testAddHandlersToPipeline() { + void testAddHandlersToPipeline() { var filters = new Pipeline<>(new RemoveAlphabetsHandler()) .addHandler(new RemoveDigitsHandler()) .addHandler(new ConvertToCharArrayHandler()); diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/Consumer.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/Consumer.java index b0264c298..0992bdaf1 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/Consumer.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/Consumer.java @@ -24,16 +24,14 @@ package com.iluwatar.poison.pill; import com.iluwatar.poison.pill.Message.Headers; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class responsible for receiving and handling submitted to the queue messages. */ +@Slf4j public class Consumer { - private static final Logger LOGGER = LoggerFactory.getLogger(Consumer.class); - private final MqSubscribePoint queue; private final String name; diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/Producer.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/Producer.java index 5df72daf2..f303c2b9f 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/Producer.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/Producer.java @@ -25,17 +25,15 @@ package com.iluwatar.poison.pill; import com.iluwatar.poison.pill.Message.Headers; import java.util.Date; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class responsible for producing unit of work that can be expressed as message and submitted to * queue. */ +@Slf4j public class Producer { - private static final Logger LOGGER = LoggerFactory.getLogger(Producer.class); - private final MqPublishPoint queue; private final String name; private boolean isStopped; diff --git a/poison-pill/src/test/java/com/iluwatar/poison/pill/ConsumerTest.java b/poison-pill/src/test/java/com/iluwatar/poison/pill/ConsumerTest.java index 2b6105133..cbc274b6f 100644 --- a/poison-pill/src/test/java/com/iluwatar/poison/pill/ConsumerTest.java +++ b/poison-pill/src/test/java/com/iluwatar/poison/pill/ConsumerTest.java @@ -56,7 +56,7 @@ public class ConsumerTest { } @Test - public void testConsume() throws Exception { + void testConsume() throws Exception { final var messages = List.of( createMessage("you", "Hello!"), createMessage("me", "Hi!"), diff --git a/poison-pill/src/test/java/com/iluwatar/poison/pill/PoisonMessageTest.java b/poison-pill/src/test/java/com/iluwatar/poison/pill/PoisonMessageTest.java index 30e57708b..5a0deb61d 100644 --- a/poison-pill/src/test/java/com/iluwatar/poison/pill/PoisonMessageTest.java +++ b/poison-pill/src/test/java/com/iluwatar/poison/pill/PoisonMessageTest.java @@ -37,33 +37,33 @@ import org.junit.jupiter.api.Test; public class PoisonMessageTest { @Test - public void testAddHeader() { + void testAddHeader() { assertThrows(UnsupportedOperationException.class, () -> { POISON_PILL.addHeader(Headers.SENDER, "sender"); }); } @Test - public void testGetHeader() { + void testGetHeader() { assertThrows(UnsupportedOperationException.class, () -> { POISON_PILL.getHeader(Headers.SENDER); }); } @Test - public void testGetHeaders() { + void testGetHeaders() { assertThrows(UnsupportedOperationException.class, POISON_PILL::getHeaders); } @Test - public void testSetBody() { + void testSetBody() { assertThrows(UnsupportedOperationException.class, () -> { POISON_PILL.setBody("Test message."); }); } @Test - public void testGetBody() { + void testGetBody() { assertThrows(UnsupportedOperationException.class, POISON_PILL::getBody); } diff --git a/poison-pill/src/test/java/com/iluwatar/poison/pill/ProducerTest.java b/poison-pill/src/test/java/com/iluwatar/poison/pill/ProducerTest.java index 3b6545c0f..8bcc1fe3f 100644 --- a/poison-pill/src/test/java/com/iluwatar/poison/pill/ProducerTest.java +++ b/poison-pill/src/test/java/com/iluwatar/poison/pill/ProducerTest.java @@ -43,7 +43,7 @@ import org.mockito.ArgumentCaptor; public class ProducerTest { @Test - public void testSend() throws Exception { + void testSend() throws Exception { final var publishPoint = mock(MqPublishPoint.class); final var producer = new Producer("producer", publishPoint); verifyZeroInteractions(publishPoint); @@ -63,7 +63,7 @@ public class ProducerTest { } @Test - public void testStop() throws Exception { + void testStop() throws Exception { final var publishPoint = mock(MqPublishPoint.class); final var producer = new Producer("producer", publishPoint); verifyZeroInteractions(publishPoint); diff --git a/poison-pill/src/test/java/com/iluwatar/poison/pill/SimpleMessageTest.java b/poison-pill/src/test/java/com/iluwatar/poison/pill/SimpleMessageTest.java index 1295d8234..72ecf9c32 100644 --- a/poison-pill/src/test/java/com/iluwatar/poison/pill/SimpleMessageTest.java +++ b/poison-pill/src/test/java/com/iluwatar/poison/pill/SimpleMessageTest.java @@ -39,7 +39,7 @@ import org.junit.jupiter.api.Test; public class SimpleMessageTest { @Test - public void testGetHeaders() { + void testGetHeaders() { final var message = new SimpleMessage(); assertNotNull(message.getHeaders()); assertTrue(message.getHeaders().isEmpty()); @@ -52,7 +52,7 @@ public class SimpleMessageTest { } @Test - public void testUnModifiableHeaders() { + void testUnModifiableHeaders() { final var message = new SimpleMessage(); final var headers = message.getHeaders(); assertThrows(UnsupportedOperationException.class, () -> { diff --git a/pom.xml b/pom.xml index 54944b78c..7e332a436 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - + com.iluwatar java-design-patterns 1.24.0-SNAPSHOT @@ -46,7 +46,6 @@ 4.12 5.7.1 ${junit-jupiter.version} - 1.0.2 3.8.1 0.8.6 1.4 @@ -68,6 +67,7 @@ 1.1.0 2.0.0 3.5.0 + 1.18.14 1.10.21 3.27.0-GA 3.0.0-M5 @@ -316,12 +316,6 @@ ${junit-vintage.version} test - - com.github.sbrannen - spring-test-junit5 - ${sping-test-junit5.version} - test - org.mockito mockito-core @@ -393,6 +387,12 @@ logback-core ${logback.version} + + org.projectlombok + lombok + ${lombok.version} + provided + diff --git a/priority-queue/README.md b/priority-queue/README.md index 8481915be..f657b80c7 100644 --- a/priority-queue/README.md +++ b/priority-queue/README.md @@ -122,10 +122,9 @@ public class QueueManager { `Worker` constantly polls `QueueManager` for highest priority message and processes it. ```java +@Slf4j public class Worker { - private static final Logger LOGGER = LoggerFactory.getLogger(Worker.class); - private final QueueManager queueManager; public Worker(QueueManager queueManager) { diff --git a/priority-queue/src/main/java/com/iluwatar/priority/queue/PriorityMessageQueue.java b/priority-queue/src/main/java/com/iluwatar/priority/queue/PriorityMessageQueue.java index 6994c9d23..a52893f46 100644 --- a/priority-queue/src/main/java/com/iluwatar/priority/queue/PriorityMessageQueue.java +++ b/priority-queue/src/main/java/com/iluwatar/priority/queue/PriorityMessageQueue.java @@ -25,18 +25,16 @@ package com.iluwatar.priority.queue; import static java.util.Arrays.copyOf; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Keep high Priority message on top using maxHeap. * * @param : DataType to push in Queue */ +@Slf4j public class PriorityMessageQueue { - private static final Logger LOGGER = LoggerFactory.getLogger(PriorityMessageQueue.class); - private int size = 0; private int capacity; diff --git a/priority-queue/src/main/java/com/iluwatar/priority/queue/Worker.java b/priority-queue/src/main/java/com/iluwatar/priority/queue/Worker.java index 979984e62..e86aa2cf0 100644 --- a/priority-queue/src/main/java/com/iluwatar/priority/queue/Worker.java +++ b/priority-queue/src/main/java/com/iluwatar/priority/queue/Worker.java @@ -23,16 +23,14 @@ package com.iluwatar.priority.queue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Message Worker. */ +@Slf4j public class Worker { - private static final Logger LOGGER = LoggerFactory.getLogger(Worker.class); - private final QueueManager queueManager; public Worker(QueueManager queueManager) { diff --git a/priority-queue/src/test/java/com/iluwatar/priority/queue/PriorityMessageQueueTest.java b/priority-queue/src/test/java/com/iluwatar/priority/queue/PriorityMessageQueueTest.java index 1921dec5b..b6ae4670e 100644 --- a/priority-queue/src/test/java/com/iluwatar/priority/queue/PriorityMessageQueueTest.java +++ b/priority-queue/src/test/java/com/iluwatar/priority/queue/PriorityMessageQueueTest.java @@ -35,7 +35,7 @@ public class PriorityMessageQueueTest { @Test - public void remove() { + void remove() { var stringPriorityMessageQueue = new PriorityMessageQueue<>(new String[2]); var pushMessage = "test"; stringPriorityMessageQueue.add(pushMessage); @@ -43,7 +43,7 @@ public class PriorityMessageQueueTest { } @Test - public void add() { + void add() { var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]); stringPriorityMessageQueue.add(1); stringPriorityMessageQueue.add(5); @@ -53,7 +53,7 @@ public class PriorityMessageQueueTest { } @Test - public void isEmpty() { + void isEmpty() { var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]); assertTrue(stringPriorityMessageQueue.isEmpty()); stringPriorityMessageQueue.add(1); @@ -62,7 +62,7 @@ public class PriorityMessageQueueTest { } @Test - public void testEnsureSize() { + void testEnsureSize() { var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]); assertTrue(stringPriorityMessageQueue.isEmpty()); stringPriorityMessageQueue.add(1); diff --git a/priority-queue/src/test/java/com/iluwatar/priority/queue/QueueManagerTest.java b/priority-queue/src/test/java/com/iluwatar/priority/queue/QueueManagerTest.java index 73463fb52..d9f5e4527 100644 --- a/priority-queue/src/test/java/com/iluwatar/priority/queue/QueueManagerTest.java +++ b/priority-queue/src/test/java/com/iluwatar/priority/queue/QueueManagerTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.Test; public class QueueManagerTest { @Test - public void publishMessage() { + void publishMessage() { var queueManager = new QueueManager(2); var testMessage = new Message("Test Message", 1); queueManager.publishMessage(testMessage); @@ -42,7 +42,7 @@ public class QueueManagerTest { } @Test - public void receiveMessage() { + void receiveMessage() { var queueManager = new QueueManager(2); var testMessage1 = new Message("Test Message 1", 1); queueManager.publishMessage(testMessage1); diff --git a/private-class-data/README.md b/private-class-data/README.md index 5d0e6eb51..e4f1f0969 100644 --- a/private-class-data/README.md +++ b/private-class-data/README.md @@ -37,8 +37,8 @@ Taking our stew example from above. First we have a `Stew` class where its data private class data, making the stew's ingredient mutable to class methods. ```java +@Slf4j public class Stew { - private static final Logger LOGGER = LoggerFactory.getLogger(Stew.class); private int numPotatoes; private int numCarrots; private int numMeat; @@ -99,8 +99,8 @@ public class StewData { return numPeppers; } } +@Slf4j public class ImmutableStew { - private static final Logger LOGGER = LoggerFactory.getLogger(ImmutableStew.class); private final StewData data; public ImmutableStew(int numPotatoes, int numCarrots, int numMeat, int numPeppers) { data = new StewData(numPotatoes, numCarrots, numMeat, numPeppers); diff --git a/private-class-data/src/main/java/com/iluwatar/privateclassdata/ImmutableStew.java b/private-class-data/src/main/java/com/iluwatar/privateclassdata/ImmutableStew.java index 49aef81e1..04b18490d 100644 --- a/private-class-data/src/main/java/com/iluwatar/privateclassdata/ImmutableStew.java +++ b/private-class-data/src/main/java/com/iluwatar/privateclassdata/ImmutableStew.java @@ -23,16 +23,14 @@ package com.iluwatar.privateclassdata; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Immutable stew class, protected with Private Class Data pattern. */ +@Slf4j public class ImmutableStew { - private static final Logger LOGGER = LoggerFactory.getLogger(ImmutableStew.class); - private final StewData data; public ImmutableStew(int numPotatoes, int numCarrots, int numMeat, int numPeppers) { diff --git a/private-class-data/src/main/java/com/iluwatar/privateclassdata/Stew.java b/private-class-data/src/main/java/com/iluwatar/privateclassdata/Stew.java index e4b80457a..25fa0a530 100644 --- a/private-class-data/src/main/java/com/iluwatar/privateclassdata/Stew.java +++ b/private-class-data/src/main/java/com/iluwatar/privateclassdata/Stew.java @@ -23,16 +23,14 @@ package com.iluwatar.privateclassdata; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Mutable stew class. */ +@Slf4j public class Stew { - private static final Logger LOGGER = LoggerFactory.getLogger(Stew.class); - private int numPotatoes; private int numCarrots; private int numMeat; diff --git a/private-class-data/src/test/java/com/iluwatar/privateclassdata/ImmutableStewTest.java b/private-class-data/src/test/java/com/iluwatar/privateclassdata/ImmutableStewTest.java index e8cfcbc5d..7b4d85ba1 100644 --- a/private-class-data/src/test/java/com/iluwatar/privateclassdata/ImmutableStewTest.java +++ b/private-class-data/src/test/java/com/iluwatar/privateclassdata/ImmutableStewTest.java @@ -53,7 +53,7 @@ public class ImmutableStewTest { * Verify if mixing the stew doesn't change the internal state */ @Test - public void testMix() { + void testMix() { var stew = new Stew(1, 2, 3, 4); var expectedMessage = "Mixing the stew we find: 1 potatoes, 2 carrots, 3 meat and 4 peppers"; @@ -69,7 +69,7 @@ public class ImmutableStewTest { * Verify if tasting the stew actually removes one of each ingredient */ @Test - public void testDrink() { + void testDrink() { final var stew = new Stew(1, 2, 3, 4); stew.mix(); diff --git a/private-class-data/src/test/java/com/iluwatar/privateclassdata/StewTest.java b/private-class-data/src/test/java/com/iluwatar/privateclassdata/StewTest.java index 07b512b75..6474c5e48 100644 --- a/private-class-data/src/test/java/com/iluwatar/privateclassdata/StewTest.java +++ b/private-class-data/src/test/java/com/iluwatar/privateclassdata/StewTest.java @@ -53,7 +53,7 @@ public class StewTest { * Verify if mixing the stew doesn't change the internal state */ @Test - public void testMix() { + void testMix() { final var stew = new ImmutableStew(1, 2, 3, 4); final var expectedMessage = "Mixing the immutable stew we find: 1 potatoes, " + "2 carrots, 3 meat and 4 peppers"; diff --git a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/App.java b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/App.java index 18f1cc1ff..089494742 100644 --- a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/App.java +++ b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/App.java @@ -23,11 +23,9 @@ package com.iluwatar.producer.consumer; -import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Producer Consumer Design pattern is a classic concurrency or threading pattern which reduces @@ -39,10 +37,9 @@ import org.slf4j.LoggerFactory; * different timing require to produce item or consuming item. by using producer consumer pattern * both Producer and Consumer Thread can work with different speed. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Consumer.java b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Consumer.java index 0b4149558..9fc16df66 100644 --- a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Consumer.java +++ b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Consumer.java @@ -23,16 +23,14 @@ package com.iluwatar.producer.consumer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class responsible for consume the {@link Item} produced by {@link Producer}. */ +@Slf4j public class Consumer { - private static final Logger LOGGER = LoggerFactory.getLogger(Consumer.class); - private final ItemQueue queue; private final String name; diff --git a/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ConsumerTest.java b/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ConsumerTest.java index 8e7ad61f8..a0345cae2 100644 --- a/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ConsumerTest.java +++ b/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ConsumerTest.java @@ -40,7 +40,7 @@ public class ConsumerTest { private static final int ITEM_COUNT = 5; @Test - public void testConsume() throws Exception { + void testConsume() throws Exception { final var queue = spy(new ItemQueue()); for (var id = 0; id < ITEM_COUNT; id++) { queue.put(new Item("producer", id)); diff --git a/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ProducerTest.java b/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ProducerTest.java index 2b386d305..a95efa84f 100644 --- a/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ProducerTest.java +++ b/producer-consumer/src/test/java/com/iluwatar/producer/consumer/ProducerTest.java @@ -40,7 +40,7 @@ import org.junit.jupiter.api.Test; public class ProducerTest { @Test - public void testProduce() { + void testProduce() { assertTimeout(ofMillis(6000), () -> { final var queue = mock(ItemQueue.class); final var producer = new Producer("producer", queue); diff --git a/promise/src/main/java/com/iluwatar/promise/App.java b/promise/src/main/java/com/iluwatar/promise/App.java index 440478f38..a53b759c9 100644 --- a/promise/src/main/java/com/iluwatar/promise/App.java +++ b/promise/src/main/java/com/iluwatar/promise/App.java @@ -29,8 +29,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Promise object is used for asynchronous computations. A Promise represents an operation that @@ -60,10 +59,9 @@ import org.slf4j.LoggerFactory; * * @see CompletableFuture */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private static final String DEFAULT_URL = "https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/promise/README.md"; private final ExecutorService executor; diff --git a/promise/src/main/java/com/iluwatar/promise/Utility.java b/promise/src/main/java/com/iluwatar/promise/Utility.java index b55c48a93..544d7e53b 100644 --- a/promise/src/main/java/com/iluwatar/promise/Utility.java +++ b/promise/src/main/java/com/iluwatar/promise/Utility.java @@ -36,16 +36,14 @@ import java.util.Map; import java.util.Map.Entry; import java.util.function.Function; import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Utility to perform various operations. */ +@Slf4j public class Utility { - private static final Logger LOGGER = LoggerFactory.getLogger(Utility.class); - /** * Calculates character frequency of the file provided. * diff --git a/promise/src/test/java/com/iluwatar/promise/PromiseTest.java b/promise/src/test/java/com/iluwatar/promise/PromiseTest.java index f3450ee00..2c35fb124 100644 --- a/promise/src/test/java/com/iluwatar/promise/PromiseTest.java +++ b/promise/src/test/java/com/iluwatar/promise/PromiseTest.java @@ -36,7 +36,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import java.util.function.Consumer; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -44,7 +43,7 @@ import org.junit.jupiter.api.Test; /** * Tests Promise class. */ -public class PromiseTest { +class PromiseTest { private Executor executor; private Promise promise; @@ -56,7 +55,7 @@ public class PromiseTest { } @Test - public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask() + void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask() throws InterruptedException, ExecutionException { promise.fulfillInAsync(new NumberCrunchingTask(), executor); @@ -66,7 +65,7 @@ public class PromiseTest { } @Test - public void promiseIsFulfilledWithAnExceptionIfTaskThrowsAnException() + void promiseIsFulfilledWithAnExceptionIfTaskThrowsAnException() throws InterruptedException { testWaitingForeverForPromiseToBeFulfilled(); testWaitingSomeTimeForPromiseToBeFulfilled(); @@ -120,7 +119,7 @@ public class PromiseTest { } @Test - public void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPromise() + void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPromise() throws InterruptedException, ExecutionException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -132,7 +131,7 @@ public class PromiseTest { } @Test - public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnException() + void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnException() throws InterruptedException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -160,7 +159,7 @@ public class PromiseTest { } @Test - public void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThisPromise() + void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThisPromise() throws InterruptedException, ExecutionException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -176,7 +175,7 @@ public class PromiseTest { } @Test - public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsException() + void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsException() throws InterruptedException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -204,17 +203,18 @@ public class PromiseTest { } @Test - public void fetchingAnAlreadyFulfilledPromiseReturnsTheFulfilledValueImmediately() + void fetchingAnAlreadyFulfilledPromiseReturnsTheFulfilledValueImmediately() throws ExecutionException { var promise = new Promise(); promise.fulfill(NumberCrunchingTask.CRUNCHED_NUMBER); - promise.get(1000, TimeUnit.SECONDS); + Integer result = promise.get(1000, TimeUnit.SECONDS); + assertEquals(NumberCrunchingTask.CRUNCHED_NUMBER, result); } @SuppressWarnings("unchecked") @Test - public void exceptionHandlerIsCalledWhenPromiseIsFulfilledExceptionally() { + void exceptionHandlerIsCalledWhenPromiseIsFulfilledExceptionally() { var promise = new Promise<>(); var exceptionHandler = mock(Consumer.class); promise.onError(exceptionHandler); diff --git a/property/src/main/java/com/iluwatar/property/App.java b/property/src/main/java/com/iluwatar/property/App.java index d646c6787..5979ea84d 100644 --- a/property/src/main/java/com/iluwatar/property/App.java +++ b/property/src/main/java/com/iluwatar/property/App.java @@ -24,8 +24,7 @@ package com.iluwatar.property; import com.iluwatar.property.Character.Type; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Property pattern is also known as Prototype inheritance. @@ -38,10 +37,9 @@ import org.slf4j.LoggerFactory; * *

In this example we demonstrate {@link Character} instantiation using the Property pattern. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/property/src/test/java/com/iluwatar/property/CharacterTest.java b/property/src/test/java/com/iluwatar/property/CharacterTest.java index 59113f28a..228364fba 100644 --- a/property/src/test/java/com/iluwatar/property/CharacterTest.java +++ b/property/src/test/java/com/iluwatar/property/CharacterTest.java @@ -40,7 +40,7 @@ import org.junit.jupiter.api.Test; public class CharacterTest { @Test - public void testPrototypeStats() throws Exception { + void testPrototypeStats() throws Exception { final var prototype = new Character(); for (final var stat : Stats.values()) { @@ -60,7 +60,7 @@ public class CharacterTest { } @Test - public void testCharacterStats() { + void testCharacterStats() { final var prototype = new Character(); Arrays.stream(Stats.values()).forEach(stat -> prototype.set(stat, stat.ordinal())); @@ -73,7 +73,7 @@ public class CharacterTest { } @Test - public void testToString() { + void testToString() { final var prototype = new Character(); prototype.set(Stats.ARMOR, 1); prototype.set(Stats.AGILITY, 2); @@ -91,7 +91,7 @@ public class CharacterTest { } @Test - public void testName() { + void testName() { final var prototype = new Character(); prototype.set(Stats.ARMOR, 1); prototype.set(Stats.INTELLECT, 2); @@ -107,7 +107,7 @@ public class CharacterTest { } @Test - public void testType() { + void testType() { final var prototype = new Character(); prototype.set(Stats.ARMOR, 1); prototype.set(Stats.INTELLECT, 2); diff --git a/prototype/src/main/java/com/iluwatar/prototype/App.java b/prototype/src/main/java/com/iluwatar/prototype/App.java index eb81c792d..998106ec9 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/App.java +++ b/prototype/src/main/java/com/iluwatar/prototype/App.java @@ -23,8 +23,7 @@ package com.iluwatar.prototype; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Prototype pattern is a creational design pattern in software development. It is used when the @@ -36,10 +35,9 @@ import org.slf4j.LoggerFactory; *

In this example we have a factory class ({@link HeroFactoryImpl}) producing objects by * cloning the existing ones. The factory's prototype objects are given as constructor parameters. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/prototype/src/main/java/com/iluwatar/prototype/Beast.java b/prototype/src/main/java/com/iluwatar/prototype/Beast.java index 359c1f280..ecae07063 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Beast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Beast.java @@ -23,29 +23,20 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + /** * Beast. */ +@EqualsAndHashCode +@NoArgsConstructor public abstract class Beast implements Prototype { - public Beast() { - } - public Beast(Beast source) { } @Override public abstract Beast copy(); - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - return getClass() == obj.getClass(); - } - } diff --git a/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java b/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java index cfa1e1f3f..830bad95c 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java @@ -23,17 +23,18 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; + /** * ElfBeast. */ +@EqualsAndHashCode(callSuper = true) +@RequiredArgsConstructor public class ElfBeast extends Beast { private final String helpType; - public ElfBeast(String helpType) { - this.helpType = helpType; - } - public ElfBeast(ElfBeast elfBeast) { super(elfBeast); this.helpType = elfBeast.helpType; @@ -49,22 +50,4 @@ public class ElfBeast extends Beast { return "Elven eagle helps in " + helpType; } - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (ElfBeast) obj; - if (helpType == null) { - return other.helpType == null; - } - return helpType.equals(other.helpType); - } - } diff --git a/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java b/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java index 6345749b3..7f5183349 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java @@ -23,17 +23,18 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; + /** * ElfMage. */ +@EqualsAndHashCode(callSuper = true) +@RequiredArgsConstructor public class ElfMage extends Mage { private final String helpType; - public ElfMage(String helpType) { - this.helpType = helpType; - } - public ElfMage(ElfMage elfMage) { super(elfMage); this.helpType = elfMage.helpType; @@ -49,21 +50,4 @@ public class ElfMage extends Mage { return "Elven mage helps in " + helpType; } - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (ElfMage) obj; - if (helpType == null) { - return other.helpType == null; - } - return helpType.equals(other.helpType); - } } diff --git a/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java b/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java index c435976a0..b45ae693e 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java @@ -23,9 +23,12 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; + /** * ElfWarlord. */ +@EqualsAndHashCode public class ElfWarlord extends Warlord { private final String helpType; @@ -48,22 +51,4 @@ public class ElfWarlord extends Warlord { public String toString() { return "Elven warlord helps in " + helpType; } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (ElfWarlord) obj; - if (helpType == null) { - return other.helpType == null; - } - return helpType.equals(other.helpType); - } } \ No newline at end of file diff --git a/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java b/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java index f3c67f542..772cb27f8 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java +++ b/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java @@ -23,24 +23,18 @@ package com.iluwatar.prototype; +import lombok.RequiredArgsConstructor; + /** * Concrete factory class. */ +@RequiredArgsConstructor public class HeroFactoryImpl implements HeroFactory { private final Mage mage; private final Warlord warlord; private final Beast beast; - /** - * Constructor. - */ - public HeroFactoryImpl(Mage mage, Warlord warlord, Beast beast) { - this.mage = mage; - this.warlord = warlord; - this.beast = beast; - } - /** * Create mage. */ diff --git a/prototype/src/main/java/com/iluwatar/prototype/Mage.java b/prototype/src/main/java/com/iluwatar/prototype/Mage.java index fb4344c6d..a1a847358 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Mage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Mage.java @@ -23,29 +23,20 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + /** * Mage. */ +@EqualsAndHashCode +@NoArgsConstructor public abstract class Mage implements Prototype { - public Mage() { - } - public Mage(Mage source) { } @Override public abstract Mage copy(); - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - return getClass() == obj.getClass(); - } - } diff --git a/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java b/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java index 032d1c2ab..4c8936356 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java @@ -23,17 +23,18 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; + /** * OrcBeast. */ +@EqualsAndHashCode(callSuper = false) +@RequiredArgsConstructor public class OrcBeast extends Beast { private final String weapon; - public OrcBeast(String weapon) { - this.weapon = weapon; - } - public OrcBeast(OrcBeast orcBeast) { super(orcBeast); this.weapon = orcBeast.weapon; @@ -49,23 +50,4 @@ public class OrcBeast extends Beast { return "Orcish wolf attacks with " + weapon; } - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (OrcBeast) obj; - if (weapon == null) { - return other.weapon == null; - } - return weapon.equals(other.weapon); - } - - } diff --git a/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java b/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java index 24b62739c..a7361ec80 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java @@ -23,17 +23,18 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; + /** * OrcMage. */ +@EqualsAndHashCode(callSuper = true) +@RequiredArgsConstructor public class OrcMage extends Mage { private final String weapon; - public OrcMage(String weapon) { - this.weapon = weapon; - } - public OrcMage(OrcMage orcMage) { super(orcMage); this.weapon = orcMage.weapon; @@ -49,21 +50,4 @@ public class OrcMage extends Mage { return "Orcish mage attacks with " + weapon; } - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (OrcMage) obj; - if (weapon == null) { - return other.weapon == null; - } - return weapon.equals(other.weapon); - } } diff --git a/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java b/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java index 85446fb5a..1096cc979 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java @@ -23,17 +23,18 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; + /** * OrcWarlord. */ +@EqualsAndHashCode(callSuper = true) +@RequiredArgsConstructor public class OrcWarlord extends Warlord { private final String weapon; - public OrcWarlord(String weapon) { - this.weapon = weapon; - } - public OrcWarlord(OrcWarlord orcWarlord) { super(orcWarlord); this.weapon = orcWarlord.weapon; @@ -49,21 +50,4 @@ public class OrcWarlord extends Warlord { return "Orcish warlord attacks with " + weapon; } - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!super.equals(obj)) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (OrcWarlord) obj; - if (weapon == null) { - return other.weapon == null; - } - return weapon.equals(other.weapon); - } } diff --git a/prototype/src/main/java/com/iluwatar/prototype/Warlord.java b/prototype/src/main/java/com/iluwatar/prototype/Warlord.java index d4135bc7e..7176ccf0c 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Warlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Warlord.java @@ -23,29 +23,20 @@ package com.iluwatar.prototype; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + /** * Warlord. */ +@EqualsAndHashCode +@NoArgsConstructor public abstract class Warlord implements Prototype { - public Warlord() { - } - public Warlord(Warlord source) { } @Override public abstract Warlord copy(); - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - return getClass() == obj.getClass(); - } - } diff --git a/prototype/src/test/java/com/iluwatar/prototype/AppTest.java b/prototype/src/test/java/com/iluwatar/prototype/AppTest.java index 595f4af6f..757f0aa41 100644 --- a/prototype/src/test/java/com/iluwatar/prototype/AppTest.java +++ b/prototype/src/test/java/com/iluwatar/prototype/AppTest.java @@ -23,10 +23,10 @@ package com.iluwatar.prototype; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import org.junit.jupiter.api.Test; + /** * Application test */ diff --git a/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java b/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java index 653f25547..b22f7ba8e 100644 --- a/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java +++ b/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java @@ -39,7 +39,7 @@ import org.junit.jupiter.params.provider.MethodSource; * @param

Prototype * @author Jeroen Meulemeester */ -public class PrototypeTest

{ +class PrototypeTest

{ static Collection dataProvider() { return List.of( new Object[]{new OrcBeast("axe"), "Orcish wolf attacks with axe"}, @@ -53,7 +53,7 @@ public class PrototypeTest

{ @ParameterizedTest @MethodSource("dataProvider") - public void testPrototype(P testedPrototype, String expectedToString) { + void testPrototype(P testedPrototype, String expectedToString) { assertEquals(expectedToString, testedPrototype.toString()); final var clone = testedPrototype.copy(); diff --git a/proxy/README.md b/proxy/README.md index edf223b23..5b569d244 100644 --- a/proxy/README.md +++ b/proxy/README.md @@ -49,10 +49,9 @@ public interface WizardTower { void enter(Wizard wizard); } +@Slf4j public class IvoryTower implements WizardTower { - private static final Logger LOGGER = LoggerFactory.getLogger(IvoryTower.class); - public void enter(Wizard wizard) { LOGGER.info("{} enters the tower.", wizard); } @@ -81,10 +80,9 @@ public class Wizard { Then we have the `WizardTowerProxy` to add access control to `WizardTower`. ```java +@Slf4j public class WizardTowerProxy implements WizardTower { - private static final Logger LOGGER = LoggerFactory.getLogger(WizardTowerProxy.class); - private static final int NUM_WIZARDS_ALLOWED = 3; private int numWizards; diff --git a/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java b/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java index e359908a9..dd459aac8 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java +++ b/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java @@ -23,16 +23,14 @@ package com.iluwatar.proxy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The object to be proxied. */ +@Slf4j public class IvoryTower implements WizardTower { - private static final Logger LOGGER = LoggerFactory.getLogger(IvoryTower.class); - public void enter(Wizard wizard) { LOGGER.info("{} enters the tower.", wizard); } diff --git a/proxy/src/main/java/com/iluwatar/proxy/Wizard.java b/proxy/src/main/java/com/iluwatar/proxy/Wizard.java index bdeed212e..c16c32a9c 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/Wizard.java +++ b/proxy/src/main/java/com/iluwatar/proxy/Wizard.java @@ -23,17 +23,16 @@ package com.iluwatar.proxy; +import lombok.RequiredArgsConstructor; + /** * Wizard. */ +@RequiredArgsConstructor public class Wizard { private final String name; - public Wizard(String name) { - this.name = name; - } - @Override public String toString() { return name; diff --git a/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java b/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java index 9d8fa5944..9a9f4ab8d 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java +++ b/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java @@ -23,16 +23,14 @@ package com.iluwatar.proxy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The proxy controlling access to the {@link IvoryTower}. */ +@Slf4j public class WizardTowerProxy implements WizardTower { - private static final Logger LOGGER = LoggerFactory.getLogger(WizardTowerProxy.class); - private static final int NUM_WIZARDS_ALLOWED = 3; private int numWizards; diff --git a/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java b/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java index c1b929458..c054e8048 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java @@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test; /** * Tests for {@link IvoryTower} */ -public class IvoryTowerTest { +class IvoryTowerTest { private InMemoryAppender appender; @@ -50,7 +50,7 @@ public class IvoryTowerTest { } @Test - public void testEnter() { + void testEnter() { final var wizards = List.of( new Wizard("Gandalf"), new Wizard("Dumbledore"), diff --git a/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java b/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java index cfcb21b04..0f42c7e54 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java @@ -31,10 +31,10 @@ import org.junit.jupiter.api.Test; /** * Tests for {@link Wizard} */ -public class WizardTest { +class WizardTest { @Test - public void testToString() { + void testToString() { List.of("Gandalf", "Dumbledore", "Oz", "Merlin") .forEach(name -> assertEquals(name, new Wizard(name).toString())); } diff --git a/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java b/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java index 3314ffe0c..236afc682 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java @@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test; /** * Tests for {@link WizardTowerProxy} */ -public class WizardTowerProxyTest { +class WizardTowerProxyTest { private InMemoryAppender appender; @@ -50,7 +50,7 @@ public class WizardTowerProxyTest { } @Test - public void testEnter() throws Exception { + void testEnter() { final var wizards = List.of( new Wizard("Gandalf"), new Wizard("Dumbledore"), diff --git a/proxy/src/test/java/com/iluwatar/proxy/utils/InMemoryAppender.java b/proxy/src/test/java/com/iluwatar/proxy/utils/InMemoryAppender.java index 8fa13c20f..fc4698bed 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/utils/InMemoryAppender.java +++ b/proxy/src/test/java/com/iluwatar/proxy/utils/InMemoryAppender.java @@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory; public class InMemoryAppender extends AppenderBase { private final List log = new LinkedList<>(); - public InMemoryAppender(Class clazz) { + public InMemoryAppender(Class clazz) { ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); start(); } diff --git a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/App.java b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/App.java index 430317246..8cac84552 100644 --- a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/App.java +++ b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/App.java @@ -26,8 +26,7 @@ package com.iluwatar.queue.load.leveling; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Many solutions in the cloud involve running tasks that invoke services. In this environment, if a @@ -58,10 +57,9 @@ import org.slf4j.LoggerFactory; * MessageQueue. The service executor class {@link ServiceExecutor} will pick up one task at a time * from the Queue and execute them. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - //Executor shut down time limit. private static final int SHUTDOWN_TIME = 15; diff --git a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Message.java b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Message.java index aaf0c69a4..c30b27ed8 100644 --- a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Message.java +++ b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Message.java @@ -23,22 +23,17 @@ package com.iluwatar.queue.load.leveling; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * Message class with only one parameter. */ +@Getter +@RequiredArgsConstructor public class Message { private final String msg; - // Parameter constructor. - public Message(String msg) { - this.msg = msg; - } - - // Get Method for attribute msg. - public String getMsg() { - return msg; - } - @Override public String toString() { return msg; diff --git a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/MessageQueue.java b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/MessageQueue.java index c4177ef72..5c03ff8ab 100644 --- a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/MessageQueue.java +++ b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/MessageQueue.java @@ -25,17 +25,15 @@ package com.iluwatar.queue.load.leveling; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * MessageQueue class. In this class we will create a Blocking Queue and submit/retrieve all the * messages from it. */ +@Slf4j public class MessageQueue { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private final BlockingQueue blkQueue; // Default constructor when called creates Blocking Queue object. diff --git a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/ServiceExecutor.java b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/ServiceExecutor.java index 0c9f96143..1828788c3 100644 --- a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/ServiceExecutor.java +++ b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/ServiceExecutor.java @@ -23,17 +23,15 @@ package com.iluwatar.queue.load.leveling; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ServiceExecuotr class. This class will pick up Messages one by one from the Blocking Queue and * process them. */ +@Slf4j public class ServiceExecutor implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private final MessageQueue msgQueue; public ServiceExecutor(MessageQueue msgQueue) { diff --git a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/TaskGenerator.java b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/TaskGenerator.java index 3b4755b25..19a5077f3 100644 --- a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/TaskGenerator.java +++ b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/TaskGenerator.java @@ -23,18 +23,15 @@ package com.iluwatar.queue.load.leveling; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * TaskGenerator class. Each TaskGenerator thread will be a Worker which submit's messages to the * queue. We need to mention the message count for each of the TaskGenerator threads. */ +@Slf4j public class TaskGenerator implements Task, Runnable { - - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - // MessageQueue reference using which we will submit our messages. private final MessageQueue msgQueue; diff --git a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageQueueTest.java b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageQueueTest.java index ff43b3298..08ccfe2de 100644 --- a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageQueueTest.java +++ b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageQueueTest.java @@ -30,10 +30,10 @@ import org.junit.jupiter.api.Test; /** * Test case for submitting and retrieving messages from Blocking Queue. */ -public class MessageQueueTest { +class MessageQueueTest { @Test - public void messageQueueTest() { + void messageQueueTest() { var msgQueue = new MessageQueue(); diff --git a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageTest.java b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageTest.java index dd14b5144..f18807dd0 100644 --- a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageTest.java +++ b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/MessageTest.java @@ -30,10 +30,10 @@ import org.junit.jupiter.api.Test; /** * Test case for creating and checking the Message. */ -public class MessageTest { +class MessageTest { @Test - public void messageTest() { + void messageTest() { // Parameterized constructor test. var testMsg = "Message Test"; diff --git a/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java b/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java index 1ddd2c34c..4009fdb16 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java @@ -35,17 +35,15 @@ import java.net.UnknownHostException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Represents the clients of Reactor pattern. Multiple clients are run concurrently and send logging * requests to Reactor. */ +@Slf4j public class AppClient { - private static final Logger LOGGER = LoggerFactory.getLogger(AppClient.class); - private final ExecutorService service = Executors.newFixedThreadPool(4); /** diff --git a/reactor/src/main/java/com/iluwatar/reactor/app/LoggingHandler.java b/reactor/src/main/java/com/iluwatar/reactor/app/LoggingHandler.java index a3501971c..fd1bcae78 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/LoggingHandler.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/LoggingHandler.java @@ -28,17 +28,15 @@ import com.iluwatar.reactor.framework.ChannelHandler; import com.iluwatar.reactor.framework.NioDatagramChannel.DatagramPacket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Logging server application logic. It logs the incoming requests on standard console and returns a * canned acknowledgement back to the remote peer. */ +@Slf4j public class LoggingHandler implements ChannelHandler { - private static final Logger LOGGER = LoggerFactory.getLogger(LoggingHandler.class); - private static final byte[] ACK = "Data logged successfully".getBytes(); /** diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/NioDatagramChannel.java b/reactor/src/main/java/com/iluwatar/reactor/framework/NioDatagramChannel.java index fbddc12c6..299e65257 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/NioDatagramChannel.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/NioDatagramChannel.java @@ -30,16 +30,14 @@ import java.net.SocketAddress; import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; import java.nio.channels.SelectionKey; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A wrapper over {@link DatagramChannel} which can read and write data on a DatagramChannel. */ +@Slf4j public class NioDatagramChannel extends AbstractNioChannel { - private static final Logger LOGGER = LoggerFactory.getLogger(NioDatagramChannel.class); - private final int port; /** diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/NioReactor.java b/reactor/src/main/java/com/iluwatar/reactor/framework/NioReactor.java index 65a69b646..2db01bf88 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/NioReactor.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/NioReactor.java @@ -32,8 +32,7 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This class acts as Synchronous Event De-multiplexer and Initiation Dispatcher of Reactor pattern. @@ -50,10 +49,9 @@ import org.slf4j.LoggerFactory; * possible edge cases which are required in a real application. This implementation is meant to * demonstrate the fundamental concepts that lie behind Reactor pattern. */ +@Slf4j public class NioReactor { - private static final Logger LOGGER = LoggerFactory.getLogger(NioReactor.class); - private final Selector selector; private final Dispatcher dispatcher; /** diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/NioServerSocketChannel.java b/reactor/src/main/java/com/iluwatar/reactor/framework/NioServerSocketChannel.java index 351ee4b19..97142c58b 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/NioServerSocketChannel.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/NioServerSocketChannel.java @@ -30,17 +30,15 @@ import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A wrapper over {@link NioServerSocketChannel} which can read and write data on a {@link * SocketChannel}. */ +@Slf4j public class NioServerSocketChannel extends AbstractNioChannel { - private static final Logger LOGGER = LoggerFactory.getLogger(NioServerSocketChannel.class); - private final int port; /** diff --git a/reactor/src/test/java/com/iluwatar/reactor/app/ReactorTest.java b/reactor/src/test/java/com/iluwatar/reactor/app/ReactorTest.java index fd3eab523..7e3383b2d 100644 --- a/reactor/src/test/java/com/iluwatar/reactor/app/ReactorTest.java +++ b/reactor/src/test/java/com/iluwatar/reactor/app/ReactorTest.java @@ -23,23 +23,20 @@ package com.iluwatar.reactor.app; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import com.iluwatar.reactor.framework.SameThreadDispatcher; import com.iluwatar.reactor.framework.ThreadPoolDispatcher; import java.io.IOException; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; /** * This class tests the Distributed Logging service by starting a Reactor and then sending it * concurrent logging requests using multiple clients. */ -public class ReactorTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(ReactorTest.class); +@Slf4j +class ReactorTest { /** * Test the application using pooled thread dispatcher. @@ -48,7 +45,7 @@ public class ReactorTest { * @throws InterruptedException if interrupted while stopping the application. */ @Test - public void testAppUsingThreadPoolDispatcher() throws IOException, InterruptedException { + void testAppUsingThreadPoolDispatcher() throws IOException, InterruptedException { LOGGER.info("testAppUsingThreadPoolDispatcher start"); var app = new App(new ThreadPoolDispatcher(2)); app.start(); @@ -80,7 +77,7 @@ public class ReactorTest { * @throws InterruptedException if interrupted while stopping the application. */ @Test - public void testAppUsingSameThreadDispatcher() throws IOException, InterruptedException { + void testAppUsingSameThreadDispatcher() throws IOException, InterruptedException { LOGGER.info("testAppUsingSameThreadDispatcher start"); var app = new App(new SameThreadDispatcher()); app.start(); diff --git a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/App.java b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/App.java index d703cc691..a857db2d7 100644 --- a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/App.java +++ b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/App.java @@ -26,8 +26,7 @@ package com.iluwatar.reader.writer.lock; import java.util.concurrent.Executors; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * In a multiple thread applications, the threads may try to synchronize the shared resources @@ -45,10 +44,9 @@ import org.slf4j.LoggerFactory; * * @author hongshuwei@gmail.com */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Reader.java b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Reader.java index 4abdd5220..715ae08b7 100644 --- a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Reader.java +++ b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Reader.java @@ -24,16 +24,14 @@ package com.iluwatar.reader.writer.lock; import java.util.concurrent.locks.Lock; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Reader class, read when it acquired the read lock. */ +@Slf4j public class Reader implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Reader.class); - private final Lock readLock; private final String name; diff --git a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java index 621084b59..2b487f5eb 100644 --- a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java +++ b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/ReaderWriterLock.java @@ -29,8 +29,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Class responsible for control the access for reader or writer @@ -38,10 +37,9 @@ import org.slf4j.LoggerFactory; *

Allows multiple readers to hold the lock at same time, but if any writer holds the lock then * readers wait. If reader holds the lock then writer waits. This lock is not fair. */ +@Slf4j public class ReaderWriterLock implements ReadWriteLock { - private static final Logger LOGGER = LoggerFactory.getLogger(ReaderWriterLock.class); - private final Object readerMutex = new Object(); diff --git a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Writer.java b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Writer.java index b215c457b..9c908aa24 100644 --- a/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Writer.java +++ b/reader-writer-lock/src/main/java/com/iluwatar/reader/writer/lock/Writer.java @@ -24,16 +24,14 @@ package com.iluwatar.reader.writer.lock; import java.util.concurrent.locks.Lock; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Writer class, write when it acquired the write lock. */ +@Slf4j public class Writer implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Writer.class); - private final Lock writeLock; private final String name; diff --git a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderAndWriterTest.java b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderAndWriterTest.java index ddd19087d..65e0f0e9b 100644 --- a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderAndWriterTest.java +++ b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderAndWriterTest.java @@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory; /** * @author hongshuwei@gmail.com */ -public class ReaderAndWriterTest { +class ReaderAndWriterTest { private InMemoryAppender appender; @@ -57,7 +57,7 @@ public class ReaderAndWriterTest { * Verify reader and writer can only get the lock to read and write orderly */ @Test - public void testReadAndWrite() throws Exception { + void testReadAndWrite() throws Exception { var lock = new ReaderWriterLock(); @@ -87,7 +87,7 @@ public class ReaderAndWriterTest { * Verify reader and writer can only get the lock to read and write orderly */ @Test - public void testWriteAndRead() throws Exception { + void testWriteAndRead() throws Exception { var executeService = Executors.newFixedThreadPool(2); var lock = new ReaderWriterLock(); diff --git a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderTest.java b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderTest.java index 5621a8d6a..f405b6e7b 100644 --- a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderTest.java +++ b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/ReaderTest.java @@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory; /** * @author hongshuwei@gmail.com */ -public class ReaderTest { +class ReaderTest { private InMemoryAppender appender; @@ -58,7 +58,7 @@ public class ReaderTest { * Verify that multiple readers can get the read lock concurrently */ @Test - public void testRead() throws Exception { + void testRead() throws Exception { var executeService = Executors.newFixedThreadPool(2); var lock = new ReaderWriterLock(); diff --git a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/WriterTest.java b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/WriterTest.java index 8be8c93e5..28d18acdc 100644 --- a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/WriterTest.java +++ b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/WriterTest.java @@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory; /** * @author hongshuwei@gmail.com */ -public class WriterTest { +class WriterTest { private InMemoryAppender appender; @@ -58,7 +58,7 @@ public class WriterTest { * Verify that multiple writers will get the lock in order. */ @Test - public void testWrite() throws Exception { + void testWrite() throws Exception { var executeService = Executors.newFixedThreadPool(2); var lock = new ReaderWriterLock(); diff --git a/registry/src/test/java/com/iluwatar/registry/CustomerRegistryTest.java b/registry/src/test/java/com/iluwatar/registry/CustomerRegistryTest.java index 54c800cd8..c25e7f7c6 100644 --- a/registry/src/test/java/com/iluwatar/registry/CustomerRegistryTest.java +++ b/registry/src/test/java/com/iluwatar/registry/CustomerRegistryTest.java @@ -59,9 +59,8 @@ public class CustomerRegistryTest { } @Test - public void shouldReturnNullWhenQueriedCustomerIsNotInRegistry() { + void shouldReturnNullWhenQueriedCustomerIsNotInRegistry() { Customer customerWithId5 = customerRegistry.getCustomer("5"); assertNull(customerWithId5); } - } diff --git a/repository/pom.xml b/repository/pom.xml index 197528ad7..b92c606ba 100644 --- a/repository/pom.xml +++ b/repository/pom.xml @@ -33,11 +33,6 @@ repository - - com.github.sbrannen - spring-test-junit5 - test - org.springframework.data spring-data-jpa diff --git a/repository/src/main/java/com/iluwatar/repository/App.java b/repository/src/main/java/com/iluwatar/repository/App.java index e46bc75a5..3a9ec0296 100644 --- a/repository/src/main/java/com/iluwatar/repository/App.java +++ b/repository/src/main/java/com/iluwatar/repository/App.java @@ -24,8 +24,7 @@ package com.iluwatar.repository; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.support.ClassPathXmlApplicationContext; /** @@ -43,10 +42,9 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; * also performed. Underneath we have configured in-memory H2 database for which schema is created * and dropped on each run. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/repository/src/main/java/com/iluwatar/repository/AppConfig.java b/repository/src/main/java/com/iluwatar/repository/AppConfig.java index 15684dc15..f2018423e 100644 --- a/repository/src/main/java/com/iluwatar/repository/AppConfig.java +++ b/repository/src/main/java/com/iluwatar/repository/AppConfig.java @@ -26,10 +26,9 @@ package com.iluwatar.repository; import java.util.List; import java.util.Properties; import javax.sql.DataSource; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.dbcp.BasicDataSource; import org.hibernate.jpa.HibernatePersistenceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.boot.SpringBootConfiguration; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; @@ -42,10 +41,9 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; */ @EnableJpaRepositories @SpringBootConfiguration +@Slf4j public class AppConfig { - private static final Logger LOGGER = LoggerFactory.getLogger(AppConfig.class); - /** * Creation of H2 db. * diff --git a/repository/src/main/java/com/iluwatar/repository/Person.java b/repository/src/main/java/com/iluwatar/repository/Person.java index ba02cd6c4..4d385cd70 100644 --- a/repository/src/main/java/com/iluwatar/repository/Person.java +++ b/repository/src/main/java/com/iluwatar/repository/Person.java @@ -26,11 +26,21 @@ package com.iluwatar.repository; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; /** * Person entity. */ +@ToString +@EqualsAndHashCode +@Setter +@Getter @Entity +@NoArgsConstructor public class Person { @Id @@ -38,12 +48,8 @@ public class Person { private Long id; private String name; private String surname; - private int age; - public Person() { - } - /** * Constructor. */ @@ -53,87 +59,4 @@ public class Person { this.age = age; } - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSurname() { - return surname; - } - - public void setSurname(String surname) { - this.surname = surname; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - @Override - public String toString() { - return "Person [id=" + id + ", name=" + name + ", surname=" + surname + ", age=" + age + "]"; - } - - @Override - public int hashCode() { - final var prime = 31; - var result = 1; - result = prime * result + age; - result = prime * result + (id == null ? 0 : id.hashCode()); - result = prime * result + (name == null ? 0 : name.hashCode()); - result = prime * result + (surname == null ? 0 : surname.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (Person) obj; - if (age != other.age) { - return false; - } - if (id == null) { - if (other.id != null) { - return false; - } - } else if (!id.equals(other.id)) { - return false; - } - if (name == null) { - if (other.name != null) { - return false; - } - } else if (!name.equals(other.name)) { - return false; - } - if (surname == null) { - return other.surname == null; - } - return surname.equals(other.surname); - } - } diff --git a/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java b/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java index d2e8f3b83..6de15a742 100644 --- a/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java @@ -43,7 +43,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = {AppConfig.class}) -public class AnnotationBasedRepositoryTest { +class AnnotationBasedRepositoryTest { @Resource private PersonRepository repository; @@ -64,13 +64,13 @@ public class AnnotationBasedRepositoryTest { } @Test - public void testFindAll() { + void testFindAll() { var actuals = Lists.newArrayList(repository.findAll()); assertTrue(actuals.containsAll(persons) && persons.containsAll(actuals)); } @Test - public void testSave() { + void testSave() { var terry = repository.findByName("Terry"); terry.setSurname("Lee"); terry.setAge(47); @@ -82,7 +82,7 @@ public class AnnotationBasedRepositoryTest { } @Test - public void testDelete() { + void testDelete() { var terry = repository.findByName("Terry"); repository.delete(terry); @@ -91,12 +91,12 @@ public class AnnotationBasedRepositoryTest { } @Test - public void testCount() { + void testCount() { assertEquals(4, repository.count()); } @Test - public void testFindAllByAgeBetweenSpec() { + void testFindAllByAgeBetweenSpec() { var persons = repository.findAll(new PersonSpecifications.AgeBetweenSpec(20, 40)); assertEquals(3, persons.size()); @@ -104,7 +104,7 @@ public class AnnotationBasedRepositoryTest { } @Test - public void testFindOneByNameEqualSpec() { + void testFindOneByNameEqualSpec() { var actual = repository.findOne(new PersonSpecifications.NameEqualSpec("Terry")); assertTrue(actual.isPresent()); assertEquals(terry, actual.get()); diff --git a/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java b/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java index 5fec985e1..3bc705634 100644 --- a/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java @@ -26,7 +26,6 @@ package com.iluwatar.repository; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource; import org.junit.jupiter.api.Test; @@ -41,7 +40,7 @@ import org.springframework.transaction.annotation.Transactional; */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = {AppConfig.class}) -public class AppConfigTest { +class AppConfigTest { @Autowired DataSource dataSource; @@ -50,7 +49,7 @@ public class AppConfigTest { * Test for bean instance */ @Test - public void testDataSource() { + void testDataSource() { assertNotNull(dataSource); } @@ -59,7 +58,7 @@ public class AppConfigTest { */ @Test @Transactional - public void testQuery() throws SQLException { + void testQuery() throws SQLException { var resultSet = dataSource.getConnection().createStatement().executeQuery("SELECT 1"); var expected = "1"; String result = null; diff --git a/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java b/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java index 86604e1bf..1697ff6f0 100644 --- a/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java +++ b/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java @@ -43,7 +43,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; */ @ExtendWith(SpringExtension.class) @SpringBootTest(properties = {"locations=classpath:applicationContext.xml"}) -public class RepositoryTest { +class RepositoryTest { @Resource private PersonRepository repository; @@ -64,13 +64,13 @@ public class RepositoryTest { } @Test - public void testFindAll() { + void testFindAll() { var actuals = Lists.newArrayList(repository.findAll()); assertTrue(actuals.containsAll(persons) && persons.containsAll(actuals)); } @Test - public void testSave() { + void testSave() { var terry = repository.findByName("Terry"); terry.setSurname("Lee"); terry.setAge(47); @@ -82,7 +82,7 @@ public class RepositoryTest { } @Test - public void testDelete() { + void testDelete() { var terry = repository.findByName("Terry"); repository.delete(terry); @@ -91,12 +91,12 @@ public class RepositoryTest { } @Test - public void testCount() { + void testCount() { assertEquals(4, repository.count()); } @Test - public void testFindAllByAgeBetweenSpec() { + void testFindAllByAgeBetweenSpec() { var persons = repository.findAll(new PersonSpecifications.AgeBetweenSpec(20, 40)); assertEquals(3, persons.size()); @@ -104,7 +104,7 @@ public class RepositoryTest { } @Test - public void testFindOneByNameEqualSpec() { + void testFindOneByNameEqualSpec() { var actual = repository.findOne(new PersonSpecifications.NameEqualSpec("Terry")); assertTrue(actual.isPresent()); assertEquals(terry, actual.get()); diff --git a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java index a1f12bcc8..0663d53ad 100644 --- a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java +++ b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/App.java @@ -23,8 +23,7 @@ package com.iluwatar.resource.acquisition.is.initialization; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Resource Acquisition Is Initialization pattern was developed for exception safe resource @@ -45,10 +44,9 @@ import org.slf4j.LoggerFactory; * *

http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/SlidingDoor.java b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/SlidingDoor.java index 829f2997c..75e8b0ebd 100644 --- a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/SlidingDoor.java +++ b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/SlidingDoor.java @@ -23,16 +23,14 @@ package com.iluwatar.resource.acquisition.is.initialization; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * SlidingDoor resource. */ +@Slf4j public class SlidingDoor implements AutoCloseable { - private static final Logger LOGGER = LoggerFactory.getLogger(SlidingDoor.class); - public SlidingDoor() { LOGGER.info("Sliding door opens."); } diff --git a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/TreasureChest.java b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/TreasureChest.java index cfcd4893a..254db17a0 100644 --- a/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/TreasureChest.java +++ b/resource-acquisition-is-initialization/src/main/java/com/iluwatar/resource/acquisition/is/initialization/TreasureChest.java @@ -24,16 +24,14 @@ package com.iluwatar.resource.acquisition.is.initialization; import java.io.Closeable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * TreasureChest resource. */ +@Slf4j public class TreasureChest implements Closeable { - private static final Logger LOGGER = LoggerFactory.getLogger(TreasureChest.class); - public TreasureChest() { LOGGER.info("Treasure chest opens."); } diff --git a/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/ClosableTest.java b/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/ClosableTest.java index cc901eed5..c74676be1 100644 --- a/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/ClosableTest.java +++ b/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/ClosableTest.java @@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory; * * @author Jeroen Meulemeester */ -public class ClosableTest { +class ClosableTest { private InMemoryAppender appender; @@ -55,7 +55,7 @@ public class ClosableTest { } @Test - public void testOpenClose() { + void testOpenClose() { try (final var ignored = new SlidingDoor(); final var ignored1 = new TreasureChest()) { assertTrue(appender.logContains("Sliding door opens.")); assertTrue(appender.logContains("Treasure chest opens.")); diff --git a/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java b/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java index 045be73dc..89901fbf9 100644 --- a/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java +++ b/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java @@ -34,22 +34,20 @@ import org.junit.jupiter.api.Test; * * @author George Aristy (george.aristy@gmail.com) */ -public class FindCustomerTest { +class FindCustomerTest { /** * Returns the given result with no exceptions. */ @Test - public void noExceptions() throws Exception { + void noExceptions() throws Exception { assertThat(new FindCustomer("123").perform(), is("123")); } /** * Throws the given exception. - * - * @throws Exception the expected exception */ @Test - public void oneException() { + void oneException() { var findCustomer = new FindCustomer("123", new BusinessException("test")); assertThrows(BusinessException.class, findCustomer::perform); } @@ -60,7 +58,7 @@ public class FindCustomerTest { * @throws Exception not an expected exception */ @Test - public void resultAfterExceptions() throws Exception { + void resultAfterExceptions() throws Exception { final var op = new FindCustomer( "123", new CustomerNotFoundException("not found"), diff --git a/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java b/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java index 91bcc1419..b01d5908e 100644 --- a/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java +++ b/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java @@ -34,12 +34,12 @@ import org.junit.jupiter.api.Test; * * @author George Aristy (george.aristy@gmail.com) */ -public class RetryExponentialBackoffTest { +class RetryExponentialBackoffTest { /** * Should contain all errors thrown. */ @Test - public void errors() { + void errors() { final var e = new BusinessException("unhandled"); final var retry = new RetryExponentialBackoff( () -> { @@ -62,7 +62,7 @@ public class RetryExponentialBackoffTest { * it to attempt twice. */ @Test - public void attempts() { + void attempts() { final var e = new BusinessException("unhandled"); final var retry = new RetryExponentialBackoff( () -> { @@ -85,7 +85,7 @@ public class RetryExponentialBackoffTest { * it to ignore the exception that will be thrown. */ @Test - public void ignore() { + void ignore() { final var e = new CustomerNotFoundException("customer not found"); final var retry = new RetryExponentialBackoff( () -> { diff --git a/retry/src/test/java/com/iluwatar/retry/RetryTest.java b/retry/src/test/java/com/iluwatar/retry/RetryTest.java index c137209e9..15350150f 100644 --- a/retry/src/test/java/com/iluwatar/retry/RetryTest.java +++ b/retry/src/test/java/com/iluwatar/retry/RetryTest.java @@ -34,12 +34,13 @@ import org.junit.jupiter.api.Test; * * @author George Aristy (george.aristy@gmail.com) */ -public class RetryTest { +class RetryTest { + /** * Should contain all errors thrown. */ @Test - public void errors() { + void errors() { final var e = new BusinessException("unhandled"); final var retry = new Retry( () -> { @@ -62,7 +63,7 @@ public class RetryTest { * it to attempt twice. */ @Test - public void attempts() { + void attempts() { final var e = new BusinessException("unhandled"); final var retry = new Retry( () -> { @@ -85,7 +86,7 @@ public class RetryTest { * it to ignore the exception that will be thrown. */ @Test - public void ignore() { + void ignore() { final var e = new CustomerNotFoundException("customer not found"); final var retry = new Retry( () -> { diff --git a/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java b/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java index 30572ddad..9299b08a3 100644 --- a/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java +++ b/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java @@ -26,8 +26,7 @@ package com.iluwatar.roleobject; import static com.iluwatar.roleobject.Role.Borrower; import static com.iluwatar.roleobject.Role.Investor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The Role Object pattern suggests to model context-specific views of an object as separate role @@ -56,10 +55,9 @@ import org.slf4j.LoggerFactory; * to return a reference to the corresponding object. The loan application may now use this * reference to call Borrower-specific operations. */ +@Slf4j public class ApplicationRoleObject { - private static final Logger logger = LoggerFactory.getLogger(Role.class); - /** * Main entry point. * @@ -68,12 +66,12 @@ public class ApplicationRoleObject { public static void main(String[] args) { var customer = Customer.newCustomer(Borrower, Investor); - logger.info(" the new customer created : {}", customer); + LOGGER.info(" the new customer created : {}", customer); var hasBorrowerRole = customer.hasRole(Borrower); - logger.info(" customer has a borrowed role - {}", hasBorrowerRole); + LOGGER.info(" customer has a borrowed role - {}", hasBorrowerRole); var hasInvestorRole = customer.hasRole(Investor); - logger.info(" customer has an investor role - {}", hasInvestorRole); + LOGGER.info(" customer has an investor role - {}", hasInvestorRole); customer.getRole(Investor, InvestorRole.class) .ifPresent(inv -> { @@ -85,10 +83,10 @@ public class ApplicationRoleObject { customer.getRole(Investor, InvestorRole.class) .map(InvestorRole::invest) - .ifPresent(logger::info); + .ifPresent(LOGGER::info); customer.getRole(Borrower, BorrowerRole.class) .map(BorrowerRole::borrow) - .ifPresent(logger::info); + .ifPresent(LOGGER::info); } } diff --git a/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java b/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java index a17b3034f..178b361cf 100644 --- a/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java +++ b/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java @@ -74,7 +74,6 @@ class CustomerCoreTest { assertFalse(invRole.isPresent()); } - @Test void toStringTest() { var core = new CustomerCore(); @@ -87,8 +86,6 @@ class CustomerCoreTest { core = new CustomerCore(); assertEquals("Customer{roles=[]}", core.toString()); - - } } \ No newline at end of file diff --git a/saga/src/main/java/com/iluwatar/saga/choreography/SagaApplication.java b/saga/src/main/java/com/iluwatar/saga/choreography/SagaApplication.java index 03da8e8a4..136c11a65 100644 --- a/saga/src/main/java/com/iluwatar/saga/choreography/SagaApplication.java +++ b/saga/src/main/java/com/iluwatar/saga/choreography/SagaApplication.java @@ -23,8 +23,7 @@ package com.iluwatar.saga.choreography; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This pattern is used in distributed services to perform a group of operations atomically. This is @@ -44,8 +43,8 @@ import org.slf4j.LoggerFactory; * @see com.iluwatar.saga.choreography.Saga * @see Service */ +@Slf4j public class SagaApplication { - private static final Logger LOGGER = LoggerFactory.getLogger(SagaApplication.class); /** * main method. diff --git a/saga/src/main/java/com/iluwatar/saga/orchestration/SagaApplication.java b/saga/src/main/java/com/iluwatar/saga/orchestration/SagaApplication.java index 43dc1464a..3b009505e 100644 --- a/saga/src/main/java/com/iluwatar/saga/orchestration/SagaApplication.java +++ b/saga/src/main/java/com/iluwatar/saga/orchestration/SagaApplication.java @@ -23,8 +23,7 @@ package com.iluwatar.saga.orchestration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This pattern is used in distributed services to perform a group of operations atomically. This is @@ -45,8 +44,8 @@ import org.slf4j.LoggerFactory; * @see SagaOrchestrator * @see Service */ +@Slf4j public class SagaApplication { - private static final Logger LOGGER = LoggerFactory.getLogger(SagaApplication.class); /** * method to show common saga logic. diff --git a/saga/src/main/java/com/iluwatar/saga/orchestration/SagaOrchestrator.java b/saga/src/main/java/com/iluwatar/saga/orchestration/SagaOrchestrator.java index 9972192c7..6c8ad9006 100644 --- a/saga/src/main/java/com/iluwatar/saga/orchestration/SagaOrchestrator.java +++ b/saga/src/main/java/com/iluwatar/saga/orchestration/SagaOrchestrator.java @@ -28,16 +28,15 @@ import static com.iluwatar.saga.orchestration.Saga.Result.CRASHED; import static com.iluwatar.saga.orchestration.Saga.Result.FINISHED; import static com.iluwatar.saga.orchestration.Saga.Result.ROLLBACK; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The orchestrator that manages all the transactions and directs the participant services to * execute local transactions based on events. */ +@Slf4j public class SagaOrchestrator { - private static final Logger LOGGER = LoggerFactory.getLogger(SagaOrchestrator.class); private final Saga saga; private final ServiceDiscoveryService sd; private final CurrentState state; diff --git a/saga/src/test/java/com/iluwatar/saga/choreography/SagaApplicationTest.java b/saga/src/test/java/com/iluwatar/saga/choreography/SagaApplicationTest.java index 67ac0f2fa..fde832369 100644 --- a/saga/src/test/java/com/iluwatar/saga/choreography/SagaApplicationTest.java +++ b/saga/src/test/java/com/iluwatar/saga/choreography/SagaApplicationTest.java @@ -26,14 +26,13 @@ package com.iluwatar.saga.choreography; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import com.iluwatar.saga.orchestration.SagaApplication; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Test; /*** * empty test */ class SagaApplicationTest { - @Test void shouldExecuteWithoutException() { assertDoesNotThrow(() -> SagaApplication.main(new String[]{})); diff --git a/saga/src/test/java/com/iluwatar/saga/choreography/SagaChoreographyTest.java b/saga/src/test/java/com/iluwatar/saga/choreography/SagaChoreographyTest.java index 749a66ac5..b97d22cfa 100644 --- a/saga/src/test/java/com/iluwatar/saga/choreography/SagaChoreographyTest.java +++ b/saga/src/test/java/com/iluwatar/saga/choreography/SagaChoreographyTest.java @@ -32,7 +32,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; */ class SagaChoreographyTest { - @Test void executeTest() { var sd = serviceDiscovery(); diff --git a/separated-interface/src/main/java/com/iluwatar/separatedinterface/App.java b/separated-interface/src/main/java/com/iluwatar/separatedinterface/App.java index 046970644..f8884eda3 100644 --- a/separated-interface/src/main/java/com/iluwatar/separatedinterface/App.java +++ b/separated-interface/src/main/java/com/iluwatar/separatedinterface/App.java @@ -26,8 +26,7 @@ package com.iluwatar.separatedinterface; import com.iluwatar.separatedinterface.invoice.InvoiceGenerator; import com.iluwatar.separatedinterface.taxes.DomesticTaxCalculator; import com.iluwatar.separatedinterface.taxes.ForeignTaxCalculator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** *

The Separated Interface pattern encourages to separate the interface definition and @@ -38,10 +37,9 @@ import org.slf4j.LoggerFactory; * {@link com.iluwatar.separatedinterface.invoice.TaxCalculator} implementations located in separate * packages, to receive different responses for both of the implementations.

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - public static final double PRODUCT_COST = 50.0; /** diff --git a/separated-interface/src/test/java/com/iluwatar/separatedinterface/invoice/InvoiceGeneratorTest.java b/separated-interface/src/test/java/com/iluwatar/separatedinterface/invoice/InvoiceGeneratorTest.java index e1fb2302b..97455dfb6 100644 --- a/separated-interface/src/test/java/com/iluwatar/separatedinterface/invoice/InvoiceGeneratorTest.java +++ b/separated-interface/src/test/java/com/iluwatar/separatedinterface/invoice/InvoiceGeneratorTest.java @@ -23,17 +23,20 @@ package com.iluwatar.separatedinterface.invoice; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import static org.mockito.Mockito.*; - -public class InvoiceGeneratorTest { +class InvoiceGeneratorTest { private InvoiceGenerator target; @Test - public void testGenerateTax() { + void testGenerateTax() { var productCost = 50.0; var tax = 10.0; TaxCalculator taxCalculatorMock = mock(TaxCalculator.class); diff --git a/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/DomesticTaxCalculatorTest.java b/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/DomesticTaxCalculatorTest.java index 895d66edb..e06c407b8 100644 --- a/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/DomesticTaxCalculatorTest.java +++ b/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/DomesticTaxCalculatorTest.java @@ -26,16 +26,16 @@ package com.iluwatar.separatedinterface.taxes; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -public class DomesticTaxCalculatorTest { +class DomesticTaxCalculatorTest { private DomesticTaxCalculator target; @Test - public void testTaxCalculation(){ + void testTaxCalculation() { target = new DomesticTaxCalculator(); - var tax=target.calculate(100.0); - Assertions.assertEquals(tax,20.0); + var tax = target.calculate(100.0); + Assertions.assertEquals(tax, 20.0); } } diff --git a/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/ForeignTaxCalculatorTest.java b/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/ForeignTaxCalculatorTest.java index e756297f2..ea05e4a7b 100644 --- a/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/ForeignTaxCalculatorTest.java +++ b/separated-interface/src/test/java/com/iluwatar/separatedinterface/taxes/ForeignTaxCalculatorTest.java @@ -26,16 +26,16 @@ package com.iluwatar.separatedinterface.taxes; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -public class ForeignTaxCalculatorTest { +class ForeignTaxCalculatorTest { private ForeignTaxCalculator target; @Test - public void testTaxCalculation(){ + void testTaxCalculation() { target = new ForeignTaxCalculator(); - var tax=target.calculate(100.0); - Assertions.assertEquals(tax,60.0); + var tax = target.calculate(100.0); + Assertions.assertEquals(tax, 60.0); } } diff --git a/servant/src/main/java/com/iluwatar/servant/App.java b/servant/src/main/java/com/iluwatar/servant/App.java index b10861f6b..b56c16ca0 100644 --- a/servant/src/main/java/com/iluwatar/servant/App.java +++ b/servant/src/main/java/com/iluwatar/servant/App.java @@ -24,8 +24,7 @@ package com.iluwatar.servant; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** @@ -35,10 +34,9 @@ import org.slf4j.LoggerFactory; * *

In this example {@link Servant} is serving {@link King} and {@link Queen}. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private static final Servant jenkins = new Servant("Jenkins"); private static final Servant travis = new Servant("Travis"); diff --git a/servant/src/test/java/com/iluwatar/servant/KingTest.java b/servant/src/test/java/com/iluwatar/servant/KingTest.java index f769389c3..667166b92 100644 --- a/servant/src/test/java/com/iluwatar/servant/KingTest.java +++ b/servant/src/test/java/com/iluwatar/servant/KingTest.java @@ -33,17 +33,17 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class KingTest { +class KingTest { @Test - public void testHungrySoberUncomplimentedKing() { + void testHungrySoberUncomplimentedKing() { final var king = new King(); king.changeMood(); assertFalse(king.getMood()); } @Test - public void testFedSoberUncomplimentedKing() { + void testFedSoberUncomplimentedKing() { final var king = new King(); king.getFed(); king.changeMood(); @@ -51,7 +51,7 @@ public class KingTest { } @Test - public void testHungryDrunkUncomplimentedKing() { + void testHungryDrunkUncomplimentedKing() { final var king = new King(); king.getDrink(); king.changeMood(); @@ -59,7 +59,7 @@ public class KingTest { } @Test - public void testHungrySoberComplimentedKing() { + void testHungrySoberComplimentedKing() { final var king = new King(); king.receiveCompliments(); king.changeMood(); @@ -67,7 +67,7 @@ public class KingTest { } @Test - public void testFedDrunkUncomplimentedKing() { + void testFedDrunkUncomplimentedKing() { final var king = new King(); king.getFed(); king.getDrink(); @@ -76,7 +76,7 @@ public class KingTest { } @Test - public void testFedSoberComplimentedKing() { + void testFedSoberComplimentedKing() { final var king = new King(); king.getFed(); king.receiveCompliments(); @@ -85,7 +85,7 @@ public class KingTest { } @Test - public void testFedDrunkComplimentedKing() { + void testFedDrunkComplimentedKing() { final var king = new King(); king.getFed(); king.getDrink(); @@ -95,7 +95,7 @@ public class KingTest { } @Test - public void testHungryDrunkComplimentedKing() { + void testHungryDrunkComplimentedKing() { final King king = new King(); king.getDrink(); king.receiveCompliments(); diff --git a/servant/src/test/java/com/iluwatar/servant/QueenTest.java b/servant/src/test/java/com/iluwatar/servant/QueenTest.java index 1a86d0afb..93dcb30bd 100644 --- a/servant/src/test/java/com/iluwatar/servant/QueenTest.java +++ b/servant/src/test/java/com/iluwatar/servant/QueenTest.java @@ -34,10 +34,10 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class QueenTest { +class QueenTest { @Test - public void testNotFlirtyUncomplemented() { + void testNotFlirtyUncomplemented() { final var queen = new Queen(); queen.setFlirtiness(false); queen.changeMood(); @@ -45,7 +45,7 @@ public class QueenTest { } @Test - public void testNotFlirtyComplemented() { + void testNotFlirtyComplemented() { final var queen = new Queen(); queen.setFlirtiness(false); queen.receiveCompliments(); @@ -54,14 +54,14 @@ public class QueenTest { } @Test - public void testFlirtyUncomplemented() { + void testFlirtyUncomplemented() { final var queen = new Queen(); queen.changeMood(); assertFalse(queen.getMood()); } @Test - public void testFlirtyComplemented() { + void testFlirtyComplemented() { final var queen = new Queen(); queen.receiveCompliments(); queen.changeMood(); diff --git a/servant/src/test/java/com/iluwatar/servant/ServantTest.java b/servant/src/test/java/com/iluwatar/servant/ServantTest.java index db6cdf341..6e9bbec47 100644 --- a/servant/src/test/java/com/iluwatar/servant/ServantTest.java +++ b/servant/src/test/java/com/iluwatar/servant/ServantTest.java @@ -37,10 +37,10 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class ServantTest { +class ServantTest { @Test - public void testFeed() { + void testFeed() { final var royalty = mock(Royalty.class); final var servant = new Servant("test"); servant.feed(royalty); @@ -49,7 +49,7 @@ public class ServantTest { } @Test - public void testGiveWine() { + void testGiveWine() { final var royalty = mock(Royalty.class); final var servant = new Servant("test"); servant.giveWine(royalty); @@ -58,7 +58,7 @@ public class ServantTest { } @Test - public void testGiveCompliments() { + void testGiveCompliments() { final var royalty = mock(Royalty.class); final var servant = new Servant("test"); servant.giveCompliments(royalty); @@ -67,7 +67,7 @@ public class ServantTest { } @Test - public void testCheckIfYouWillBeHanged() { + void testCheckIfYouWillBeHanged() { final var goodMoodRoyalty = mock(Royalty.class); when(goodMoodRoyalty.getMood()).thenReturn(true); diff --git a/serverless/src/main/java/com/iluwatar/serverless/baas/model/Address.java b/serverless/src/main/java/com/iluwatar/serverless/baas/model/Address.java index 4df66ecd5..9d0321851 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/baas/model/Address.java +++ b/serverless/src/main/java/com/iluwatar/serverless/baas/model/Address.java @@ -26,116 +26,36 @@ package com.iluwatar.serverless.baas.model; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBDocument; import java.io.Serializable; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Address class Created by dheeraj.mummarareddy on 3/4/18. */ +@Getter +@Setter +@EqualsAndHashCode +@ToString @DynamoDBDocument public class Address implements Serializable { private static final long serialVersionUID = 6760844284799736970L; - private String addressLineOne; - private String addressLineTwo; - private String city; - private String state; - private String zipCode; - @DynamoDBAttribute(attributeName = "addressLineOne") - public String getAddressLineOne() { - return addressLineOne; - } - - public void setAddressLineOne(String addressLineOne) { - this.addressLineOne = addressLineOne; - } + private String addressLineOne; @DynamoDBAttribute(attributeName = "addressLineTwo") - public String getAddressLineTwo() { - return addressLineTwo; - } - - public void setAddressLineTwo(String addressLineTwo) { - this.addressLineTwo = addressLineTwo; - } + private String addressLineTwo; @DynamoDBAttribute(attributeName = "city") - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } + private String city; @DynamoDBAttribute(attributeName = "state") - public String getState() { - return state; - } - - public void setState(String state) { - this.state = state; - } + private String state; @DynamoDBAttribute(attributeName = "zipCode") - public String getZipCode() { - return zipCode; - } + private String zipCode; - public void setZipCode(String zipCode) { - this.zipCode = zipCode; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - - if (o == null || getClass() != o.getClass()) { - return false; - } - - var address = (Address) o; - - if (!Objects.equals(addressLineOne, address.addressLineOne)) { - return false; - } - - if (!Objects.equals(addressLineTwo, address.addressLineTwo)) { - return false; - } - - if (!Objects.equals(city, address.city)) { - return false; - } - - if (!Objects.equals(state, address.state)) { - return false; - } - - return Objects.equals(zipCode, address.zipCode); - } - - @Override - public int hashCode() { - var result = addressLineOne != null ? addressLineOne.hashCode() : 0; - result = 31 * result + (addressLineTwo != null ? addressLineTwo.hashCode() : 0); - result = 31 * result + (city != null ? city.hashCode() : 0); - result = 31 * result + (state != null ? state.hashCode() : 0); - result = 31 * result + (zipCode != null ? zipCode.hashCode() : 0); - return result; - } - - @Override - public String toString() { - return "Address{" - + "addressLineOne='" + addressLineOne + '\'' - + ", addressLineTwo='" + addressLineTwo + '\'' - + ", city='" + city + '\'' - + ", state='" + state + '\'' - + ", zipCode='" + zipCode + '\'' - + '}'; - } } diff --git a/serverless/src/main/java/com/iluwatar/serverless/baas/model/Person.java b/serverless/src/main/java/com/iluwatar/serverless/baas/model/Person.java index 4c13080b4..092d9b12d 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/baas/model/Person.java +++ b/serverless/src/main/java/com/iluwatar/serverless/baas/model/Person.java @@ -29,96 +29,35 @@ import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable; import com.fasterxml.jackson.annotation.JsonProperty; import java.io.Serializable; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Person class Created by dheeraj.mummarareddy on 3/4/18. */ +@Getter +@Setter +@ToString +@EqualsAndHashCode @DynamoDBTable(tableName = "persons") public class Person implements Serializable { private static final long serialVersionUID = -3413087924608627075L; - private String id; - private String firstName; - private String lastName; - private Address address; - @JsonProperty(access = JsonProperty.Access.READ_ONLY) @DynamoDBHashKey(attributeName = "id") @DynamoDBAutoGeneratedKey - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } + private String id; @DynamoDBAttribute(attributeName = "firstName") - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } + private String firstName; @DynamoDBAttribute(attributeName = "lastName") - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } + private String lastName; @DynamoDBAttribute(attributeName = "address") - public Address getAddress() { - return address; - } + private Address address; - public void setAddress(Address address) { - this.address = address; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - Person person = (Person) o; - - if (!Objects.equals(firstName, person.firstName)) { - return false; - } - - if (!Objects.equals(lastName, person.lastName)) { - return false; - } - - return Objects.equals(address, person.address); - } - - @Override - public int hashCode() { - var result = firstName != null ? firstName.hashCode() : 0; - result = 31 * result + (lastName != null ? lastName.hashCode() : 0); - result = 31 * result + (address != null ? address.hashCode() : 0); - return result; - } - - @Override - public String toString() { - return "Person{" - + "id='" + id + '\'' - + ", firstName='" + firstName + '\'' - + ", lastName='" + lastName + '\'' - + ", address=" + address - + '}'; - } } diff --git a/serverless/src/main/java/com/iluwatar/serverless/faas/LambdaInfo.java b/serverless/src/main/java/com/iluwatar/serverless/faas/LambdaInfo.java index 0302983e2..e50202649 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/faas/LambdaInfo.java +++ b/serverless/src/main/java/com/iluwatar/serverless/faas/LambdaInfo.java @@ -24,11 +24,18 @@ package com.iluwatar.serverless.faas; import java.io.Serializable; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Lambda context information. */ +@ToString +@EqualsAndHashCode +@Setter +@Getter public class LambdaInfo implements Serializable { private static final long serialVersionUID = 3936130599040848923L; @@ -40,103 +47,4 @@ public class LambdaInfo implements Serializable { private String functionVersion; private Integer memoryLimitInMb; - public String getAwsRequestId() { - return awsRequestId; - } - - public void setAwsRequestId(String awsRequestId) { - this.awsRequestId = awsRequestId; - } - - public String getLogGroupName() { - return logGroupName; - } - - public void setLogGroupName(String logGroupName) { - this.logGroupName = logGroupName; - } - - public String getLogStreamName() { - return logStreamName; - } - - public void setLogStreamName(String logStreamName) { - this.logStreamName = logStreamName; - } - - public String getFunctionName() { - return functionName; - } - - public void setFunctionName(String functionName) { - this.functionName = functionName; - } - - public String getFunctionVersion() { - return functionVersion; - } - - public void setFunctionVersion(String functionVersion) { - this.functionVersion = functionVersion; - } - - public Integer getMemoryLimitInMb() { - return memoryLimitInMb; - } - - public void setMemoryLimitInMb(Integer memoryLimitInMb) { - this.memoryLimitInMb = memoryLimitInMb; - } - - @Override - public String toString() { - return "LambdaInfo{" - + "awsRequestId='" + awsRequestId + '\'' - + ", logGroupName='" + logGroupName + '\'' - + ", logStreamName='" + logStreamName + '\'' - + ", functionName='" + functionName + '\'' - + ", functionVersion='" + functionVersion + '\'' - + ", memoryLimitInMb=" + memoryLimitInMb - + '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - LambdaInfo that = (LambdaInfo) o; - - if (!Objects.equals(awsRequestId, that.awsRequestId)) { - return false; - } - if (!Objects.equals(logGroupName, that.logGroupName)) { - return false; - } - if (!Objects.equals(logStreamName, that.logStreamName)) { - return false; - } - if (!Objects.equals(functionName, that.functionName)) { - return false; - } - if (!Objects.equals(functionVersion, that.functionVersion)) { - return false; - } - return Objects.equals(memoryLimitInMb, that.memoryLimitInMb); - } - - @Override - public int hashCode() { - var result = awsRequestId != null ? awsRequestId.hashCode() : 0; - result = 31 * result + (logGroupName != null ? logGroupName.hashCode() : 0); - result = 31 * result + (logStreamName != null ? logStreamName.hashCode() : 0); - result = 31 * result + (functionName != null ? functionName.hashCode() : 0); - result = 31 * result + (functionVersion != null ? functionVersion.hashCode() : 0); - result = 31 * result + (memoryLimitInMb != null ? memoryLimitInMb.hashCode() : 0); - return result; - } } diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/app/App.java b/service-layer/src/main/java/com/iluwatar/servicelayer/app/App.java index 78f2fffb6..d484fb17c 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/app/App.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/app/App.java @@ -31,8 +31,7 @@ import com.iluwatar.servicelayer.spellbook.Spellbook; import com.iluwatar.servicelayer.spellbook.SpellbookDaoImpl; import com.iluwatar.servicelayer.wizard.Wizard; import com.iluwatar.servicelayer.wizard.WizardDaoImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** @@ -52,9 +51,8 @@ import org.slf4j.LoggerFactory; * dao, service). For persistence the example uses in-memory H2 database which is populated on each * application startup. */ +@Slf4j public class App { - - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); public static final String BOOK_OF_IDORES = "Book of Idores"; /** diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/hibernate/HibernateUtil.java b/service-layer/src/main/java/com/iluwatar/servicelayer/hibernate/HibernateUtil.java index fdc269aea..3c8fef0e4 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/hibernate/HibernateUtil.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/hibernate/HibernateUtil.java @@ -26,18 +26,16 @@ package com.iluwatar.servicelayer.hibernate; import com.iluwatar.servicelayer.spell.Spell; import com.iluwatar.servicelayer.spellbook.Spellbook; import com.iluwatar.servicelayer.wizard.Wizard; +import lombok.extern.slf4j.Slf4j; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Produces the Hibernate {@link SessionFactory}. */ +@Slf4j public final class HibernateUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(HibernateUtil.class); - /** * The cached session factory. */ diff --git a/service-layer/src/test/java/com/iluwatar/servicelayer/common/BaseDaoTest.java b/service-layer/src/test/java/com/iluwatar/servicelayer/common/BaseDaoTest.java index bc47481fa..7c05b6cef 100644 --- a/service-layer/src/test/java/com/iluwatar/servicelayer/common/BaseDaoTest.java +++ b/service-layer/src/test/java/com/iluwatar/servicelayer/common/BaseDaoTest.java @@ -93,7 +93,7 @@ public abstract class BaseDaoTest } @Test - public void testFind() { + void testFind() { final var all = this.dao.findAll(); for (final var entity : all) { final var byId = this.dao.find(entity.getId()); @@ -103,7 +103,7 @@ public abstract class BaseDaoTest } @Test - public void testDelete() { + void testDelete() { final var originalEntities = this.dao.findAll(); this.dao.delete(originalEntities.get(1)); this.dao.delete(originalEntities.get(2)); @@ -114,14 +114,14 @@ public abstract class BaseDaoTest } @Test - public void testFindAll() { + void testFindAll() { final var all = this.dao.findAll(); assertNotNull(all); assertEquals(INITIAL_COUNT, all.size()); } @Test - public void testSetId() { + void testSetId() { final var entity = this.factory.apply("name"); assertNull(entity.getId()); @@ -131,7 +131,7 @@ public abstract class BaseDaoTest } @Test - public void testSetName() { + void testSetName() { final var entity = this.factory.apply("name"); assertEquals("name", entity.getName()); assertEquals("name", entity.toString()); diff --git a/service-layer/src/test/java/com/iluwatar/servicelayer/magic/MagicServiceImplTest.java b/service-layer/src/test/java/com/iluwatar/servicelayer/magic/MagicServiceImplTest.java index 6e03c660d..0d5456d85 100644 --- a/service-layer/src/test/java/com/iluwatar/servicelayer/magic/MagicServiceImplTest.java +++ b/service-layer/src/test/java/com/iluwatar/servicelayer/magic/MagicServiceImplTest.java @@ -46,10 +46,10 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class MagicServiceImplTest { +class MagicServiceImplTest { @Test - public void testFindAllWizards() { + void testFindAllWizards() { final var wizardDao = mock(WizardDao.class); final var spellbookDao = mock(SpellbookDao.class); final var spellDao = mock(SpellDao.class); @@ -63,7 +63,7 @@ public class MagicServiceImplTest { } @Test - public void testFindAllSpellbooks() { + void testFindAllSpellbooks() { final var wizardDao = mock(WizardDao.class); final var spellbookDao = mock(SpellbookDao.class); final var spellDao = mock(SpellDao.class); @@ -77,7 +77,7 @@ public class MagicServiceImplTest { } @Test - public void testFindAllSpells() { + void testFindAllSpells() { final var wizardDao = mock(WizardDao.class); final var spellbookDao = mock(SpellbookDao.class); final var spellDao = mock(SpellDao.class); @@ -91,7 +91,7 @@ public class MagicServiceImplTest { } @Test - public void testFindWizardsWithSpellbook() { + void testFindWizardsWithSpellbook() { final var bookname = "bookname"; final var spellbook = mock(Spellbook.class); final var wizards = Set.of( @@ -122,7 +122,7 @@ public class MagicServiceImplTest { } @Test - public void testFindWizardsWithSpell() throws Exception { + void testFindWizardsWithSpell() throws Exception { final var wizards = Set.of( mock(Wizard.class), mock(Wizard.class), diff --git a/service-layer/src/test/java/com/iluwatar/servicelayer/spell/SpellDaoImplTest.java b/service-layer/src/test/java/com/iluwatar/servicelayer/spell/SpellDaoImplTest.java index 98ca75481..ee5180c1a 100644 --- a/service-layer/src/test/java/com/iluwatar/servicelayer/spell/SpellDaoImplTest.java +++ b/service-layer/src/test/java/com/iluwatar/servicelayer/spell/SpellDaoImplTest.java @@ -34,14 +34,14 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class SpellDaoImplTest extends BaseDaoTest { +class SpellDaoImplTest extends BaseDaoTest { public SpellDaoImplTest() { super(Spell::new, new SpellDaoImpl()); } @Test - public void testFindByName() { + void testFindByName() { final var dao = getDao(); final var allSpells = dao.findAll(); for (final var spell : allSpells) { diff --git a/service-layer/src/test/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImplTest.java b/service-layer/src/test/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImplTest.java index 273cc9f31..cd58d31d2 100644 --- a/service-layer/src/test/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImplTest.java +++ b/service-layer/src/test/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImplTest.java @@ -34,14 +34,14 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class SpellbookDaoImplTest extends BaseDaoTest { +class SpellbookDaoImplTest extends BaseDaoTest { public SpellbookDaoImplTest() { super(Spellbook::new, new SpellbookDaoImpl()); } @Test - public void testFindByName() { + void testFindByName() { final var dao = getDao(); final var allBooks = dao.findAll(); for (final var book : allBooks) { diff --git a/service-layer/src/test/java/com/iluwatar/servicelayer/wizard/WizardDaoImplTest.java b/service-layer/src/test/java/com/iluwatar/servicelayer/wizard/WizardDaoImplTest.java index 32ca3f3af..708fa5587 100644 --- a/service-layer/src/test/java/com/iluwatar/servicelayer/wizard/WizardDaoImplTest.java +++ b/service-layer/src/test/java/com/iluwatar/servicelayer/wizard/WizardDaoImplTest.java @@ -34,14 +34,14 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class WizardDaoImplTest extends BaseDaoTest { +class WizardDaoImplTest extends BaseDaoTest { public WizardDaoImplTest() { super(Wizard::new, new WizardDaoImpl()); } @Test - public void testFindByName() { + void testFindByName() { final var dao = getDao(); final var allWizards = dao.findAll(); for (final var spell : allWizards) { diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/InitContext.java b/service-locator/src/main/java/com/iluwatar/servicelocator/InitContext.java index bee10f5d9..11faff347 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/InitContext.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/InitContext.java @@ -23,8 +23,7 @@ package com.iluwatar.servicelocator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * For JNDI lookup of services from the web.xml. Will match name of the service name that is being @@ -32,10 +31,9 @@ import org.slf4j.LoggerFactory; * * @author saifasif */ +@Slf4j public class InitContext { - private static final Logger LOGGER = LoggerFactory.getLogger(InitContext.class); - /** * Perform the lookup based on the service name. The returned object will need to be casted into a * {@link Service} diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceCache.java b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceCache.java index 670b5abe9..3a8dae3fd 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceCache.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceCache.java @@ -25,8 +25,7 @@ package com.iluwatar.servicelocator; import java.util.HashMap; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The service cache implementation which will cache services that are being created. On first hit, @@ -36,10 +35,9 @@ import org.slf4j.LoggerFactory; * * @author saifasif */ +@Slf4j public class ServiceCache { - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceCache.class); - private final Map serviceCache; public ServiceCache() { diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceImpl.java b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceImpl.java index 8247dd631..a712d896d 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceImpl.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceImpl.java @@ -23,8 +23,7 @@ package com.iluwatar.servicelocator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This is a single service implementation of a sample service. This is the actual service that will @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; * * @author saifasif */ +@Slf4j public class ServiceImpl implements Service { - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceImpl.class); - private final String serviceName; private final int id; diff --git a/service-locator/src/test/java/com/iluwatar/servicelocator/ServiceLocatorTest.java b/service-locator/src/test/java/com/iluwatar/servicelocator/ServiceLocatorTest.java index 28bcb6122..118ab9302 100644 --- a/service-locator/src/test/java/com/iluwatar/servicelocator/ServiceLocatorTest.java +++ b/service-locator/src/test/java/com/iluwatar/servicelocator/ServiceLocatorTest.java @@ -37,13 +37,13 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class ServiceLocatorTest { +class ServiceLocatorTest { /** * Verify if we just receive 'null' when requesting a non-existing service */ @Test - public void testGetNonExistentService() { + void testGetNonExistentService() { assertNull(ServiceLocator.getService("fantastic/unicorn/service")); assertNull(ServiceLocator.getService("another/fantastic/unicorn/service")); } @@ -52,7 +52,7 @@ public class ServiceLocatorTest { * Verify if we get the same cached instance when requesting the same service twice */ @Test - public void testServiceCache() { + void testServiceCache() { final var serviceNames = List.of("jndi/serviceA", "jndi/serviceB"); for (final var serviceName : serviceNames) { diff --git a/sharding/src/main/java/com/iluwatar/sharding/Data.java b/sharding/src/main/java/com/iluwatar/sharding/Data.java index 9261f2e34..a8c461703 100644 --- a/sharding/src/main/java/com/iluwatar/sharding/Data.java +++ b/sharding/src/main/java/com/iluwatar/sharding/Data.java @@ -77,8 +77,8 @@ public class Data { @Override public String toString() { return "Data {" + "key=" - + key + ", value='" + value - + '\'' + ", type=" + type + '}'; + + key + ", value='" + value + + '\'' + ", type=" + type + '}'; } } diff --git a/sharding/src/main/java/com/iluwatar/sharding/HashShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/HashShardManager.java index 8577d2e11..10bb55198 100644 --- a/sharding/src/main/java/com/iluwatar/sharding/HashShardManager.java +++ b/sharding/src/main/java/com/iluwatar/sharding/HashShardManager.java @@ -23,8 +23,7 @@ package com.iluwatar.sharding; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ShardManager with hash strategy. The purpose of this strategy is to reduce the @@ -32,10 +31,9 @@ import org.slf4j.LoggerFactory; * in a way that achieves a balance between the size of each shard and the average * load that each shard will encounter. */ +@Slf4j public class HashShardManager extends ShardManager { - private static final Logger LOGGER = LoggerFactory.getLogger(HashShardManager.class); - @Override public int storeData(Data data) { var shardId = allocateShard(data); diff --git a/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java index 2e23bc946..dd94da128 100644 --- a/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java +++ b/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java @@ -26,19 +26,17 @@ package com.iluwatar.sharding; import java.security.SecureRandom; import java.util.HashMap; import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.Random; +import lombok.extern.slf4j.Slf4j; /** * ShardManager with lookup strategy. In this strategy the sharding logic implements * a map that routes a request for data to the shard that contains that data by using * the shard key. */ +@Slf4j public class LookupShardManager extends ShardManager { - private static final Logger LOGGER = LoggerFactory.getLogger(LookupShardManager.class); - private final Map lookupMap = new HashMap<>(); @Override diff --git a/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java index 12dc6ce22..8a52627b9 100644 --- a/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java +++ b/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java @@ -23,17 +23,15 @@ package com.iluwatar.sharding; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ShardManager with range strategy. This strategy groups related items together in the same shard, * and orders them by shard key. */ +@Slf4j public class RangeShardManager extends ShardManager { - private static final Logger LOGGER = LoggerFactory.getLogger(RangeShardManager.class); - @Override public int storeData(Data data) { var shardId = allocateShard(data); diff --git a/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java index f128db462..955e68530 100644 --- a/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java +++ b/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java @@ -25,17 +25,14 @@ package com.iluwatar.sharding; import java.util.HashMap; import java.util.Map; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Abstract class for ShardManager. */ +@Slf4j public abstract class ShardManager { - private static final Logger LOGGER = LoggerFactory.getLogger(ShardManager.class); - protected Map shardMap; public ShardManager() { diff --git a/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java b/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java index 14d0cf244..0e8f336ae 100644 --- a/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java +++ b/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java @@ -85,7 +85,7 @@ class ShardManagerTest { assertEquals(shard, tmpShard); } - class TestShardManager extends ShardManager { + static class TestShardManager extends ShardManager { @Override public int storeData(Data data) { diff --git a/singleton/src/main/java/com/iluwatar/singleton/App.java b/singleton/src/main/java/com/iluwatar/singleton/App.java index dff78c77d..4c02262d2 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/App.java +++ b/singleton/src/main/java/com/iluwatar/singleton/App.java @@ -23,8 +23,7 @@ package com.iluwatar.singleton; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** *

Singleton pattern ensures that the class can have only one existing instance per Java @@ -61,10 +60,9 @@ import org.slf4j.LoggerFactory; * {@link InitializingOnDemandHolderIdiom}. However, this implementation requires at least Java 8 * API level to work.

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java index ff373f415..d3a164d37 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java @@ -58,7 +58,7 @@ public final class ThreadSafeDoubleCheckLocking { public static ThreadSafeDoubleCheckLocking getInstance() { // local variable increases performance by 25 percent // Joshua Bloch "Effective Java, Second Edition", p. 283-284 - + var result = instance; // Check if singleton instance is initialized. // If it is initialized then we can return the instance. diff --git a/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java b/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java index cbb1f944b..5c155ebdd 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java @@ -49,7 +49,7 @@ import org.junit.jupiter.api.Test; * @author Jeroen Meulemeester * @author Richard Jones */ -public abstract class SingletonTest { +abstract class SingletonTest { /** * The singleton's getInstance method. @@ -69,7 +69,7 @@ public abstract class SingletonTest { * Test the singleton in a non-concurrent setting. */ @Test - public void testMultipleCallsReturnTheSameObjectInSameThread() { + void testMultipleCallsReturnTheSameObjectInSameThread() { // Create several instances in the same calling thread var instance1 = this.singletonInstanceMethod.get(); var instance2 = this.singletonInstanceMethod.get(); @@ -84,7 +84,7 @@ public abstract class SingletonTest { * Test singleton instance in a concurrent setting. */ @Test - public void testMultipleCallsReturnTheSameObjectInDifferentThreads() throws Exception { + void testMultipleCallsReturnTheSameObjectInDifferentThreads() throws Exception { assertTimeout(ofMillis(10000), () -> { // Create 10000 tasks and inside each callable instantiate the singleton class final var tasks = IntStream.range(0, 10000) diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/App.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/App.java index 6138cc5d9..647de399a 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/App.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/App.java @@ -25,8 +25,7 @@ package com.iluwatar.spatialpartition; import java.security.SecureRandom; import java.util.HashMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** *

The idea behind the Spatial Partition design pattern is to enable efficient location @@ -57,8 +56,8 @@ import org.slf4j.LoggerFactory; * speed of the game.

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); private static final String BUBBLE = "Bubble "; static void noSpatialPartition(int numOfMovements, HashMap bubbles) { diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java index 668da581e..243b76230 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java @@ -26,16 +26,15 @@ package com.iluwatar.spatialpartition; import java.security.SecureRandom; import java.util.Collection; import java.util.HashMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Bubble class extends Point. In this example, we create several bubbles in the field, let them * move and keep track of which ones have popped and which ones remain. */ +@Slf4j public class Bubble extends Point { - private static final Logger LOGGER = LoggerFactory.getLogger(Bubble.class); private static final SecureRandom RANDOM = new SecureRandom(); final int radius; diff --git a/special-case/src/main/java/com/iluwatar/specialcase/InsufficientFunds.java b/special-case/src/main/java/com/iluwatar/specialcase/InsufficientFunds.java index 37e61b83f..32e373d2a 100644 --- a/special-case/src/main/java/com/iluwatar/specialcase/InsufficientFunds.java +++ b/special-case/src/main/java/com/iluwatar/specialcase/InsufficientFunds.java @@ -23,13 +23,11 @@ package com.iluwatar.specialcase; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +@Slf4j public class InsufficientFunds implements ReceiptViewModel { - private static final Logger LOGGER = LoggerFactory.getLogger(InsufficientFunds.class); - private String userName; private Double amount; private String itemName; diff --git a/specification/src/main/java/com/iluwatar/specification/app/App.java b/specification/src/main/java/com/iluwatar/specification/app/App.java index 6b27e2ebe..025f385df 100644 --- a/specification/src/main/java/com/iluwatar/specification/app/App.java +++ b/specification/src/main/java/com/iluwatar/specification/app/App.java @@ -40,8 +40,7 @@ import com.iluwatar.specification.selector.MovementSelector; import java.util.List; import java.util.Objects; import java.util.function.Predicate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** *

The central idea of the Specification pattern is to separate the statement of how to match a @@ -54,10 +53,9 @@ import org.slf4j.LoggerFactory; * *

http://martinfowler.com/apsupp/spec.pdf

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ diff --git a/specification/src/main/java/com/iluwatar/specification/property/Mass.java b/specification/src/main/java/com/iluwatar/specification/property/Mass.java index c400bb8ff..a83e66aae 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Mass.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Mass.java @@ -23,9 +23,12 @@ package com.iluwatar.specification.property; +import lombok.EqualsAndHashCode; + /** * Mass property. */ +@EqualsAndHashCode public class Mass { private final double value; @@ -57,11 +60,4 @@ public class Mass { return title; } - @Override - public final boolean equals(Object obj) { - if (!(obj instanceof Mass)) { - return false; - } - return ((Mass) obj).value == this.value; - } } diff --git a/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java b/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java index 446add357..d5386cece 100644 --- a/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java +++ b/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java @@ -40,7 +40,7 @@ import org.junit.jupiter.params.provider.MethodSource; * * @author Jeroen Meulemeester */ -public class CreatureTest { +class CreatureTest { /** * @return The tested {@link Creature} instance and its expected specs @@ -64,40 +64,40 @@ public class CreatureTest { @ParameterizedTest @MethodSource("dataProvider") - public void testGetName(Creature testedCreature, String name) { + void testGetName(Creature testedCreature, String name) { assertEquals(name, testedCreature.getName()); } @ParameterizedTest @MethodSource("dataProvider") - public void testGetSize(Creature testedCreature, String name, Size size) { + void testGetSize(Creature testedCreature, String name, Size size) { assertEquals(size, testedCreature.getSize()); } @ParameterizedTest @MethodSource("dataProvider") - public void testGetMovement(Creature testedCreature, String name, Size size, Movement movement) { + void testGetMovement(Creature testedCreature, String name, Size size, Movement movement) { assertEquals(movement, testedCreature.getMovement()); } @ParameterizedTest @MethodSource("dataProvider") - public void testGetColor(Creature testedCreature, String name, Size size, Movement movement, - Color color) { + void testGetColor(Creature testedCreature, String name, Size size, Movement movement, + Color color) { assertEquals(color, testedCreature.getColor()); } @ParameterizedTest @MethodSource("dataProvider") - public void testGetMass(Creature testedCreature, String name, Size size, Movement movement, - Color color, Mass mass) { + void testGetMass(Creature testedCreature, String name, Size size, Movement movement, + Color color, Mass mass) { assertEquals(mass, testedCreature.getMass()); } @ParameterizedTest @MethodSource("dataProvider") - public void testToString(Creature testedCreature, String name, Size size, Movement movement, - Color color, Mass mass) { + void testToString(Creature testedCreature, String name, Size size, Movement movement, + Color color, Mass mass) { final var toString = testedCreature.toString(); assertNotNull(toString); assertEquals(String diff --git a/specification/src/test/java/com/iluwatar/specification/selector/ColorSelectorTest.java b/specification/src/test/java/com/iluwatar/specification/selector/ColorSelectorTest.java index 844236bea..e6debfcad 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/ColorSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/ColorSelectorTest.java @@ -37,13 +37,13 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class ColorSelectorTest { +class ColorSelectorTest { /** * Verify if the color selector gives the correct results */ @Test - public void testColor() { + void testColor() { final var greenCreature = mock(Creature.class); when(greenCreature.getColor()).thenReturn(Color.GREEN); diff --git a/specification/src/test/java/com/iluwatar/specification/selector/CompositeSelectorsTest.java b/specification/src/test/java/com/iluwatar/specification/selector/CompositeSelectorsTest.java index 68cb972bf..15e7b0316 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/CompositeSelectorsTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/CompositeSelectorsTest.java @@ -33,13 +33,13 @@ import com.iluwatar.specification.property.Mass; import com.iluwatar.specification.property.Movement; import org.junit.jupiter.api.Test; -public class CompositeSelectorsTest { +class CompositeSelectorsTest { /** * Verify if the conjunction selector gives the correct results. */ @Test - public void testAndComposition() { + void testAndComposition() { final var swimmingHeavyCreature = mock(Creature.class); when(swimmingHeavyCreature.getMovement()).thenReturn(Movement.SWIMMING); when(swimmingHeavyCreature.getMass()).thenReturn(new Mass(100.0)); @@ -58,7 +58,7 @@ public class CompositeSelectorsTest { * Verify if the disjunction selector gives the correct results. */ @Test - public void testOrComposition() { + void testOrComposition() { final var swimmingHeavyCreature = mock(Creature.class); when(swimmingHeavyCreature.getMovement()).thenReturn(Movement.SWIMMING); when(swimmingHeavyCreature.getMass()).thenReturn(new Mass(100.0)); @@ -77,7 +77,7 @@ public class CompositeSelectorsTest { * Verify if the negation selector gives the correct results. */ @Test - public void testNotComposition() { + void testNotComposition() { final var swimmingHeavyCreature = mock(Creature.class); when(swimmingHeavyCreature.getMovement()).thenReturn(Movement.SWIMMING); when(swimmingHeavyCreature.getMass()).thenReturn(new Mass(100.0)); diff --git a/specification/src/test/java/com/iluwatar/specification/selector/MassSelectorTest.java b/specification/src/test/java/com/iluwatar/specification/selector/MassSelectorTest.java index 131d269b8..a3b084e1b 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/MassSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/MassSelectorTest.java @@ -38,7 +38,7 @@ public class MassSelectorTest { * Verify if the mass selector gives the correct results. */ @Test - public void testMass() { + void testMass() { final var lightCreature = mock(Creature.class); when(lightCreature.getMass()).thenReturn(new Mass(50.0)); diff --git a/specification/src/test/java/com/iluwatar/specification/selector/MovementSelectorTest.java b/specification/src/test/java/com/iluwatar/specification/selector/MovementSelectorTest.java index 5de71e3e7..4b70ed222 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/MovementSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/MovementSelectorTest.java @@ -43,7 +43,7 @@ public class MovementSelectorTest { * Verify if the movement selector gives the correct results. */ @Test - public void testMovement() { + void testMovement() { final var swimmingCreature = mock(Creature.class); when(swimmingCreature.getMovement()).thenReturn(Movement.SWIMMING); diff --git a/specification/src/test/java/com/iluwatar/specification/selector/SizeSelectorTest.java b/specification/src/test/java/com/iluwatar/specification/selector/SizeSelectorTest.java index ee3995c07..8aab625fc 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/SizeSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/SizeSelectorTest.java @@ -43,7 +43,7 @@ public class SizeSelectorTest { * Verify if the size selector gives the correct results */ @Test - public void testMovement() { + void testMovement() { final var normalCreature = mock(Creature.class); when(normalCreature.getSize()).thenReturn(Size.NORMAL); diff --git a/state/README.md b/state/README.md index 7ee201be2..155cea0cb 100644 --- a/state/README.md +++ b/state/README.md @@ -48,10 +48,9 @@ public interface State { void observe(); } +@Slf4j public class PeacefulState implements State { - private static final Logger LOGGER = LoggerFactory.getLogger(PeacefulState.class); - private final Mammoth mammoth; public PeacefulState(Mammoth mammoth) { @@ -69,10 +68,9 @@ public class PeacefulState implements State { } } +@Slf4j public class AngryState implements State { - private static final Logger LOGGER = LoggerFactory.getLogger(AngryState.class); - private final Mammoth mammoth; public AngryState(Mammoth mammoth) { diff --git a/state/src/main/java/com/iluwatar/state/AngryState.java b/state/src/main/java/com/iluwatar/state/AngryState.java index 0598782a9..f03783d28 100644 --- a/state/src/main/java/com/iluwatar/state/AngryState.java +++ b/state/src/main/java/com/iluwatar/state/AngryState.java @@ -23,16 +23,14 @@ package com.iluwatar.state; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Angry state. */ +@Slf4j public class AngryState implements State { - private static final Logger LOGGER = LoggerFactory.getLogger(AngryState.class); - private final Mammoth mammoth; public AngryState(Mammoth mammoth) { diff --git a/state/src/main/java/com/iluwatar/state/PeacefulState.java b/state/src/main/java/com/iluwatar/state/PeacefulState.java index c535509d5..eefa0168c 100644 --- a/state/src/main/java/com/iluwatar/state/PeacefulState.java +++ b/state/src/main/java/com/iluwatar/state/PeacefulState.java @@ -23,16 +23,14 @@ package com.iluwatar.state; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Peaceful state. */ +@Slf4j public class PeacefulState implements State { - private static final Logger LOGGER = LoggerFactory.getLogger(PeacefulState.class); - private final Mammoth mammoth; public PeacefulState(Mammoth mammoth) { diff --git a/state/src/test/java/com/iluwatar/state/MammothTest.java b/state/src/test/java/com/iluwatar/state/MammothTest.java index 799be46c6..cf506bc8f 100644 --- a/state/src/test/java/com/iluwatar/state/MammothTest.java +++ b/state/src/test/java/com/iluwatar/state/MammothTest.java @@ -60,7 +60,7 @@ public class MammothTest { * value. */ @Test - public void testTimePasses() { + void testTimePasses() { final var mammoth = new Mammoth(); mammoth.observe(); @@ -89,7 +89,7 @@ public class MammothTest { * Verify if {@link Mammoth#toString()} gives the expected value */ @Test - public void testToString() { + void testToString() { final var toString = new Mammoth().toString(); assertNotNull(toString); assertEquals("The mammoth", toString); diff --git a/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java b/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java index 4406df229..2eab16b22 100644 --- a/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java +++ b/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java @@ -23,8 +23,7 @@ package com.iluwatar.stepbuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Step Builder Pattern @@ -56,10 +55,9 @@ import org.slf4j.LoggerFactory; * * @see http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/step-builder/src/test/java/com/iluwatar/stepbuilder/CharacterStepBuilderTest.java b/step-builder/src/test/java/com/iluwatar/stepbuilder/CharacterStepBuilderTest.java index 89b56beb3..5bc565030 100644 --- a/step-builder/src/test/java/com/iluwatar/stepbuilder/CharacterStepBuilderTest.java +++ b/step-builder/src/test/java/com/iluwatar/stepbuilder/CharacterStepBuilderTest.java @@ -41,7 +41,7 @@ public class CharacterStepBuilderTest { * Build a new wizard {@link Character} and verify if it has the expected attributes */ @Test - public void testBuildWizard() { + void testBuildWizard() { final var character = CharacterStepBuilder.newBuilder() .name("Merlin") .wizardClass("alchemist") @@ -69,7 +69,7 @@ public class CharacterStepBuilderTest { * expected attributes */ @Test - public void testBuildPoorWizard() { + void testBuildPoorWizard() { final var character = CharacterStepBuilder.newBuilder() .name("Merlin") .wizardClass("alchemist") @@ -88,7 +88,7 @@ public class CharacterStepBuilderTest { * Build a new wizard {@link Character} and verify if it has the expected attributes */ @Test - public void testBuildWeakWizard() { + void testBuildWeakWizard() { final var character = CharacterStepBuilder.newBuilder() .name("Merlin") .wizardClass("alchemist") @@ -104,12 +104,11 @@ public class CharacterStepBuilderTest { } - /** * Build a new warrior {@link Character} and verify if it has the expected attributes */ @Test - public void testBuildWarrior() { + void testBuildWarrior() { final var character = CharacterStepBuilder.newBuilder() .name("Cuauhtemoc") .fighterClass("aztec") @@ -137,7 +136,7 @@ public class CharacterStepBuilderTest { * expected attributes */ @Test - public void testBuildPoorWarrior() { + void testBuildPoorWarrior() { final var character = CharacterStepBuilder.newBuilder() .name("Poor warrior") .fighterClass("none") @@ -157,7 +156,7 @@ public class CharacterStepBuilderTest { * has the expected attributes */ @Test - public void testBuildWeakWarrior() { + void testBuildWeakWarrior() { final var character = CharacterStepBuilder.newBuilder() .name("Weak warrior") .fighterClass("none") diff --git a/strangler/src/main/java/com/iluwatar/strangler/HalfArithmetic.java b/strangler/src/main/java/com/iluwatar/strangler/HalfArithmetic.java index 61b3e5d07..4fce53a35 100644 --- a/strangler/src/main/java/com/iluwatar/strangler/HalfArithmetic.java +++ b/strangler/src/main/java/com/iluwatar/strangler/HalfArithmetic.java @@ -23,15 +23,14 @@ package com.iluwatar.strangler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * System under migration. Depends on old version source ({@link OldSource}) and * developing one ({@link HalfSource}). */ +@Slf4j public class HalfArithmetic { - private static final Logger LOGGER = LoggerFactory.getLogger(HalfArithmetic.class); private static final String VERSION = "1.5"; private final HalfSource newSource; @@ -65,7 +64,7 @@ public class HalfArithmetic { /** * Chech if has any zero. * @param nums numbers need to check - * @return if has any zero, return true, else, return false + * @return if has any zero, return true, else, return false */ public boolean ifHasZero(int... nums) { LOGGER.info("Arithmetic check zero {}", VERSION); diff --git a/strangler/src/main/java/com/iluwatar/strangler/HalfSource.java b/strangler/src/main/java/com/iluwatar/strangler/HalfSource.java index 90b1fed6c..43b7fff36 100644 --- a/strangler/src/main/java/com/iluwatar/strangler/HalfSource.java +++ b/strangler/src/main/java/com/iluwatar/strangler/HalfSource.java @@ -24,15 +24,14 @@ package com.iluwatar.strangler; import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Source under development. Replace part of old source and has added some new features. */ +@Slf4j public class HalfSource { - private static final Logger LOGGER = LoggerFactory.getLogger(HalfSource.class); - private static final String VERSION = "1.5"; + private static final String VERSION = "1.5"; /** * Implement accumulate sum with new technique. diff --git a/strangler/src/main/java/com/iluwatar/strangler/NewArithmetic.java b/strangler/src/main/java/com/iluwatar/strangler/NewArithmetic.java index c2ddfe290..3d33c901d 100644 --- a/strangler/src/main/java/com/iluwatar/strangler/NewArithmetic.java +++ b/strangler/src/main/java/com/iluwatar/strangler/NewArithmetic.java @@ -23,15 +23,14 @@ package com.iluwatar.strangler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * System after whole migration. Only depends on new version source ({@link NewSource}). */ +@Slf4j public class NewArithmetic { - private static final Logger LOGGER = LoggerFactory.getLogger(NewArithmetic.class); - private static final String VERSION = "2.0"; + private static final String VERSION = "2.0"; private final NewSource source; @@ -62,7 +61,7 @@ public class NewArithmetic { /** * Chech if has any zero. * @param nums numbers need to check - * @return if has any zero, return true, else, return false + * @return if has any zero, return true, else, return false */ public boolean ifHasZero(int... nums) { LOGGER.info("Arithmetic check zero {}", VERSION); diff --git a/strangler/src/main/java/com/iluwatar/strangler/NewSource.java b/strangler/src/main/java/com/iluwatar/strangler/NewSource.java index 5861ba11f..e3182a1e4 100644 --- a/strangler/src/main/java/com/iluwatar/strangler/NewSource.java +++ b/strangler/src/main/java/com/iluwatar/strangler/NewSource.java @@ -24,16 +24,15 @@ package com.iluwatar.strangler; import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * New source. Completely covers functionalities of old source with new techniques * and also has some new features. */ +@Slf4j public class NewSource { - private static final Logger LOGGER = LoggerFactory.getLogger(NewSource.class); - private static final String VERSION = "2.0"; + private static final String VERSION = "2.0"; public static final String SOURCE_MODULE = "Source module {}"; public int accumulateSum(int... nums) { diff --git a/strangler/src/main/java/com/iluwatar/strangler/OldArithmetic.java b/strangler/src/main/java/com/iluwatar/strangler/OldArithmetic.java index 3295a6fd5..670a572bf 100644 --- a/strangler/src/main/java/com/iluwatar/strangler/OldArithmetic.java +++ b/strangler/src/main/java/com/iluwatar/strangler/OldArithmetic.java @@ -23,15 +23,14 @@ package com.iluwatar.strangler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Old version system depends on old version source ({@link OldSource}). */ +@Slf4j public class OldArithmetic { - private static final Logger LOGGER = LoggerFactory.getLogger(OldArithmetic.class); - private static final String VERSION = "1.0"; + private static final String VERSION = "1.0"; private final OldSource source; diff --git a/strangler/src/main/java/com/iluwatar/strangler/OldSource.java b/strangler/src/main/java/com/iluwatar/strangler/OldSource.java index dbccfc0c4..f5ffe2216 100644 --- a/strangler/src/main/java/com/iluwatar/strangler/OldSource.java +++ b/strangler/src/main/java/com/iluwatar/strangler/OldSource.java @@ -23,14 +23,13 @@ package com.iluwatar.strangler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Old source with techniques out of date. */ +@Slf4j public class OldSource { - private static final Logger LOGGER = LoggerFactory.getLogger(OldSource.class); private static final String VERSION = "1.0"; /** diff --git a/strangler/src/test/java/com/iluwatar/strangler/HalfArithmeticTest.java b/strangler/src/test/java/com/iluwatar/strangler/HalfArithmeticTest.java index 410199e97..11f94fa03 100644 --- a/strangler/src/test/java/com/iluwatar/strangler/HalfArithmeticTest.java +++ b/strangler/src/test/java/com/iluwatar/strangler/HalfArithmeticTest.java @@ -23,9 +23,10 @@ package com.iluwatar.strangler; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * Test methods in HalfArithmetic @@ -34,17 +35,17 @@ class HalfArithmeticTest { private static final HalfArithmetic arithmetic = new HalfArithmetic(new HalfSource(), new OldSource()); @Test - public void testSum() { + void testSum() { assertEquals(0, arithmetic.sum(-1, 0, 1)); } @Test - public void testMul() { + void testMul() { assertEquals(0, arithmetic.mul(-1, 0, 1)); } @Test - public void testIfHasZero() { + void testIfHasZero() { assertTrue(arithmetic.ifHasZero(-1, 0, 1)); } } \ No newline at end of file diff --git a/strangler/src/test/java/com/iluwatar/strangler/HalfSourceTest.java b/strangler/src/test/java/com/iluwatar/strangler/HalfSourceTest.java index 31577842b..3d681a296 100644 --- a/strangler/src/test/java/com/iluwatar/strangler/HalfSourceTest.java +++ b/strangler/src/test/java/com/iluwatar/strangler/HalfSourceTest.java @@ -23,11 +23,10 @@ package com.iluwatar.strangler; -import org.junit.jupiter.api.Test; - +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; /** * Test methods in HalfSource @@ -36,12 +35,12 @@ public class HalfSourceTest { private static final HalfSource source = new HalfSource(); @Test - public void testAccumulateSum() { + void testAccumulateSum() { assertEquals(0, source.accumulateSum(-1, 0, 1)); } @Test - public void testIfNonZero() { + void testIfNonZero() { assertFalse(source.ifNonZero(-1, 0, 1)); } } diff --git a/strangler/src/test/java/com/iluwatar/strangler/NewArithmeticTest.java b/strangler/src/test/java/com/iluwatar/strangler/NewArithmeticTest.java index 3fa38f4a7..237fd5a50 100644 --- a/strangler/src/test/java/com/iluwatar/strangler/NewArithmeticTest.java +++ b/strangler/src/test/java/com/iluwatar/strangler/NewArithmeticTest.java @@ -23,9 +23,10 @@ package com.iluwatar.strangler; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * Test methods in NewArithmetic @@ -34,17 +35,17 @@ class NewArithmeticTest { private static final NewArithmetic arithmetic = new NewArithmetic(new NewSource()); @Test - public void testSum() { + void testSum() { assertEquals(0, arithmetic.sum(-1, 0, 1)); } @Test - public void testMul() { + void testMul() { assertEquals(0, arithmetic.mul(-1, 0, 1)); } @Test - public void testIfHasZero() { + void testIfHasZero() { assertTrue(arithmetic.ifHasZero(-1, 0, 1)); } } \ No newline at end of file diff --git a/strangler/src/test/java/com/iluwatar/strangler/NewSourceTest.java b/strangler/src/test/java/com/iluwatar/strangler/NewSourceTest.java index 89a078e84..b51c69ab1 100644 --- a/strangler/src/test/java/com/iluwatar/strangler/NewSourceTest.java +++ b/strangler/src/test/java/com/iluwatar/strangler/NewSourceTest.java @@ -23,11 +23,11 @@ package com.iluwatar.strangler; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; +import org.junit.jupiter.api.Test; + /** * Test methods in NewSource */ @@ -35,17 +35,17 @@ public class NewSourceTest { private static final NewSource source = new NewSource(); @Test - public void testAccumulateSum() { + void testAccumulateSum() { assertEquals(0, source.accumulateSum(-1, 0, 1)); } @Test - public void testAccumulateMul() { + void testAccumulateMul() { assertEquals(0, source.accumulateMul(-1, 0, 1)); } @Test - public void testIfNonZero() { + void testIfNonZero() { assertFalse(source.ifNonZero(-1, 0, 1)); } } diff --git a/strangler/src/test/java/com/iluwatar/strangler/OldArithmeticTest.java b/strangler/src/test/java/com/iluwatar/strangler/OldArithmeticTest.java index 8090d7a56..afe662345 100644 --- a/strangler/src/test/java/com/iluwatar/strangler/OldArithmeticTest.java +++ b/strangler/src/test/java/com/iluwatar/strangler/OldArithmeticTest.java @@ -23,9 +23,9 @@ package com.iluwatar.strangler; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; /** * Test methods in OldArithmetic @@ -34,12 +34,12 @@ class OldArithmeticTest { private static final OldArithmetic arithmetic = new OldArithmetic(new OldSource()); @Test - public void testSum() { + void testSum() { assertEquals(0, arithmetic.sum(-1, 0, 1)); } @Test - public void testMul() { + void testMul() { assertEquals(0, arithmetic.mul(-1, 0, 1)); } } \ No newline at end of file diff --git a/strangler/src/test/java/com/iluwatar/strangler/OldSourceTest.java b/strangler/src/test/java/com/iluwatar/strangler/OldSourceTest.java index f072033d4..e099efee0 100644 --- a/strangler/src/test/java/com/iluwatar/strangler/OldSourceTest.java +++ b/strangler/src/test/java/com/iluwatar/strangler/OldSourceTest.java @@ -23,10 +23,10 @@ package com.iluwatar.strangler; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + /** * Test methods in OldSource */ @@ -34,12 +34,12 @@ public class OldSourceTest { private static final OldSource source = new OldSource(); @Test - public void testAccumulateSum() { + void testAccumulateSum() { assertEquals(0, source.accumulateSum(-1, 0, 1)); } @Test - public void testAccumulateMul() { + void testAccumulateMul() { assertEquals(0, source.accumulateMul(-1, 0, 1)); } } diff --git a/strategy/README.md b/strategy/README.md index 2d2cbf9c4..d617ec024 100644 --- a/strategy/README.md +++ b/strategy/README.md @@ -44,30 +44,27 @@ public interface DragonSlayingStrategy { void execute(); } +@Slf4j public class MeleeStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(MeleeStrategy.class); - @Override public void execute() { LOGGER.info("With your Excalibur you sever the dragon's head!"); } } +@Slf4j public class ProjectileStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(ProjectileStrategy.class); - @Override public void execute() { LOGGER.info("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); } } +@Slf4j public class SpellStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(SpellStrategy.class); - @Override public void execute() { LOGGER.info("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!"); diff --git a/strategy/src/main/java/com/iluwatar/strategy/App.java b/strategy/src/main/java/com/iluwatar/strategy/App.java index 9abab0b01..8554ce3ff 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/App.java +++ b/strategy/src/main/java/com/iluwatar/strategy/App.java @@ -23,11 +23,10 @@ package com.iluwatar.strategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** - * + * *

The Strategy pattern (also known as the policy pattern) is a software design pattern that * enables an algorithm's behavior to be selected at runtime.

* @@ -37,12 +36,11 @@ import org.slf4j.LoggerFactory; * *

In this example ({@link DragonSlayingStrategy}) encapsulates an algorithm. The containing * object ({@link DragonSlayer}) can alter its behavior by changing its strategy.

- * + * */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/strategy/src/main/java/com/iluwatar/strategy/LambdaStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/LambdaStrategy.java index 3c017a26c..abee70417 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/LambdaStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/LambdaStrategy.java @@ -23,13 +23,11 @@ package com.iluwatar.strategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +@Slf4j public class LambdaStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(LambdaStrategy.class); - public enum Strategy implements DragonSlayingStrategy { MeleeStrategy(() -> LOGGER.info( "With your Excalibur you severe the dragon's head!")), diff --git a/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java index 658427279..06a567030 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java @@ -23,16 +23,14 @@ package com.iluwatar.strategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Melee strategy. */ +@Slf4j public class MeleeStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(MeleeStrategy.class); - @Override public void execute() { LOGGER.info("With your Excalibur you sever the dragon's head!"); diff --git a/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java index a88179259..6c6c73bcc 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java @@ -23,16 +23,14 @@ package com.iluwatar.strategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Projectile strategy. */ +@Slf4j public class ProjectileStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(ProjectileStrategy.class); - @Override public void execute() { LOGGER.info("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); diff --git a/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java index 6199d303a..70572bb6d 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java @@ -23,16 +23,14 @@ package com.iluwatar.strategy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Spell strategy. */ +@Slf4j public class SpellStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(SpellStrategy.class); - @Override public void execute() { LOGGER.info("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!"); diff --git a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java index c675ffcc2..d3b0fe0c9 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java @@ -40,7 +40,7 @@ public class DragonSlayerTest { * Verify if the dragon slayer uses the strategy during battle. */ @Test - public void testGoToBattle() { + void testGoToBattle() { final var strategy = mock(DragonSlayingStrategy.class); final var dragonSlayer = new DragonSlayer(strategy); @@ -53,7 +53,7 @@ public class DragonSlayerTest { * Verify if the dragon slayer uses the new strategy during battle after a change of strategy. */ @Test - public void testChangeStrategy() { + void testChangeStrategy() { final var initialStrategy = mock(DragonSlayingStrategy.class); final var dragonSlayer = new DragonSlayer(initialStrategy); diff --git a/subclass-sandbox/src/main/java/com/iluwatar/subclasssandbox/App.java b/subclass-sandbox/src/main/java/com/iluwatar/subclasssandbox/App.java index 0d0305967..dae2f512e 100644 --- a/subclass-sandbox/src/main/java/com/iluwatar/subclasssandbox/App.java +++ b/subclass-sandbox/src/main/java/com/iluwatar/subclasssandbox/App.java @@ -23,8 +23,7 @@ package com.iluwatar.subclasssandbox; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The subclass sandbox pattern describes a basic idea, while not having a lot @@ -33,10 +32,9 @@ import org.slf4j.LoggerFactory; * while all subclasses shouldn't have to be touched. So the base class has to be * able to provide all of the operations a derived class needs to perform. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Entry point of the main program. * @param args Program runtime arguments. diff --git a/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/GroundDiveTest.java b/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/GroundDiveTest.java index 8452e2df7..dee1ebce5 100644 --- a/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/GroundDiveTest.java +++ b/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/GroundDiveTest.java @@ -27,6 +27,7 @@ import static com.github.stefanbirkner.systemlambda.SystemLambda.tapSystemOutNor import static org.junit.jupiter.api.Assertions.assertEquals; import com.github.stefanbirkner.systemlambda.Statement; + import org.junit.jupiter.api.Test; /** @@ -55,7 +56,7 @@ class GroundDiveTest { void testSpawnParticles() throws Exception { var groundDive = new GroundDive(); final var outputLog = getLogContent( - () -> groundDive.spawnParticles("PARTICLE_TYPE", 100)); + () -> groundDive.spawnParticles("PARTICLE_TYPE", 100)); final var expectedLog = "Spawn 100 particle with type PARTICLE_TYPE"; assertEquals(outputLog, expectedLog); } @@ -64,7 +65,7 @@ class GroundDiveTest { void testActivate() throws Exception { var groundDive = new GroundDive(); var logs = tapSystemOutNormalized(groundDive::activate) - .split("\n"); + .split("\n"); final var expectedSize = 3; final var log1 = logs[0].split("-")[1].trim() + " -" + logs[0].split("-")[2].trim(); final var expectedLog1 = "Move to ( 0.0, 0.0, -20.0 )"; diff --git a/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/SkyLaunchTest.java b/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/SkyLaunchTest.java index eb9b58406..c0c86c09f 100644 --- a/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/SkyLaunchTest.java +++ b/subclass-sandbox/src/test/java/com/iluwatar/subclasssandbox/SkyLaunchTest.java @@ -54,7 +54,7 @@ class SkyLaunchTest { void testSpawnParticles() throws Exception { var skyLaunch = new SkyLaunch(); var outputLog = getLogContent( - () -> skyLaunch.spawnParticles("PARTICLE_TYPE", 100)); + () -> skyLaunch.spawnParticles("PARTICLE_TYPE", 100)); var expectedLog = "Spawn 100 particle with type PARTICLE_TYPE"; assertEquals(outputLog, expectedLog); } @@ -63,7 +63,7 @@ class SkyLaunchTest { void testActivate() throws Exception { var skyLaunch = new SkyLaunch(); var logs = tapSystemOutNormalized(skyLaunch::activate) - .split("\n"); + .split("\n"); final var expectedSize = 3; final var log1 = getLogContent(logs[0]); final var expectedLog1 = "Move to ( 0.0, 0.0, 20.0 )"; diff --git a/template-method/README.md b/template-method/README.md index 23dd4d242..2b6a9c3ff 100644 --- a/template-method/README.md +++ b/template-method/README.md @@ -39,10 +39,9 @@ Wikipedia says Let's first introduce the template method class along with its concrete implementations. ```java +@Slf4j public abstract class StealingMethod { - private static final Logger LOGGER = LoggerFactory.getLogger(StealingMethod.class); - protected abstract String pickTarget(); protected abstract void confuseTarget(String target); @@ -57,10 +56,9 @@ public abstract class StealingMethod { } } +@Slf4j public class SubtleMethod extends StealingMethod { - private static final Logger LOGGER = LoggerFactory.getLogger(SubtleMethod.class); - @Override protected String pickTarget() { return "shop keeper"; @@ -77,10 +75,9 @@ public class SubtleMethod extends StealingMethod { } } +@Slf4j public class HitAndRunMethod extends StealingMethod { - private static final Logger LOGGER = LoggerFactory.getLogger(HitAndRunMethod.class); - @Override protected String pickTarget() { return "old goblin woman"; diff --git a/template-method/src/main/java/com/iluwatar/templatemethod/HitAndRunMethod.java b/template-method/src/main/java/com/iluwatar/templatemethod/HitAndRunMethod.java index bc550989a..ba4753062 100644 --- a/template-method/src/main/java/com/iluwatar/templatemethod/HitAndRunMethod.java +++ b/template-method/src/main/java/com/iluwatar/templatemethod/HitAndRunMethod.java @@ -23,16 +23,14 @@ package com.iluwatar.templatemethod; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * HitAndRunMethod implementation of {@link StealingMethod}. */ +@Slf4j public class HitAndRunMethod extends StealingMethod { - private static final Logger LOGGER = LoggerFactory.getLogger(HitAndRunMethod.class); - @Override protected String pickTarget() { return "old goblin woman"; diff --git a/template-method/src/main/java/com/iluwatar/templatemethod/StealingMethod.java b/template-method/src/main/java/com/iluwatar/templatemethod/StealingMethod.java index cdf2c11e3..76f750a5b 100644 --- a/template-method/src/main/java/com/iluwatar/templatemethod/StealingMethod.java +++ b/template-method/src/main/java/com/iluwatar/templatemethod/StealingMethod.java @@ -23,16 +23,14 @@ package com.iluwatar.templatemethod; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * StealingMethod defines skeleton for the algorithm. */ +@Slf4j public abstract class StealingMethod { - private static final Logger LOGGER = LoggerFactory.getLogger(StealingMethod.class); - protected abstract String pickTarget(); protected abstract void confuseTarget(String target); diff --git a/template-method/src/main/java/com/iluwatar/templatemethod/SubtleMethod.java b/template-method/src/main/java/com/iluwatar/templatemethod/SubtleMethod.java index 4ac7e30c6..034fd4335 100644 --- a/template-method/src/main/java/com/iluwatar/templatemethod/SubtleMethod.java +++ b/template-method/src/main/java/com/iluwatar/templatemethod/SubtleMethod.java @@ -23,16 +23,14 @@ package com.iluwatar.templatemethod; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * SubtleMethod implementation of {@link StealingMethod}. */ +@Slf4j public class SubtleMethod extends StealingMethod { - private static final Logger LOGGER = LoggerFactory.getLogger(SubtleMethod.class); - @Override protected String pickTarget() { return "shop keeper"; diff --git a/template-method/src/test/java/com/iluwatar/templatemethod/HalflingThiefTest.java b/template-method/src/test/java/com/iluwatar/templatemethod/HalflingThiefTest.java index 02beef759..236a29392 100644 --- a/template-method/src/test/java/com/iluwatar/templatemethod/HalflingThiefTest.java +++ b/template-method/src/test/java/com/iluwatar/templatemethod/HalflingThiefTest.java @@ -40,7 +40,7 @@ public class HalflingThiefTest { * Verify if the thief uses the provided stealing method */ @Test - public void testSteal() { + void testSteal() { final var method = mock(StealingMethod.class); final var thief = new HalflingThief(method); @@ -54,7 +54,7 @@ public class HalflingThiefTest { * Verify if the thief uses the provided stealing method, and the new method after changing it */ @Test - public void testChangeMethod() { + void testChangeMethod() { final var initialMethod = mock(StealingMethod.class); final var thief = new HalflingThief(initialMethod); diff --git a/template-method/src/test/java/com/iluwatar/templatemethod/StealingMethodTest.java b/template-method/src/test/java/com/iluwatar/templatemethod/StealingMethodTest.java index 58f4bef31..911df7137 100644 --- a/template-method/src/test/java/com/iluwatar/templatemethod/StealingMethodTest.java +++ b/template-method/src/test/java/com/iluwatar/templatemethod/StealingMethodTest.java @@ -104,7 +104,7 @@ public abstract class StealingMethodTest { * Verify if the thief picks the correct target */ @Test - public void testPickTarget() { + void testPickTarget() { assertEquals(expectedTarget, this.method.pickTarget()); } @@ -112,7 +112,7 @@ public abstract class StealingMethodTest { * Verify if the target confusing step goes as planned */ @Test - public void testConfuseTarget() { + void testConfuseTarget() { assertEquals(0, appender.getLogSize()); this.method.confuseTarget(this.expectedTarget); @@ -124,7 +124,7 @@ public abstract class StealingMethodTest { * Verify if the stealing step goes as planned */ @Test - public void testStealTheItem() { + void testStealTheItem() { assertEquals(0, appender.getLogSize()); this.method.stealTheItem(this.expectedTarget); @@ -136,7 +136,7 @@ public abstract class StealingMethodTest { * Verify if the complete steal process goes as planned */ @Test - public void testSteal() { + void testSteal() { this.method.steal(); assertTrue(appender.logContains(this.expectedTargetResult)); diff --git a/thread-pool/README.md b/thread-pool/README.md index de6403fe8..bc3c47fdc 100644 --- a/thread-pool/README.md +++ b/thread-pool/README.md @@ -102,10 +102,9 @@ Next we present a runnable `Worker` class that the thread pool will utilize to h peeling and coffee making. ```java +@Slf4j public class Worker implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Worker.class); - private final Task task; public Worker(final Task task) { diff --git a/thread-pool/src/main/java/com/iluwatar/threadpool/App.java b/thread-pool/src/main/java/com/iluwatar/threadpool/App.java index 6562b68fb..9357c56a9 100644 --- a/thread-pool/src/main/java/com/iluwatar/threadpool/App.java +++ b/thread-pool/src/main/java/com/iluwatar/threadpool/App.java @@ -26,8 +26,7 @@ package com.iluwatar.threadpool; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Thread Pool pattern is where a number of threads are created to perform a number of tasks, which @@ -42,10 +41,9 @@ import org.slf4j.LoggerFactory; * ExecutorService} with fixed number of threads (Thread Pool) and use them to execute the {@link * Worker}s. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java b/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java index 797d9f693..2bb166d4b 100644 --- a/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java +++ b/thread-pool/src/main/java/com/iluwatar/threadpool/Worker.java @@ -23,17 +23,15 @@ package com.iluwatar.threadpool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Worker implements {@link Runnable} and thus can be executed by {@link * java.util.concurrent.ExecutorService}. */ +@Slf4j public class Worker implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Worker.class); - private final Task task; public Worker(final Task task) { diff --git a/thread-pool/src/test/java/com/iluwatar/threadpool/TaskTest.java b/thread-pool/src/test/java/com/iluwatar/threadpool/TaskTest.java index 66052659c..460093db1 100644 --- a/thread-pool/src/test/java/com/iluwatar/threadpool/TaskTest.java +++ b/thread-pool/src/test/java/com/iluwatar/threadpool/TaskTest.java @@ -83,7 +83,7 @@ public abstract class TaskTest { * threads */ @Test - public void testIdGeneration() throws Exception { + void testIdGeneration() throws Exception { assertTimeout(ofMillis(10000), () -> { final var service = Executors.newFixedThreadPool(THREAD_COUNT); @@ -113,7 +113,7 @@ public abstract class TaskTest { * a given number of times */ @Test - public void testTimeMs() { + void testTimeMs() { for (var i = 0; i < 10; i++) { assertEquals(this.expectedExecutionTime * i, this.factory.apply(i).getTimeMs()); } @@ -123,7 +123,7 @@ public abstract class TaskTest { * Verify if the task has some sort of {@link T#toString()}, different from 'null' */ @Test - public void testToString() { + void testToString() { assertNotNull(this.factory.apply(0).toString()); } diff --git a/thread-pool/src/test/java/com/iluwatar/threadpool/WorkerTest.java b/thread-pool/src/test/java/com/iluwatar/threadpool/WorkerTest.java index 854642ae1..a2c2b6c22 100644 --- a/thread-pool/src/test/java/com/iluwatar/threadpool/WorkerTest.java +++ b/thread-pool/src/test/java/com/iluwatar/threadpool/WorkerTest.java @@ -41,7 +41,7 @@ public class WorkerTest { * Verify if a worker does the actual job */ @Test - public void testRun() { + void testRun() { final var task = mock(Task.class); final var worker = new Worker(task); verifyZeroInteractions(task); diff --git a/throttling/README.md b/throttling/README.md index 4a77638e1..dd46d11df 100644 --- a/throttling/README.md +++ b/throttling/README.md @@ -58,9 +58,8 @@ public class Tenant { } } +@Slf4j public final class CallsCount { - - private static final Logger LOGGER = LoggerFactory.getLogger(CallsCount.class); private final Map tenantCallsCount = new ConcurrentHashMap<>(); public void addTenant(String tenantName) { diff --git a/throttling/src/main/java/com/iluwatar/throttling/App.java b/throttling/src/main/java/com/iluwatar/throttling/App.java index cc3eb11c6..ab8aa8601 100644 --- a/throttling/src/main/java/com/iluwatar/throttling/App.java +++ b/throttling/src/main/java/com/iluwatar/throttling/App.java @@ -27,8 +27,7 @@ import com.iluwatar.throttling.timer.ThrottleTimerImpl; 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; /** * Throttling pattern is a design pattern to throttle or limit the use of resources or even a @@ -41,10 +40,9 @@ import org.slf4j.LoggerFactory; * ({@link Tenant}) is the Tenant POJO class with which many tenants can be created ({@link * B2BService}) is the service which is consumed by the tenants and is throttled. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Application entry point. * diff --git a/throttling/src/main/java/com/iluwatar/throttling/CallsCount.java b/throttling/src/main/java/com/iluwatar/throttling/CallsCount.java index d5ba4e132..88a80d481 100644 --- a/throttling/src/main/java/com/iluwatar/throttling/CallsCount.java +++ b/throttling/src/main/java/com/iluwatar/throttling/CallsCount.java @@ -26,17 +26,15 @@ package com.iluwatar.throttling; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A class to keep track of the counter of different Tenants. * * @author drastogi */ +@Slf4j public final class CallsCount { - - private static final Logger LOGGER = LoggerFactory.getLogger(CallsCount.class); private final Map tenantCallsCount = new ConcurrentHashMap<>(); /** diff --git a/throttling/src/test/java/com/iluwatar/throttling/B2BServiceTest.java b/throttling/src/test/java/com/iluwatar/throttling/B2BServiceTest.java index 78dcd3ea8..93cf3efaa 100644 --- a/throttling/src/test/java/com/iluwatar/throttling/B2BServiceTest.java +++ b/throttling/src/test/java/com/iluwatar/throttling/B2BServiceTest.java @@ -37,7 +37,7 @@ public class B2BServiceTest { private final CallsCount callsCount = new CallsCount(); @Test - public void dummyCustomerApiTest() { + void dummyCustomerApiTest() { var tenant = new Tenant("testTenant", 2, callsCount); // In order to assure that throttling limits will not be reset, we use an empty throttling implementation var timer = (Throttler) () -> { diff --git a/throttling/src/test/java/com/iluwatar/throttling/TenantTest.java b/throttling/src/test/java/com/iluwatar/throttling/TenantTest.java index d9aabc9a9..2ea33ec3d 100644 --- a/throttling/src/test/java/com/iluwatar/throttling/TenantTest.java +++ b/throttling/src/test/java/com/iluwatar/throttling/TenantTest.java @@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test; public class TenantTest { @Test - public void constructorTest() { + void constructorTest() { assertThrows(InvalidParameterException.class, () -> { new Tenant("FailTenant", -1, new CallsCount()); }); diff --git a/tls/src/main/java/com/iluwatar/tls/App.java b/tls/src/main/java/com/iluwatar/tls/App.java index 26adafc69..644d47abd 100644 --- a/tls/src/main/java/com/iluwatar/tls/App.java +++ b/tls/src/main/java/com/iluwatar/tls/App.java @@ -25,8 +25,7 @@ package com.iluwatar.tls; import java.util.Calendar; import java.util.concurrent.Executors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * ThreadLocal pattern @@ -58,10 +57,9 @@ import org.slf4j.LoggerFactory; * * @author Thomas Bauer, 2017 */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/tls/src/main/java/com/iluwatar/tls/DateFormatCallable.java b/tls/src/main/java/com/iluwatar/tls/DateFormatCallable.java index 9f1743ae2..d084fdc0e 100644 --- a/tls/src/main/java/com/iluwatar/tls/DateFormatCallable.java +++ b/tls/src/main/java/com/iluwatar/tls/DateFormatCallable.java @@ -27,8 +27,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.concurrent.Callable; import java.util.stream.IntStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * DateFormatCallable converts string dates to a date format using SimpleDateFormat. The date format @@ -42,9 +41,9 @@ import org.slf4j.LoggerFactory; * * @author Thomas Bauer, 2017 */ +@Slf4j public class DateFormatCallable implements Callable { - private static final Logger LOGGER = LoggerFactory.getLogger(DateFormatCallable.class); // class variables (members) private final ThreadLocal df; //TLTL // private DateFormat df; //NTLNTL @@ -86,7 +85,7 @@ public class DateFormatCallable implements Callable { } }); - LOGGER.info(Thread.currentThread() + " finished processing part of the thread"); + LOGGER.info("{} finished processing part of the thread", Thread.currentThread()); return result; } diff --git a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java index 9713c9b39..9d1eeaa27 100644 --- a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java +++ b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java @@ -122,7 +122,7 @@ public class DateFormatCallableTest { * 15.12.2015 */ @Test - public void testDateValues() { + void testDateValues() { assertEquals(expectedDateValues, createdDateValues); } @@ -131,7 +131,7 @@ public class DateFormatCallableTest { * deliver 5 date values */ @Test - public void testCounterDateValues() { + void testCounterDateValues() { assertEquals(expectedCounterDateValues, result.getDateList().size()); } @@ -140,7 +140,7 @@ public class DateFormatCallableTest { * deliver no exceptions */ @Test - public void testCounterExceptions() { + void testCounterExceptions() { assertEquals(expectedCounterExceptions, result.getExceptionList().size()); } } diff --git a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java index 7b7e33ffd..33db95608 100644 --- a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java +++ b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java @@ -96,7 +96,7 @@ public class DateFormatCallableTestIncorrectDateFormat { * same exception */ @Test - public void testExceptions() { + void testExceptions() { assertEquals(expectedExceptions, result.getExceptionList()); } @@ -105,7 +105,7 @@ public class DateFormatCallableTestIncorrectDateFormat { * deliver no date values */ @Test - public void testCounterDateValues() { + void testCounterDateValues() { assertEquals(expectedCounterDateValues, result.getDateList().size()); } @@ -114,7 +114,7 @@ public class DateFormatCallableTestIncorrectDateFormat { * deliver 5 exceptions */ @Test - public void testCounterExceptions() { + void testCounterExceptions() { assertEquals(expectedCounterExceptions, result.getExceptionList().size()); } } diff --git a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java index a0a8a7430..1d63e8da0 100644 --- a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java +++ b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java @@ -134,7 +134,7 @@ public class DateFormatCallableTestMultiThread { * 15.12.2015 by each thread */ @Test - public void testDateValues() { + void testDateValues() { for (var createdDateValue : createdDateValues) { assertEquals(expectedDateValues, createdDateValue); } @@ -145,7 +145,7 @@ public class DateFormatCallableTestMultiThread { * deliver 5 date values by each thread */ @Test - public void testCounterDateValues() { + void testCounterDateValues() { for (var value : result) { assertEquals(expectedCounterDateValues, value.getDateList().size()); } @@ -156,7 +156,7 @@ public class DateFormatCallableTestMultiThread { * deliver no exceptions */ @Test - public void testCounterExceptions() { + void testCounterExceptions() { for (var value : result) { assertEquals(expectedCounterExceptions, value.getExceptionList().size()); } diff --git a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/App.java b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/App.java index abe200753..748d2effd 100644 --- a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/App.java +++ b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/App.java @@ -24,8 +24,7 @@ package com.iluwatar.tolerantreader; import java.io.IOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Tolerant Reader is an integration pattern that helps creating robust communication systems. The @@ -40,10 +39,9 @@ import org.slf4j.LoggerFactory; * schema. Fortunately the reading method has been designed with the Tolerant Reader pattern and * does not break even though {@link RainbowFishV2} has new fields that are serialized. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. */ @@ -63,7 +61,7 @@ public class App { LOGGER.info( "fishV2 name={} age={} length={} weight={} sleeping={} hungry={} angry={}", fishV2.getName(), fishV2.getAge(), fishV2.getLengthMeters(), fishV2.getWeightTons(), - fishV2.getHungry(), fishV2.getAngry(), fishV2.getSleeping()); + fishV2.isHungry(), fishV2.isAngry(), fishV2.isSleeping()); RainbowFishSerializer.writeV2(fishV2, "fish2.out"); // Read V2 with V1 method var deserializedFishV2 = RainbowFishSerializer.readV1("fish2.out"); diff --git a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFish.java b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFish.java index 579c5ee2a..c15fd5b57 100644 --- a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFish.java +++ b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFish.java @@ -24,10 +24,14 @@ package com.iluwatar.tolerantreader; import java.io.Serializable; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * RainbowFish is the initial schema. */ +@Getter +@RequiredArgsConstructor public class RainbowFish implements Serializable { private static final long serialVersionUID = 1L; @@ -37,30 +41,4 @@ public class RainbowFish implements Serializable { private final int lengthMeters; private final int weightTons; - /** - * Constructor. - */ - public RainbowFish(String name, int age, int lengthMeters, int weightTons) { - this.name = name; - this.age = age; - this.lengthMeters = lengthMeters; - this.weightTons = weightTons; - } - - public String getName() { - return name; - } - - public int getAge() { - return age; - } - - public int getLengthMeters() { - return lengthMeters; - } - - public int getWeightTons() { - return weightTons; - } - } diff --git a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishSerializer.java b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishSerializer.java index 9901126f6..22fd84f85 100644 --- a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishSerializer.java +++ b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishSerializer.java @@ -51,8 +51,8 @@ public final class RainbowFishSerializer { var map = Map.of( "name", rainbowFish.getName(), "age", String.format("%d", rainbowFish.getAge()), - LENGTH_METERS, String.format("%d", rainbowFish.getLengthMeters()), - WEIGHT_TONS, String.format("%d", rainbowFish.getWeightTons()) + LENGTH_METERS, String.format("%d", rainbowFish.getLengthMeters()), + WEIGHT_TONS, String.format("%d", rainbowFish.getWeightTons()) ); try (var fileOut = new FileOutputStream(filename); @@ -68,11 +68,11 @@ public final class RainbowFishSerializer { var map = Map.of( "name", rainbowFish.getName(), "age", String.format("%d", rainbowFish.getAge()), - LENGTH_METERS, String.format("%d", rainbowFish.getLengthMeters()), - WEIGHT_TONS, String.format("%d", rainbowFish.getWeightTons()), - "angry", Boolean.toString(rainbowFish.getAngry()), - "hungry", Boolean.toString(rainbowFish.getHungry()), - "sleeping", Boolean.toString(rainbowFish.getSleeping()) + LENGTH_METERS, String.format("%d", rainbowFish.getLengthMeters()), + WEIGHT_TONS, String.format("%d", rainbowFish.getWeightTons()), + "angry", Boolean.toString(rainbowFish.isAngry()), + "hungry", Boolean.toString(rainbowFish.isHungry()), + "sleeping", Boolean.toString(rainbowFish.isSleeping()) ); try (var fileOut = new FileOutputStream(filename); diff --git a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishV2.java b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishV2.java index cffdb87af..5120ff006 100644 --- a/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishV2.java +++ b/tolerant-reader/src/main/java/com/iluwatar/tolerantreader/RainbowFishV2.java @@ -23,9 +23,12 @@ package com.iluwatar.tolerantreader; +import lombok.Getter; + /** * RainbowFishV2 is the evolved schema. */ +@Getter public class RainbowFishV2 extends RainbowFish { private static final long serialVersionUID = 1L; @@ -49,15 +52,4 @@ public class RainbowFishV2 extends RainbowFish { this.angry = angry; } - public boolean getSleeping() { - return sleeping; - } - - public boolean getHungry() { - return hungry; - } - - public boolean getAngry() { - return angry; - } } diff --git a/tolerant-reader/src/test/java/com/iluwatar/tolerantreader/RainbowFishV2Test.java b/tolerant-reader/src/test/java/com/iluwatar/tolerantreader/RainbowFishV2Test.java index 101ca701d..b09efe9e0 100644 --- a/tolerant-reader/src/test/java/com/iluwatar/tolerantreader/RainbowFishV2Test.java +++ b/tolerant-reader/src/test/java/com/iluwatar/tolerantreader/RainbowFishV2Test.java @@ -46,9 +46,9 @@ class RainbowFishV2Test { assertEquals(1, fish.getAge()); assertEquals(2, fish.getLengthMeters()); assertEquals(3, fish.getWeightTons()); - assertFalse(fish.getSleeping()); - assertTrue(fish.getHungry()); - assertFalse(fish.getAngry()); + assertFalse(fish.isSleeping()); + assertTrue(fish.isHungry()); + assertFalse(fish.isAngry()); } } \ No newline at end of file diff --git a/trampoline/src/main/java/com/iluwatar/trampoline/TrampolineApp.java b/trampoline/src/main/java/com/iluwatar/trampoline/TrampolineApp.java index 754a55d2c..32a3f1850 100644 --- a/trampoline/src/main/java/com/iluwatar/trampoline/TrampolineApp.java +++ b/trampoline/src/main/java/com/iluwatar/trampoline/TrampolineApp.java @@ -23,8 +23,7 @@ package com.iluwatar.trampoline; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * Trampoline pattern allows to define recursive algorithms by iterative loop. @@ -33,17 +32,16 @@ import org.slf4j.LoggerFactory; * and to interleave the execution of functions without hard coding them together or even using * threads. */ +@Slf4j public class TrampolineApp { - private static final Logger log = LoggerFactory.getLogger(TrampolineApp.class); - /** * Main program for showing pattern. It does loop with factorial function. */ public static void main(String[] args) { - log.info("start pattern"); + LOGGER.info("start pattern"); var result = loop(10, 1).result(); - log.info("result {}", result); + LOGGER.info("result {}", result); } diff --git a/trampoline/src/test/java/com/iluwatar/trampoline/TrampolineAppTest.java b/trampoline/src/test/java/com/iluwatar/trampoline/TrampolineAppTest.java index 6eff6d99e..0c7503e54 100644 --- a/trampoline/src/test/java/com/iluwatar/trampoline/TrampolineAppTest.java +++ b/trampoline/src/test/java/com/iluwatar/trampoline/TrampolineAppTest.java @@ -30,11 +30,10 @@ import org.junit.jupiter.api.Test; /** * Test for trampoline pattern. */ -public class TrampolineAppTest { - +class TrampolineAppTest { @Test - public void testTrampolineWithFactorialFunction() { + void testTrampolineWithFactorialFunction() { long result = TrampolineApp.loop(10, 1).result(); assertEquals(3_628_800, result); } diff --git a/transaction-script/README.md b/transaction-script/README.md index 3ae3cf4c1..bbbce5eb1 100644 --- a/transaction-script/README.md +++ b/transaction-script/README.md @@ -29,8 +29,8 @@ Programmatic example The `Hotel` class takes care of booking and cancelling room reservations. ```java +@Slf4j public class Hotel { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); private final HotelDaoImpl hotelDao; diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java index db599cc2e..d26233c9f 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java @@ -67,7 +67,7 @@ public class App { // Print room booking status getRoomStatus(dao); - + var hotel = new Hotel(dao); // Book rooms diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/Hotel.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/Hotel.java index c00d0ae65..f189a0306 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/Hotel.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/Hotel.java @@ -23,11 +23,10 @@ package com.iluwatar.transactionscript; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +@Slf4j public class Hotel { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); private final HotelDaoImpl hotelDao; @@ -65,7 +64,7 @@ public class Hotel { * @throws Exception if any error */ public void cancelRoomBooking(int roomNumber) throws Exception { - + var room = hotelDao.getById(roomNumber); if (room.isEmpty()) { diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java index f289712a3..ae56ed2e5 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java @@ -33,11 +33,10 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; import javax.sql.DataSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; +@Slf4j public class HotelDaoImpl implements HotelDao { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); private final DataSource dataSource; diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/Room.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/Room.java index 868f860ca..1ca397087 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/Room.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/Room.java @@ -23,9 +23,20 @@ package com.iluwatar.transactionscript; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + /** * A room POJO that represents the data that will be read from the data source. */ +@Setter +@Getter +@ToString +@EqualsAndHashCode +@AllArgsConstructor public class Room { private int id; @@ -33,91 +44,4 @@ public class Room { private int price; private boolean booked; - /** - * Create an instance of room. - * @param id room id - * @param roomType room type - * @param price room price - * @param booked room booking status - */ - public Room(int id, String roomType, int price, boolean booked) { - this.id = id; - this.roomType = roomType; - this.price = price; - this.booked = booked; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getRoomType() { - return roomType; - } - - public void setRoomType(String roomType) { - this.roomType = roomType; - } - - public int getPrice() { - return price; - } - - public void setPrice(int price) { - this.price = price; - } - - public boolean isBooked() { - return booked; - } - - public void setBooked(boolean booked) { - this.booked = booked; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - Room room = (Room) o; - - if (id != room.id) { - return false; - } - if (price != room.price) { - return false; - } - if (booked != room.booked) { - return false; - } - return roomType.equals(room.roomType); - } - - @Override - public int hashCode() { - int result = id; - result = 31 * result + roomType.hashCode(); - result = 31 * result + price; - result = 31 * result + (booked ? 1 : 0); - return result; - } - - @Override - public String toString() { - return "Room{" - + "id=" + id - + ", roomType=" + roomType - + ", price=" + price - + ", booked=" + booked - + '}'; - } } diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java index 67eb52def..c6b52ef4f 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java @@ -23,6 +23,18 @@ package com.iluwatar.transactionscript; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assumptions.assumeTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import javax.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; @@ -31,15 +43,6 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assumptions.assumeTrue; -import static org.mockito.Mockito.*; - /** * Tests {@link HotelDaoImpl}. */ @@ -90,7 +93,7 @@ public class HotelDaoImplTest { public class NonExistingRoom { @Test - public void addingShouldResultInSuccess() throws Exception { + void addingShouldResultInSuccess() throws Exception { try (var allRooms = dao.getAll()) { assumeTrue(allRooms.count() == 1); } @@ -104,7 +107,7 @@ public class HotelDaoImplTest { } @Test - public void deletionShouldBeFailureAndNotAffectExistingRooms() throws Exception { + void deletionShouldBeFailureAndNotAffectExistingRooms() throws Exception { final var nonExistingRoom = new Room(2, "Double", 80, false); var result = dao.delete(nonExistingRoom); @@ -113,7 +116,7 @@ public class HotelDaoImplTest { } @Test - public void updationShouldBeFailureAndNotAffectExistingRooms() throws Exception { + void updationShouldBeFailureAndNotAffectExistingRooms() throws Exception { final var nonExistingId = getNonExistingRoomId(); final var newRoomType = "Double"; final var newPrice = 80; @@ -125,7 +128,7 @@ public class HotelDaoImplTest { } @Test - public void retrieveShouldReturnNoRoom() throws Exception { + void retrieveShouldReturnNoRoom() throws Exception { assertFalse(dao.getById(getNonExistingRoomId()).isPresent()); } } @@ -138,7 +141,7 @@ public class HotelDaoImplTest { public class ExistingRoom { @Test - public void addingShouldResultInFailureAndNotAffectExistingRooms() throws Exception { + void addingShouldResultInFailureAndNotAffectExistingRooms() throws Exception { var existingRoom = new Room(1, "Single", 50, false); var result = dao.add(existingRoom); @@ -148,7 +151,7 @@ public class HotelDaoImplTest { } @Test - public void deletionShouldBeSuccessAndRoomShouldBeNonAccessible() throws Exception { + void deletionShouldBeSuccessAndRoomShouldBeNonAccessible() throws Exception { var result = dao.delete(existingRoom); Assertions.assertTrue(result); @@ -157,7 +160,7 @@ public class HotelDaoImplTest { } @Test - public void updationShouldBeSuccessAndAccessingTheSameRoomShouldReturnUpdatedInformation() throws + void updationShouldBeSuccessAndAccessingTheSameRoomShouldReturnUpdatedInformation() throws Exception { final var newRoomType = "Double"; final var newPrice = 80; @@ -204,21 +207,21 @@ public class HotelDaoImplTest { } @Test - public void addingARoomFailsWithExceptionAsFeedbackToClient() { + void addingARoomFailsWithExceptionAsFeedbackToClient() { assertThrows(Exception.class, () -> { dao.add(new Room(2, "Double", 80, false)); }); } @Test - public void deletingARoomFailsWithExceptionAsFeedbackToTheClient() { + void deletingARoomFailsWithExceptionAsFeedbackToTheClient() { assertThrows(Exception.class, () -> { dao.delete(existingRoom); }); } @Test - public void updatingARoomFailsWithFeedbackToTheClient() { + void updatingARoomFailsWithFeedbackToTheClient() { final var newRoomType = "Double"; final var newPrice = 80; final var newBookingStatus = false; @@ -228,14 +231,14 @@ public class HotelDaoImplTest { } @Test - public void retrievingARoomByIdFailsWithExceptionAsFeedbackToClient() { + void retrievingARoomByIdFailsWithExceptionAsFeedbackToClient() { assertThrows(Exception.class, () -> { dao.getById(existingRoom.getId()); }); } @Test - public void retrievingAllRoomsFailsWithExceptionAsFeedbackToClient() { + void retrievingAllRoomsFailsWithExceptionAsFeedbackToClient() { assertThrows(Exception.class, () -> { dao.getAll(); }); diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java index b0b7f8bd4..061261400 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java @@ -23,19 +23,20 @@ package com.iluwatar.transactionscript; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import javax.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import javax.sql.DataSource; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; - /** * Tests {@link Hotel} */ -public class HotelTest { +class HotelTest { private static final String H2_DB_URL = "jdbc:h2:~/test"; @@ -54,20 +55,20 @@ public class HotelTest { } @Test - public void bookingRoomShouldChangeBookedStatusToTrue() throws Exception { + void bookingRoomShouldChangeBookedStatusToTrue() throws Exception { hotel.bookRoom(1); assertTrue(dao.getById(1).get().isBooked()); } @Test() - public void bookingRoomWithInvalidIdShouldRaiseException() { + void bookingRoomWithInvalidIdShouldRaiseException() { assertThrows(Exception.class, () -> { hotel.bookRoom(getNonExistingRoomId()); }); } @Test() - public void bookingRoomAgainShouldRaiseException() { + void bookingRoomAgainShouldRaiseException() { assertThrows(Exception.class, () -> { hotel.bookRoom(1); hotel.bookRoom(1); @@ -75,12 +76,12 @@ public class HotelTest { } @Test - public void NotBookingRoomShouldNotChangeBookedStatus() throws Exception { + void NotBookingRoomShouldNotChangeBookedStatus() throws Exception { assertFalse(dao.getById(1).get().isBooked()); } @Test - public void cancelRoomBookingShouldChangeBookedStatus() throws Exception { + void cancelRoomBookingShouldChangeBookedStatus() throws Exception { hotel.bookRoom(1); assertTrue(dao.getById(1).get().isBooked()); hotel.cancelRoomBooking(1); @@ -88,14 +89,14 @@ public class HotelTest { } @Test - public void cancelRoomBookingWithInvalidIdShouldRaiseException() { + void cancelRoomBookingWithInvalidIdShouldRaiseException() { assertThrows(Exception.class, () -> { hotel.cancelRoomBooking(getNonExistingRoomId()); }); } @Test - public void cancelRoomBookingForUnbookedRoomShouldRaiseException() { + void cancelRoomBookingForUnbookedRoomShouldRaiseException() { assertThrows(Exception.class, () -> { hotel.cancelRoomBooking(1); }); diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/RoomTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/RoomTest.java index 022c2e023..6c33083a8 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/RoomTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/RoomTest.java @@ -23,16 +23,16 @@ package com.iluwatar.transactionscript; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + /** * Tests {@link Room}. */ -public class RoomTest { +class RoomTest { private Room room; private static final int ID = 1; @@ -41,33 +41,33 @@ public class RoomTest { private static final boolean BOOKED = false; @BeforeEach - public void setUp() { + void setUp() { room = new Room(ID, ROOMTYPE, PRICE, BOOKED); } @Test - public void getAndSetId() { + void getAndSetId() { final var newId = 2; room.setId(newId); assertEquals(newId, room.getId()); } @Test - public void getAndSetRoomType() { + void getAndSetRoomType() { final var newRoomType = "Double"; room.setRoomType(newRoomType); assertEquals(newRoomType, room.getRoomType()); } @Test - public void getAndSetLastName() { + void getAndSetLastName() { final var newPrice = 60; room.setPrice(newPrice); assertEquals(newPrice, room.getPrice()); } @Test - public void notEqualWithDifferentId() { + void notEqualWithDifferentId() { final var newId = 2; final var otherRoom = new Room(newId, ROOMTYPE, PRICE, BOOKED); assertNotEquals(room, otherRoom); @@ -75,21 +75,21 @@ public class RoomTest { } @Test - public void equalsWithSameObjectValues() { + void equalsWithSameObjectValues() { final var otherRoom = new Room(ID, ROOMTYPE, PRICE, BOOKED); assertEquals(room, otherRoom); assertEquals(room.hashCode(), otherRoom.hashCode()); } @Test - public void equalsWithSameObjects() { + void equalsWithSameObjects() { assertEquals(room, room); assertEquals(room.hashCode(), room.hashCode()); } @Test - public void testToString() { - assertEquals(String.format("Room{id=%s, roomType=%s, price=%s, booked=%s}", + void testToString() { + assertEquals(String.format("Room(id=%s, roomType=%s, price=%s, booked=%s)", room.getId(), room.getRoomType(), room.getPrice(), room.isBooked()), room.toString()); } } diff --git a/twin/src/main/java/com/iluwatar/twin/BallItem.java b/twin/src/main/java/com/iluwatar/twin/BallItem.java index 4498a5c43..a838fa040 100644 --- a/twin/src/main/java/com/iluwatar/twin/BallItem.java +++ b/twin/src/main/java/com/iluwatar/twin/BallItem.java @@ -23,26 +23,22 @@ package com.iluwatar.twin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * This class represents a Ball which extends {@link GameItem} and implements the logic for ball * item, like move and draw. It hold a reference of {@link BallThread} to delegate the suspend and * resume task. */ +@Slf4j public class BallItem extends GameItem { - private static final Logger LOGGER = LoggerFactory.getLogger(BallItem.class); - private boolean isSuspended; + @Setter private BallThread twin; - public void setTwin(BallThread twin) { - this.twin = twin; - } - @Override public void doDraw() { diff --git a/twin/src/main/java/com/iluwatar/twin/BallThread.java b/twin/src/main/java/com/iluwatar/twin/BallThread.java index e9465f73c..115ea0c0a 100644 --- a/twin/src/main/java/com/iluwatar/twin/BallThread.java +++ b/twin/src/main/java/com/iluwatar/twin/BallThread.java @@ -23,28 +23,24 @@ package com.iluwatar.twin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * This class is a UI thread for drawing the {@link BallItem}, and provide the method for suspend * and resume. It hold the reference of {@link BallItem} to delegate the draw task. */ +@Slf4j public class BallThread extends Thread { - private static final Logger LOGGER = LoggerFactory.getLogger(BallThread.class); - + @Setter private BallItem twin; private volatile boolean isSuspended; private volatile boolean isRunning = true; - public void setTwin(BallItem twin) { - this.twin = twin; - } - /** * Run the thread. */ diff --git a/twin/src/main/java/com/iluwatar/twin/GameItem.java b/twin/src/main/java/com/iluwatar/twin/GameItem.java index ef986997b..e0bac01bc 100644 --- a/twin/src/main/java/com/iluwatar/twin/GameItem.java +++ b/twin/src/main/java/com/iluwatar/twin/GameItem.java @@ -23,16 +23,14 @@ package com.iluwatar.twin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * GameItem is a common class which provides some common methods for game object. */ +@Slf4j public abstract class GameItem { - private static final Logger LOGGER = LoggerFactory.getLogger(GameItem.class); - /** * Template method, do some common logic before draw. */ diff --git a/twin/src/test/java/com/iluwatar/twin/BallItemTest.java b/twin/src/test/java/com/iluwatar/twin/BallItemTest.java index 5c927b35c..997de03b6 100644 --- a/twin/src/test/java/com/iluwatar/twin/BallItemTest.java +++ b/twin/src/test/java/com/iluwatar/twin/BallItemTest.java @@ -60,7 +60,7 @@ public class BallItemTest { } @Test - public void testClick() { + void testClick() { final var ballThread = mock(BallThread.class); final var ballItem = new BallItem(); ballItem.setTwin(ballThread); @@ -78,7 +78,7 @@ public class BallItemTest { } @Test - public void testDoDraw() { + void testDoDraw() { final var ballItem = new BallItem(); final var ballThread = mock(BallThread.class); ballItem.setTwin(ballThread); @@ -92,7 +92,7 @@ public class BallItemTest { } @Test - public void testMove() { + void testMove() { final var ballItem = new BallItem(); final var ballThread = mock(BallThread.class); ballItem.setTwin(ballThread); diff --git a/twin/src/test/java/com/iluwatar/twin/BallThreadTest.java b/twin/src/test/java/com/iluwatar/twin/BallThreadTest.java index f42c29f5e..a9504bc20 100644 --- a/twin/src/test/java/com/iluwatar/twin/BallThreadTest.java +++ b/twin/src/test/java/com/iluwatar/twin/BallThreadTest.java @@ -42,13 +42,13 @@ import org.junit.jupiter.api.Test; * * @author Jeroen Meulemeester */ -public class BallThreadTest { +class BallThreadTest { /** * Verify if the {@link BallThread} can be resumed */ @Test - public void testSuspend() { + void testSuspend() { assertTimeout(ofMillis(5000), () -> { final var ballThread = new BallThread(); @@ -74,7 +74,7 @@ public class BallThreadTest { * Verify if the {@link BallThread} can be resumed */ @Test - public void testResume() { + void testResume() { assertTimeout(ofMillis(5000), () -> { final var ballThread = new BallThread(); @@ -104,7 +104,7 @@ public class BallThreadTest { * Verify if the {@link BallThread} is interruptible */ @Test - public void testInterrupt() { + void testInterrupt() { assertTimeout(ofMillis(5000), () -> { final var ballThread = new BallThread(); final var exceptionHandler = mock(UncaughtExceptionHandler.class); diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java index e9b42d659..d7602b9a1 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java @@ -23,11 +23,9 @@ package com.iluwatar.typeobject; -import java.io.FileNotFoundException; import java.io.IOException; +import lombok.extern.slf4j.Slf4j; import org.json.simple.parser.ParseException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** *

Type object pattern is the pattern we use when the OOP concept of creating a base class and @@ -47,10 +45,9 @@ import org.slf4j.LoggerFactory; * the game and the {@link App} class has the game itself.

*/ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * Program entry point. * diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Candy.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Candy.java index a7b038664..946971714 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Candy.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Candy.java @@ -23,10 +23,15 @@ package com.iluwatar.typeobject; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.Setter; + /** * The Candy class has a field type, which represents the 'type' of candy. The objects are created * by parsing the candy.json file. */ +@Getter(AccessLevel.PACKAGE) public class Candy { enum Type { @@ -37,6 +42,8 @@ public class Candy { String name; Candy parent; String parentName; + + @Setter private int points; private final Type type; @@ -48,15 +55,4 @@ public class Candy { this.parentName = parentName; } - int getPoints() { - return this.points; - } - - void setPoints(int a) { - this.points = a; - } - - Type getType() { - return this.type; - } } diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java index d80b6a775..d803d1313 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java @@ -26,18 +26,16 @@ package com.iluwatar.typeobject; import com.iluwatar.typeobject.Candy.Type; import java.util.ArrayList; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * The CandyGame class contains the rules for the continuation of the game and has the game matrix * (field 'cells') and totalPoints gained during the game. */ +@Slf4j public class CandyGame { - private static final Logger LOGGER = LoggerFactory.getLogger(CandyGame.class); - Cell[][] cells; CellPool pool; int totalPoints; diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java index 54de9bc95..94f909784 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java @@ -24,28 +24,20 @@ package com.iluwatar.typeobject; import com.iluwatar.typeobject.Candy.Type; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; /** * The Cell object is what the game matrix is made of and contains the candy which is to be crushed * or collected as reward. */ +@AllArgsConstructor +@NoArgsConstructor public class Cell { Candy candy; int positionX; int positionY; - Cell(Candy candy, int positionX, int positionY) { - this.candy = candy; - this.positionX = positionX; - this.positionY = positionY; - } - - Cell() { - this.candy = null; - this.positionX = 0; - this.positionY = 0; - } - void crush(CellPool pool, Cell[][] cellMatrix) { //take out from this position and put back in pool pool.addNewCell(this); diff --git a/unit-of-work/README.md b/unit-of-work/README.md index 01aa8e5d7..b8a300937 100644 --- a/unit-of-work/README.md +++ b/unit-of-work/README.md @@ -83,8 +83,8 @@ public interface IUnitOfWork { void commit(); } +@Slf4j public class StudentRepository implements IUnitOfWork { - private static final Logger LOGGER = LoggerFactory.getLogger(StudentRepository.class); private final Map> context; private final StudentDatabase studentDatabase; diff --git a/unit-of-work/src/main/java/com/iluwatar/unitofwork/Student.java b/unit-of-work/src/main/java/com/iluwatar/unitofwork/Student.java index 74d0581e7..b3de369b4 100644 --- a/unit-of-work/src/main/java/com/iluwatar/unitofwork/Student.java +++ b/unit-of-work/src/main/java/com/iluwatar/unitofwork/Student.java @@ -23,36 +23,18 @@ package com.iluwatar.unitofwork; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + /** * {@link Student} is an entity. */ +@Getter +@RequiredArgsConstructor public class Student { + private final Integer id; private final String name; private final String address; - /** - * Constructor. - * - * @param id student unique id - * @param name name of student - * @param address address of student - */ - public Student(Integer id, String name, String address) { - this.id = id; - this.name = name; - this.address = address; - } - - public String getName() { - return name; - } - - public Integer getId() { - return id; - } - - public String getAddress() { - return address; - } } diff --git a/unit-of-work/src/main/java/com/iluwatar/unitofwork/StudentRepository.java b/unit-of-work/src/main/java/com/iluwatar/unitofwork/StudentRepository.java index d11f07aa2..991aef12a 100644 --- a/unit-of-work/src/main/java/com/iluwatar/unitofwork/StudentRepository.java +++ b/unit-of-work/src/main/java/com/iluwatar/unitofwork/StudentRepository.java @@ -26,29 +26,19 @@ package com.iluwatar.unitofwork; import java.util.ArrayList; import java.util.List; import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * {@link StudentRepository} Student database repository. supports unit of work for student data. */ +@Slf4j +@RequiredArgsConstructor public class StudentRepository implements IUnitOfWork { - private static final Logger LOGGER = LoggerFactory.getLogger(StudentRepository.class); private final Map> context; private final StudentDatabase studentDatabase; - /** - * Constructor. - * - * @param context set of operations to be perform during commit. - * @param studentDatabase Database for student records. - */ - public StudentRepository(Map> context, StudentDatabase studentDatabase) { - this.context = context; - this.studentDatabase = studentDatabase; - } - @Override public void registerNew(Student student) { LOGGER.info("Registering {} for insert in context.", student.getName()); diff --git a/unit-of-work/src/main/java/com/iluwatar/unitofwork/UnitActions.java b/unit-of-work/src/main/java/com/iluwatar/unitofwork/UnitActions.java index ede021742..60701be69 100644 --- a/unit-of-work/src/main/java/com/iluwatar/unitofwork/UnitActions.java +++ b/unit-of-work/src/main/java/com/iluwatar/unitofwork/UnitActions.java @@ -23,18 +23,15 @@ package com.iluwatar.unitofwork; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor public enum UnitActions { INSERT("INSERT"), DELETE("DELETE"), MODIFY("MODIFY"); private final String actionValue; - - UnitActions(String actionValue) { - this.actionValue = actionValue; - } - - public String getActionValue() { - return actionValue; - } } diff --git a/update-method/src/main/java/com/iluwatar/updatemethod/App.java b/update-method/src/main/java/com/iluwatar/updatemethod/App.java index e964eb478..b036a0cb2 100644 --- a/update-method/src/main/java/com/iluwatar/updatemethod/App.java +++ b/update-method/src/main/java/com/iluwatar/updatemethod/App.java @@ -23,8 +23,7 @@ package com.iluwatar.updatemethod; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This pattern simulate a collection of independent objects by telling each to @@ -32,10 +31,9 @@ import org.slf4j.LoggerFactory; * of objects. Each object implements an update method that simulates one frame of * the object’s behavior. Each frame, the game updates every object in the collection. */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - private static final int GAME_RUNNING_TIME = 2000; /** diff --git a/update-method/src/main/java/com/iluwatar/updatemethod/Entity.java b/update-method/src/main/java/com/iluwatar/updatemethod/Entity.java index b8fbac3df..9033c804a 100644 --- a/update-method/src/main/java/com/iluwatar/updatemethod/Entity.java +++ b/update-method/src/main/java/com/iluwatar/updatemethod/Entity.java @@ -23,6 +23,8 @@ package com.iluwatar.updatemethod; +import lombok.Getter; +import lombok.Setter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +37,8 @@ public abstract class Entity { protected int id; + @Getter + @Setter protected int position; public Entity(int id) { @@ -44,11 +48,4 @@ public abstract class Entity { public abstract void update(); - public int getPosition() { - return position; - } - - public void setPosition(int position) { - this.position = position; - } } diff --git a/update-method/src/main/java/com/iluwatar/updatemethod/Skeleton.java b/update-method/src/main/java/com/iluwatar/updatemethod/Skeleton.java index b28b35790..5e0ed27ac 100644 --- a/update-method/src/main/java/com/iluwatar/updatemethod/Skeleton.java +++ b/update-method/src/main/java/com/iluwatar/updatemethod/Skeleton.java @@ -51,9 +51,9 @@ public class Skeleton extends Entity { * Constructor of Skeleton. * * @param id id of skeleton - * @param postition position of skeleton + * @param position position of skeleton */ - public Skeleton(int id, int postition) { + public Skeleton(int id, int position) { super(id); this.position = position; patrollingLeft = false; @@ -72,7 +72,7 @@ public class Skeleton extends Entity { patrollingLeft = true; } } - logger.info("Skeleton " + id + " is on position " + position + "."); + logger.info("Skeleton {} is on position {}.", id, position); } } diff --git a/update-method/src/main/java/com/iluwatar/updatemethod/Statue.java b/update-method/src/main/java/com/iluwatar/updatemethod/Statue.java index 11b6f2438..eac4cbd00 100644 --- a/update-method/src/main/java/com/iluwatar/updatemethod/Statue.java +++ b/update-method/src/main/java/com/iluwatar/updatemethod/Statue.java @@ -57,7 +57,7 @@ public class Statue extends Entity { @Override public void update() { - if (++ frames == delay) { + if (++frames == delay) { shootLightning(); frames = 0; } diff --git a/update-method/src/main/java/com/iluwatar/updatemethod/World.java b/update-method/src/main/java/com/iluwatar/updatemethod/World.java index 696fca5c0..f4a86cec2 100644 --- a/update-method/src/main/java/com/iluwatar/updatemethod/World.java +++ b/update-method/src/main/java/com/iluwatar/updatemethod/World.java @@ -26,17 +26,15 @@ package com.iluwatar.updatemethod; import java.security.SecureRandom; import java.util.ArrayList; import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.Random; +import lombok.extern.slf4j.Slf4j; /** * The game world class. Maintain all the objects existed in the game frames. */ +@Slf4j public class World { - private static final Logger LOGGER = LoggerFactory.getLogger(World.class); - protected List entities; protected volatile boolean isRunning; @@ -70,6 +68,7 @@ public class World { Thread.sleep(lag); } catch (InterruptedException e) { LOGGER.error(e.getMessage()); + Thread.currentThread().interrupt(); } } diff --git a/update-method/src/test/java/com/iluwatar/updatemethod/AppTest.java b/update-method/src/test/java/com/iluwatar/updatemethod/AppTest.java index 9c5c2a1e2..b7590ec9b 100644 --- a/update-method/src/test/java/com/iluwatar/updatemethod/AppTest.java +++ b/update-method/src/test/java/com/iluwatar/updatemethod/AppTest.java @@ -23,10 +23,10 @@ package com.iluwatar.updatemethod; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import org.junit.jupiter.api.Test; + class AppTest { @Test diff --git a/update-method/src/test/java/com/iluwatar/updatemethod/SkeletonTest.java b/update-method/src/test/java/com/iluwatar/updatemethod/SkeletonTest.java index a30dd26cb..620dfde73 100644 --- a/update-method/src/test/java/com/iluwatar/updatemethod/SkeletonTest.java +++ b/update-method/src/test/java/com/iluwatar/updatemethod/SkeletonTest.java @@ -31,7 +31,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; - class SkeletonTest { private static Skeleton skeleton; diff --git a/value-object/src/main/java/com/iluwatar/value/object/App.java b/value-object/src/main/java/com/iluwatar/value/object/App.java index 3c91c54f3..49375e94c 100644 --- a/value-object/src/main/java/com/iluwatar/value/object/App.java +++ b/value-object/src/main/java/com/iluwatar/value/object/App.java @@ -23,8 +23,7 @@ package com.iluwatar.value.object; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * A Value Object are objects which follow value semantics rather than reference semantics. This @@ -40,10 +39,9 @@ import org.slf4j.LoggerFactory; *

For more specific and strict rules to implement value objects check the rules from Stephen * Colebourne's term VALJO : http://blog.joda.org/2014/03/valjos-value-java-objects.html */ +@Slf4j public class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); - /** * This practice creates three HeroStats(Value object) and checks equality between those. */ diff --git a/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java b/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java index 118658646..4d060ee0f 100644 --- a/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java +++ b/value-object/src/main/java/com/iluwatar/value/object/HeroStat.java @@ -23,6 +23,11 @@ package com.iluwatar.value.object; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.ToString; + /** * HeroStat is a value object. * @@ -30,6 +35,10 @@ package com.iluwatar.value.object; * http://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html * */ +@Getter +@ToString +@EqualsAndHashCode +@RequiredArgsConstructor public class HeroStat { // Stats for a hero @@ -38,74 +47,11 @@ public class HeroStat { private final int intelligence; private final int luck; - // All constructors must be private. - private HeroStat(int strength, int intelligence, int luck) { - this.strength = strength; - this.intelligence = intelligence; - this.luck = luck; - } - // Static factory method to create new instances. public static HeroStat valueOf(int strength, int intelligence, int luck) { return new HeroStat(strength, intelligence, luck); } - public int getStrength() { - return strength; - } - - public int getIntelligence() { - return intelligence; - } - - public int getLuck() { - return luck; - } - - /* - * Recommended to provide a static factory method capable of creating an instance from the formal - * string representation declared like this. public static HeroStat parse(String string) {} - */ - - // toString, hashCode, equals - - @Override - public String toString() { - return "HeroStat [strength=" + strength + ", intelligence=" + intelligence - + ", luck=" + luck + "]"; - } - - @Override - public int hashCode() { - final var prime = 31; - var result = 1; - result = prime * result + intelligence; - result = prime * result + luck; - result = prime * result + strength; - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - var other = (HeroStat) obj; - if (intelligence != other.intelligence) { - return false; - } - if (luck != other.luck) { - return false; - } - return strength == other.strength; - } - // The clone() method should not be public. Just don't override it. } diff --git a/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java b/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java index 27645673d..daf94064e 100644 --- a/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java +++ b/value-object/src/test/java/com/iluwatar/value/object/HeroStatTest.java @@ -33,17 +33,17 @@ import org.junit.jupiter.api.Test; /** * Unit test for HeroStat. */ -public class HeroStatTest { +class HeroStatTest { /** * Tester for equals() and hashCode() methods of a class. Using guava's EqualsTester. * * @see - * http://static.javadoc.io/com.google.guava/guava-testlib/19.0/com/google/common/testing/EqualsTester.html - * + * http://static.javadoc.io/com.google.guava/guava-testlib/19.0/com/google/common/testing/EqualsTester.html + * */ @Test - public void testEquals() { + void testEquals() { var heroStatA = HeroStat.valueOf(3, 9, 2); var heroStatB = HeroStat.valueOf(3, 9, 2); new EqualsTester().addEqualityGroup(heroStatA, heroStatB).testEquals(); @@ -54,7 +54,7 @@ public class HeroStatTest { * different. */ @Test - public void testToString() { + void testToString() { var heroStatA = HeroStat.valueOf(3, 9, 2); var heroStatB = HeroStat.valueOf(3, 9, 2); var heroStatC = HeroStat.valueOf(3, 9, 8); diff --git a/visitor/README.md b/visitor/README.md index 75a032a47..c33b0c8e0 100644 --- a/visitor/README.md +++ b/visitor/README.md @@ -121,10 +121,9 @@ public class Soldier extends Unit { Here are then some concrete visitors. ```java +@Slf4j public class CommanderVisitor implements UnitVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(CommanderVisitor.class); - @Override public void visitSoldier(Soldier soldier) { // Do nothing @@ -141,10 +140,9 @@ public class CommanderVisitor implements UnitVisitor { } } +@Slf4j public class SergeantVisitor implements UnitVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(SergeantVisitor.class); - @Override public void visitSoldier(Soldier soldier) { // Do nothing @@ -161,10 +159,9 @@ public class SergeantVisitor implements UnitVisitor { } } +@Slf4j public class SoldierVisitor implements UnitVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(SoldierVisitor.class); - @Override public void visitSoldier(Soldier soldier) { LOGGER.info("Greetings {}", soldier); diff --git a/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java index 92d242106..cf91623bf 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java @@ -23,16 +23,14 @@ package com.iluwatar.visitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * CommanderVisitor. */ +@Slf4j public class CommanderVisitor implements UnitVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(CommanderVisitor.class); - @Override public void visitSoldier(Soldier soldier) { // Do nothing diff --git a/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java index 089c467a8..f4bf23d5a 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java @@ -23,16 +23,14 @@ package com.iluwatar.visitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * SergeantVisitor. */ +@Slf4j public class SergeantVisitor implements UnitVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(SergeantVisitor.class); - @Override public void visitSoldier(Soldier soldier) { // Do nothing diff --git a/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java index 0a0de0f7a..eb931e238 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java @@ -23,16 +23,14 @@ package com.iluwatar.visitor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * SoldierVisitor. */ +@Slf4j public class SoldierVisitor implements UnitVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(SoldierVisitor.class); - @Override public void visitSoldier(Soldier soldier) { LOGGER.info("Greetings {}", soldier); diff --git a/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java b/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java index f41cce068..52689a027 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java @@ -55,7 +55,7 @@ public abstract class UnitTest { } @Test - public void testAccept() { + void testAccept() { final var children = new Unit[5]; Arrays.setAll(children, (i) -> mock(Unit.class)); diff --git a/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java b/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java index 4e9f8d958..694be7ab2 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java @@ -96,7 +96,7 @@ public abstract class VisitorTest { } @Test - public void testVisitCommander() { + void testVisitCommander() { this.visitor.visitCommander(new Commander()); if (this.commanderResponse.isPresent()) { assertEquals(this.commanderResponse.get(), appender.getLastMessage()); @@ -105,7 +105,7 @@ public abstract class VisitorTest { } @Test - public void testVisitSergeant() { + void testVisitSergeant() { this.visitor.visitSergeant(new Sergeant()); if (this.sergeantResponse.isPresent()) { assertEquals(this.sergeantResponse.get(), appender.getLastMessage()); @@ -114,7 +114,7 @@ public abstract class VisitorTest { } @Test - public void testVisitSoldier() { + void testVisitSoldier() { this.visitor.visitSoldier(new Soldier()); if (this.soldierResponse.isPresent()) { assertEquals(this.soldierResponse.get(), appender.getLastMessage()); diff --git a/zh/adapter/README.md b/zh/adapter/README.md index b00d757a6..e029404b5 100644 --- a/zh/adapter/README.md +++ b/zh/adapter/README.md @@ -41,8 +41,8 @@ public interface RowingBoat { void row(); } +@Slf4j public class FishingBoat { - private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoat.class); public void sail() { LOGGER.info("The fishing boat is sailing"); } @@ -68,10 +68,9 @@ public class Captain { 现在海盗来了,我们的船长需要逃跑但是只有一个渔船可用。我们需要创建一个可以让船长使用其划船技能来操作渔船的适配器。 ```java +@Slf4j public class FishingBoatAdapter implements RowingBoat { - private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoatAdapter.class); - private final FishingBoat boat; public FishingBoatAdapter() { diff --git a/zh/chain/README.md b/zh/chain/README.md index 00d9ef012..5a06d0ca8 100644 --- a/zh/chain/README.md +++ b/zh/chain/README.md @@ -61,8 +61,8 @@ public enum RequestType { 然后是请求处理器的层次结构 ```java +@Slf4j public abstract class RequestHandler { - private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class); private final RequestHandler next; public RequestHandler(RequestHandler next) { diff --git a/zh/decorator/README.md b/zh/decorator/README.md index 6163017af..fc00f9b92 100644 --- a/zh/decorator/README.md +++ b/zh/decorator/README.md @@ -40,10 +40,9 @@ public interface Troll { void fleeBattle(); } +@Slf4j public class SimpleTroll implements Troll { - private static final Logger LOGGER = LoggerFactory.getLogger(SimpleTroll.class); - @Override public void attack() { LOGGER.info("The troll tries to grab you!"); @@ -64,10 +63,9 @@ public class SimpleTroll implements Troll { 下面我们想为巨魔添加球棒。我们可以用装饰者来动态的实现。 ```java +@Slf4j public class ClubbedTroll implements Troll { - private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class); - private final Troll decorated; public ClubbedTroll(Troll decorated) { diff --git a/zh/facade/README.md b/zh/facade/README.md index 3784a5be6..2db44094b 100644 --- a/zh/facade/README.md +++ b/zh/facade/README.md @@ -31,10 +31,9 @@ tags: 使用上面金矿的例子。这里我们有矮人的矿工等级制度。 ```java +@Slf4j public abstract class DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenMineWorker.class); - public void goToSleep() { LOGGER.info("{} goes to sleep.", name()); } @@ -87,10 +86,9 @@ public abstract class DwarvenMineWorker { } } +@Slf4j public class DwarvenTunnelDigger extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenTunnelDigger.class); - @Override public void work() { LOGGER.info("{} creates another promising tunnel.", name()); @@ -102,10 +100,9 @@ public class DwarvenTunnelDigger extends DwarvenMineWorker { } } +@Slf4j public class DwarvenGoldDigger extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenGoldDigger.class); - @Override public void work() { LOGGER.info("{} digs for gold.", name()); @@ -117,10 +114,9 @@ public class DwarvenGoldDigger extends DwarvenMineWorker { } } +@Slf4j public class DwarvenCartOperator extends DwarvenMineWorker { - private static final Logger LOGGER = LoggerFactory.getLogger(DwarvenCartOperator.class); - @Override public void work() { LOGGER.info("{} moves gold chunks out of the mine.", name()); diff --git a/zh/observer/README.md b/zh/observer/README.md index 8a4b80a07..3cc89ade2 100644 --- a/zh/observer/README.md +++ b/zh/observer/README.md @@ -42,20 +42,18 @@ public interface WeatherObserver { void update(WeatherType currentWeather); } +@Slf4j public class Orcs implements WeatherObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(Orcs.class); - @Override public void update(WeatherType currentWeather) { LOGGER.info("The orcs are facing " + currentWeather.getDescription() + " weather now"); } } +@Slf4j public class Hobbits implements WeatherObserver { - private static final Logger LOGGER = LoggerFactory.getLogger(Hobbits.class); - @Override public void update(WeatherType currentWeather) { switch (currentWeather) { @@ -67,10 +65,9 @@ public class Hobbits implements WeatherObserver { 然后这里是不断变化的天气。 ```java +@Slf4j public class Weather { - private static final Logger LOGGER = LoggerFactory.getLogger(Weather.class); - private WeatherType currentWeather; private final List observers; diff --git a/zh/strategy/README.md b/zh/strategy/README.md index 29fe2e4eb..920c82345 100644 --- a/zh/strategy/README.md +++ b/zh/strategy/README.md @@ -40,30 +40,27 @@ public interface DragonSlayingStrategy { void execute(); } +@Slf4j public class MeleeStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(MeleeStrategy.class); - @Override public void execute() { LOGGER.info("With your Excalibur you sever the dragon's head!"); } } +@Slf4j public class ProjectileStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(ProjectileStrategy.class); - @Override public void execute() { LOGGER.info("You shoot the dragon with the magical crossbow and it falls dead on the ground!"); } } +@Slf4j public class SpellStrategy implements DragonSlayingStrategy { - private static final Logger LOGGER = LoggerFactory.getLogger(SpellStrategy.class); - @Override public void execute() { LOGGER.info("You cast the spell of disintegration and the dragon vaporizes in a pile of dust!");