From 5cf2fe009bc2c04dab737d41523576c6149e605c Mon Sep 17 00:00:00 2001 From: va1m Date: Sat, 13 Mar 2021 13:19:21 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=8DUse=20lombok,=20reformat,=20and=20o?= =?UTF-8?q?ptimize=20the=20code=20(#1560)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Use lombok, reformat, and optimize the code * Fix merge conflicts and some sonar issues Co-authored-by: va1m --- .../com/iluwatar/abstractdocument/App.java | 6 +- .../AbstractDocumentTest.java | 17 ++- .../iluwatar/abstractdocument/DomainTest.java | 13 ++- .../com/iluwatar/abstractfactory/App.java | 22 ++-- .../com/iluwatar/abstractfactory/Kingdom.java | 29 +---- .../abstractfactory/AbstractFactoryTest.java | 12 +- .../ConfigureForDosVisitor.java | 6 +- .../ConfigureForUnixVisitor.java | 6 +- .../com/iluwatar/acyclicvisitor/Hayes.java | 6 +- .../com/iluwatar/acyclicvisitor/Zoom.java | 6 +- .../ConfigureForDosVisitorTest.java | 20 ++-- .../ConfigureForUnixVisitorTest.java | 23 ++-- .../iluwatar/acyclicvisitor/HayesTest.java | 24 ++-- .../com/iluwatar/acyclicvisitor/ZoomTest.java | 24 ++-- adapter/README.md | 5 +- .../java/com/iluwatar/adapter/Captain.java | 18 ++- .../com/iluwatar/adapter/FishingBoat.java | 7 +- .../iluwatar/adapter/FishingBoatAdapter.java | 6 +- .../iluwatar/adapter/AdapterPatternTest.java | 13 ++- .../aggregator/microservices/Aggregator.java | 7 +- .../aggregator/microservices/Product.java | 21 +--- .../ProductInformationClientImpl.java | 7 +- .../ProductInventoryClientImpl.java | 7 +- .../microservices/AggregatorTest.java | 10 +- .../microservice/InformationController.java | 5 +- .../InformationControllerTest.java | 8 +- .../microservice/InventoryController.java | 5 +- .../microservice/InventoryControllerTest.java | 9 +- ambassador/README.md | 9 +- .../java/com/iluwatar/ambassador/Client.java | 7 +- .../iluwatar/ambassador/RemoteService.java | 8 +- .../ambassador/RemoteServiceStatus.java | 3 +- .../ambassador/ServiceAmbassador.java | 10 +- .../com/iluwatar/api/gateway/ApiGateway.java | 7 +- .../iluwatar/api/gateway/DesktopProduct.java | 21 +--- .../iluwatar/api/gateway/ImageClientImpl.java | 14 +-- .../iluwatar/api/gateway/MobileProduct.java | 13 +-- .../iluwatar/api/gateway/PriceClientImpl.java | 12 +- .../iluwatar/api/gateway/ApiGatewayTest.java | 6 +- .../image/microservice/ImageController.java | 11 +- .../microservice/ImageControllerTest.java | 9 +- .../price/microservice/PriceController.java | 11 +- .../microservice/PriceControllerTest.java | 9 +- arrange-act-assert/README.md | 10 +- .../com/iluwatar/arrangeactassert/Cash.java | 7 +- .../iluwatar/async/method/invocation/App.java | 6 +- .../main/java/com/iluwatar/balking/App.java | 9 +- .../com/iluwatar/balking/WashingMachine.java | 10 +- .../iluwatar/balking/WashingMachineState.java | 3 +- .../main/java/com/iluwatar/bridge/App.java | 6 +- .../iluwatar/bridge/FlyingEnchantment.java | 6 +- .../main/java/com/iluwatar/bridge/Hammer.java | 12 +- .../bridge/SoulEatingEnchantment.java | 6 +- .../main/java/com/iluwatar/bridge/Sword.java | 12 +- .../main/java/com/iluwatar/builder/App.java | 7 +- .../main/java/com/iluwatar/builder/Armor.java | 12 +- .../java/com/iluwatar/builder/HairColor.java | 6 +- .../java/com/iluwatar/builder/HairType.java | 14 ++- .../java/com/iluwatar/builder/AppTest.java | 1 - .../business/delegate/BusinessDelegate.java | 3 +- .../business/delegate/BusinessLookup.java | 11 +- .../business/delegate/EjbService.java | 6 +- .../business/delegate/JmsService.java | 6 +- .../business/delegate/ServiceType.java | 3 +- .../delegate/BusinessDelegateTest.java | 10 +- .../main/java/com/iluwatar/bytecode/App.java | 5 +- .../com/iluwatar/bytecode/Instruction.java | 15 +-- .../com/iluwatar/bytecode/VirtualMachine.java | 10 +- .../java/com/iluwatar/bytecode/Wizard.java | 40 +------ .../iluwatar/bytecode/VirtualMachineTest.java | 24 ++-- .../util/InstructionConverterUtilTest.java | 10 +- .../main/java/com/iluwatar/caching/App.java | 7 +- .../java/com/iluwatar/caching/CacheStore.java | 6 +- .../com/iluwatar/caching/CachingPolicy.java | 18 +-- .../java/com/iluwatar/caching/LruCache.java | 8 +- .../com/iluwatar/caching/UserAccount.java | 47 ++------ callback/README.md | 3 +- .../main/java/com/iluwatar/callback/App.java | 7 +- .../com/iluwatar/callback/SimpleTask.java | 10 +- .../com/iluwatar/callback/CallbackTest.java | 2 +- chain/README.md | 2 +- .../src/main/java/com/iluwatar/chain/App.java | 1 - .../com/iluwatar/chain/RequestHandler.java | 12 +- .../java/com/iluwatar/chain/RequestType.java | 4 +- .../java/com/iluwatar/chain/OrcKingTest.java | 4 +- circuit-breaker/README.md | 1 + .../java/com/iluwatar/circuitbreaker/App.java | 6 +- .../DefaultCircuitBreakerTest.java | 7 +- .../DelayedRemoteServiceTest.java | 4 +- .../circuitbreaker/MonitoringServiceTest.java | 10 +- .../com/iluwatar/collectionpipeline/App.java | 6 +- .../com/iluwatar/collectionpipeline/Car.java | 80 ++----------- .../iluwatar/collectionpipeline/Category.java | 4 +- .../iluwatar/collectionpipeline/Person.java | 17 +-- .../iluwatar/collectionpipeline/AppTest.java | 15 ++- .../iluwatar/combinator/CombinatorApp.java | 12 +- .../combinator/CombinatorAppTest.java | 3 +- .../com/iluwatar/combinator/FinderTest.java | 3 +- .../com/iluwatar/combinator/FindersTest.java | 20 ++-- command/README.md | 4 +- .../main/java/com/iluwatar/command/Size.java | 10 +- .../java/com/iluwatar/command/Target.java | 29 +---- .../java/com/iluwatar/command/Visibility.java | 10 +- .../java/com/iluwatar/command/Wizard.java | 2 + .../com/iluwatar/command/CommandTest.java | 4 +- .../com/iluwatar/commander/Commander.java | 18 +-- .../java/com/iluwatar/commander/Order.java | 14 ++- .../java/com/iluwatar/commander/User.java | 10 +- .../employeehandle/EmployeeDatabase.java | 10 +- .../messagingservice/MessagingDatabase.java | 8 +- .../messagingservice/MessagingService.java | 22 ++-- .../paymentservice/PaymentDatabase.java | 11 +- .../paymentservice/PaymentService.java | 14 +-- .../com/iluwatar/commander/queue/Queue.java | 10 -- .../iluwatar/commander/queue/QueueTask.java | 37 +++--- .../shippingservice/ShippingDatabase.java | 8 +- .../shippingservice/ShippingService.java | 8 +- .../main/java/com/iluwatar/composite/App.java | 10 +- .../java/com/iluwatar/composite/Letter.java | 7 +- .../com/iluwatar/composite/MessengerTest.java | 21 ++-- .../main/java/com/iluwatar/converter/App.java | 8 +- .../com/iluwatar/converter/Converter.java | 13 +-- .../java/com/iluwatar/converter/User.java | 66 ++--------- .../java/com/iluwatar/converter/UserDto.java | 65 ++--------- .../com/iluwatar/converter/ConverterTest.java | 10 +- .../main/java/com/iluwatar/cqrs/app/App.java | 5 +- .../iluwatar/cqrs/domain/model/Author.java | 43 +------ .../com/iluwatar/cqrs/domain/model/Book.java | 43 +------ .../java/com/iluwatar/cqrs/dto/Author.java | 63 ++-------- .../main/java/com/iluwatar/cqrs/dto/Book.java | 55 ++------- .../com/iluwatar/cqrs/util/HibernateUtil.java | 7 +- .../com/iluwatar/cqrs/IntegrationTest.java | 16 +-- dao/README.md | 3 +- dao/src/main/java/com/iluwatar/dao/App.java | 19 ++- .../main/java/com/iluwatar/dao/Customer.java | 69 ++--------- .../java/com/iluwatar/dao/DbCustomerDao.java | 18 +-- .../java/com/iluwatar/dao/CustomerTest.java | 20 ++-- .../com/iluwatar/dao/DbCustomerDaoTest.java | 37 +++--- .../iluwatar/dao/InMemoryCustomerDaoTest.java | 24 ++-- data-bus/pom.xml | 3 - .../iluwatar/databus/AbstractDataType.java | 15 +-- .../iluwatar/databus/data/MessageData.java | 12 +- .../iluwatar/databus/data/StartingData.java | 12 +- .../iluwatar/databus/data/StoppingData.java | 12 +- .../members/MessageCollectorMember.java | 7 +- .../databus/members/StatusMember.java | 26 ++--- .../com/iluwatar/databus/DataBusTest.java | 8 +- .../members/MessageCollectorMemberTest.java | 6 +- .../databus/members/StatusMemberTest.java | 8 +- .../iluwatar/data/locality/Application.java | 6 +- .../data/locality/game/GameEntity.java | 5 +- .../locality/game/component/AiComponent.java | 6 +- .../game/component/PhysicsComponent.java | 6 +- .../game/component/RenderComponent.java | 6 +- .../component/manager/AiComponentManager.java | 6 +- .../manager/PhysicsComponentManager.java | 6 +- .../manager/RenderComponentManager.java | 6 +- .../data/locality/ApplicationTest.java | 2 +- .../java/com/iluwatar/datamapper/App.java | 14 +-- .../java/com/iluwatar/datamapper/Student.java | 83 ++------------ .../iluwatar/datamapper/DataMapperTest.java | 4 +- .../com/iluwatar/datamapper/StudentTest.java | 4 +- .../java/com/iluwatar/datatransfer/App.java | 6 +- .../datatransfer/customer/CustomerDto.java | 29 +---- .../customer/CustomerResource.java | 11 +- .../com/iluwatar/datatransfer/AppTest.java | 20 ++-- .../customer/CustomerResourceTest.java | 9 +- decorator/README.md | 6 +- .../main/java/com/iluwatar/decorator/App.java | 6 +- .../com/iluwatar/decorator/ClubbedTroll.java | 12 +- .../com/iluwatar/decorator/SimpleTroll.java | 6 +- .../iluwatar/decorator/ClubbedTrollTest.java | 4 +- .../iluwatar/decorator/SimpleTrollTest.java | 14 +-- .../simple/printers/CanonPrinter.java | 6 +- .../simple/printers/EpsonPrinter.java | 6 +- .../delegation/simple/printers/HpPrinter.java | 6 +- .../delegation/simple/DelegateTest.java | 14 +-- dependency-injection/README.md | 3 +- .../injection/AdvancedSorceress.java | 7 +- .../dependency/injection/AdvancedWizard.java | 7 +- .../dependency/injection/Tobacco.java | 6 +- .../injection/AdvancedSorceressTest.java | 8 +- .../injection/AdvancedWizardTest.java | 8 +- .../dependency/injection/GuiceWizardTest.java | 10 +- .../injection/SimpleWizardTest.java | 8 +- .../main/java/com/iluwatar/dirtyflag/App.java | 6 +- .../com/iluwatar/dirtyflag/DataFetcher.java | 6 +- .../java/com/iluwatar/dirtyflag/World.java | 2 +- .../java/com/iluwatar/doublebuffer/App.java | 6 +- .../java/com/iluwatar/doublebuffer/Pixel.java | 10 +- .../java/com/iluwatar/doublebuffer/Scene.java | 6 +- .../com/iluwatar/doublebuffer/AppTest.java | 2 +- .../iluwatar/doublechecked/locking/App.java | 7 +- .../doublechecked/locking/Inventory.java | 6 +- .../doublechecked/locking/InventoryTest.java | 8 +- .../java/com/iluwatar/doubledispatch/App.java | 6 +- .../iluwatar/doubledispatch/Meteoroid.java | 6 +- .../iluwatar/doubledispatch/Rectangle.java | 31 +---- .../doubledispatch/SpaceStationMir.java | 6 +- .../doubledispatch/FlamingAsteroidTest.java | 12 +- .../doubledispatch/MeteoroidTest.java | 12 +- .../doubledispatch/RectangleTest.java | 8 +- .../doubledispatch/SpaceStationIssTest.java | 12 +- .../doubledispatch/SpaceStationMirTest.java | 12 +- eip-aggregator/pom.xml | 5 - .../routes/AggregatorRouteTest.java | 4 +- .../MessageAggregationStrategyTest.java | 6 +- .../com/iluwatar/eip/message/channel/App.java | 6 +- .../iluwatar/eip/publish/subscribe/App.java | 6 +- eip-splitter/pom.xml | 6 - .../splitter/routes/SplitterRouteTest.java | 4 +- eip-wire-tap/pom.xml | 6 - .../eip/wiretap/routes/WireTapRouteTest.java | 4 +- .../com/iluwatar/event/aggregator/Event.java | 13 ++- .../event/aggregator/KingJoffrey.java | 6 +- .../iluwatar/event/aggregator/Weekday.java | 8 +- .../event/aggregator/EventEmitterTest.java | 4 +- .../iluwatar/event/aggregator/EventTest.java | 4 +- .../event/aggregator/KingJoffreyTest.java | 8 +- .../event/aggregator/KingsHandTest.java | 4 +- .../event/aggregator/LordBaelishTest.java | 2 +- .../event/aggregator/LordVarysTest.java | 2 +- .../iluwatar/event/aggregator/ScoutTest.java | 2 +- .../event/aggregator/WeekdayTest.java | 4 +- .../com/iluwatar/event/asynchronous/App.java | 6 +- .../iluwatar/event/asynchronous/Event.java | 30 ++--- .../event/asynchronous/EventManager.java | 2 +- .../asynchronous/EventAsynchronousTest.java | 12 +- .../iluwatar/eda/event/UserCreatedEvent.java | 12 +- .../iluwatar/eda/event/UserUpdatedEvent.java | 12 +- .../eda/handler/UserCreatedEventHandler.java | 6 +- .../eda/handler/UserUpdatedEventHandler.java | 6 +- .../java/com/iluwatar/eda/model/User.java | 12 +- .../eda/event/UserCreatedEventTest.java | 4 +- .../eda/framework/EventDispatcherTest.java | 4 +- .../java/com/iluwatar/event/queue/App.java | 6 +- .../java/com/iluwatar/event/queue/Audio.java | 5 +- .../com/iluwatar/event/queue/PlayMessage.java | 28 ++--- .../com/iluwatar/event/queue/AudioTest.java | 18 +-- .../com/iluwatar/event/sourcing/app/App.java | 6 +- .../event/sourcing/domain/Account.java | 63 ++-------- .../sourcing/event/AccountCreateEvent.java | 20 +--- .../event/sourcing/event/DomainEvent.java | 63 +--------- .../sourcing/event/MoneyDepositEvent.java | 20 +--- .../sourcing/event/MoneyTransferEvent.java | 29 +---- .../src/test/java/IntegrationTest.java | 6 +- .../execute/around/SimpleFileWriterTest.java | 10 +- .../java/concreteextensions/Commander.java | 17 +-- .../java/concreteextensions/Sergeant.java | 17 +-- .../main/java/concreteextensions/Soldier.java | 16 +-- .../src/main/java/units/Unit.java | 12 +- .../concreteextensions/CommanderTest.java | 4 +- .../java/concreteextensions/SergeantTest.java | 4 +- .../java/concreteextensions/SoldierTest.java | 4 +- .../test/java/units/CommanderUnitTest.java | 5 +- .../src/test/java/units/SergeantUnitTest.java | 5 +- .../src/test/java/units/SoldierUnitTest.java | 5 +- .../src/test/java/units/UnitTest.java | 4 +- facade/README.md | 12 +- .../iluwatar/facade/DwarvenCartOperator.java | 6 +- .../iluwatar/facade/DwarvenGoldDigger.java | 6 +- .../iluwatar/facade/DwarvenMineWorker.java | 6 +- .../iluwatar/facade/DwarvenTunnelDigger.java | 6 +- .../facade/DwarvenGoldmineFacadeTest.java | 10 +- .../java/com/iluwatar/factorykit/App.java | 6 +- .../com/iluwatar/factorykit/WeaponType.java | 5 +- .../factorykit/factorykit/FactoryKitTest.java | 10 +- .../java/com/iluwatar/factory/method/App.java | 18 ++- .../factory/method/ElfBlacksmith.java | 4 +- .../iluwatar/factory/method/ElfWeapon.java | 14 +-- .../factory/method/OrcBlacksmith.java | 6 +- .../iluwatar/factory/method/OrcWeapon.java | 14 +-- .../iluwatar/factory/method/WeaponType.java | 12 +- .../factory/method/FactoryMethodTest.java | 10 +- .../main/java/com/iluwatar/factory/App.java | 10 +- .../main/java/com/iluwatar/factory/Car.java | 4 +- .../java/com/iluwatar/factory/CarType.java | 27 ++--- .../com/iluwatar/factory/CarsFactory.java | 2 +- .../java/com/iluwatar/factory/Ferrari.java | 2 +- .../java/com/iluwatar/factory/AppTest.java | 8 +- .../com/iluwatar/factory/CarsFactoryTest.java | 10 +- .../java/com/iluwatar/featuretoggle/App.java | 6 +- .../PropertiesFeatureToggleVersion.java | 23 ++-- .../com/iluwatar/featuretoggle/user/User.java | 12 +- .../featuretoggle/user/UserGroup.java | 1 - .../PropertiesFeatureToggleVersionTest.java | 10 +- .../TieredFeatureToggleVersionTest.java | 10 +- .../featuretoggle/user/UserGroupTest.java | 10 +- .../main/java/com/iluwatar/filterer/App.java | 18 ++- .../SimpleProbabilisticThreatAwareSystem.java | 54 ++------- .../filterer/threat/SimpleProbableThreat.java | 36 ++---- .../filterer/threat/SimpleThreat.java | 47 +------- .../threat/SimpleThreatAwareSystem.java | 45 ++------ .../iluwatar/filterer/threat/ThreatType.java | 6 +- ...pleProbabilisticThreatAwareSystemTest.java | 10 +- .../threat/SimpleThreatAwareSystemTest.java | 2 +- .../com/iluwatar/fluentinterface/app/App.java | 6 +- .../lazy/LazyFluentIterable.java | 11 +- .../simple/SimpleFluentIterable.java | 11 +- .../fluentiterable/FluentIterableTest.java | 24 ++-- .../lazy/LazyFluentIterableTest.java | 2 +- .../simple/SimpleFluentIterableTest.java | 2 +- .../java/com/iluwatar/flux/action/Action.java | 12 +- .../com/iluwatar/flux/action/ActionType.java | 3 +- .../com/iluwatar/flux/action/Content.java | 11 +- .../com/iluwatar/flux/view/ContentView.java | 6 +- .../java/com/iluwatar/flux/view/MenuView.java | 6 +- .../com/iluwatar/flux/action/ContentTest.java | 2 +- .../iluwatar/flux/action/MenuItemTest.java | 2 +- .../flux/dispatcher/DispatcherTest.java | 5 +- .../iluwatar/flux/store/ContentStoreTest.java | 2 +- .../iluwatar/flux/store/MenuStoreTest.java | 2 +- .../iluwatar/flux/view/ContentViewTest.java | 2 +- .../com/iluwatar/flux/view/MenuViewTest.java | 4 +- flyweight/README.md | 6 +- .../com/iluwatar/flyweight/AlchemistShop.java | 6 +- .../com/iluwatar/flyweight/HealingPotion.java | 6 +- .../iluwatar/flyweight/HolyWaterPotion.java | 6 +- .../flyweight/InvisibilityPotion.java | 6 +- .../com/iluwatar/flyweight/PoisonPotion.java | 6 +- .../iluwatar/flyweight/StrengthPotion.java | 6 +- .../iluwatar/flyweight/AlchemistShopTest.java | 2 +- .../iluwatar/front/controller/ArcherView.java | 6 +- .../front/controller/CatapultView.java | 6 +- .../iluwatar/front/controller/ErrorView.java | 6 +- .../controller/ApplicationExceptionTest.java | 6 +- .../main/java/com/iluwatar/gameloop/App.java | 6 +- .../java/com/iluwatar/gameloop/AppTest.java | 6 +- .../gameloop/FixedStepGameLoopTest.java | 2 +- .../gameloop/FrameBasedGameLoopTest.java | 11 +- .../iluwatar/gameloop/GameControllerTest.java | 18 +-- .../com/iluwatar/gameloop/GameLoopTest.java | 27 +++-- .../gameloop/VariableStepGameLoopTest.java | 13 ++- .../guarded/suspension/GuardedQueue.java | 5 +- .../guarded/suspension/GuardedQueueTest.java | 4 +- .../com/iluwatar/halfsynchalfasync/App.java | 6 +- .../AsynchronousService.java | 6 +- .../AsynchronousServiceTest.java | 18 ++- .../administration/ConsoleAdministration.java | 6 +- .../database/MongoTicketRepository.java | 2 +- .../hexagonal/domain/LotteryNumbers.java | 35 +----- .../hexagonal/domain/LotteryTicket.java | 58 ++-------- .../domain/LotteryTicketCheckResult.java | 60 ++-------- .../hexagonal/domain/LotteryTicketId.java | 32 +----- .../hexagonal/domain/LotteryUtils.java | 2 +- .../hexagonal/domain/PlayerDetails.java | 98 ++-------------- .../hexagonal/eventlog/StdOutEventLog.java | 6 +- .../hexagonal/service/ConsoleLottery.java | 6 +- .../database/MongoTicketRepositoryTest.java | 2 +- .../filter/FilterManagerTest.java | 4 +- .../intercepting/filter/OrderTest.java | 10 +- .../java/com/iluwatar/interpreter/App.java | 6 +- .../main/java/com/iluwatar/iterator/App.java | 6 +- layers/README.md | 3 +- .../iluwatar/layers/view/CakeViewImpl.java | 6 +- .../java/com/iluwatar/layers/app/AppTest.java | 2 +- .../com/iluwatar/layers/entity/CakeTest.java | 30 +++-- .../exception/CakeBakingExceptionTest.java | 9 +- .../service/CakeBakingServiceImplTest.java | 24 ++-- .../layers/view/CakeViewImplTest.java | 22 ++-- .../java/com/iluwatar/lazy/loading/App.java | 6 +- .../java/com/iluwatar/lazy/loading/Heavy.java | 6 +- .../iluwatar/lazy/loading/HolderNaive.java | 6 +- .../lazy/loading/HolderThreadSafe.java | 6 +- .../iluwatar/lazy/loading/Java8Holder.java | 6 +- .../lazy/loading/AbstractHolderTest.java | 6 +- .../com/iluwatar/lazy/loading/AppTest.java | 2 +- .../leaderelection/AbstractInstance.java | 6 +- .../com/iluwatar/leaderelection/Message.java | 52 ++------- .../leaderelection/bully/BullyInstance.java | 6 +- .../leaderelection/ring/RingInstance.java | 7 +- .../iluwatar/leaderelection/MessageTest.java | 8 +- .../bully/BullyMessageManagerTest.java | 23 ++-- .../bully/BullyinstanceTest.java | 16 +-- .../leaderelection/ring/RingInstanceTest.java | 16 +-- .../ring/RingMessageManagerTest.java | 21 ++-- .../iluwatar/leaderfollowers/TaskHandler.java | 6 +- .../com/iluwatar/leaderfollowers/Worker.java | 27 +---- .../src/test/java/com/AppTest.java | 11 +- .../src/test/java/com/TaskHandlerTest.java | 14 +-- .../src/test/java/com/TaskSetTest.java | 28 ++--- lombok.config | 2 + marker/src/main/java/Guard.java | 5 +- marker/src/main/java/Thief.java | 5 +- marker/src/test/java/ThiefTest.java | 2 +- .../java/com/iluwatar/masterworker/App.java | 6 +- .../masterworker/ArrayUtilityMethods.java | 6 +- .../iluwatar/mediator/PartyMemberBase.java | 6 +- .../com/iluwatar/mediator/PartyImplTest.java | 6 +- .../main/java/com/iluwatar/memento/App.java | 6 +- .../java/com/iluwatar/memento/StarTest.java | 4 +- .../model/view/controller/GiantView.java | 6 +- .../view/controller/GiantControllerTest.java | 8 +- .../model/view/controller/GiantModelTest.java | 6 +- .../model/view/controller/GiantViewTest.java | 2 +- .../model/view/presenter/FileLoaderTest.java | 2 +- .../presenter/FileSelectorPresenterTest.java | 12 +- .../iluwatar/module/ConsoleLoggerModule.java | 6 +- .../com/iluwatar/module/FileLoggerModule.java | 6 +- .../iluwatar/module/FileLoggerModuleTest.java | 14 +-- .../src/main/java/com/iluwatar/monad/App.java | 6 +- .../test/java/com/iluwatar/monad/AppTest.java | 2 +- .../java/com/iluwatar/monad/MonadTest.java | 6 +- .../java/com/iluwatar/monostate/Server.java | 6 +- .../java/com/iluwatar/monostate/AppTest.java | 2 +- .../iluwatar/monostate/LoadBalancerTest.java | 4 +- .../main/java/com/iluwatar/multiton/App.java | 6 +- .../java/com/iluwatar/multiton/AppTest.java | 2 +- .../com/iluwatar/multiton/NazgulEnumTest.java | 6 +- .../com/iluwatar/multiton/NazgulTest.java | 6 +- .../src/main/java/com/iluwatar/mute/App.java | 6 +- .../dom/modules/simple/SimpleObjectTest.java | 2 +- .../dom/modules/simple/SimpleObjectsTest.java | 7 +- .../domainapp/integtests/specs/RunSpecs.java | 2 +- .../modules/simple/SimpleObjectIntegTest.java | 12 +- .../simple/SimpleObjectsIntegTest.java | 1 + .../domainapp/webapp/SimpleApplication.java | 6 +- null-object/README.md | 3 +- .../com/iluwatar/nullobject/NodeImpl.java | 6 +- .../com/iluwatar/nullobject/TreeTest.java | 8 +- .../test/RoyaltyObjectMotherTest.java | 21 ++-- .../java/com/iluwatar/object/pool/App.java | 6 +- .../com/iluwatar/object/pool/AppTest.java | 2 +- .../object/pool/OliphauntPoolTest.java | 17 +-- observer/README.md | 9 +- .../main/java/com/iluwatar/observer/App.java | 6 +- .../java/com/iluwatar/observer/Hobbits.java | 8 +- .../main/java/com/iluwatar/observer/Orcs.java | 6 +- .../java/com/iluwatar/observer/Weather.java | 6 +- .../iluwatar/observer/generic/GHobbits.java | 6 +- .../com/iluwatar/observer/generic/GOrcs.java | 6 +- .../iluwatar/observer/generic/GWeather.java | 6 +- .../java/com/iluwatar/observer/AppTest.java | 6 +- .../com/iluwatar/observer/HobbitsTest.java | 8 +- .../java/com/iluwatar/observer/OrcsTest.java | 8 +- .../com/iluwatar/observer/WeatherTest.java | 15 ++- .../observer/generic/GHobbitsTest.java | 8 +- .../observer/generic/GWeatherTest.java | 15 ++- .../iluwatar/observer/generic/OrcsTest.java | 8 +- .../java/com/iluwatar/pageobject/App.java | 6 +- .../pageobject/AlbumListPageTest.java | 3 +- .../iluwatar/pageobject/AlbumPageTest.java | 5 +- .../iluwatar/pageobject/LoginPageTest.java | 3 +- .../iluwatar/pageobject/AlbumListPage.java | 6 +- .../com/iluwatar/pageobject/AlbumPage.java | 6 +- .../com/iluwatar/pageobject/LoginPage.java | 6 +- .../pageobject/AlbumListPageTest.java | 2 +- .../iluwatar/pageobject/AlbumPageTest.java | 4 +- .../iluwatar/pageobject/LoginPageTest.java | 2 +- .../com/iluwatar/partialresponse/App.java | 5 +- .../com/iluwatar/pipeline/PipelineTest.java | 2 +- .../com/iluwatar/poison/pill/Consumer.java | 6 +- .../com/iluwatar/poison/pill/Producer.java | 6 +- .../iluwatar/poison/pill/ConsumerTest.java | 2 +- .../poison/pill/PoisonMessageTest.java | 10 +- .../iluwatar/poison/pill/ProducerTest.java | 4 +- .../poison/pill/SimpleMessageTest.java | 4 +- pom.xml | 16 +-- priority-queue/README.md | 3 +- .../priority/queue/PriorityMessageQueue.java | 6 +- .../com/iluwatar/priority/queue/Worker.java | 6 +- .../queue/PriorityMessageQueueTest.java | 8 +- .../priority/queue/QueueManagerTest.java | 4 +- private-class-data/README.md | 4 +- .../privateclassdata/ImmutableStew.java | 6 +- .../com/iluwatar/privateclassdata/Stew.java | 6 +- .../privateclassdata/ImmutableStewTest.java | 4 +- .../iluwatar/privateclassdata/StewTest.java | 2 +- .../com/iluwatar/producer/consumer/App.java | 7 +- .../iluwatar/producer/consumer/Consumer.java | 6 +- .../producer/consumer/ConsumerTest.java | 2 +- .../producer/consumer/ProducerTest.java | 2 +- .../main/java/com/iluwatar/promise/App.java | 6 +- .../java/com/iluwatar/promise/Utility.java | 6 +- .../com/iluwatar/promise/PromiseTest.java | 22 ++-- .../main/java/com/iluwatar/property/App.java | 6 +- .../com/iluwatar/property/CharacterTest.java | 10 +- .../main/java/com/iluwatar/prototype/App.java | 6 +- .../java/com/iluwatar/prototype/Beast.java | 19 +-- .../java/com/iluwatar/prototype/ElfBeast.java | 27 +---- .../java/com/iluwatar/prototype/ElfMage.java | 26 +---- .../com/iluwatar/prototype/ElfWarlord.java | 21 +--- .../iluwatar/prototype/HeroFactoryImpl.java | 12 +- .../java/com/iluwatar/prototype/Mage.java | 19 +-- .../java/com/iluwatar/prototype/OrcBeast.java | 28 +---- .../java/com/iluwatar/prototype/OrcMage.java | 26 +---- .../com/iluwatar/prototype/OrcWarlord.java | 26 +---- .../java/com/iluwatar/prototype/Warlord.java | 19 +-- .../java/com/iluwatar/prototype/AppTest.java | 4 +- .../com/iluwatar/prototype/PrototypeTest.java | 4 +- proxy/README.md | 6 +- .../java/com/iluwatar/proxy/IvoryTower.java | 6 +- .../main/java/com/iluwatar/proxy/Wizard.java | 7 +- .../com/iluwatar/proxy/WizardTowerProxy.java | 6 +- .../com/iluwatar/proxy/IvoryTowerTest.java | 4 +- .../java/com/iluwatar/proxy/WizardTest.java | 4 +- .../iluwatar/proxy/WizardTowerProxyTest.java | 4 +- .../proxy/utils/InMemoryAppender.java | 2 +- .../com/iluwatar/queue/load/leveling/App.java | 6 +- .../iluwatar/queue/load/leveling/Message.java | 15 +-- .../queue/load/leveling/MessageQueue.java | 6 +- .../queue/load/leveling/ServiceExecutor.java | 6 +- .../queue/load/leveling/TaskGenerator.java | 7 +- .../queue/load/leveling/MessageQueueTest.java | 4 +- .../queue/load/leveling/MessageTest.java | 4 +- .../com/iluwatar/reactor/app/AppClient.java | 6 +- .../iluwatar/reactor/app/LoggingHandler.java | 6 +- .../reactor/framework/NioDatagramChannel.java | 6 +- .../reactor/framework/NioReactor.java | 6 +- .../framework/NioServerSocketChannel.java | 6 +- .../com/iluwatar/reactor/app/ReactorTest.java | 17 ++- .../com/iluwatar/reader/writer/lock/App.java | 6 +- .../iluwatar/reader/writer/lock/Reader.java | 6 +- .../reader/writer/lock/ReaderWriterLock.java | 6 +- .../iluwatar/reader/writer/lock/Writer.java | 6 +- .../writer/lock/ReaderAndWriterTest.java | 6 +- .../reader/writer/lock/ReaderTest.java | 4 +- .../reader/writer/lock/WriterTest.java | 4 +- .../registry/CustomerRegistryTest.java | 3 +- repository/pom.xml | 5 - .../java/com/iluwatar/repository/App.java | 6 +- .../com/iluwatar/repository/AppConfig.java | 6 +- .../java/com/iluwatar/repository/Person.java | 97 ++-------------- .../AnnotationBasedRepositoryTest.java | 14 +-- .../iluwatar/repository/AppConfigTest.java | 7 +- .../iluwatar/repository/RepositoryTest.java | 14 +-- .../acquisition/is/initialization/App.java | 6 +- .../is/initialization/SlidingDoor.java | 6 +- .../is/initialization/TreasureChest.java | 6 +- .../is/initialization/ClosableTest.java | 4 +- .../com/iluwatar/retry/FindCustomerTest.java | 10 +- .../retry/RetryExponentialBackoffTest.java | 8 +- .../java/com/iluwatar/retry/RetryTest.java | 9 +- .../roleobject/ApplicationRoleObject.java | 16 ++- .../iluwatar/roleobject/CustomerCoreTest.java | 3 - .../saga/choreography/SagaApplication.java | 5 +- .../saga/orchestration/SagaApplication.java | 5 +- .../saga/orchestration/SagaOrchestrator.java | 5 +- .../choreography/SagaApplicationTest.java | 3 +- .../choreography/SagaChoreographyTest.java | 1 - .../com/iluwatar/separatedinterface/App.java | 6 +- .../invoice/InvoiceGeneratorTest.java | 11 +- .../taxes/DomesticTaxCalculatorTest.java | 8 +- .../taxes/ForeignTaxCalculatorTest.java | 8 +- .../main/java/com/iluwatar/servant/App.java | 6 +- .../java/com/iluwatar/servant/KingTest.java | 18 +-- .../java/com/iluwatar/servant/QueenTest.java | 10 +- .../com/iluwatar/servant/ServantTest.java | 10 +- .../serverless/baas/model/Address.java | 106 +++-------------- .../serverless/baas/model/Person.java | 85 ++------------ .../iluwatar/serverless/faas/LambdaInfo.java | 108 ++---------------- .../com/iluwatar/servicelayer/app/App.java | 6 +- .../servicelayer/hibernate/HibernateUtil.java | 6 +- .../servicelayer/common/BaseDaoTest.java | 10 +- .../magic/MagicServiceImplTest.java | 12 +- .../servicelayer/spell/SpellDaoImplTest.java | 4 +- .../spellbook/SpellbookDaoImplTest.java | 4 +- .../wizard/WizardDaoImplTest.java | 4 +- .../iluwatar/servicelocator/InitContext.java | 6 +- .../iluwatar/servicelocator/ServiceCache.java | 6 +- .../iluwatar/servicelocator/ServiceImpl.java | 6 +- .../servicelocator/ServiceLocatorTest.java | 6 +- .../main/java/com/iluwatar/sharding/Data.java | 4 +- .../iluwatar/sharding/HashShardManager.java | 6 +- .../iluwatar/sharding/LookupShardManager.java | 8 +- .../iluwatar/sharding/RangeShardManager.java | 6 +- .../com/iluwatar/sharding/ShardManager.java | 7 +- .../iluwatar/sharding/ShardManagerTest.java | 2 +- .../main/java/com/iluwatar/singleton/App.java | 6 +- .../ThreadSafeDoubleCheckLocking.java | 2 +- .../com/iluwatar/singleton/SingletonTest.java | 6 +- .../com/iluwatar/spatialpartition/App.java | 5 +- .../com/iluwatar/spatialpartition/Bubble.java | 5 +- .../specialcase/InsufficientFunds.java | 6 +- .../com/iluwatar/specification/app/App.java | 6 +- .../iluwatar/specification/property/Mass.java | 10 +- .../specification/creature/CreatureTest.java | 20 ++-- .../selector/ColorSelectorTest.java | 4 +- .../selector/CompositeSelectorsTest.java | 8 +- .../selector/MassSelectorTest.java | 2 +- .../selector/MovementSelectorTest.java | 2 +- .../selector/SizeSelectorTest.java | 2 +- state/README.md | 6 +- .../java/com/iluwatar/state/AngryState.java | 6 +- .../com/iluwatar/state/PeacefulState.java | 6 +- .../java/com/iluwatar/state/MammothTest.java | 4 +- .../java/com/iluwatar/stepbuilder/App.java | 6 +- .../stepbuilder/CharacterStepBuilderTest.java | 13 +-- .../iluwatar/strangler/HalfArithmetic.java | 7 +- .../com/iluwatar/strangler/HalfSource.java | 7 +- .../com/iluwatar/strangler/NewArithmetic.java | 9 +- .../com/iluwatar/strangler/NewSource.java | 7 +- .../com/iluwatar/strangler/OldArithmetic.java | 7 +- .../com/iluwatar/strangler/OldSource.java | 5 +- .../strangler/HalfArithmeticTest.java | 11 +- .../iluwatar/strangler/HalfSourceTest.java | 9 +- .../iluwatar/strangler/NewArithmeticTest.java | 11 +- .../com/iluwatar/strangler/NewSourceTest.java | 10 +- .../iluwatar/strangler/OldArithmeticTest.java | 8 +- .../com/iluwatar/strangler/OldSourceTest.java | 8 +- strategy/README.md | 9 +- .../main/java/com/iluwatar/strategy/App.java | 10 +- .../com/iluwatar/strategy/LambdaStrategy.java | 6 +- .../com/iluwatar/strategy/MeleeStrategy.java | 6 +- .../iluwatar/strategy/ProjectileStrategy.java | 6 +- .../com/iluwatar/strategy/SpellStrategy.java | 6 +- .../iluwatar/strategy/DragonSlayerTest.java | 4 +- .../com/iluwatar/subclasssandbox/App.java | 6 +- .../subclasssandbox/GroundDiveTest.java | 5 +- .../subclasssandbox/SkyLaunchTest.java | 4 +- template-method/README.md | 9 +- .../templatemethod/HitAndRunMethod.java | 6 +- .../templatemethod/StealingMethod.java | 6 +- .../iluwatar/templatemethod/SubtleMethod.java | 6 +- .../templatemethod/HalflingThiefTest.java | 4 +- .../templatemethod/StealingMethodTest.java | 8 +- thread-pool/README.md | 3 +- .../java/com/iluwatar/threadpool/App.java | 6 +- .../java/com/iluwatar/threadpool/Worker.java | 6 +- .../com/iluwatar/threadpool/TaskTest.java | 6 +- .../com/iluwatar/threadpool/WorkerTest.java | 2 +- throttling/README.md | 3 +- .../java/com/iluwatar/throttling/App.java | 6 +- .../com/iluwatar/throttling/CallsCount.java | 6 +- .../iluwatar/throttling/B2BServiceTest.java | 2 +- .../com/iluwatar/throttling/TenantTest.java | 2 +- tls/src/main/java/com/iluwatar/tls/App.java | 6 +- .../com/iluwatar/tls/DateFormatCallable.java | 7 +- .../iluwatar/tls/DateFormatCallableTest.java | 6 +- ...FormatCallableTestIncorrectDateFormat.java | 6 +- .../DateFormatCallableTestMultiThread.java | 6 +- .../java/com/iluwatar/tolerantreader/App.java | 8 +- .../iluwatar/tolerantreader/RainbowFish.java | 30 +---- .../tolerantreader/RainbowFishSerializer.java | 14 +-- .../tolerantreader/RainbowFishV2.java | 14 +-- .../tolerantreader/RainbowFishV2Test.java | 6 +- .../iluwatar/trampoline/TrampolineApp.java | 10 +- .../trampoline/TrampolineAppTest.java | 5 +- transaction-script/README.md | 2 +- .../com/iluwatar/transactionscript/App.java | 2 +- .../com/iluwatar/transactionscript/Hotel.java | 7 +- .../transactionscript/HotelDaoImpl.java | 5 +- .../com/iluwatar/transactionscript/Room.java | 98 ++-------------- .../transactionscript/HotelDaoImplTest.java | 45 ++++---- .../iluwatar/transactionscript/HotelTest.java | 27 ++--- .../iluwatar/transactionscript/RoomTest.java | 26 ++--- .../main/java/com/iluwatar/twin/BallItem.java | 12 +- .../java/com/iluwatar/twin/BallThread.java | 12 +- .../main/java/com/iluwatar/twin/GameItem.java | 6 +- .../java/com/iluwatar/twin/BallItemTest.java | 6 +- .../com/iluwatar/twin/BallThreadTest.java | 8 +- .../java/com/iluwatar/typeobject/App.java | 7 +- .../java/com/iluwatar/typeobject/Candy.java | 18 ++- .../com/iluwatar/typeobject/CandyGame.java | 6 +- .../java/com/iluwatar/typeobject/Cell.java | 16 +-- unit-of-work/README.md | 2 +- .../java/com/iluwatar/unitofwork/Student.java | 30 +---- .../unitofwork/StudentRepository.java | 18 +-- .../com/iluwatar/unitofwork/UnitActions.java | 13 +-- .../java/com/iluwatar/updatemethod/App.java | 6 +- .../com/iluwatar/updatemethod/Entity.java | 11 +- .../com/iluwatar/updatemethod/Skeleton.java | 6 +- .../com/iluwatar/updatemethod/Statue.java | 2 +- .../java/com/iluwatar/updatemethod/World.java | 9 +- .../com/iluwatar/updatemethod/AppTest.java | 4 +- .../iluwatar/updatemethod/SkeletonTest.java | 1 - .../java/com/iluwatar/value/object/App.java | 6 +- .../com/iluwatar/value/object/HeroStat.java | 72 ++---------- .../iluwatar/value/object/HeroStatTest.java | 10 +- visitor/README.md | 9 +- .../iluwatar/visitor/CommanderVisitor.java | 6 +- .../com/iluwatar/visitor/SergeantVisitor.java | 6 +- .../com/iluwatar/visitor/SoldierVisitor.java | 6 +- .../java/com/iluwatar/visitor/UnitTest.java | 2 +- .../com/iluwatar/visitor/VisitorTest.java | 6 +- zh/adapter/README.md | 5 +- zh/chain/README.md | 2 +- zh/decorator/README.md | 6 +- zh/facade/README.md | 12 +- zh/observer/README.md | 9 +- zh/strategy/README.md | 9 +- 681 files changed, 2468 insertions(+), 4962 deletions(-) create mode 100644 lombok.config 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 a14d8f292244..59ca86135ed3 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.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 @@ *

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 9fad18d1a5b0..c301b85eb418 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 @@ private static class DocumentImplementation extends AbstractDocument { 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 void shouldRetrieveChildren() { } @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 bafdb72471f1..a0e129083b23 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 void shouldConstructPart() { } @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 db464a231d72..d208002a721a 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 @@ * 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 static void main(String[] args) { @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 9326c50969de..f78e678755fa 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 582862b307e4..3136ee29fcf2 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 @@ /** * 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 void king() { } @Test - public void castle() { + void castle() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -66,7 +66,7 @@ public void castle() { } @Test - public void army() { + void army() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -81,7 +81,7 @@ public void army() { } @Test - public void createElfKingdom() { + void createElfKingdom() { app.createKingdom(Kingdom.FactoryMaker.KingdomType.ELF); final var kingdom = app.getKingdom(); @@ -97,7 +97,7 @@ public void createElfKingdom() { } @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 5313fd6bc720..bfe7f6646b3b 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 3f570d2128d2..1f465967f053 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 db10bfd2cc0a..3e30258f5844 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 6486c7a5c522..01e7e7aca08b 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 99424eb325a5..b41fc956cd62 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 @@ /** * 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 5473e95ef0b7..d2ea55809aa3 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 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; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.groups.Tuple.tuple; +import static uk.org.lidalia.slf4jext.Level.INFO; + /** * 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 a2ded206fdcb..eaf9fb152cc2 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 923632228bbd..4373fe818fa5 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 org.junit.jupiter.api.Test; + 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.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 aef4cdb69c1c..65ffa4fc66c0 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 9e6c9f8169cd..036792e8c4c4 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 a6af7604074a..38866dc33adc 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 84035d62e136..73c7dd60eae3 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 @@ */ 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 c8291400d746..fc55cd69e419 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 void setup() { * 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 c467a25d0019..209187bd79fb 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 @@ 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 @@ @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 ca9af3de17b3..f451728b9e0d 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 4164a5e6dbb1..2fcad382e289 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.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 String getProductTitle() { 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 6ed566ac4322..cc78d2d8d055 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.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 Integer getProductInventories() { 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 f8ff2173e7cd..2ffa9cd42c53 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 void setup() { * 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 a8b60ffb8e4b..4849e4228862 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 d3e07c552d59..909392d1d163 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 e408358608d6..0e40507cc29d 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 5d278dd762d8..9a85f1d5a5f5 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 dfba18649bbc..9010c44b6a93 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 dde44bd3f7e5..0ec258016021 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 c2524ad470ef..18a2d2214d0b 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 @@ 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 long doRemoteFunction(int value) { 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 64cb6eaac96f..e7ee06af989f 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 @@ */ 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 771da860260f..bd8481d001a9 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 @@ 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 @@ private long checkLatency(int value) { 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 @@ private long safeCall(int value) { } 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 6d0cde3d3491..df060b5627c2 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 DesktopProduct getProductDesktop() { * * @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 e4660c31a6d9..0b0d3cde3f07 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 2ec726693ed1..b98d06bf2004 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 String getImagePath() { 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 e59af3693944..5fc395c90c52 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 801b9a3b67c5..f5a7b8b5db26 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 String getPrice() { 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 5de617fc63a3..94e76583ef51 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 @@ /** * Test API Gateway Pattern */ -public class ApiGatewayTest { +class ApiGatewayTest { @InjectMocks private ApiGateway apiGateway; @@ -55,7 +55,7 @@ public void setup() { * 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 void testGetProductDesktop() { * 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 232c7004c533..44828b269d5e 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 d1a6caf914b4..4d455a94ffc1 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 7502e0c24d67..045749c8d8d5 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 4fcc69ebcc9d..b727d3890ac3 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 6b3cb4058b6e..23efdd71e90d 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 317848ae0221..53b002f0adc4 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 13959f1e3d83..04902a94c313 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 @@ * @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 7d66724b50f0..68b5eb44a060 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 @@ * 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 static void main(String... args) { 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 401aa5feb5c5..1da2b02043f4 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 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 void wash() { 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 90ad0d9b46a1..f652a841fbca 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 @@ * 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 218d65b5459d..639d53f5869c 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 @@ * 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 c2300c03dd74..436b11a701a3 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 b535c403c067..834a2c54aa05 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 286272aab70c..746b827f6d41 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 f669c5516763..ef9764ecafe0 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 950e018cc238..e62dd8ceb7ff 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 @@ * 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 static void main(String[] args) { .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 7f1dc5164ba8..0ed7be12e1ff 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 9437a4cd5275..361bd5556581 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 @@ */ 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 882bdd7c5782..9342031f6475 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 2f32066e1542..1c9ccddfa584 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 f2dfc49f6198..d1255bf5ff08 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 @@ public class BusinessDelegate { private BusinessLookup lookupService; - private BusinessService businessService; private ServiceType serviceType; public void setLookupService(BusinessLookup businessLookup) { @@ -41,7 +40,7 @@ public void setServiceType(ServiceType serviceType) { } 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 dabe9664c23a..07ad6342e7b6 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 BusinessService getBusinessService(ServiceType serviceType) { 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 4c90c13773d5..6813dfec1502 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 1f218a4028b5..932c5038d8e3 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 68e1bbf72f47..503f307975fe 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 @@ */ 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 b474ff4a637b..b59759328662 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 @@ * 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 void setup() { 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 void setup() { * 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 d3754cf2c328..4d41fe6b9e15 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 @@ * 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 ceec9b464b8e..52b6e325a00c 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 c05b159db8a0..526a8a37787a 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 void execute(int[] bytecode) { } } - public Stack getStack() { - return stack; - } - public void setHealth(int wizard, int amount) { wizards[wizard].setHealth(amount); } @@ -135,8 +133,4 @@ public int getWisdom(int wizard) { 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 fb258cc13152..4db97f1194ee 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 void spawnParticles() { 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 5ddf57a6bbdb..1fbe72014118 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 void testLiteral() { } @Test - public void testSetHealth() { + void testSetHealth() { var wizardNumber = 0; var bytecode = new int[5]; bytecode[0] = LITERAL.getIntValue(); @@ -64,7 +64,7 @@ public void testSetHealth() { } @Test - public void testSetAgility() { + void testSetAgility() { var wizardNumber = 0; var bytecode = new int[5]; bytecode[0] = LITERAL.getIntValue(); @@ -80,7 +80,7 @@ public void testSetAgility() { } @Test - public void testSetWisdom() { + void testSetWisdom() { var wizardNumber = 0; var bytecode = new int[5]; bytecode[0] = LITERAL.getIntValue(); @@ -96,7 +96,7 @@ public void testSetWisdom() { } @Test - public void testGetHealth() { + void testGetHealth() { var wizardNumber = 0; var bytecode = new int[8]; bytecode[0] = LITERAL.getIntValue(); @@ -115,7 +115,7 @@ public void testGetHealth() { } @Test - public void testPlaySound() { + void testPlaySound() { var wizardNumber = 0; var bytecode = new int[3]; bytecode[0] = LITERAL.getIntValue(); @@ -130,7 +130,7 @@ public void testPlaySound() { } @Test - public void testSpawnParticles() { + void testSpawnParticles() { var wizardNumber = 0; var bytecode = new int[3]; bytecode[0] = LITERAL.getIntValue(); @@ -145,7 +145,7 @@ public void testSpawnParticles() { } @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 2b4f0badabfb..89486a8f76ee 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 void testEmptyInstruction() { } @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 b8b226550c6e..f5df323aa9de 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 @@ * @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 c6767ed2e9c8..156f024d4da3 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 @@ 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 3bd948070d62..0a42cf8129b9 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 88aeb2318bc8..a320e35dc240 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.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 @@ * 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 7fbccbca305a..3681a931b4d1 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 34543f0bbda8..2f45df0c0cff 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 8f504bb03ce7..9bb4eb748e4b 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 0c380cd2207c..a56457a17465 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 300acba24c45..80c42a5a6901 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 8b0508833c56..bedd64cff4a2 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 16641dfb4672..d019dd08cdbe 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 static void main(String[] args) { 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 c174e22f2e99..ec3f52d99843 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 3742f3b0237b..9ef796bac047 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 @@ */ 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 8da944340e35..285f5a772c87 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 @@ * * @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 b3a360b33f5c..85fd5e00fc20 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 898ac2c26727..1510319faf5d 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 @@ * 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 b8b031dc8138..9fe05c7d826e 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 57408a2369ad..77c9c9414d33 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 @@ /** * 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 void testDelayedRemoteResponseSuccess() { } @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 void testDelayedRemoteResponseFailure() { } @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 218248900cb7..4a3b2b85c407 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 @@ * 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 52a3aabd96d1..eada9987a430 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 72a06a0a9694..6a58991c9875 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 @@ * 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 fd438f8ec757..8b508d6edeed 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; - } + private final List 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 bc05ea98f3f9..1567d3ff26d0 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 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 void testGetGroupingOfCarsByCategory() { } @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 d13550bf1a82..53404ecab9d3 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 @@ * {@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 static void main(String[] args) { 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 2400496dd9a5..705fab9ae061 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 bbd6e7f1ec9b..d87c71e2bdbf 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 @@ void contains() { 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 688ebdf472ec..4c5a6a6145a6 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 08783679b3e2..204aca5fb983 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 446a80ab3beb..070524f82b52 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 50d3c0122508..940bc020d961 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 0a49ee6b2b56..4885a69c2aa2 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 5ff3a6d9f4a9..4ea84e8c341b 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 @@ 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 e9f362142a7b..d21982a0776a 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 @@ * 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 097b92bae022..59cdc9b22440 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 @@ private void sendPaymentRequest(Order order) { 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 @@ private void sendPaymentRequest(Order order) { 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 @@ private void sendPaymentRequest(Order order) { 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 @@ private void handlePaymentPossibleErrorMsgErrorIssue(Order order, Order o) { } 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 @@ private void doTasksInQueue() throws Exception { 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 ff2909237bb9..32e92a6bc0d9 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 @@ 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 @@ enum MessageSent { 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 f43821913aaa..f7592105cab4 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 92baa6da3631..8e028f947afb 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 @@ 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 42c208d2bd5d..bf7a15aa48b3 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 ac5154d1bd3b..90219e8c2a83 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 @@ 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 @@ * 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 655c301e583c..4223b4e7712f 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 4b74c5f17db2..9b5d00328e40 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 @@ 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 @@ 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 69c7a0490a86..4c6efbe9acd9 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 @@ * * @param is the type of object the queue will hold. */ - public class Queue { private Node front; @@ -47,15 +46,6 @@ static class Node { } } - /** - * 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 7056e7197ef2..70284426830a 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 77807456c82d..bd8cd63f9299 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 @@ 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 c8c70c2d8e1c..f1ed4ccec8ad 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 @@ 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 @@ 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 56f2c747e398..0660557ca8df 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 @@ * *

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 322faf1eb616..ad2cbd1c313c 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 65dc29958f5a..e36dfed01699 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 void setUp() { * 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 void tearDown() { * 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 void testMessageFromOrcs() { * 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 c68b3b5e2146..dc3eab53aca9 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 @@ * 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 static void main(String[] args) { 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 d8c1108d5c71..a40650faf647 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.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 @@ * @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 1ead0c55cebd..f8b528a564f5 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 bf1af503605f..0717c4952adf 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 79c8740328df..d7358d8a4320 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 @@ /** * 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 void testConversionsStartingFromDomain() { * 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 void testConversionsStartingFromDto() { * 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 void testCustomConverter() { * 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 5be436e6aa65..1d8f6934878b 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.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 @@ * 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 a904cb60814e..aafc4efb1b09 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.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 Author(String username, String name, String email) { 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 d3ac74e22a63..c885ffb7a846 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.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 Book(String title, double price, Author author) { 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 91ddfce5ae51..46983b8c9ac3 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 fb1f6200c9e5..5088e98fe8ff 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 3c3e2ce14833..5ae5358613b8 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 @@ private static SessionFactory buildSessionFactory() { 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 64d4a38e86ef..51c182df6d89 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 @@ /** * 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 static void initializeAndPopulateDatabase() { } @Test - public void testGetAuthorByUsername() { + void testGetAuthorByUsername() { var author = queryService.getAuthorByUsername("username1"); assertEquals("username1", author.getUsername()); assertEquals("name1", author.getName()); @@ -75,7 +75,7 @@ public void testGetAuthorByUsername() { } @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 void testGetUpdatedAuthorByUsername() { } @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 void testGetAuthorBooks() { } @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 29e64a74f650..9e2d6992a88d 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 4de690ed3c84..5c1d36923803 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 @@ 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 @@ * 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 @@ private static DataSource createDataSource() { 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 3cf6bd4a96ca..d5c0c583efe3 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 811ef5a55033..6065b32bba46 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.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 ccfcba142a89..492325153d37 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 @@ /** * 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 void notEqualWithDifferentId() { } @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 7375ebd64fc3..1c78fbba0f9a 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 @@ /** * 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 void setUp() throws Exception { * 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 void addingShouldResultInSuccess() throws Exception { } @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 void deletionShouldBeFailureAndNotAffectExistingCustomers() throws Except } @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 void updationShouldBeFailureAndNotAffectExistingCustomers() throws Except } @Test - public void retrieveShouldReturnNoCustomer() throws Exception { + void retrieveShouldReturnNoCustomer() throws Exception { assertFalse(dao.getById(getNonExistingCustomerId()).isPresent()); } } @@ -137,10 +137,10 @@ public void retrieveShouldReturnNoCustomer() throws Exception { * 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 void addingShouldResultInFailureAndNotAffectExistingCustomers() throws Ex } @Test - public void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { + void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { var result = dao.delete(existingCustomer); assertTrue(result); @@ -159,7 +159,7 @@ public void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exc } @Test - public void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws + void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws Exception { final var newFirstname = "Bernard"; final var newLastname = "Montgomery"; @@ -180,7 +180,7 @@ public void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdate * unavailable. */ @Nested - public class ConnectivityIssue { + class ConnectivityIssue { private static final String EXCEPTION_CAUSE = "Connection not available"; @@ -204,21 +204,21 @@ private DataSource mockedDatasource() throws SQLException { } @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 void updatingACustomerFailsWithFeedbackToTheClient() { } @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 void retrievingAllCustomersFailsWithExceptionAsFeedbackToClient() { * @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 @@ private void assertCustomerCountIs(int count) throws Exception { } } - /** * 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 d4cc793037d2..9ff9e6a85cdd 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 @@ /** * 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 void setUp() { * 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 void addingShouldResultInSuccess() throws Exception { } @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 void deletionShouldBeFailureAndNotAffectExistingCustomers() throws Except } @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 void updationShouldBeFailureAndNotAffectExistingCustomers() throws Except } @Test - public void retrieveShouldReturnNoCustomer() throws Exception { + void retrieveShouldReturnNoCustomer() throws Exception { assertFalse(dao.getById(getNonExistingCustomerId()).isPresent()); } } @@ -99,10 +99,10 @@ public void retrieveShouldReturnNoCustomer() throws Exception { * 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 void addingShouldResultInFailureAndNotAffectExistingCustomers() throws Ex } @Test - public void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { + void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exception { var result = dao.delete(CUSTOMER); assertTrue(result); @@ -120,7 +120,7 @@ public void deletionShouldBeSuccessAndCustomerShouldBeNonAccessible() throws Exc } @Test - public void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws + void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdatedInformation() throws Exception { final var newFirstname = "Bernard"; final var newLastname = "Montgomery"; @@ -135,7 +135,7 @@ public void updationShouldBeSuccessAndAccessingTheSameCustomerShouldReturnUpdate } @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 b9d57e0912ee..6355b5682354 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 90d996291783..64efbed9f06b 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 @@ of this software and associated documentation files (the "Software"), to deal 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 26173f4175c4..f79eab084b7f 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 @@ 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 0b2b2d9b67c5..5225061c18d0 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 @@ 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 1d415135e68c..a08db1ead22f 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 @@ 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 26ed6b24f5c3..b06045ddc139 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.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 void accept(final DataType data) { } 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 65ba8774505b..03804a46b3b5 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.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 void accept(final DataType data) { 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 3f8aa88b0647..9278c965bb53 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 @@ * * @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 void publishedEventIsReceivedBySubscribedMember() { } @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 c6f5b3b40ae1..67ff8ca6b0ed 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 @@ * * @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 void collectMessageFromMessageData() { } @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 b7be285eebbe..8f59b1a147be 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 @@ * * @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 void statusRecordsTheStartTime() { } @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 void statusRecordsTheStopTime() { } @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 0930cae56cb7..0325130a881c 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 @@ *

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 340b021f9ac6..e7495424c8c0 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 @@ 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 @@ * *

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 58d4c5784adc..6f895f70936b 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 4636336c2abd..fa6f5bf1d81e 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 5415c4281e7b..696414469f9c 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 034dd2db1d89..58b67d524aea 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 @@ 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 dc70ba0cc10d..32885da6190d 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 @@ 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 ffc1b4303ab6..804a8266795d 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 @@ 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 7be4e9d44cfb..a0d710139458 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 e1aa6ecb6aca..6f4e3a5f0f74 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 @@ * *

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 static void main(final String... args) { /* 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 static void main(final String... args) { /* 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 ec9de8090369..cd1fb888e052 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 25ab47eb1f65..cc953999ce50 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 @@ * 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 7153ae790ca9..b7b82a4c3644 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 @@ /** * 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 ae9aadf32e91..aa8f192c4dc7 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 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 @@ * 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 6f653de531b2..2fee00d307fa 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 2c5b886630e6..c9e4fa261806 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 5cd12868f985..c170593afad4 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 @@ 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 1a9e7eb849b0..e106cf0028e2 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 @@ /** * 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 void shouldGetAllCustomers() { } @Test - public void shouldSaveCustomer() { + void shouldSaveCustomer() { var customer = new CustomerDto("1", "Rita", "Reynolds"); var customerResource = new CustomerResource(new ArrayList<>()); @@ -63,7 +64,7 @@ public void shouldSaveCustomer() { } @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 7ac0bb94c7c8..ae1287b549cd 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 c74b52c83a75..90ea972f692b 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 @@ * 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 ab7fcbe538d8..96a6d4b30d83 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 a9bf2bdadcf5..cd382bce7e2d 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 1bb677a4ea2f..e576b86c1719 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 @@ /** * 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 2d98a120d383..8a2fa1999767 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 @@ /** * 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 @@ private class InMemoryAppender extends AppenderBase { private final List log = new LinkedList<>(); - public InMemoryAppender(Class clazz) { + InMemoryAppender(Class clazz) { ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); start(); } @@ -80,11 +80,11 @@ protected void append(ILoggingEvent eventObject) { 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 025dbe92b1bc..3084b1d4c3fd 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 @@ * * @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 ef0026cb89aa..cfa8ecb72e96 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 @@ * * @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 0e9af12849d8..871537ce8872 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 @@ * * @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 093549428065..29ec7a54474e 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 @@ /** * 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 void testCanonPrinter() throws Exception { } @Test - public void testHpPrinter() throws Exception { + void testHpPrinter() throws Exception { var printerController = new PrinterController(new HpPrinter()); printerController.print(MESSAGE); @@ -74,7 +74,7 @@ public void testHpPrinter() throws Exception { } @Test - public void testEpsonPrinter() throws Exception { + void testEpsonPrinter() throws Exception { var printerController = new PrinterController(new EpsonPrinter()); printerController.print(MESSAGE); @@ -84,7 +84,7 @@ public void testEpsonPrinter() throws Exception { /** * 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 e5bf933878eb..e03f492c6152 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 edbe039b9a3e..453af18b1f97 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 46758a718659..2912f927aae1 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 191655e79094..72adf397256d 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 d985d5975dfe..3d53c00741a7 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 @@ * @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 void tearDown() { * 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 bd5046389b53..cf8013bae817 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 @@ * * @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 void tearDown() { * 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 658ab287648e..2c7988512182 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 @@ * * @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 void tearDown() { * 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 void testSmokeEveryThingThroughConstructor() throws Exception { * 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 b67005ad8ea0..f5a4f92359b0 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 @@ * * @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 void tearDown() { * 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 49c96d3a1206..93eb01af22e8 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 @@ 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 @@ * 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 5d5c981fe19d..e71dd636f599 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.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 1c5f7e81f8ff..076653002a0d 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 7b510eddda87..a2587e1c8250 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 @@ * 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 3e4ba93a41b1..95891c3373b4 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 @@ */ 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 7f6d7fffec57..413b15f438e2 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 f6e25566ff3a..2e43be3ae8a7 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 a61e4155042d..b74639433678 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 @@ 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 @@ * 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 static void main(String[] args) { 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 735195645f62..bae88899b2ea 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.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 5ecd8ddca8b3..53417786d548 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 @@ * * @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 void tearDown() { * 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 0774516c7e6f..e0816b0229cb 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 @@ * 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 58c28c43adbe..c1f3f8233d30 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 1fbae463539b..f448faa8a9fa 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 13d0a6d75b14..27f806bcec02 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 173f3fcba2cc..bb3c5bdee671 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 @@ * * @author Jeroen Meulemeester */ -public class FlamingAsteroidTest extends CollisionTest { +class FlamingAsteroidTest extends CollisionTest { @Override final FlamingAsteroid getTestedObject() { @@ -45,7 +45,7 @@ final FlamingAsteroid getTestedObject() { * 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 void testConstructor() { * 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 void testCollideFlamingAsteroid() { * 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 void testCollideMeteoroid() { * 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 void testCollideSpaceStationIss() { * 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 d49026261a3d..4a715589f0b1 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 @@ * * @author Jeroen Meulemeester */ -public class MeteoroidTest extends CollisionTest { +class MeteoroidTest extends CollisionTest { @Override final Meteoroid getTestedObject() { @@ -44,7 +44,7 @@ final Meteoroid getTestedObject() { * 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 void testConstructor() { * 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 void testCollideFlamingAsteroid() { * 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 void testCollideMeteoroid() { * 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 void testCollideSpaceStationIss() { * 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 628838dc543d..ada5cf9cdadc 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 @@ /** * 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 void testConstructor() { * #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 void testToString() throws Exception { * 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 7138160d5b16..9a6cd78b5671 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 @@ * * @author Jeroen Meulemeester */ -public class SpaceStationIssTest extends CollisionTest { +class SpaceStationIssTest extends CollisionTest { @Override final SpaceStationIss getTestedObject() { @@ -44,7 +44,7 @@ final SpaceStationIss getTestedObject() { * 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 void testConstructor() { * 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 void testCollideFlamingAsteroid() { * 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 void testCollideMeteoroid() { * 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 void testCollideSpaceStationIss() { * 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 d72f71172818..3c4fb7de0750 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 @@ * * @author Jeroen Meulemeester */ -public class SpaceStationMirTest extends CollisionTest { +class SpaceStationMirTest extends CollisionTest { @Override final SpaceStationMir getTestedObject() { @@ -44,7 +44,7 @@ final SpaceStationMir getTestedObject() { * 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 void testConstructor() { * 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 void testCollideFlamingAsteroid() { * 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 void testCollideMeteoroid() { * 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 void testCollideSpaceStationIss() { * 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 06733a51e45b..d06f26262cc2 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 17f9ea61d778..305201694815 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 @@ @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 9279f11eb613..40c15b37084c 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 @@ /** * 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 void testAggregate() { } @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 9d8a4644d869..05fe94dba04c 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 @@ * 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 3d04c631c5ec..ef586a56317a 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 @@ *

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 57c28125a908..feda75c58528 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 cdd9309852da..bc48e9ab4a11 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 @@ @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 365f793dd17c..d7c2d1568c6b 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 2323d8bf9b8b..49bb043c4699 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 @@ @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 be74d14e6081..61b9d713a080 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 014ca89c0a96..55666451bc9a 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 fcd367e25ea8..0f93a90db1ed 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 dcf1c71e3989..1378ead9ee69 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 @@ * @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 891bbd10c0ff..38e621acf5ef 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 @@ * * @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 deb468e40ba7..6195ac0bf669 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 @@ * * @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 void tearDown() { * 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 8a8d4eaef7ad..51229b1552b4 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 @@ * * @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 KingsHandTest() { * 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 5fe55f136f0b..e227c80d7adb 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 @@ * * @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 c00c9002ed6a..d0dcd42bd603 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 @@ * * @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 90bb8e45c0e4..3a13869d2811 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 @@ * * @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 47d1d015eb47..e3bae241d733 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 @@ * * @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 79159314f97d..fd7282fc2481 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 @@ 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 @@ * @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 323689e5dba3..77d6ab8c4ef8 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 void run() { 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 abd3e9be4e25..dd83e23a99fc 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 a590d2be88bc..9ece86a7ac98 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 @@ /** * 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 void testAsynchronousEvent() { } @Test - public void testSynchronousEvent() { + void testSynchronousEvent() { var eventManager = new EventManager(); try { var sEventId = eventManager.create(60); @@ -72,7 +72,7 @@ public void testSynchronousEvent() { } @Test - public void testUnsuccessfulSynchronousEvent() { + void testUnsuccessfulSynchronousEvent() { assertThrows(InvalidOperationException.class, () -> { var eventManager = new EventManager(); try { @@ -87,7 +87,7 @@ public void testUnsuccessfulSynchronousEvent() { } @Test - public void testFullSynchronousEvent() { + void testFullSynchronousEvent() { var eventManager = new EventManager(); try { var eventTime = 1; @@ -110,7 +110,7 @@ public void testFullSynchronousEvent() { } @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 9b11125dd349..0a50be4019ae 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 6df09f97dd30..beab7fbf81d7 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 e8805d90f42e..793ace392e14 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 @@ 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 ee2b64ac067f..976c6ab467a1 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 @@ 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 43bd8da491c9..4d28c760504e 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 @@ 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 97c3685135ea..67e420fd0ecc 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 @@ /** * {@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 7d0fb2346d09..1283aab1cb32 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 @@ /** * 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 2987d0e0627e..8d779623d054 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.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 @@ * 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 1b97095c70f5..7d7bf2a349b6 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.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 da462c74cdcb..4364483bd7cc 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 bfe16c839fe4..9e2cdcbc6607 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 @@ void createAudioInstance() { * @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 void testPlaySound() throws UnsupportedAudioFileException, IOException, I * @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 dd67366ee28e..6635dddf7c27 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.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 @@ * *

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 bb4ba7e127e2..3f4945d1b351 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.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 @@ * *

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 1d7b042ddf50..0845590ebb68 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 @@ 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 @@ * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Getter public class AccountCreateEvent extends DomainEvent { private final int accountNo; @@ -52,24 +54,6 @@ public AccountCreateEvent(long sequenceId, long createdTime, int accountNo, Stri 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 059970f6d2e4..05c0c2173cd3 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 9acf0d506059..27bcd15b76d8 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 @@ 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 @@ * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Getter public class MoneyDepositEvent extends DomainEvent { private final BigDecimal money; @@ -53,24 +55,6 @@ public MoneyDepositEvent(long sequenceId, long createdTime, int accountNo, BigDe 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 b76f8e22fc2d..51f0a23b18a5 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 @@ 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 @@ * *

Created by Serdar Hamzaogullari on 06.08.2017. */ +@Getter public class MoneyTransferEvent extends DomainEvent { private final BigDecimal money; @@ -57,33 +59,6 @@ public MoneyTransferEvent(long sequenceId, long createdTime, BigDecimal money, i 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 dfa405809f24..1530e6e17015 100644 --- a/event-sourcing/src/test/java/IntegrationTest.java +++ b/event-sourcing/src/test/java/IntegrationTest.java @@ -40,7 +40,7 @@ *

* 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 void initialize() { * 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 621dccee63c0..a927ab2467c3 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 @@ * @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 void testCreatesNonExistentFile() throws Exception { } @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 void testContentsAreWrittenToFile() throws Exception { } @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 6981d303cfe7..24d8351fcb72 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 97dc80443bb6..0f10466f2008 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 65f50f254e2a..74b45089bf9a 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 799a473a4312..4847ec06a839 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 Unit(String name) { 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 4378131e6cf3..79e21958844a 100644 --- a/extension-objects/src/test/java/concreteextensions/CommanderTest.java +++ b/extension-objects/src/test/java/concreteextensions/CommanderTest.java @@ -57,9 +57,9 @@ void shouldExecuteCommanderReady() { 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 0d24d0fe3951..8b59c3b488fd 100644 --- a/extension-objects/src/test/java/concreteextensions/SergeantTest.java +++ b/extension-objects/src/test/java/concreteextensions/SergeantTest.java @@ -55,9 +55,9 @@ void sergeantReady() { 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 48af362c19d5..6286bf7a8dc0 100644 --- a/extension-objects/src/test/java/concreteextensions/SoldierTest.java +++ b/extension-objects/src/test/java/concreteextensions/SoldierTest.java @@ -55,9 +55,9 @@ void soldierReady() { 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 11fc842403c1..e15106c90b33 100644 --- a/extension-objects/src/test/java/units/CommanderUnitTest.java +++ b/extension-objects/src/test/java/units/CommanderUnitTest.java @@ -31,9 +31,10 @@ /** * 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 3afa2cc81cf1..6db646371994 100644 --- a/extension-objects/src/test/java/units/SergeantUnitTest.java +++ b/extension-objects/src/test/java/units/SergeantUnitTest.java @@ -31,9 +31,10 @@ /** * 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 51c8c63ca09e..cba9dbb488cb 100644 --- a/extension-objects/src/test/java/units/SoldierUnitTest.java +++ b/extension-objects/src/test/java/units/SoldierUnitTest.java @@ -31,9 +31,10 @@ /** * 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 cbb90ff24ae3..ec194e10b305 100644 --- a/extension-objects/src/test/java/units/UnitTest.java +++ b/extension-objects/src/test/java/units/UnitTest.java @@ -31,10 +31,10 @@ /** * 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 f6765e325c34..f08aecdb243c 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 db383e47b229..14881f3e74fe 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 6a1a8f057988..70c946e40225 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 a6b832cd1beb..d963f1da577a 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 2fea7955addc..f5bb6dd4f154 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 d93ba2a5eb93..2eccf3b4f23c 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 @@ * * @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 void tearDown() { * 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 void testFullWorkDay() { 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 580e600063e3..e5f0b428573c 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 @@ * 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 cc4a1df1fee9..42fd89c4ef44 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 @@ * 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 f05dd4f8ad3e..79241a9f5430 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 @@ /** * 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 void init() { * {@link Spear} */ @Test - public void testSpearWeapon() { + void testSpearWeapon() { var weapon = factory.create(WeaponType.SPEAR); verifyWeapon(weapon, Spear.class); } @@ -65,7 +65,7 @@ public void testSpearWeapon() { * {@link Axe} */ @Test - public void testAxeWeapon() { + void testAxeWeapon() { var weapon = factory.create(WeaponType.AXE); verifyWeapon(weapon, Axe.class); } @@ -76,7 +76,7 @@ public void testAxeWeapon() { * {@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 ee92abe24d1e..126114a84c72 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 @@ * 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 4c49ebaa3703..d801f43b8b92 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 e3b4365540ff..321f248731fb 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 d97bfc92a3f0..1ef87b86f70d 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 c3a9c8688781..560c7aaf70d7 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 b600f5a25a2c..8f7fc1aa47ab 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 f7bbf6f97a18..a206c06b4eb0 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 @@ * 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 void testOrcBlacksmithWithSpear() { * {@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 void testOrcBlacksmithWithAxe() { * 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 void testElfBlacksmithWithShortSword() { * {@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 554baeeb1881..732f5458fa4c 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 e1f82d41e9a6..e1e248fb4b2e 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 @@ * 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 33d5a521ac27..074ea32bccf4 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 a802da039c4e..941552065b4e 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 @@ * 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 294a04fccfb3..c11ee36791bf 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 @@ * 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 69a581e8899c..9bb244500196 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 @@ 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 b93ca91f57a5..c29cbbeb4abc 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 @@ 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 e00fb45a40b2..5c1e47f6507d 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.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 @@ *

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 631f9068739b..8f1503634b40 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 @@ 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 @@ * @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 PropertiesFeatureToggleVersion(final Properties properties) { 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 String getWelcomeMessage(final User user) { 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 7c7dc5d6b61b..395c473af5d6 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 ec4e21a91c7d..523a6cb30ff7 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 9fa8d905243e..c7d703f516d7 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 @@ /** * 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 void testNonBooleanProperty() { } @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 void testFeatureTurnedOn() { } @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 de45d9254d58..4feb4207dbe0 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 @@ /** * 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 db1569cf4f7a..f4768d541a90 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 @@ /** * 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 void testAddUserToPaidWhenOnFree() { } @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 2555dd7f8e45..d25c73a55681 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.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 @@ * 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 static void main(String[] args) { * 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 @@ private static void filteringSimpleProbableThreats() { 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 @@ private static void filteringSimpleThreats() { //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 ea431042aee5..ac16e6614ef1 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 List threats() { } 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()); - } - - @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); + .filter(predicate) + .collect(Collectors.toUnmodifiableList()); } - @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 5c1183fb2d7f..307e6d41ba87 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 double probability() { 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 ab1977bc86af..44294b1dbcf9 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 ThreatType type() { 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 428521ad9468..7a165c3f3f09 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 @@ private ThreatAwareSystem filteredGroup(Predicate predicate) { private List filteredItems(Predicate predicate) { return this.issues.stream() - .filter(predicate) - .collect(Collectors.toList()); - } - - @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); + .filter(predicate) + .collect(Collectors.toUnmodifiableList()); } - @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 4c9a23b21c02..417db3e0c7e6 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 082496175be0..50fca774c36d 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 static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; class SimpleProbabilisticThreatAwareSystemTest { + @Test void shouldFilterByProbability() { //given @@ -38,11 +38,11 @@ void shouldFilterByProbability() { 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 9f93fa50f0b6..d8b28e18aab5 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 @@ void shouldFilterByThreatType() { //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 c51c488c7474..51519b42774d 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.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 @@ * 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 d6acd17716d6..c5f600b1f921 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.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 @@ * * @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 0c6a3b4af37e..55aa867676bc 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.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 @@ * * @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 7eb2b59c1319..275134adc102 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 void testFirst() { } @Test - public void testFirstEmptyCollection() { + void testFirstEmptyCollection() { final var integers = Collections.emptyList(); final var first = createFluentIterable(integers).first(); assertNotNull(first); @@ -70,7 +70,7 @@ public void testFirstEmptyCollection() { } @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 void testFirstCount() { } @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 void testFirstCountLessItems() { } @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 void testLast() { } @Test - public void testLastEmptyCollection() { + void testLastEmptyCollection() { final var integers = Collections.emptyList(); final var last = createFluentIterable(integers).last(); assertNotNull(last); @@ -118,7 +118,7 @@ public void testLastEmptyCollection() { } @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 void testLastCount() { } @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 void testLastCountLessItems() { } @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 void testFilter() { } @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 void testMap() { } @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 void testForEach() { } @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 9a88e5bba967..02e41bb911be 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 @@ * * @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 85e358cf1c5c..fbe1bb270752 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 @@ * * @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 5dff8444be50..9a22b0cd171b 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 bb852279f405..25bd2962fa02 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 @@ */ 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 5832a0f450fa..e0bd87f1a589 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 e194d46f9e87..a02fcacef57b 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 @@ 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 090cab5c75fa..3d62a82e9a99 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.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 d99e17a13db4..a25cb630bf4c 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 @@ 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 b8772b69c46a..f5726062e9d6 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 @@ 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 b8491b514d37..a8fc7e01b2d4 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.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 void setUp() throws Exception { } @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 264502e3e7f1..79b83a97cd94 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 @@ 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 1a3be2fa4e60..837f2526ae8b 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 @@ 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 11b69857fef9..49de88da7c52 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 @@ 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 6813c61b7c1c..2bd0362321d8 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 @@ 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 void testStoreChanged() { } @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 fbefd3740b63..8a794f63df95 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 140bad7600a7..135712718382 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 368c25326e6c..ef750117e4cf 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 30c9807692e3..c594939ca693 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 8ae18279ee91..7e5ffccf378f 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 816c8634bd53..470c7fc3f408 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 bceccfe01dd6..0c5bbc4336da 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 83516e8a3112..4f76ee5ee2ac 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 @@ 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 7f567c8c458b..16893fb6ae6f 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 9f23fb608e84..b24b53164e1d 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 22757514aaeb..4779ef7a5c86 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 15ccd5caae41..ba3bd5467b32 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 @@ 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 cccba90987dd..002558a8e60c 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 e01bf0c1e0f2..dab983e5e47b 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 6c282f7d5e42..5817d926079c 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 void tearDown() { } @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 e6e7a75e769f..3e5a30c8e386 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 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 d15bc40540fb..d6b7ca459e45 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 void tearDown() { 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 7edb65204dfb..ec141cf8107b 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 ca2c0262b1b7..cb014878313c 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 abc124be137d..91bd67fb439f 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 @@ 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 @@ * * @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 683f3c1e1f18..e4a17499ac75 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 void testGet() { } @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 de4591a222bc..5f771574d0a9 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 @@ * 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 6361e5d4139e..4ade8c0afe54 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.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 @@ * 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 05c2272b671f..fa7f42e40ef2 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.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 void setUp() { } @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 void testPerfectExecution() throws Exception { } @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 void testCallException() throws Exception { } @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 f14e6925f899..abe6de900361 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.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 728c2e057914..d3659818ab10 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 Optional save(LotteryTicket ticket) { 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 4672b7688908..ec4bd691e632 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.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 @@ private void generateRandomNumbers() { } } - @Override - public String toString() { - return "LotteryNumbers{" + "numbers=" + numbers + '}'; - } - /** * Helper class for generating random numbers. */ @@ -139,30 +138,4 @@ public int nextInt() { } } - @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 9017e4480ebd..f96b6fbee44b 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 boolean equals(Object obj) { 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 5cc7bf6b2d78..10e5fc3581d9 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 enum CheckResult { 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 4ab167fcee64..624854cb7653 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 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 562ca140d640..6b7bcf12be2f 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 static LotteryTicketCheckResult checkTicketForPrize( ) { 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 d40024a6ab3c..9df222b5706f 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 4bee37103428..373660c3c041 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 bc17c36629f7..ee503fe69ff6 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.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 eb9369ef6f1d..4473ce49e4a9 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 @@ void testCrudOperations() { 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 1a94a8b809f8..f24699168c9e 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 @@ 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 void testFilterRequest() { } @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 ab08d2dfeb3f..00f16ec84dcd 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 c0c4dce63c6a..ebff7b532d1a 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 @@ *

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 6141f7fcc93b..230d67fb49c8 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.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 @@ * ({@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 d29ad40d042e..1c8a695a02d3 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 76674c02517c..d477d49ed3eb 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 22be5a810f11..84af96ee1d0c 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 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 106ef1e0f1e4..e8ed3bf9f8ce 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 @@ public class CakeTest { @Test - public void testSetId() { + void testSetId() { final var cake = new Cake(); assertNull(cake.getId()); @@ -54,7 +50,7 @@ public void testSetId() { } @Test - public void testSetTopping() { + void testSetTopping() { final var cake = new Cake(); assertNull(cake.getTopping()); @@ -64,21 +60,21 @@ public void testSetTopping() { } @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 void testAddLayer() { } @Test - public void testToString() { + void testToString() { final var topping = new CakeTopping("topping", 20); topping.setId(2345L); @@ -114,7 +110,7 @@ public void testToString() { 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 253a8634ff1a..a14ed8997380 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 @@ 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 465d8f034289..3b8d8fc1e8cc 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 @@ public class CakeBakingServiceImplTest { @Test - public void testLayers() { + void testLayers() { final var service = new CakeBakingServiceImpl(); final var initialLayers = service.getAvailableLayers(); @@ -66,7 +68,7 @@ public void testLayers() { } @Test - public void testToppings() { + void testToppings() { final var service = new CakeBakingServiceImpl(); final var initialToppings = service.getAvailableToppings(); @@ -89,7 +91,7 @@ public void testToppings() { } @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 void testBakeCakes() throws CakeBakingException { } @Test - public void testBakeCakeMissingTopping() { + void testBakeCakeMissingTopping() { final var service = new CakeBakingServiceImpl(); final var layer1 = new CakeLayerInfo("Layer1", 1000); @@ -141,7 +143,7 @@ public void testBakeCakeMissingTopping() { } @Test - public void testBakeCakeMissingLayer() { + void testBakeCakeMissingLayer() { final var service = new CakeBakingServiceImpl(); final var initialCakes = service.getAllCakes(); @@ -161,7 +163,7 @@ public void testBakeCakeMissingLayer() { } @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 ed0ff380328d..e348c1d8b9fb 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.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 void tearDown() { * 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 a4b268403984..6b1927a9d869 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 @@ *

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 f0cbc6e9386d..ed4255200115 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 d42f09ecb110..d351336ce8d0 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 7a3196172545..8224535bf1ea 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 ba0c2de40d81..226876254412 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 5e46ab678148..7bbf37dc10bf 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 6a3f6ccac63f..8ffdcbfa2b00 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 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 0a26808e9d14..15e48fa966d2 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 @@ 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 b6fa0f9a8761..f99d5a4770b4 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 acf50faa98cf..fd6f36f0cf93 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 @@ 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 @@ * 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 a7c4a4551871..cc3100f9e9c3 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.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 @@ * 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 ce36ccc2f360..61776c6ce749 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 de1cdc480953..b04b76597832 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 @@ 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 void testSendHeartbeatMessage() { } @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 void testSendElectionMessageNotAccepted() { } @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 void testElectionMessageAccepted() { } @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 void testSendLeaderMessage() { } @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 b6836983b79b..8baab03f2def 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 @@ 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 void testOnMessage() { } @Test - public void testIsAlive() { + void testIsAlive() { try { final var bullyInstance = new BullyInstance(null, 1, 1); var instanceClass = AbstractInstance.class; @@ -69,7 +69,7 @@ public void testIsAlive() { } @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 69bc636de527..f3e9b45528fd 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 @@ 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 void testOnMessage() { } @Test - public void testIsAlive() { + void testIsAlive() { try { final var ringInstance = new RingInstance(null, 1, 1); var ringInstanceClass = AbstractInstance.class; @@ -68,7 +68,7 @@ public void testIsAlive() { } @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 fe4590a02e6d..aea516c05347 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 @@ 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 void testSendHeartbeatMessage() { } @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 void testSendElectionMessage() { } @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 void testSendLeaderMessage() { } @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 81f2ed0441b9..d4d1f5f54f3d 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 773eb1c6acfc..6c7caed244b7 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 void run() { 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 e764304d643f..450a3a59d59a 100644 --- a/leader-followers/src/test/java/com/AppTest.java +++ b/leader-followers/src/test/java/com/AppTest.java @@ -26,18 +26,17 @@ 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 b3e2f7577ecd..07727726eac2 100644 --- a/leader-followers/src/test/java/com/TaskHandlerTest.java +++ b/leader-followers/src/test/java/com/TaskHandlerTest.java @@ -34,12 +34,12 @@ */ 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 af5f6b8a000c..2c3b2b003d3b 100644 --- a/leader-followers/src/test/java/com/TaskSetTest.java +++ b/leader-followers/src/test/java/com/TaskSetTest.java @@ -34,20 +34,20 @@ */ 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 000000000000..753b316b5474 --- /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 edf5852632ce..23ad81edbacf 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 9f068d46f679..cf44b08721ff 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 e1eaf1e40acc..669779337ad2 100644 --- a/marker/src/test/java/ThiefTest.java +++ b/marker/src/test/java/ThiefTest.java @@ -32,7 +32,7 @@ */ 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 8f2c6296b915..a611335ad003 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.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 @@ * 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 c4ca47b95bd3..0dc0b56d19ff 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 6ec619752471..b176c914594f 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 2937088906fd..f814cf89e2f0 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 217bb741aa3d..29beadc65e70 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 @@ * 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 b90a6776880e..1707a626cf2d 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 void testTimePasses() { * 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 c19f1e188344..d7d000b202b2 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 65cde953f205..e9c6aecdd0e5 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 void testSetHealth() { * 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 void testSetFatigue() { * 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 void testSetNourishment() { } @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 c820e5f1bae9..af657d41b5c3 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 void testSetHealth() { * 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 void testSetFatigue() { * 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 59537f5b2d72..b100617b566b 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 void tearDown() { * 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 e7a5abdc3a90..6f8810208dae 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 @@ 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 954c138171f5..1700e308776e 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 void setUp() { * 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 void wiring() { * 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 void updateFileNameToLoader() { * empty string. */ @Test - public void fileConfirmationWhenNameIsNull() { + void fileConfirmationWhenNameIsNull() { stub.setFileName(null); presenter.start(); @@ -108,7 +108,7 @@ public void fileConfirmationWhenNameIsNull() { * 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 void fileConfirmationWhenFileDoesNotExist() { * 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 void fileConfirmationWhenFileExists() { * 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 32ae77db1b0b..e8e79bce51fc 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 @@ *

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 590988cbd26a..337f4a567351 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 @@ 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 @@ *

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 2386f16ad2e3..302062e3a33c 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.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 @@ * 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 void testFileMessage() throws IOException { * @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 void testNoFileMessage() throws IOException { * 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 void testFileErrorMessage() throws FileNotFoundException { * 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 040161ef2129..36bf9d67668f 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 @@ 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 @@ *

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 41e60e98004d..f7ecc6d503a4 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 @@ 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 da90f0dd0dc1..6613b1955603 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 @@ 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 void testForInvalidName() { } @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 void testForInvalidAge() { } @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 e86a5f3747e0..e88a7c75219b 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 427a6e9206c6..f03b7fa5a801 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 @@ 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 e649ebb60f50..c091571bd3ad 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 @@ 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 void testSameStateAmongstAllInstances() { } @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 994424e34834..e21cd11a2d04 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 @@ *

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 dd3f8af5d72e..0a092dcf3da9 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 @@ 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 18bdcf99ae34..5c0aa4f08cfe 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 @@ 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 4563d7bcc30c..88255c015655 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 773ea690b342..c5af59e9df40 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 @@ 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 @@ * * 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 126bae2e513a..9310c8224bc8 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 0c090dd2eaab..a5f052b6451b 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 void setUp() { simpleObjects = new SimpleObjects(); simpleObjects.container = mockContainer; } - + @Test public void testCreate() { @@ -83,7 +82,7 @@ public void testCreate() { 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 d077528a1d9b..54bb425cc3ae 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 @@ @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 3cf4efd18782..03ad6183b2b5 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 void setUp() { assertNotNull(simpleObjectPojo); simpleObjectWrapped = wrap(simpleObjectPojo); } - + @Test public void testNameAccessible() { /* when */ @@ -72,7 +72,7 @@ public void testNameAccessible() { // then assertEquals(fs.names.get(0), name); } - + @Test public void testNameCannotBeUpdatedDirectly() { @@ -82,7 +82,7 @@ public void testNameCannotBeUpdatedDirectly() { // when simpleObjectWrapped.setName(NEW_NAME); } - + @Test public void testUpdateName() { @@ -92,7 +92,7 @@ public void testUpdateName() { // then assertEquals(NEW_NAME, simpleObjectWrapped.getName()); } - + @Test public void testUpdateNameFailsValidation() { @@ -103,7 +103,7 @@ public void testUpdateNameFailsValidation() { // 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 be4e5ccfdd6d..fe1e8ca3a6bc 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 95cd3ea01444..980d43845093 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.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 @@ * </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 0e95453cb5c4..3d01f829e8ae 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 5cbeda88f035..18fae1e85ec1 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 f511719468c2..f8a702157cb8 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 void tearDown() { * 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 void testTreeSize() { * 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 void testWalk() { } @Test - public void testGetLeft() { + void testGetLeft() { final var level1 = TREE_ROOT.getLeft(); assertNotNull(level1); assertEquals("level1_a", level1.getName()); @@ -130,7 +130,7 @@ public void testGetLeft() { } @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 b167a06a01c3..d15ada4e21cf 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 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.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; - /** * 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 void unsuccessfulKingFlirt() { } @Test - public void queenIsBlockingFlirtCauseDrunkKing() { + void queenIsBlockingFlirtCauseDrunkKing() { var drunkUnhappyKing = RoyaltyObjectMother.createDrunkKing(); var notFlirtyQueen = RoyaltyObjectMother.createNotFlirtyQueen(); drunkUnhappyKing.flirt(notFlirtyQueen); @@ -55,7 +54,7 @@ public void queenIsBlockingFlirtCauseDrunkKing() { } @Test - public void queenIsBlockingFlirt() { + void queenIsBlockingFlirt() { var soberHappyKing = RoyaltyObjectMother.createHappyKing(); var notFlirtyQueen = RoyaltyObjectMother.createNotFlirtyQueen(); soberHappyKing.flirt(notFlirtyQueen); @@ -63,7 +62,7 @@ public void queenIsBlockingFlirt() { } @Test - public void successfullKingFlirt() { + void successfullKingFlirt() { var soberHappyKing = RoyaltyObjectMother.createHappyKing(); var flirtyQueen = RoyaltyObjectMother.createFlirtyQueen(); soberHappyKing.flirt(flirtyQueen); @@ -71,7 +70,7 @@ public void successfullKingFlirt() { } @Test - public void testQueenType() { + void testQueenType() { var flirtyQueen = RoyaltyObjectMother.createFlirtyQueen(); var notFlirtyQueen = RoyaltyObjectMother.createNotFlirtyQueen(); assertEquals(flirtyQueen.getClass(), Queen.class); @@ -79,7 +78,7 @@ public void testQueenType() { } @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 4c544d8e01e3..381cc1b01ffa 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 @@ * 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 fd90b48c9ab6..202a162c83ab 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 @@ 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 e78a895e2fc1..0b22aa43462d 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 void testSubsequentCheckinCheckout() { * 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 cbde540ab1a4..1834f68ef4a7 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 df8ac8dfcdbc..f261651feacc 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 @@ 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 @@ *

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 09ac75cebcb1..c6c8a295ced1 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 396ae78d82ce..0f3307b71974 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 70ad6334530c..0ee7f7f733d9 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 @@ 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 1e6f99aee26f..fd410d78d139 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 59e4dfd5408d..410550353781 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 46d44bd8375d..e829ebeb8ee6 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 e16a598727e1..059fadd315c7 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 67d3f20689ec..455d07a1d630 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 40af6638a896..44662861867c 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 c2ca327e4244..938331299de2 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.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 void tearDown() { * 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 void testAddRemoveObserver() { * 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 5fef1a3cdf15..252778ef6cdb 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 6f062e048cae..2c2721e24f34 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 void tearDown() { * 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 void testAddRemoveObserver() { * 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 5f0cef1d6262..cb27ed1b49d8 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 f3f152518cee..bb5b6d952192 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 @@ 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 @@ * 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 ff35635cf579..4dce7aabc1d8 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 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 void setUp() { } @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 a68bf51ad588..55af9746ee37 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 @@ 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 void setUp() { } @Test - public void testSaveAlbum() { + void testSaveAlbum() { var albumPageAfterChanges = albumPage .changeAlbumTitle("25") @@ -59,7 +58,7 @@ public void testSaveAlbum() { } @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 a3ee088e5478..8ba1e92fd79b 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 @@ 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 void setUp() { } @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 f943ee178d8e..71a28651a5cc 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.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 ca238222f6f1..67339f16112c 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.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 e5a0d50538ac..78b559b4acb1 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.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 c5d8fc701c70..58052583f078 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 void setUp() { } @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 27af5713d04e..99a141f53b11 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 void setUp() { } @Test - public void testSaveAlbum() { + void testSaveAlbum() { var albumPageAfterChanges = albumPage .changeAlbumTitle("25") @@ -57,7 +57,7 @@ public void testSaveAlbum() { } @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 80b0ba8d410c..bd3333706eb2 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 void setUp() { } @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 58d50d4c26e2..ba842bc1d7fe 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 @@ *

{@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 e54085be840f..0e45226c98a5 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 @@ 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 b0264c298aa4..0992bdaf1f23 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 5df72daf2ecd..f303c2b9f912 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 @@ 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 2b6105133355..cbc274b6f4ed 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 void tearDown() { } @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 30e57708b737..5a0deb61d743 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 @@ 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 3b6545c0ffdf..8bcc1fe3f846 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 @@ 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 void testSend() throws Exception { } @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 1295d823475f..72ecf9c32da6 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 @@ 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 void testGetHeaders() { } @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 54944b78ce00..7e332a43689a 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 8481915bed78..f657b80c70f7 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 6994c9d23416..a52893f46d56 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 @@ 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 979984e62adc..e86aa2cf0d98 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 1921dec5b990..b6ae4670edcc 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 void remove() { } @Test - public void add() { + void add() { var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]); stringPriorityMessageQueue.add(1); stringPriorityMessageQueue.add(5); @@ -53,7 +53,7 @@ public void add() { } @Test - public void isEmpty() { + void isEmpty() { var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]); assertTrue(stringPriorityMessageQueue.isEmpty()); stringPriorityMessageQueue.add(1); @@ -62,7 +62,7 @@ public void isEmpty() { } @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 73463fb52ec8..d9f5e452718b 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 @@ 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 void publishMessage() { } @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 5d0e6eb51b98..e4f1f0969aad 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 49aef81e1fbf..04b18490d71c 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 e4b80457acee..25fa0a530551 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 e8cfcbc5de73..7b4d85ba1220 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 void tearDown() { * 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 void testMix() { * 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 07b512b75673..6474c5e48b1a 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 void tearDown() { * 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 18f1cc1ff4d9..089494742fae 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 @@ * 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 0b41495588c5..9fc16df6663e 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 8e7ad61f8e02..a0345cae296e 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 2b386d305070..a95efa84f8c5 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 @@ 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 440478f389da..a53b759c954e 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.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 @@ * * @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 b55c48a930b9..544d7e53b6cc 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.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 f3450ee0063a..2c35fb124564 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.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 @@ /** * Tests Promise class. */ -public class PromiseTest { +class PromiseTest { private Executor executor; private Promise promise; @@ -56,7 +55,7 @@ public void setUp() { } @Test - public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask() + void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask() throws InterruptedException, ExecutionException { promise.fulfillInAsync(new NumberCrunchingTask(), executor); @@ -66,7 +65,7 @@ public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask() } @Test - public void promiseIsFulfilledWithAnExceptionIfTaskThrowsAnException() + void promiseIsFulfilledWithAnExceptionIfTaskThrowsAnException() throws InterruptedException { testWaitingForeverForPromiseToBeFulfilled(); testWaitingSomeTimeForPromiseToBeFulfilled(); @@ -120,7 +119,7 @@ private void testWaitingSomeTimeForPromiseToBeFulfilled() throws InterruptedExce } @Test - public void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPromise() + void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPromise() throws InterruptedException, ExecutionException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -132,7 +131,7 @@ public void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPr } @Test - public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnException() + void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnException() throws InterruptedException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -160,7 +159,7 @@ public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnExceptio } @Test - public void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThisPromise() + void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThisPromise() throws InterruptedException, ExecutionException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -176,7 +175,7 @@ public void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThis } @Test - public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsException() + void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsException() throws InterruptedException { var dependentPromise = promise .fulfillInAsync(new NumberCrunchingTask(), executor) @@ -204,17 +203,18 @@ public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsExcepti } @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 d646c6787cec..5979ea84dd93 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 @@ * *

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 59113f28ae4c..228364fbafbe 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 @@ 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 void testPrototypeStats() throws Exception { } @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 void testCharacterStats() { } @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 void testToString() { } @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 void testName() { } @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 eb81c792df46..998106ec9b59 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 @@ *

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 359c1f280f41..ecae07063466 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 cfa1e1f3f671..830bad95c72a 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 String toString() { 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 6345749b3b3d..7f5183349d99 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 String toString() { 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 c435976a0519..b45ae693e114 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 ElfWarlord copy() { 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 f3c67f54237d..772cb27f8318 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 fb4344c6dd3c..a1a84735884f 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 032d1c2ab4eb..4c89363564c8 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 String toString() { 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 24b62739c1b3..a7361ec801cd 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 String toString() { 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 85446fb5a0a7..1096cc9798b2 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 String toString() { 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 d4135bc7e247..7176ccf0cb3f 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 595f4af6f8e6..757f0aa41e29 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 653f2554788a..b22f7ba8e759 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 @@ * @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 @@ static Collection dataProvider() { @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 edf223b23545..5b569d24411a 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 e359908a9a4c..dd459aac80f7 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 bdeed212e0c5..c16c32a9c985 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 9d8fa59444bd..9a9f4ab8d8e3 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 c1b9294583f1..c054e8048995 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 @@ /** * Tests for {@link IvoryTower} */ -public class IvoryTowerTest { +class IvoryTowerTest { private InMemoryAppender appender; @@ -50,7 +50,7 @@ public void tearDown() { } @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 cfcb21b0415b..0f42c7e5484b 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 @@ /** * 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 3314ffe0c321..236afc682c5c 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 @@ /** * Tests for {@link WizardTowerProxy} */ -public class WizardTowerProxyTest { +class WizardTowerProxyTest { private InMemoryAppender appender; @@ -50,7 +50,7 @@ public void tearDown() { } @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 8fa13c20f887..fc4698bed953 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 @@ 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 430317246a81..8cac8455267e 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 @@ 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 @@ * 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 aaf0c69a4240..c30b27ed85af 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 c4177ef72f8d..5c03ff8ab9aa 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 @@ 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 0c9f9614392f..1828788c3a8f 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 3b4755b257e9..19a5077f3ac8 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 ff43b3298d97..08ccfe2de264 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 @@ /** * 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 dd14b514403d..f18807dd0ff3 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 @@ /** * 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 1ddd2c34c7e4..4009fdb16b55 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.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 a3501971cd33..fd1bcae78a54 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.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 fbddc12c673b..299e65257008 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.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 65a69b64620a..2db01bf88c67 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.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 @@ * 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 351ee4b1936f..97142c58b28a 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.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 fd3eab523448..7e3383b2d324 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 void testAppUsingThreadPoolDispatcher() throws IOException, InterruptedEx * @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 d703cc691b09..a857db2d7fbf 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 @@ 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 @@ * * @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 4abdd522011b..715ae08b7ff7 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 621084b59674..2b487f5eb036 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.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 @@ *

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 b215c457bb6e..9c908aa242f6 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 ddd19087d81e..65e0f0e9bfc8 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 @@ /** * @author hongshuwei@gmail.com */ -public class ReaderAndWriterTest { +class ReaderAndWriterTest { private InMemoryAppender appender; @@ -57,7 +57,7 @@ public void tearDown() { * 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 void testReadAndWrite() throws Exception { * 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 5621a8d6a521..f405b6e7b118 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 @@ /** * @author hongshuwei@gmail.com */ -public class ReaderTest { +class ReaderTest { private InMemoryAppender appender; @@ -58,7 +58,7 @@ public void tearDown() { * 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 8be8c93e5ce6..28d18acdc11c 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 @@ /** * @author hongshuwei@gmail.com */ -public class WriterTest { +class WriterTest { private InMemoryAppender appender; @@ -58,7 +58,7 @@ public void tearDown() { * 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 54c800cd834a..c25e7f7c6a3c 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 void shouldBeAbleToAddAndQueryCustomerObjectFromRegistry() { } @Test - public void shouldReturnNullWhenQueriedCustomerIsNotInRegistry() { + void shouldReturnNullWhenQueriedCustomerIsNotInRegistry() { Customer customerWithId5 = customerRegistry.getCustomer("5"); assertNull(customerWithId5); } - } diff --git a/repository/pom.xml b/repository/pom.xml index 197528ad7766..b92c606bab32 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 e46bc75a5f0c..3a9ec02966a7 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 @@ * 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 15684dc15b1a..f2018423eec2 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 @@ 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 @@ */ @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 ba02cd6c40f7..4d385cd707bd 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 @@ 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 Person(String name, String surname, int age) { 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 d2e8f3b838eb..6de15a74210a 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 @@ */ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = {AppConfig.class}) -public class AnnotationBasedRepositoryTest { +class AnnotationBasedRepositoryTest { @Resource private PersonRepository repository; @@ -64,13 +64,13 @@ public void setup() { } @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 void testSave() { } @Test - public void testDelete() { + void testDelete() { var terry = repository.findByName("Terry"); repository.delete(terry); @@ -91,12 +91,12 @@ public void testDelete() { } @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 void testFindAllByAgeBetweenSpec() { } @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 5fec985e1baa..3bc705634d37 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 @@ 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 @@ */ @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 void testDataSource() { */ @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 86604e1bf519..1697ff6f014c 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 @@ */ @ExtendWith(SpringExtension.class) @SpringBootTest(properties = {"locations=classpath:applicationContext.xml"}) -public class RepositoryTest { +class RepositoryTest { @Resource private PersonRepository repository; @@ -64,13 +64,13 @@ public void setup() { } @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 void testSave() { } @Test - public void testDelete() { + void testDelete() { var terry = repository.findByName("Terry"); repository.delete(terry); @@ -91,12 +91,12 @@ public void testDelete() { } @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 void testFindAllByAgeBetweenSpec() { } @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 a1f12bcc8ae2..0663d53adfb0 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 @@ * *

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 829f2997c82d..75e8b0ebd9b8 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 cfcd4893ae50..254db17a05d6 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 cc901eed5c26..c74676be10a0 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 @@ * * @author Jeroen Meulemeester */ -public class ClosableTest { +class ClosableTest { private InMemoryAppender appender; @@ -55,7 +55,7 @@ public void tearDown() { } @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 045be73dce44..89901fbf937a 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 @@ * * @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 void oneException() { * @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 91bcc1419dd5..b01d5908ed53 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 @@ * * @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 void errors() { * 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 void attempts() { * 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 c137209e9062..15350150ff66 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 @@ * * @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 void errors() { * 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 void attempts() { * 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 30572ddad2dd..9299b08a3a82 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 @@ 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 @@ * 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 static void main(String[] args) { 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 a17b3034f552..178b361cfe60 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 @@ void getRole() { assertFalse(invRole.isPresent()); } - @Test void toStringTest() { var core = new CustomerCore(); @@ -87,8 +86,6 @@ void toStringTest() { 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 03da8e8a4341..136c11a65721 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 @@ * @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 43dc1464acde..3b009505e5dc 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 @@ * @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 9972192c73de..6c8ad900661d 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.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 67ac0f2fae1d..fde832369d0a 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 @@ 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 749a66ac5617..b97d22cfae1b 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 @@ */ 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 0469706443e6..f8884eda33b5 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 @@ 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 @@ * {@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 e1fb2302b8a6..97455dfb60f2 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 895d66edb0ff..e06c407b8d88 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 @@ 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 e756297f24e7..ea05e4a7b91b 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 @@ 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 b10861f6ba0e..b56c16ca007f 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 @@ * *

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 f769389c33cc..667166b9252c 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 @@ * * @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 void testFedSoberUncomplimentedKing() { } @Test - public void testHungryDrunkUncomplimentedKing() { + void testHungryDrunkUncomplimentedKing() { final var king = new King(); king.getDrink(); king.changeMood(); @@ -59,7 +59,7 @@ public void testHungryDrunkUncomplimentedKing() { } @Test - public void testHungrySoberComplimentedKing() { + void testHungrySoberComplimentedKing() { final var king = new King(); king.receiveCompliments(); king.changeMood(); @@ -67,7 +67,7 @@ public void testHungrySoberComplimentedKing() { } @Test - public void testFedDrunkUncomplimentedKing() { + void testFedDrunkUncomplimentedKing() { final var king = new King(); king.getFed(); king.getDrink(); @@ -76,7 +76,7 @@ public void testFedDrunkUncomplimentedKing() { } @Test - public void testFedSoberComplimentedKing() { + void testFedSoberComplimentedKing() { final var king = new King(); king.getFed(); king.receiveCompliments(); @@ -85,7 +85,7 @@ public void testFedSoberComplimentedKing() { } @Test - public void testFedDrunkComplimentedKing() { + void testFedDrunkComplimentedKing() { final var king = new King(); king.getFed(); king.getDrink(); @@ -95,7 +95,7 @@ public void testFedDrunkComplimentedKing() { } @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 1a86d0afbdf2..93dcb30bdbab 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 @@ * * @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 void testNotFlirtyUncomplemented() { } @Test - public void testNotFlirtyComplemented() { + void testNotFlirtyComplemented() { final var queen = new Queen(); queen.setFlirtiness(false); queen.receiveCompliments(); @@ -54,14 +54,14 @@ public void testNotFlirtyComplemented() { } @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 db6cdf341b4c..6e9bbec47025 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 @@ * * @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 void testFeed() { } @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 void testGiveWine() { } @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 void testGiveCompliments() { } @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 4df66ecd5451..9d0321851634 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 @@ 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; - } - - 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; - } + private String zipCode; - @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 4c13080b4a29..092d9b12db6a 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.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; - } - - 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; - } + private Address address; - @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 0302983e231b..e50202649a4d 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 78f2fffb68cc..d484fb17cb8e 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.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 @@ * 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 fdc269aea15b..3c8fef0e4eb3 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 @@ 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 bc47481fa049..7c05b6cef8d5 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 @@ protected final D getDao() { } @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 void testFind() { } @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 void testDelete() { } @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 void testSetId() { } @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 6e03c660d20c..0d5456d85918 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 @@ * * @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 void testFindAllWizards() { } @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 void testFindAllSpellbooks() { } @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 void testFindAllSpells() { } @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 void testFindWizardsWithSpellbook() { } @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 98ca75481acb..ee5180c1a632 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 @@ * * @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 273cc9f313ab..cd58d31d2f98 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 @@ * * @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 32ca3f3afef6..708fa5587d9f 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 @@ * * @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 bee10f5d9197..11faff347551 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 @@ * * @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 670b5abe9cb5..3a8dae3fd131 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 @@ 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 @@ * * @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 8247dd6315e2..a712d896d786 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 @@ * * @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 28bcb6122d19..118ab9302294 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 @@ * * @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 void testGetNonExistentService() { * 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 9261f2e34216..a8c46170379c 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 @@ enum DataType { @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 8577d2e119f0..10bb55198905 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 @@ * 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 2e23bc94630d..dd94da1280b7 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 @@ 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 12dc6ce226dd..8a52627b97ff 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 f128db4625b3..955e685302d7 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 @@ 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 14d0cf2441f8..0e8f336ae988 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 @@ void testGetShardById() { 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 dff78c77df50..4c02262d2ba8 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 @@ * {@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 ff373f415cc7..d3a164d37d71 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 @@ private 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 cbb1f944b67f..5c155ebdd243 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 @@ * @author Jeroen Meulemeester * @author Richard Jones */ -public abstract class SingletonTest { +abstract class SingletonTest { /** * The singleton's getInstance method. @@ -69,7 +69,7 @@ public SingletonTest(final Supplier singletonInstanceMethod) { * 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 void testMultipleCallsReturnTheSameObjectInSameThread() { * 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 6138cc5d943d..647de399ab0a 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 @@ 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 @@ * 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 668da581ee4a..243b76230795 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 @@ 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 37e61b83f710..32e373d2abce 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 6b27e2ebe3ef..025f385df2be 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 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 @@ * *

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 c400bb8ffd63..a83e66aae41b 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 String toString() { 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 446add357308..d5386cece236 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 @@ * * @author Jeroen Meulemeester */ -public class CreatureTest { +class CreatureTest { /** * @return The tested {@link Creature} instance and its expected specs @@ -64,40 +64,40 @@ public static Collection dataProvider() { @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 844236beaefe..e6debfcad026 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 @@ * * @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 68cb972bf73e..15e7b03168a6 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.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 void testAndComposition() { * 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 void testOrComposition() { * 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 131d269b8a5b..a3b084e1b789 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 5de71e3e7c7c..4b70ed222836 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 ee3995c07fac..8aab625fc97d 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 7ee201be2350..155cea0cbb56 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 0598782a99c3..f03783d286de 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 c535509d5188..eefa0168c656 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 799be46c6a66..cf506bc8f0bf 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 void tearDown() { * value. */ @Test - public void testTimePasses() { + void testTimePasses() { final var mammoth = new Mammoth(); mammoth.observe(); @@ -89,7 +89,7 @@ public void testTimePasses() { * 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 4406df229b56..2eab16b224a5 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 @@ * * @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 89b56beb3b22..5bc565030cc0 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 void testBuildWizard() { * expected attributes */ @Test - public void testBuildPoorWizard() { + void testBuildPoorWizard() { final var character = CharacterStepBuilder.newBuilder() .name("Merlin") .wizardClass("alchemist") @@ -88,7 +88,7 @@ public void testBuildPoorWizard() { * 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 void testBuildWeakWizard() { } - /** * 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 void testBuildWarrior() { * expected attributes */ @Test - public void testBuildPoorWarrior() { + void testBuildPoorWarrior() { final var character = CharacterStepBuilder.newBuilder() .name("Poor warrior") .fighterClass("none") @@ -157,7 +156,7 @@ public void testBuildPoorWarrior() { * 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 61b3e5d07d0b..4fce53a350ff 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 int mul(int... nums) { /** * 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 90b1fed6ce0e..43b7fff360db 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 c2ddfe290a76..3d33c901d377 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 int mul(int... nums) { /** * 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 5861ba11fcc8..e3182a1e4b59 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 3295a6fd5708..670a572bf502 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 dbccfc0c4364..f5ffe22166f9 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 410199e97972..11f94fa03a4e 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 31577842bc61..3d681a296032 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 3fa38f4a7f27..237fd5a504a9 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 89a078e841e4..b51c69ab132d 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 8090d7a56c80..afe662345851 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 f072033d45b2..e099efee0028 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 2d2cbf9c4823..d617ec02446e 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 9abab0b017f7..8554ce3ffa44 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 @@ * *

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 3c017a26c5c6..abee70417ea7 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 658427279192..06a5670307e9 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 a88179259742..6c6c73bccec8 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 6199d303a70d..70572bb6d8ab 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 c675ffcc28ac..d3b0fe0c9cb3 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 void testGoToBattle() { * 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 0d03059677ba..dae2f512e8c4 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 @@ * 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 8452e2df78f6..dee1ebce553f 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 org.junit.jupiter.api.Assertions.assertEquals; import com.github.stefanbirkner.systemlambda.Statement; + import org.junit.jupiter.api.Test; /** @@ -55,7 +56,7 @@ void testPlaySound() throws Exception { 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 @@ void testSpawnParticles() throws Exception { 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 eb9b58406a4d..c0c86c09f7b7 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 @@ void testPlaySound() throws Exception { 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 @@ void testSpawnParticles() throws Exception { 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 23dd4d242bc6..2b6a9c3ff273 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 bc550989ad6d..ba475306220e 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 cdf2c11e336d..76f750a5ba15 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 4ac7e30c656a..034fd4335284 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 02beef7591c9..236a29392769 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 void testSteal() { * 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 58f4bef31b3a..911df71374c9 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 StealingMethodTest(final M method, String expectedTarget, final String ex * Verify if the thief picks the correct target */ @Test - public void testPickTarget() { + void testPickTarget() { assertEquals(expectedTarget, this.method.pickTarget()); } @@ -112,7 +112,7 @@ public void testPickTarget() { * 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 void testConfuseTarget() { * 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 void testStealTheItem() { * 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 de6403fe8362..bc3c47fdc187 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 6562b68fb05c..9357c56a9b34 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 @@ 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 @@ * 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 797d9f693e10..2bb166d4bc35 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 66052659c51f..460093db1b65 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 TaskTest(final IntFunction factory, final int expectedExecutionTime) { * 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 void testIdGeneration() throws Exception { * 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 void testTimeMs() { * 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 854642ae1638..a2c2b6c2212e 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 4a77638e1777..dd46d11dfc5f 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 cc3eb11c6355..ab8aa860170c 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 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 @@ * ({@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 d5ba4e1326a6..88a80d481261 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 @@ 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 78dcd3ea8785..93cf3efaa871 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 d9aabc9a9177..2ea33ec3da42 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 @@ 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 26adafc69c5d..644d47abd513 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 @@ 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 @@ * * @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 9f1743ae2c92..d084fdc0e622 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.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 @@ * * @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 Result call() { } }); - 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 9713c9b3933a..9d1eeaa27e48 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 @@ private static List convertDatesToString(Result res) { * 15.12.2015 */ @Test - public void testDateValues() { + void testDateValues() { assertEquals(expectedDateValues, createdDateValues); } @@ -131,7 +131,7 @@ public void testDateValues() { * deliver 5 date values */ @Test - public void testCounterDateValues() { + void testCounterDateValues() { assertEquals(expectedCounterDateValues, result.getDateList().size()); } @@ -140,7 +140,7 @@ public void testCounterDateValues() { * 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 7b7e33ffd9c2..33db956080ff 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 static void setup() { * same exception */ @Test - public void testExceptions() { + void testExceptions() { assertEquals(expectedExceptions, result.getExceptionList()); } @@ -105,7 +105,7 @@ public void testExceptions() { * deliver no date values */ @Test - public void testCounterDateValues() { + void testCounterDateValues() { assertEquals(expectedCounterDateValues, result.getDateList().size()); } @@ -114,7 +114,7 @@ public void testCounterDateValues() { * 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 a0a8a7430ed2..1d63e8da06b6 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 @@ private static List convertDatesToString(Result res) { * 15.12.2015 by each thread */ @Test - public void testDateValues() { + void testDateValues() { for (var createdDateValue : createdDateValues) { assertEquals(expectedDateValues, createdDateValue); } @@ -145,7 +145,7 @@ public void testDateValues() { * 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 void testCounterDateValues() { * 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 abe200753b83..748d2effd652 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 @@ * 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 static void main(String[] args) throws IOException, ClassNotFoundExceptio 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 579c5ee2a888..c15fd5b57f98 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 9901126f602b..22fd84f85279 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 static void writeV1(RainbowFish rainbowFish, String filename) throws IOEx 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 static void writeV2(RainbowFishV2 rainbowFish, String filename) throws IO 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 cffdb87afdf3..5120ff006cef 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 RainbowFishV2(String name, int age, int lengthMeters, int weightTons, boo 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 101ca701d2ae..b09efe9e06ae 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 @@ void testValues() { 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 754a55d2c04a..32a3f18509ce 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 @@ * 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 6eff6d99e55b..0c7503e54501 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 @@ /** * 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 3ae3cf4c1b20..bbbce5eb1834 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 db599cc2e83b..d26233c9fcea 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 static void main(String[] args) throws Exception { // 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 c00d0ae651ce..f189a03068ea 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 void bookRoom(int roomNumber) throws Exception { * @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 f289712a32f7..ae56ed2e58fa 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.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 868f860cafc0..1ca3970879fb 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 67eb52def6f6..c6b52ef4fd44 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.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 void setUp() throws Exception { 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 void addingShouldResultInSuccess() throws Exception { } @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 void deletionShouldBeFailureAndNotAffectExistingRooms() throws Exception } @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 void updationShouldBeFailureAndNotAffectExistingRooms() throws Exception } @Test - public void retrieveShouldReturnNoRoom() throws Exception { + void retrieveShouldReturnNoRoom() throws Exception { assertFalse(dao.getById(getNonExistingRoomId()).isPresent()); } } @@ -138,7 +141,7 @@ public void retrieveShouldReturnNoRoom() throws Exception { 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 void addingShouldResultInFailureAndNotAffectExistingRooms() throws Except } @Test - public void deletionShouldBeSuccessAndRoomShouldBeNonAccessible() throws Exception { + void deletionShouldBeSuccessAndRoomShouldBeNonAccessible() throws Exception { var result = dao.delete(existingRoom); Assertions.assertTrue(result); @@ -157,7 +160,7 @@ public void deletionShouldBeSuccessAndRoomShouldBeNonAccessible() throws Excepti } @Test - public void updationShouldBeSuccessAndAccessingTheSameRoomShouldReturnUpdatedInformation() throws + void updationShouldBeSuccessAndAccessingTheSameRoomShouldReturnUpdatedInformation() throws Exception { final var newRoomType = "Double"; final var newPrice = 80; @@ -204,21 +207,21 @@ private DataSource mockedDatasource() throws SQLException { } @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 void updatingARoomFailsWithFeedbackToTheClient() { } @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 b0b7f8bd4678..061261400ddc 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 void setUp() throws Exception { } @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 void bookingRoomAgainShouldRaiseException() { } @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 void cancelRoomBookingShouldChangeBookedStatus() throws Exception { } @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 022c2e023939..6c33083a8872 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 void notEqualWithDifferentId() { } @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 4498a5c436ff..a838fa040800 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 e9465f73c507..115ea0c0a47c 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 ef986997b4e5..e0bac01bc816 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 5c927b35c44c..997de03b608a 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 void tearDown() { } @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 void testClick() { } @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 void testDoDraw() { } @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 f42c29f5efab..a9504bc20722 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 @@ * * @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 void testSuspend() { * 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 void testResume() { * 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 e9b42d6592cf..d7602b9a1f41 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 @@ * 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 a7b038664f7e..946971714e7d 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 @@ enum Type { String name; Candy parent; String parentName; + + @Setter private int points; private final Type type; @@ -48,15 +55,4 @@ enum Type { 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 d80b6a775a09..d803d1313d72 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 @@ 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 54de9bc95f35..94f90978469f 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 01aa8e5d784e..b8a300937113 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 74d0581e77f8..b3de369b4f25 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 d11f07aa2ee7..991aef12a097 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 @@ 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 ede0217426a8..60701be69217 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 e964eb4789bc..b036a0cb2526 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 @@ * 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 b8fbac3df1ed..9033c804a223 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 Entity(int id) { 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 b28b3579089c..5e0ed27acb05 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 Skeleton(int id) { * 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 void update() { 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 11b6f2438121..eac4cbd00e42 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 Statue(int id, int delay) { @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 696fca5c0e35..f4a86cec2c4d 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 @@ 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 @@ private void processInput() { 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 9c5c2a1e2bb2..b7590ec9b9a3 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 a30dd26cb712..620dfde7336e 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.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 3c91c54f3ba7..49375e94ca8a 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 @@ *

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 1186586467c0..4d060ee0fad0 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 @@ * 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 27645673d7c2..daf94064e6b8 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 @@ /** * 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 void testEquals() { * 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 75a032a47570..c33b0c8e0258 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 92d2421061b2..cf91623bf2b1 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 089c467a8b76..f4bf23d5abc2 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 0a0de0f7a2b6..eb931e23858d 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 f41cce068e17..52689a02707d 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 UnitTest(final Function factory) { } @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 4e9f8d958e4a..694be7ab23f8 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 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 void testVisitCommander() { } @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 void testVisitSergeant() { } @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 b00d757a6338..e029404b537a 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 00d9ef012945..5a06d0ca86ce 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 6163017afb0f..fc00f9b92645 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 3784a5be68b9..2db44094bc70 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 8a4b80a07bd8..3cc89ade2e58 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 29fe2e4eb3b4..920c82345092 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!");