From 0c60a95d8f0da0275db6b16f685444db96fe1837 Mon Sep 17 00:00:00 2001 From: Kai Winter Date: Sat, 19 Oct 2019 17:41:12 +0200 Subject: [PATCH 01/53] Switched to embedded Google checkstyle rules (#1018) * Switched to embedded Google checkstyle rules Moved the configuration out of the execution to make it used in all executions. Fixes #1016 * #1016: Moved checkstyle configuration back into execution This refactoring may be better done in a new issue as it may have too many implication. * Replaced consoleOutput and failsOnError by failOnViolation consoleOutput outputs everything while failsOnError just fails the build but doesn't log the error. failOnViolation fails on a violation and logs it (logViolationsToConsole defaults to true). --- checkstyle.xml | 197 ------------------------------------------------- pom.xml | 5 +- 2 files changed, 2 insertions(+), 200 deletions(-) delete mode 100644 checkstyle.xml diff --git a/checkstyle.xml b/checkstyle.xml deleted file mode 100644 index d66281f17..000000000 --- a/checkstyle.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pom.xml b/pom.xml index 22dedc14a..0ef4890ca 100644 --- a/pom.xml +++ b/pom.xml @@ -395,11 +395,10 @@ validate - checkstyle.xml + google_checks.xml checkstyle-suppressions.xml UTF-8 - true - true + true true From 8a4844792ff7780dd35d781af792ed362f1fdc16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 19 Oct 2019 19:44:57 +0300 Subject: [PATCH 02/53] Remove obsolete file --- CODE_COVERAGE.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 CODE_COVERAGE.md diff --git a/CODE_COVERAGE.md b/CODE_COVERAGE.md deleted file mode 100644 index 333ee199f..000000000 --- a/CODE_COVERAGE.md +++ /dev/null @@ -1,13 +0,0 @@ -# Code Coverage Report generation - -To generate the code coverage report, execute the following command: -> mvn clean verify jacoco:report - -This will generate code coverage report in each of the modules. In order to view the same, open the following file in your browser. -> target/site/jacoco/index.html - -Please note that the above folder is created under each of the modules. For example: -* adapter/target/site/jacoco/index.html -* business-delegate/target/site/jacoco/index.html - - From 7c5d5f6b0d82942195ae12fb987c5dfd8eabaff5 Mon Sep 17 00:00:00 2001 From: Christopher O'Connell Date: Sat, 19 Oct 2019 13:04:44 -0400 Subject: [PATCH 03/53] 1010: Fixed all of the blocking and critical Sonarcloud errors (#1020) * 1011: Added SuppressWarnings for SonarCloud errors All of these files are causing SonarCloud to report the following error: Loops should not be infinite Since these instances all require an infinite loop that will never end, these warnings should be disabled so that SonarCloud no longer reports them as error. The rule is: squid:S2189 * 1011: Made all of the randoms static and final According to SonarCloud rule: "Random" objects should be reused, randoms should not be recreated. This commit has taken all of the Randoms and made them constant variables in the files that are using them. --- .../src/main/java/com/iluwatar/circuitbreaker/App.java | 1 + commander/src/main/java/com/iluwatar/commander/Order.java | 4 ++-- commander/src/main/java/com/iluwatar/commander/Retry.java | 5 +++-- commander/src/main/java/com/iluwatar/commander/Service.java | 4 ++-- .../java/com/iluwatar/hexagonal/sampledata/SampleData.java | 4 ++-- .../java/com/iluwatar/leaderelection/AbstractInstance.java | 1 + .../java/com/iluwatar/masterworker/ArrayUtilityMethods.java | 5 +++-- .../src/main/java/com/iluwatar/priority/queue/Worker.java | 1 + .../main/java/com/iluwatar/producer/consumer/Producer.java | 5 +++-- .../java/com/iluwatar/retry/RetryExponentialBackoff.java | 4 ++-- .../src/main/java/com/iluwatar/spatialpartition/Bubble.java | 6 +++--- .../src/main/java/com/iluwatar/typeobject/CellPool.java | 4 ++-- 12 files changed, 25 insertions(+), 19 deletions(-) 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 d1d361b16..2520b64ce 100644 --- a/circuit-breaker/src/main/java/com/iluwatar/circuitbreaker/App.java +++ b/circuit-breaker/src/main/java/com/iluwatar/circuitbreaker/App.java @@ -66,6 +66,7 @@ public class App { * * @param args command line args */ + @SuppressWarnings("squid:S2189") public static void main(String[] args) { //Create an object of monitoring service which makes both local and remote calls var obj = new MonitoringService(); diff --git a/commander/src/main/java/com/iluwatar/commander/Order.java b/commander/src/main/java/com/iluwatar/commander/Order.java index 9a454a5f7..959ebd93c 100644 --- a/commander/src/main/java/com/iluwatar/commander/Order.java +++ b/commander/src/main/java/com/iluwatar/commander/Order.java @@ -44,6 +44,7 @@ public class Order { //can store all transactions ids also public final String id; final float price; final long createdTime; + private static final Random RANDOM = new Random(); private static final String ALL_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; private static final Hashtable USED_IDS = new Hashtable(); PaymentStatus paid; @@ -70,9 +71,8 @@ public class Order { //can store all transactions ids also String createUniqueId() { StringBuilder random = new StringBuilder(); - Random rand = new Random(); while (random.length() < 12) { // length of the random string. - int index = (int) (rand.nextFloat() * ALL_CHARS.length()); + int index = (int) (RANDOM.nextFloat() * ALL_CHARS.length()); random.append(ALL_CHARS.charAt(index)); } return random.toString(); diff --git a/commander/src/main/java/com/iluwatar/commander/Retry.java b/commander/src/main/java/com/iluwatar/commander/Retry.java index d4da5e8da..e9c9fb1f6 100644 --- a/commander/src/main/java/com/iluwatar/commander/Retry.java +++ b/commander/src/main/java/com/iluwatar/commander/Retry.java @@ -51,6 +51,8 @@ public class Retry { public interface HandleErrorIssue { void handleIssue(T obj, Exception e); } + + private static final Random RANDOM = new Random(); private final Operation op; private final HandleErrorIssue handleError; @@ -89,8 +91,7 @@ public class Retry { return; //return here...dont go further } try { - Random rand = new Random(); - long testDelay = (long) Math.pow(2, this.attempts.intValue()) * 1000 + rand.nextInt(1000); + long testDelay = (long) Math.pow(2, this.attempts.intValue()) * 1000 + RANDOM.nextInt(1000); long delay = testDelay < this.maxDelay ? testDelay : maxDelay; Thread.sleep(delay); } catch (InterruptedException f) { diff --git a/commander/src/main/java/com/iluwatar/commander/Service.java b/commander/src/main/java/com/iluwatar/commander/Service.java index 8c64d1d18..259b8c6cc 100644 --- a/commander/src/main/java/com/iluwatar/commander/Service.java +++ b/commander/src/main/java/com/iluwatar/commander/Service.java @@ -42,6 +42,7 @@ public abstract class Service { protected final Database database; public ArrayList exceptionsList; + private static final Random RANDOM = new Random(); private static final String ALL_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; private static final Hashtable USED_IDS = new Hashtable(); @@ -55,9 +56,8 @@ public abstract class Service { protected String generateId() { StringBuilder random = new StringBuilder(); - Random rand = new Random(); while (random.length() < 12) { // length of the random string. - int index = (int) (rand.nextFloat() * ALL_CHARS.length()); + int index = (int) (RANDOM.nextFloat() * ALL_CHARS.length()); random.append(ALL_CHARS.charAt(index)); } String id = random.toString(); diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java index 3dddb6d9b..bc4e963e1 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java @@ -40,6 +40,7 @@ import java.util.Random; public class SampleData { private static final List PLAYERS; + private static final Random RANDOM = new Random(); static { PLAYERS = new ArrayList<>(); @@ -83,10 +84,9 @@ public class SampleData { PLAYERS.add(new PlayerDetails("xavier@google.com", "143-947", "+375245")); PLAYERS.add(new PlayerDetails("harriet@google.com", "842-404", "+131243252")); InMemoryBank wireTransfers = new InMemoryBank(); - Random random = new Random(); for (PlayerDetails player : PLAYERS) { wireTransfers.setFunds(player.getBankAccount(), - random.nextInt(LotteryConstants.PLAYER_MAX_BALANCE)); + RANDOM.nextInt(LotteryConstants.PLAYER_MAX_BALANCE)); } } 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 556d725da..abece1edc 100644 --- a/leader-election/src/main/java/com/iluwatar/leaderelection/AbstractInstance.java +++ b/leader-election/src/main/java/com/iluwatar/leaderelection/AbstractInstance.java @@ -58,6 +58,7 @@ public abstract class AbstractInstance implements Instance, Runnable { * The instance will execute the message in its message queue periodically once it is alive. */ @Override + @SuppressWarnings("squid:S2189") public void run() { while (true) { if (!this.messageQueue.isEmpty()) { 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 fb27e5b48..576ffb6bf 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 @@ -34,6 +34,8 @@ import java.util.Random; public class ArrayUtilityMethods { private static final Logger LOGGER = LoggerFactory.getLogger(ArrayUtilityMethods.class); + + private static final Random RANDOM = new Random(); /** * Method arraysSame compares 2 arrays @param a1 and @param a2 * and @return whether their values are equal (boolean). @@ -86,11 +88,10 @@ public class ArrayUtilityMethods { public static int[][] createRandomIntMatrix(int rows, int columns) { int[][] matrix = new int[rows][columns]; - Random rand = new Random(); for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { //filling cells in matrix - matrix[i][j] = rand.nextInt(10); + matrix[i][j] = RANDOM.nextInt(10); } } return matrix; 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 dbccd5d66..e37feb679 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 @@ -41,6 +41,7 @@ public class Worker { /** * Keep checking queue for message */ + @SuppressWarnings("squid:S2189") public void run() throws Exception { while (true) { Message message = queueManager.receiveMessage(); diff --git a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java index 4cc1a6567..3681c017d 100644 --- a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java +++ b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java @@ -29,6 +29,8 @@ import java.util.Random; * to queue */ public class Producer { + + private static final Random RANDOM = new Random(); private final ItemQueue queue; @@ -48,7 +50,6 @@ public class Producer { Item item = new Item(name, itemId++); queue.put(item); - Random random = new Random(); - Thread.sleep(random.nextInt(2000)); + Thread.sleep(RANDOM.nextInt(2000)); } } diff --git a/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java b/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java index 551914dad..b7024c918 100644 --- a/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java +++ b/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java @@ -37,6 +37,7 @@ import java.util.function.Predicate; * @param the remote op's return type */ public final class RetryExponentialBackoff implements BusinessOperation { + private static final Random RANDOM = new Random(); private final BusinessOperation op; private final int maxAttempts; private final long maxDelay; @@ -98,8 +99,7 @@ public final class RetryExponentialBackoff implements BusinessOperation { } try { - Random rand = new Random(); - long testDelay = (long) Math.pow(2, this.attempts()) * 1000 + rand.nextInt(1000); + long testDelay = (long) Math.pow(2, this.attempts()) * 1000 + RANDOM.nextInt(1000); long delay = testDelay < this.maxDelay ? testDelay : maxDelay; Thread.sleep(delay); } catch (InterruptedException f) { 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 01faa8371..8147c4ea3 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java @@ -36,6 +36,7 @@ import java.util.Random; public class Bubble extends Point { private static final Logger LOGGER = LoggerFactory.getLogger(Bubble.class); + private static final Random RANDOM = new Random(); final int radius; @@ -45,10 +46,9 @@ public class Bubble extends Point { } void move() { - Random rand = new Random(); //moves by 1 unit in either direction - this.x += rand.nextInt(3) - 1; - this.y += rand.nextInt(3) - 1; + this.x += RANDOM.nextInt(3) - 1; + this.y += RANDOM.nextInt(3) - 1; } boolean touches(Bubble b) { diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java index 9e855b4d6..e04cce4f0 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java @@ -37,6 +37,7 @@ import com.iluwatar.typeobject.Candy.Type; */ public class CellPool { + private static final Random RANDOM = new Random(); ArrayList pool; int pointer; Candy[] randomCode; @@ -57,8 +58,7 @@ public class CellPool { } for (int i = 0; i < num; i++) { Cell c = new Cell(); - Random rand = new Random(); - c.candy = randomCode[rand.nextInt(randomCode.length)]; + c.candy = randomCode[RANDOM.nextInt(randomCode.length)]; this.pool.add(c); } this.pointer = num - 1; From f671f03d13966c9c5b3b65625224912336db86dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 19 Oct 2019 22:14:01 +0300 Subject: [PATCH 04/53] Update FAQ metadata --- faq.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/faq.md b/faq.md index f630c0e4e..141f5090d 100644 --- a/faq.md +++ b/faq.md @@ -1,6 +1,8 @@ --- layout: page -title: FAQ +link-title: FAQ +title: FAQ - Java Design Patterns +description: design patterns java program best practises tutorials design principles development examples coders programmers developers architects paradigms object oriented systems architecture solutions problems permalink: /faq/ icon: fa-question page-index: 5 From 82f9a6c2323b412036965fc51e5ec155b6cf7741 Mon Sep 17 00:00:00 2001 From: Christopher O'Connell Date: Sun, 20 Oct 2019 02:02:36 -0400 Subject: [PATCH 05/53] 1010: Fixed the two remaining SonarCloud errors (#1023) The two remaining files were still creating a Random everytime the method was called. These were missed in the previous commit because the previous commit had fixed only one of the methods; in other words, there were multiple methods that were creating the Random object on each call. --- .../java/com/iluwatar/hexagonal/sampledata/SampleData.java | 3 +-- .../src/main/java/com/iluwatar/typeobject/CellPool.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java index bc4e963e1..29a9d3233 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java @@ -102,8 +102,7 @@ public class SampleData { } private static PlayerDetails getRandomPlayerDetails() { - Random random = new Random(); - int idx = random.nextInt(PLAYERS.size()); + int idx = RANDOM.nextInt(PLAYERS.size()); return PLAYERS.get(idx); } } diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java index e04cce4f0..6014da0cf 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java @@ -71,8 +71,7 @@ public class CellPool { } void addNewCell(Cell c) { - Random rand = new Random(); - c.candy = randomCode[rand.nextInt(randomCode.length)]; //changing candytype to new + c.candy = randomCode[RANDOM.nextInt(randomCode.length)]; //changing candytype to new this.pool.add(c); pointer++; } From 2217fbc5ff5deeff78be4540499061db21840e1d Mon Sep 17 00:00:00 2001 From: Azureyjt Date: Sun, 20 Oct 2019 23:55:36 +0800 Subject: [PATCH 06/53] Issue#550: double buffer pattern (#1024) * Basic implementation * implement double buffer * add unit test * add unit test * Add Readme * Change local value declaration to var * Remove unused fields --- double-buffer/README.md | 29 ++++++ double-buffer/pom.xml | 49 ++++++++++ .../java/com/iluwatar/doublebuffer/App.java | 85 ++++++++++++++++ .../com/iluwatar/doublebuffer/Buffer.java | 56 +++++++++++ .../iluwatar/doublebuffer/FrameBuffer.java | 68 +++++++++++++ .../java/com/iluwatar/doublebuffer/Pixel.java | 39 ++++++++ .../java/com/iluwatar/doublebuffer/Scene.java | 86 ++++++++++++++++ .../com/iluwatar/doublebuffer/AppTest.java | 39 ++++++++ .../doublebuffer/FrameBufferTest.java | 97 +++++++++++++++++++ .../com/iluwatar/doublebuffer/SceneTest.java | 74 ++++++++++++++ pom.xml | 1 + 11 files changed, 623 insertions(+) create mode 100644 double-buffer/README.md create mode 100644 double-buffer/pom.xml create mode 100644 double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java create mode 100644 double-buffer/src/main/java/com/iluwatar/doublebuffer/Buffer.java create mode 100644 double-buffer/src/main/java/com/iluwatar/doublebuffer/FrameBuffer.java create mode 100644 double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java create mode 100644 double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java create mode 100644 double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java create mode 100644 double-buffer/src/test/java/com/iluwatar/doublebuffer/FrameBufferTest.java create mode 100644 double-buffer/src/test/java/com/iluwatar/doublebuffer/SceneTest.java diff --git a/double-buffer/README.md b/double-buffer/README.md new file mode 100644 index 000000000..8e8e7acf6 --- /dev/null +++ b/double-buffer/README.md @@ -0,0 +1,29 @@ + +--- +layout: pattern +title: Double Buffer +folder: double-buffer +permalink: /patterns/double-buffer/ +categories: Other +tags: + - Java + - Difficulty-Beginner +--- + +## Intent +Double buffering is a term used to describe a device that has two buffers. The usage of multiple buffers increases the overall throughput of a device and helps prevents bottlenecks. This example shows using double buffer pattern on graphics. It is used to show one image or frame while a 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. + +## Applicability +This pattern is one of those ones where you’ll know when you need it. If you have a system that lacks double buffering, it will probably look visibly wrong (tearing, etc.) or will behave incorrectly. But saying, “you’ll know when you need it” doesn’t give you much to go on. More specifically, this pattern is appropriate when all of these are true: + +- We have some state that is being modified incrementally. + +- That same state may be accessed in the middle of modification. + +- We want to prevent the code that’s accessing the state from seeing the work in progress. + +- We want to be able to read the state and we don’t want to have to wait while it’s being written. + +## Credits + +* [Game Programming Patterns - Double Buffer]([http://gameprogrammingpatterns.com/double-buffer.html](http://gameprogrammingpatterns.com/double-buffer.html)) \ No newline at end of file diff --git a/double-buffer/pom.xml b/double-buffer/pom.xml new file mode 100644 index 000000000..a904c5884 --- /dev/null +++ b/double-buffer/pom.xml @@ -0,0 +1,49 @@ + + + + + java-design-patterns + com.iluwatar + 1.22.0-SNAPSHOT + + 4.0.0 + + double-buffer + + + + junit + junit + + + org.apache.commons + commons-lang3 + + + + \ No newline at end of file diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java new file mode 100644 index 000000000..78c4a747a --- /dev/null +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/App.java @@ -0,0 +1,85 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +import org.apache.commons.lang3.tuple.MutablePair; +import org.apache.commons.lang3.tuple.Pair; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; + +/** + * Double buffering is a term used to describe a device that has two buffers. + * The usage of multiple buffers increases the overall throughput of a device + * and helps prevents bottlenecks. This example shows using double buffer pattern + * on graphics. It is used to show one image or frame while a 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. + */ +public class App { + + private static final Logger LOGGER = LoggerFactory.getLogger(App.class); + + /** + * Program main entry point. + * @param args runtime arguments + */ + public static void main(String[] args) { + var scene = new Scene(); + List> drawPixels = new ArrayList<>(); + Pair pixel1 = new MutablePair<>(1, 1); + Pair pixel2 = new MutablePair<>(5, 6); + Pair pixel3 = new MutablePair<>(3, 2); + drawPixels.add(pixel1); + drawPixels.add(pixel2); + drawPixels.add(pixel3); + scene.draw(drawPixels); + var buffer1 = scene.getBuffer(); + printBlackPixelCoordinate(buffer1); + + drawPixels.clear(); + Pair pixel4 = new MutablePair<>(3, 7); + Pair pixel5 = new MutablePair<>(6, 1); + drawPixels.add(pixel4); + drawPixels.add(pixel5); + scene.draw(drawPixels); + Buffer buffer2 = scene.getBuffer(); + printBlackPixelCoordinate(buffer2); + } + + private static void printBlackPixelCoordinate(Buffer buffer) { + var log = "Black Pixels: "; + Pixel[] pixels = buffer.getPixels(); + for (var i = 0; i < pixels.length; ++i) { + if (pixels[i] == Pixel.BLACK) { + var y = i / FrameBuffer.WIDTH; + var x = i % FrameBuffer.WIDTH; + log += " (" + x + ", " + y + ")"; + } + } + LOGGER.info(log); + } +} diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Buffer.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Buffer.java new file mode 100644 index 000000000..b8c15a914 --- /dev/null +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Buffer.java @@ -0,0 +1,56 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +/** + * Buffer interface. + */ +public interface Buffer { + + /** + * Clear the pixel in (x, y). + * @param x X coordinate + * @param y Y coordinate + */ + void clear(int x, int y); + + /** + * Draw the pixel in (x, y). + * @param x X coordinate + * @param y Y coordinate + */ + void draw(int x, int y); + + /** + * Clear all the pixels. + */ + void clearAll(); + + /** + * Get all the pixels. + * @return pixel list + */ + Pixel[] getPixels(); + +} diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/FrameBuffer.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/FrameBuffer.java new file mode 100644 index 000000000..2730140a3 --- /dev/null +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/FrameBuffer.java @@ -0,0 +1,68 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * FrameBuffer implementation class. + */ +public class FrameBuffer implements Buffer { + + public static final int WIDTH = 10; + public static final int HEIGHT = 8; + + private Pixel[] pixels = new Pixel[WIDTH * HEIGHT]; + + public FrameBuffer() { + clearAll(); + } + + @Override + public void clear(int x, int y) { + pixels[getIndex(x, y)] = Pixel.WHITE; + } + + @Override + public void draw(int x, int y) { + pixels[getIndex(x, y)] = Pixel.BLACK; + } + + @Override + public void clearAll() { + for (var i = 0; i < pixels.length; ++i) { + pixels[i] = Pixel.WHITE; + } + } + + @Override + public Pixel[] getPixels() { + return pixels; + } + + private int getIndex(int x, int y) { + return x + WIDTH * y; + } +} diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java new file mode 100644 index 000000000..d693f4e28 --- /dev/null +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Pixel.java @@ -0,0 +1,39 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +/** + * Pixel enum. Each pixel can be white (not drawn) or black (drawn). + */ +public enum Pixel { + + WHITE(0), + BLACK(1); + + private int color; + + Pixel(int color) { + this.color = color; + } +} diff --git a/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java new file mode 100644 index 000000000..2f5b668e2 --- /dev/null +++ b/double-buffer/src/main/java/com/iluwatar/doublebuffer/Scene.java @@ -0,0 +1,86 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +import org.apache.commons.lang3.tuple.Pair; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +/** + * Scene class. Render the output frame. + */ +public class Scene { + + private static final Logger LOGGER = LoggerFactory.getLogger(Scene.class); + + private Buffer[] frameBuffers; + + private int current; + + private int next; + + /** + * Constructor of Scene. + */ + public Scene() { + frameBuffers = new FrameBuffer[2]; + frameBuffers[0] = new FrameBuffer(); + frameBuffers[1] = new FrameBuffer(); + current = 0; + next = 1; + } + + /** + * Draw the next frame. + * @param coordinateList list of pixels of which the color should be black + */ + public void draw(List> coordinateList) { + LOGGER.info("Start drawing next frame"); + LOGGER.info("Current buffer: " + current + " Next buffer: " + next); + frameBuffers[next].clearAll(); + for (Pair coordinate : coordinateList) { + var x = coordinate.getKey(); + var y = coordinate.getValue(); + frameBuffers[next].draw(x, y); + } + LOGGER.info("Swap current and next buffer"); + swap(); + LOGGER.info("Finish swapping"); + LOGGER.info("Current buffer: " + current + " Next buffer: " + next); + } + + public Buffer getBuffer() { + LOGGER.info("Get current buffer: " + current); + return frameBuffers[current]; + } + + private void swap() { + current = current ^ next; + next = current ^ next; + current = current ^ next; + } + +} diff --git a/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java b/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java new file mode 100644 index 000000000..ebbabf980 --- /dev/null +++ b/double-buffer/src/test/java/com/iluwatar/doublebuffer/AppTest.java @@ -0,0 +1,39 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +import org.junit.Test; + +/** + * App unit test. + */ +public class AppTest { + + @Test + public void testMain() { + String[] args = {}; + App.main(args); + } + +} diff --git a/double-buffer/src/test/java/com/iluwatar/doublebuffer/FrameBufferTest.java b/double-buffer/src/test/java/com/iluwatar/doublebuffer/FrameBufferTest.java new file mode 100644 index 000000000..689af2919 --- /dev/null +++ b/double-buffer/src/test/java/com/iluwatar/doublebuffer/FrameBufferTest.java @@ -0,0 +1,97 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +import org.junit.Assert; +import org.junit.Test; + +/** + * FrameBuffer unit test. + */ +public class FrameBufferTest { + + @Test + public void testClearAll() { + try { + var field = FrameBuffer.class.getDeclaredField("pixels"); + Pixel[] pixels = new Pixel[FrameBuffer.HEIGHT * FrameBuffer.WIDTH]; + for (int i = 0; i < pixels.length; ++i) { + pixels[i] = Pixel.WHITE; + } + pixels[0] = Pixel.BLACK; + var frameBuffer = new FrameBuffer(); + field.setAccessible(true); + field.set(frameBuffer, pixels); + frameBuffer.clearAll(); + Assert.assertEquals(Pixel.WHITE, frameBuffer.getPixels()[0]); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + } + + @Test + public void testClear() { + try { + var field = FrameBuffer.class.getDeclaredField("pixels"); + Pixel[] pixels = new Pixel[FrameBuffer.HEIGHT * FrameBuffer.WIDTH]; + for (int i = 0; i < pixels.length; ++i) { + pixels[i] = Pixel.WHITE; + } + pixels[0] = Pixel.BLACK; + var frameBuffer = new FrameBuffer(); + field.setAccessible(true); + field.set(frameBuffer, pixels); + frameBuffer.clear(0, 0); + Assert.assertEquals(Pixel.WHITE, frameBuffer.getPixels()[0]); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + } + + @Test + public void testDraw() { + var frameBuffer = new FrameBuffer(); + frameBuffer.draw(0, 0); + Assert.assertEquals(Pixel.BLACK, frameBuffer.getPixels()[0]); + } + + @Test + public void testGetPixels() { + try { + var field = FrameBuffer.class.getDeclaredField("pixels"); + Pixel[] pixels = new Pixel[FrameBuffer.HEIGHT * FrameBuffer.WIDTH]; + for (int i = 0; i < pixels.length; ++i) { + pixels[i] = Pixel.WHITE; + } + pixels[0] = Pixel.BLACK; + var frameBuffer = new FrameBuffer(); + field.setAccessible(true); + field.set(frameBuffer, pixels); + Assert.assertEquals(pixels, frameBuffer.getPixels()); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + } + +} diff --git a/double-buffer/src/test/java/com/iluwatar/doublebuffer/SceneTest.java b/double-buffer/src/test/java/com/iluwatar/doublebuffer/SceneTest.java new file mode 100644 index 000000000..ab332aa22 --- /dev/null +++ b/double-buffer/src/test/java/com/iluwatar/doublebuffer/SceneTest.java @@ -0,0 +1,74 @@ +/** + * The MIT License + * Copyright (c) 2014-2016 Ilkka Seppälä + *

+ * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *

+ * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + *

+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.doublebuffer; + +import org.junit.Assert; +import org.junit.Test; + +import java.lang.reflect.Field; +import java.util.ArrayList; + +/** + * Scene unit tests. + */ +public class SceneTest { + + @Test + public void testGetBuffer() { + try { + var scene = new Scene(); + var field1 = Scene.class.getDeclaredField("current"); + field1.setAccessible(true); + field1.set(scene, 0); + FrameBuffer[] frameBuffers = new FrameBuffer[2]; + FrameBuffer frameBuffer = new FrameBuffer(); + frameBuffer.draw(0, 0); + frameBuffers[0] = frameBuffer; + var field2 = Scene.class.getDeclaredField("frameBuffers"); + field2.setAccessible(true); + field2.set(scene, frameBuffers); + Assert.assertEquals(frameBuffer, scene.getBuffer()); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to access private field."); + } + } + + @Test + public void testDraw() { + try { + var scene = new Scene(); + var field1 = Scene.class.getDeclaredField("current"); + var field2 = Scene.class.getDeclaredField("next"); + field1.setAccessible(true); + field1.set(scene, 0); + field2.setAccessible(true); + field2.set(scene, 1); + scene.draw(new ArrayList<>()); + Assert.assertEquals(1, field1.get(scene)); + Assert.assertEquals(0, field2.get(scene)); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to access private field"); + } + } +} diff --git a/pom.xml b/pom.xml index 0ef4890ca..913f600e7 100644 --- a/pom.xml +++ b/pom.xml @@ -183,6 +183,7 @@ data-locality subclass-sandbox circuit-breaker + double-buffer From f00ebe1a8de224dadcc1526e1771825522be8c15 Mon Sep 17 00:00:00 2001 From: Anurag870 Date: Sun, 20 Oct 2019 21:31:02 +0530 Subject: [PATCH 07/53] #984 local variable inference changes (#1025) * #984 Fix for abstract-document, abstract-factory, acyclic-visitor, adapter, aggregator-microservices * #984 Fix for abstract-document, abstract-factory, acyclic-visitor, adapter, aggregator-microservices --- .../iluwatar/abstractdocument/AbstractDocument.java | 2 +- .../java/com/iluwatar/abstractdocument/App.java | 9 ++++----- .../main/java/com/iluwatar/acyclicvisitor/App.java | 8 ++++---- .../acyclicvisitor/ConfigureForDosVisitorTest.java | 12 ++---------- .../acyclicvisitor/ConfigureForUnixVisitorTest.java | 4 ++-- .../java/com/iluwatar/acyclicvisitor/HayesTest.java | 13 ++++--------- .../java/com/iluwatar/acyclicvisitor/ZoomTest.java | 13 ++++--------- adapter/src/main/java/com/iluwatar/adapter/App.java | 2 +- .../com/iluwatar/adapter/AdapterPatternTest.java | 6 +++--- .../aggregator/microservices/Aggregator.java | 2 +- .../microservices/ProductInformationClientImpl.java | 6 +++--- .../microservices/ProductInventoryClientImpl.java | 8 ++++---- 12 files changed, 33 insertions(+), 52 deletions(-) diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java index ec5ff822e..dee8302c1 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java @@ -61,7 +61,7 @@ public abstract class AbstractDocument implements Document { @Override public String toString() { - StringBuilder builder = new StringBuilder(); + var builder = new StringBuilder(); builder.append(getClass().getName()).append("["); properties.forEach((key, value) -> builder.append("[").append(key).append(" : ").append(value).append("]")); builder.append("]"); 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 1566b32f1..e8b2410a8 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java @@ -24,7 +24,6 @@ package com.iluwatar.abstractdocument; import java.util.Arrays; import java.util.HashMap; -import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,23 +51,23 @@ public class App { public App() { LOGGER.info("Constructing parts and car"); - Map carProperties = new HashMap<>(); + var carProperties = new HashMap(); carProperties.put(Property.MODEL.toString(), "300SL"); carProperties.put(Property.PRICE.toString(), 10000L); - Map wheelProperties = new HashMap<>(); + var wheelProperties = new HashMap(); wheelProperties.put(Property.TYPE.toString(), "wheel"); wheelProperties.put(Property.MODEL.toString(), "15C"); wheelProperties.put(Property.PRICE.toString(), 100L); - Map doorProperties = new HashMap<>(); + var doorProperties = new HashMap(); doorProperties.put(Property.TYPE.toString(), "door"); doorProperties.put(Property.MODEL.toString(), "Lambo"); doorProperties.put(Property.PRICE.toString(), 300L); carProperties.put(Property.PARTS.toString(), Arrays.asList(wheelProperties, doorProperties)); - Car car = new Car(carProperties); + var car = new Car(carProperties); LOGGER.info("Here is our car:"); LOGGER.info("-> model: {}", car.getModel().get()); diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java index 19a48ef61..be96f3a60 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java @@ -41,11 +41,11 @@ public class App { */ public static void main(String[] args) { - ConfigureForUnixVisitor conUnix = new ConfigureForUnixVisitor(); - ConfigureForDosVisitor conDos = new ConfigureForDosVisitor(); + var conUnix = new ConfigureForUnixVisitor(); + var conDos = new ConfigureForDosVisitor(); - Zoom zoom = new Zoom(); - Hayes hayes = new Hayes(); + var zoom = new Zoom(); + var hayes = new Hayes(); hayes.accept(conDos); // Hayes modem with Dos configurator zoom.accept(conDos); // Zoom modem with Dos configurator 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 db7856b7c..b90bafb0f 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java @@ -24,18 +24,10 @@ package com.iluwatar.acyclicvisitor; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.groups.Tuple.tuple; -import static org.mockito.Mockito.mock; import static uk.org.lidalia.slf4jext.Level.INFO; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; - -import com.iluwatar.acyclicvisitor.ConfigureForDosVisitor; -import com.iluwatar.acyclicvisitor.Hayes; -import com.iluwatar.acyclicvisitor.HayesVisitor; -import com.iluwatar.acyclicvisitor.Zoom; -import com.iluwatar.acyclicvisitor.ZoomVisitor; - import uk.org.lidalia.slf4jtest.TestLogger; import uk.org.lidalia.slf4jtest.TestLoggerFactory; @@ -48,8 +40,8 @@ public class ConfigureForDosVisitorTest { @Test public void testVisitForZoom() { - ConfigureForDosVisitor conDos = new ConfigureForDosVisitor(); - Zoom zoom = new Zoom(); + var conDos = new ConfigureForDosVisitor(); + var zoom = new Zoom(); conDos.visit(zoom); 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 394bd9558..ef6fd4d8e 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java @@ -46,8 +46,8 @@ public class ConfigureForUnixVisitorTest { @Test public void testVisitForZoom() { - ConfigureForUnixVisitor conUnix = new ConfigureForUnixVisitor(); - Zoom zoom = new Zoom(); + var conUnix = new ConfigureForUnixVisitor(); + var zoom = new Zoom(); conUnix.visit(zoom); 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 d18b7a34f..477354b13 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java @@ -29,11 +29,6 @@ import static org.mockito.Mockito.verifyZeroInteractions; import org.junit.jupiter.api.Test; -import com.iluwatar.acyclicvisitor.ConfigureForDosVisitor; -import com.iluwatar.acyclicvisitor.ConfigureForUnixVisitor; -import com.iluwatar.acyclicvisitor.Hayes; -import com.iluwatar.acyclicvisitor.HayesVisitor; - /** * Hayes test class */ @@ -41,8 +36,8 @@ public class HayesTest { @Test public void testAcceptForDos() { - Hayes hayes = new Hayes(); - ConfigureForDosVisitor mockVisitor = mock(ConfigureForDosVisitor.class); + var hayes = new Hayes(); + var mockVisitor = mock(ConfigureForDosVisitor.class); hayes.accept(mockVisitor); verify((HayesVisitor)mockVisitor).visit(eq(hayes)); @@ -50,8 +45,8 @@ public class HayesTest { @Test public void testAcceptForUnix() { - Hayes hayes = new Hayes(); - ConfigureForUnixVisitor mockVisitor = mock(ConfigureForUnixVisitor.class); + var hayes = new Hayes(); + var mockVisitor = mock(ConfigureForUnixVisitor.class); hayes.accept(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 924d97b2e..ff24d526d 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java @@ -29,11 +29,6 @@ import static org.mockito.Mockito.mock; import org.junit.jupiter.api.Test; -import com.iluwatar.acyclicvisitor.ConfigureForDosVisitor; -import com.iluwatar.acyclicvisitor.ConfigureForUnixVisitor; -import com.iluwatar.acyclicvisitor.Zoom; -import com.iluwatar.acyclicvisitor.ZoomVisitor; - /** * Zoom test class */ @@ -41,8 +36,8 @@ public class ZoomTest { @Test public void testAcceptForDos() { - Zoom zoom = new Zoom(); - ConfigureForDosVisitor mockVisitor = mock(ConfigureForDosVisitor.class); + var zoom = new Zoom(); + var mockVisitor = mock(ConfigureForDosVisitor.class); zoom.accept(mockVisitor); verify((ZoomVisitor)mockVisitor).visit(eq(zoom)); @@ -50,8 +45,8 @@ public class ZoomTest { @Test public void testAcceptForUnix() { - Zoom zoom = new Zoom(); - ConfigureForUnixVisitor mockVisitor = mock(ConfigureForUnixVisitor.class); + var zoom = new Zoom(); + var mockVisitor = mock(ConfigureForUnixVisitor.class); zoom.accept(mockVisitor); verify((ZoomVisitor)mockVisitor).visit(eq(zoom)); diff --git a/adapter/src/main/java/com/iluwatar/adapter/App.java b/adapter/src/main/java/com/iluwatar/adapter/App.java index f04e26e76..4f31af795 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/App.java +++ b/adapter/src/main/java/com/iluwatar/adapter/App.java @@ -54,7 +54,7 @@ public class App { */ public static void main(String[] args) { // The captain can only operate rowing boats but with adapter he is able to use fishing boats as well - Captain captain = new Captain(new FishingBoatAdapter()); + var captain = new Captain(new FishingBoatAdapter()); captain.row(); } } diff --git a/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java b/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java index d76f37403..b5164c68d 100644 --- a/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java +++ b/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java @@ -53,7 +53,7 @@ public class AdapterPatternTest { FishingBoatAdapter fishingBoatAdapter = spy(new FishingBoatAdapter()); beans.put(FISHING_BEAN, fishingBoatAdapter); - Captain captain = new Captain(); + var captain = new Captain(); captain.setRowingBoat((FishingBoatAdapter) beans.get(FISHING_BEAN)); beans.put(ROWING_BEAN, captain); } @@ -66,13 +66,13 @@ public class AdapterPatternTest { */ @Test public void testAdapter() { - Captain captain = (Captain) beans.get(ROWING_BEAN); + var captain = (Captain) beans.get(ROWING_BEAN); // when captain moves captain.row(); // the captain internally calls the battleship object to move - RowingBoat adapter = (RowingBoat) beans.get(FISHING_BEAN); + var adapter = (RowingBoat) beans.get(FISHING_BEAN); verify(adapter).row(); } } 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 ccbe6f2fe..593d83e13 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 @@ -50,7 +50,7 @@ public class Aggregator { */ @RequestMapping(path = "/product", method = RequestMethod.GET) public Product getProduct() { - Product product = new Product(); + var product = new Product(); product.setTitle(informationClient.getProductTitle()); product.setProductInventories(inventoryClient.getProductInventories()); return product; 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 b42b5b55a..f04906b47 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 @@ -43,10 +43,10 @@ public class ProductInformationClientImpl implements ProductInformationClient { @Override public String getProductTitle() { String response = null; - HttpRequest request = HttpRequest.newBuilder().GET().uri(URI.create("http://localhost:51515/information")).build(); - HttpClient client = HttpClient.newHttpClient(); + var request = HttpRequest.newBuilder().GET().uri(URI.create("http://localhost:51515/information")).build(); + var client = HttpClient.newHttpClient(); try { - HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString()); + var httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString()); response = httpResponse.body(); } catch (IOException ioe) { LOGGER.error("IOException Occurred", ioe); 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 59a050c9e..c92eb678c 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 @@ -42,12 +42,12 @@ public class ProductInventoryClientImpl implements ProductInventoryClient { @Override public int getProductInventories() { - String response = "0"; + var response = "0"; - HttpRequest request = HttpRequest.newBuilder().GET().uri(URI.create("http://localhost:51516/inventories")).build(); - HttpClient client = HttpClient.newHttpClient(); + var request = HttpRequest.newBuilder().GET().uri(URI.create("http://localhost:51516/inventories")).build(); + var client = HttpClient.newHttpClient(); try { - HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString()); + var httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString()); response = httpResponse.body(); } catch (IOException ioe) { LOGGER.error("IOException Occurred", ioe); From 5fc03ee9f820307ccf2667b946057d0d53ec0a70 Mon Sep 17 00:00:00 2001 From: Jonathan Lao-kan Date: Sun, 20 Oct 2019 22:21:48 +0200 Subject: [PATCH 08/53] improve grammar of README (#945) * improve grammar of README * Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4642b9989..1d8245d5d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ solve common problems when designing an application or system. Design patterns can speed up the development process by providing tested, proven development paradigms. -Reusing design patterns help prevent subtle issues which cause major +Reusing design patterns help prevent subtle issues that cause major problems, and it also improves code readability for coders and architects who are familiar with the patterns. @@ -42,7 +42,7 @@ Once you are familiar with these concepts you can start drilling down into patterns by any of the following approaches - Using difficulty tags, `Difficulty-Beginner`, `Difficulty-Intermediate` & `Difficulty-Expert`. - - Using pattern categories, `Creational`, `Behavioral` and others. + - Using pattern categories, `Creational`, `Behavioral`, and others. - Search for a specific pattern. Can't find one? Please report a new pattern [here](https://github.com/iluwatar/java-design-patterns/issues). Hopefully you find the object oriented solutions presented on this site useful From c81c3ff1c7c5509f3421d230e61893beb1d587bb Mon Sep 17 00:00:00 2001 From: Zack Beach Date: Mon, 21 Oct 2019 01:09:29 -0400 Subject: [PATCH 09/53] Use local variable type inference (#995) * "visitor" pattern: Use local variable type inference Update "visitor" pattern with local variable type inference. * "value-object" pattern: Use local variable type inference Update "value-object" pattern with local variable type inference. * "unit-of-work" pattern: Use local variable type inference Update "value-object" pattern with local variable type inference. * "typeobjectpattern" pattern: Use local variable type inference Update "value-object" pattern with local variable type inference. --- .../java/com/iluwatar/typeobject/App.java | 18 ++++---- .../com/iluwatar/typeobject/CandyGame.java | 46 +++++++++---------- .../java/com/iluwatar/typeobject/Cell.java | 6 +-- .../com/iluwatar/typeobject/CellPool.java | 14 +++--- .../com/iluwatar/typeobject/JsonParser.java | 22 ++++----- .../iluwatar/typeobject/CandyGameTest.java | 26 +++++------ .../com/iluwatar/typeobject/CellPoolTest.java | 8 ++-- .../com/iluwatar/typeobject/CellTest.java | 18 ++++---- .../java/com/iluwatar/unitofwork/App.java | 10 ++-- .../unitofwork/StudentRepository.java | 14 +++--- .../unitofwork/StudentRepositoryTest.java | 4 +- .../java/com/iluwatar/value/object/App.java | 6 +-- .../com/iluwatar/value/object/HeroStat.java | 6 +-- .../iluwatar/value/object/HeroStatTest.java | 10 ++-- .../main/java/com/iluwatar/visitor/App.java | 2 +- .../main/java/com/iluwatar/visitor/Unit.java | 2 +- .../java/com/iluwatar/visitor/UnitTest.java | 8 ++-- 17 files changed, 110 insertions(+), 110 deletions(-) diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java index 2e6db9dd6..daa1539ac 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/App.java @@ -53,17 +53,17 @@ public class App { * @param args command line args */ public static void main(String[] args) throws FileNotFoundException, IOException, ParseException { - int givenTime = 50; //50ms - int toWin = 500; //points - int pointsWon = 0; - int numOfRows = 3; - long start = System.currentTimeMillis(); - long end = System.currentTimeMillis(); - int round = 0; + var givenTime = 50; //50ms + var toWin = 500; //points + var pointsWon = 0; + var numOfRows = 3; + var start = System.currentTimeMillis(); + var end = System.currentTimeMillis(); + var round = 0; while (pointsWon < toWin && end - start < givenTime) { round++; - CellPool pool = new CellPool(numOfRows * numOfRows + 5); - CandyGame cg = new CandyGame(numOfRows, pool); + var pool = new CellPool(numOfRows * numOfRows + 5); + var cg = new CandyGame(numOfRows, pool); if (round > 1) { LOGGER.info("Refreshing.."); } else { diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java index 516b4cf76..5932acfc6 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CandyGame.java @@ -44,8 +44,8 @@ public class CandyGame { this.cells = new Cell[num][num]; this.pool = pool; this.totalPoints = 0; - for (int i = 0; i < num; i++) { - for (int j = 0; j < num; j++) { + for (var i = 0; i < num; i++) { + for (var j = 0; j < num; j++) { this.cells[i][j] = this.pool.getNewCell(); this.cells[i][j].xIndex = j; this.cells[i][j].yIndex = i; @@ -55,7 +55,7 @@ public class CandyGame { static String numOfSpaces(int num) { String result = ""; - for (int i = 0; i < num; i++) { + for (var i = 0; i < num; i++) { result += " "; } return result; @@ -63,11 +63,11 @@ public class CandyGame { void printGameStatus() { LOGGER.info(""); - for (int i = 0; i < cells.length; i++) { - for (int j = 0; j < cells.length; j++) { - String candyName = cells[i][j].candy.name; + for (var i = 0; i < cells.length; i++) { + for (var j = 0; j < cells.length; j++) { + var candyName = cells[i][j].candy.name; if (candyName.length() < 20) { - int totalSpaces = 20 - candyName.length(); + var totalSpaces = 20 - candyName.length(); LOGGER.info(numOfSpaces(totalSpaces / 2) + cells[i][j].candy.name + numOfSpaces(totalSpaces - totalSpaces / 2) + "|"); } else { @@ -105,16 +105,16 @@ public class CandyGame { } boolean continueRound() { - for (int i = 0; i < this.cells.length; i++) { + for (var i = 0; i < this.cells.length; i++) { if (this.cells[cells.length - 1][i].candy.getType().equals(Type.rewardFruit)) { return true; } } - for (int i = 0; i < this.cells.length; i++) { - for (int j = 0; j < this.cells.length; j++) { + for (var i = 0; i < this.cells.length; i++) { + for (var j = 0; j < this.cells.length; j++) { if (!this.cells[i][j].candy.getType().equals(Type.rewardFruit)) { - ArrayList adj = adjacentCells(i,j); - for (int a = 0; a < adj.size(); a++) { + var adj = adjacentCells(i,j); + for (var a = 0; a < adj.size(); a++) { if (this.cells[i][j].candy.name.equals(adj.get(a).candy.name)) { return true; } @@ -132,21 +132,21 @@ public class CandyGame { } void round(int timeSoFar, int totalTime) { - long start = System.currentTimeMillis(); - long end = System.currentTimeMillis(); + var start = System.currentTimeMillis(); + var end = System.currentTimeMillis(); while (end - start + timeSoFar < totalTime && continueRound()) { - for (int i = 0; i < this.cells.length; i++) { - int points = 0; - int j = this.cells.length - 1; + for (var i = 0; i < this.cells.length; i++) { + var points = 0; + var j = this.cells.length - 1; while (this.cells[j][i].candy.getType().equals(Type.rewardFruit)) { points = this.cells[j][i].candy.getPoints(); this.cells[j][i].crush(pool, this.cells); handleChange(points); } } - for (int i = 0; i < this.cells.length; i++) { - int j = cells.length - 1; - int points = 0; + for (var i = 0; i < this.cells.length; i++) { + var j = cells.length - 1; + var points = 0; while (j > 0) { points = this.cells[j][i].interact(this.cells[j - 1][i], this.pool, this.cells); if (points != 0) { @@ -156,9 +156,9 @@ public class CandyGame { } } } - for (int i = 0; i < this.cells.length; i++) { - int j = 0; - int points = 0; + for (var i = 0; i < this.cells.length; i++) { + var j = 0; + var points = 0; while (j < cells.length - 1) { points = this.cells[i][j].interact(this.cells[i][j + 1], this.pool, this.cells); if (points != 0) { diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java index 9171cc030..bf6b671c7 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/Cell.java @@ -53,11 +53,11 @@ public class Cell { } void fillThisSpace(CellPool pool, Cell[][] cellMatrix) { - for (int y = this.yIndex; y > 0; y--) { + for (var y = this.yIndex; y > 0; y--) { cellMatrix[y][this.xIndex] = cellMatrix[y - 1][this.xIndex]; cellMatrix[y][this.xIndex].yIndex = y; } - Cell newC = pool.getNewCell(); + var newC = pool.getNewCell(); cellMatrix[0][this.xIndex] = newC; cellMatrix[0][this.xIndex].xIndex = this.xIndex; cellMatrix[0][this.xIndex].yIndex = 0; @@ -78,7 +78,7 @@ public class Cell { return 0; } else { if (this.candy.name.equals(c.candy.name)) { - int pointsWon = this.candy.getPoints() + c.candy.getPoints(); + var pointsWon = this.candy.getPoints() + c.candy.getPoints(); handleCrush(c,pool,cellMatrix); return pointsWon; } else { diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java index 6014da0cf..c381c23f6 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/CellPool.java @@ -57,7 +57,7 @@ public class CellPool { randomCode[4] = new Candy("orange gum", "candy", Type.crushableCandy, 10); } for (int i = 0; i < num; i++) { - Cell c = new Cell(); + var c = new Cell(); c.candy = randomCode[RANDOM.nextInt(randomCode.length)]; this.pool.add(c); } @@ -65,7 +65,7 @@ public class CellPool { } Cell getNewCell() { - Cell newCell = this.pool.remove(pointer); + var newCell = this.pool.remove(pointer); pointer--; return newCell; } @@ -77,12 +77,12 @@ public class CellPool { } Candy[] assignRandomCandytypes() throws FileNotFoundException, IOException, ParseException { - JsonParser jp = new JsonParser(); + var jp = new JsonParser(); jp.parse(); - Candy[] randomCode = new Candy[jp.candies.size() - 2]; //exclude generic types 'fruit' and 'candy' - int i = 0; - for (Enumeration e = jp.candies.keys(); e.hasMoreElements();) { - String s = e.nextElement(); + var randomCode = new Candy[jp.candies.size() - 2]; //exclude generic types 'fruit' and 'candy' + var i = 0; + for (var e = jp.candies.keys(); e.hasMoreElements();) { + var s = e.nextElement(); if (!s.equals("fruit") && !s.equals("candy")) { //not generic randomCode[i] = jp.candies.get(s); diff --git a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/JsonParser.java b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/JsonParser.java index 55c25e1ef..36234da4c 100644 --- a/typeobjectpattern/src/main/java/com/iluwatar/typeobject/JsonParser.java +++ b/typeobjectpattern/src/main/java/com/iluwatar/typeobject/JsonParser.java @@ -47,23 +47,23 @@ public class JsonParser { } void parse() throws FileNotFoundException, IOException, ParseException { - JSONParser parser = new JSONParser(); - JSONObject jo = (JSONObject) parser.parse(new FileReader(new File("").getAbsolutePath() + var parser = new JSONParser(); + var jo = (JSONObject) parser.parse(new FileReader(new File("").getAbsolutePath() + "\\src\\main\\java\\com\\iluwatar\\typeobject\\candy.json")); - JSONArray a = (JSONArray) jo.get("candies"); - for (Object o : a) { - JSONObject candy = (JSONObject) o; - String name = (String) candy.get("name"); - String parentName = (String) candy.get("parent"); - String t = (String) candy.get("type"); + var a = (JSONArray) jo.get("candies"); + for (var o : a) { + var candy = (JSONObject) o; + var name = (String) candy.get("name"); + var parentName = (String) candy.get("parent"); + var t = (String) candy.get("type"); Type type = null; if (t.equals("rewardFruit")) { type = Type.rewardFruit; } else { type = Type.crushableCandy; } - int points = Integer.parseInt((String) candy.get("points")); - Candy c = new Candy(name, parentName, type, points); + var points = Integer.parseInt((String) candy.get("points")); + var c = new Candy(name, parentName, type, points); this.candies.put(name, c); } setParentAndPoints(); @@ -71,7 +71,7 @@ public class JsonParser { void setParentAndPoints() { for (Enumeration e = this.candies.keys(); e.hasMoreElements();) { - Candy c = this.candies.get(e.nextElement()); + var c = this.candies.get(e.nextElement()); if (c.parentName == null) { c.parent = null; } else { diff --git a/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CandyGameTest.java b/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CandyGameTest.java index b813ee881..7192ff507 100644 --- a/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CandyGameTest.java +++ b/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CandyGameTest.java @@ -35,33 +35,33 @@ class CandyGameTest { @Test void adjacentCellsTest() { - CandyGame cg = new CandyGame(3,new CellPool(9)); - ArrayList arr1 = cg.adjacentCells(0, 0); - ArrayList arr2 = cg.adjacentCells(1, 2); - ArrayList arr3 = cg.adjacentCells(1, 1); + var cg = new CandyGame(3,new CellPool(9)); + var arr1 = cg.adjacentCells(0, 0); + var arr2 = cg.adjacentCells(1, 2); + var arr3 = cg.adjacentCells(1, 1); assertTrue(arr1.size() == 2 && arr2.size() == 3 && arr3.size() == 4); } @Test void continueRoundTest() { - Cell[][] matrix = new Cell[2][2]; - Candy c1 = new Candy("green jelly", "jelly", Type.crushableCandy, 5); - Candy c2 = new Candy("purple jelly", "jelly", Type.crushableCandy, 5); - Candy c3 = new Candy("green apple", "apple", Type.rewardFruit, 10); + var matrix = new Cell[2][2]; + var c1 = new Candy("green jelly", "jelly", Type.crushableCandy, 5); + var c2 = new Candy("purple jelly", "jelly", Type.crushableCandy, 5); + var c3 = new Candy("green apple", "apple", Type.rewardFruit, 10); matrix[0][0] = new Cell(c1,0,0);; matrix[0][1] = new Cell(c2,1,0); matrix[1][0] = new Cell(c3,0,1); matrix[1][1] = new Cell(c2,1,1); - CellPool p = new CellPool(4); - CandyGame cg = new CandyGame(2,p); + var p = new CellPool(4); + var cg = new CandyGame(2,p); cg.cells = matrix; - boolean fruitInLastRow = cg.continueRound(); + var fruitInLastRow = cg.continueRound(); matrix[1][0].crush(p, matrix); matrix[0][0] = new Cell(c3,0,0); - boolean matchingCandy = cg.continueRound(); + var matchingCandy = cg.continueRound(); matrix[0][1].crush(p,matrix); matrix[0][1] = new Cell(c3,1,0); - boolean noneLeft = cg.continueRound(); + var noneLeft = cg.continueRound(); assertTrue(fruitInLastRow && matchingCandy && !noneLeft); } diff --git a/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellPoolTest.java b/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellPoolTest.java index 289c7b944..4de7589f2 100644 --- a/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellPoolTest.java +++ b/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellPoolTest.java @@ -34,10 +34,10 @@ class CellPoolTest { @Test void assignRandomCandyTypesTest() { - CellPool cp = new CellPool(10); - Hashtable ht = new Hashtable(); - int parentTypes = 0; - for (int i = 0; i < cp.randomCode.length; i++) { + var cp = new CellPool(10); + var ht = new Hashtable(); + var parentTypes = 0; + for (var i = 0; i < cp.randomCode.length; i++) { if (ht.get(cp.randomCode[i].name) == null) { ht.put(cp.randomCode[i].name, true); } diff --git a/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellTest.java b/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellTest.java index c7beefdb1..b9cf09a4c 100644 --- a/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellTest.java +++ b/typeobjectpattern/src/test/java/com/iluwatar/typeobject/CellTest.java @@ -34,24 +34,24 @@ class CellTest { @Test void interactTest() { - Candy c1 = new Candy("green jelly", "jelly", Type.crushableCandy, 5); - Candy c2 = new Candy("green apple", "apple", Type.rewardFruit, 10); - Cell[][] matrix = new Cell[4][4]; + var c1 = new Candy("green jelly", "jelly", Type.crushableCandy, 5); + var c2 = new Candy("green apple", "apple", Type.rewardFruit, 10); + var matrix = new Cell[4][4]; matrix[0][0] = new Cell(c1,0,0); matrix[0][1] = new Cell(c1,1,0); matrix[0][2] = new Cell(c2,2,0); matrix[0][3] = new Cell(c1,3,0); - CellPool cp = new CellPool(5); - int points1 = matrix[0][0].interact(matrix[0][1], cp, matrix); - int points2 = matrix[0][2].interact(matrix[0][3], cp, matrix); + var cp = new CellPool(5); + var points1 = matrix[0][0].interact(matrix[0][1], cp, matrix); + var points2 = matrix[0][2].interact(matrix[0][3], cp, matrix); assertTrue(points1 > 0 && points2 == 0); } @Test void crushTest() { - Candy c1 = new Candy("green jelly", "jelly", Type.crushableCandy, 5); - Candy c2 = new Candy("purple candy", "candy", Type.crushableCandy, 5); - Cell[][] matrix = new Cell[4][4]; + var c1 = new Candy("green jelly", "jelly", Type.crushableCandy, 5); + var c2 = new Candy("purple candy", "candy", Type.crushableCandy, 5); + var matrix = new Cell[4][4]; matrix[0][0] = new Cell(c1,0,0); matrix[1][0] = new Cell(c2,0,1); matrix[1][0].crush(new CellPool(5), matrix); diff --git a/unit-of-work/src/main/java/com/iluwatar/unitofwork/App.java b/unit-of-work/src/main/java/com/iluwatar/unitofwork/App.java index 38cc47410..7ef9b566f 100644 --- a/unit-of-work/src/main/java/com/iluwatar/unitofwork/App.java +++ b/unit-of-work/src/main/java/com/iluwatar/unitofwork/App.java @@ -34,13 +34,13 @@ public class App { * @param args no argument sent */ public static void main(String[] args) { - Student ram = new Student(1, "Ram", "Street 9, Cupertino"); - Student shyam = new Student(2, "Shyam", "Z bridge, Pune"); - Student gopi = new Student(3, "Gopi", "Street 10, Mumbai"); + var ram = new Student(1, "Ram", "Street 9, Cupertino"); + var shyam = new Student(2, "Shyam", "Z bridge, Pune"); + var gopi = new Student(3, "Gopi", "Street 10, Mumbai"); HashMap> context = new HashMap<>(); - StudentDatabase studentDatabase = new StudentDatabase(); - StudentRepository studentRepository = new StudentRepository(context, studentDatabase); + var studentDatabase = new StudentDatabase(); + var studentRepository = new StudentRepository(context, studentDatabase); studentRepository.registerNew(ram); studentRepository.registerModified(shyam); 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 2ca1977c6..081b0f13a 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 @@ -68,7 +68,7 @@ public class StudentRepository implements IUnitOfWork { } private void register(Student student, String operation) { - List studentsToOperate = context.get(operation); + var studentsToOperate = context.get(operation); if (studentsToOperate == null) { studentsToOperate = new ArrayList<>(); } @@ -99,24 +99,24 @@ public class StudentRepository implements IUnitOfWork { } private void commitInsert() { - List studentsToBeInserted = context.get(IUnitOfWork.INSERT); - for (Student student : studentsToBeInserted) { + var studentsToBeInserted = context.get(IUnitOfWork.INSERT); + for (var student : studentsToBeInserted) { LOGGER.info("Saving {} to database.", student.getName()); studentDatabase.insert(student); } } private void commitModify() { - List modifiedStudents = context.get(IUnitOfWork.MODIFY); - for (Student student : modifiedStudents) { + var modifiedStudents = context.get(IUnitOfWork.MODIFY); + for (var student : modifiedStudents) { LOGGER.info("Modifying {} to database.", student.getName()); studentDatabase.modify(student); } } private void commitDelete() { - List deletedStudents = context.get(IUnitOfWork.DELETE); - for (Student student : deletedStudents) { + var deletedStudents = context.get(IUnitOfWork.DELETE); + for (var student : deletedStudents) { LOGGER.info("Deleting {} to database.", student.getName()); studentDatabase.delete(student); } diff --git a/unit-of-work/src/test/java/com/iluwatar/unitofwork/StudentRepositoryTest.java b/unit-of-work/src/test/java/com/iluwatar/unitofwork/StudentRepositoryTest.java index c4f45b8b5..5a75be8b5 100644 --- a/unit-of-work/src/test/java/com/iluwatar/unitofwork/StudentRepositoryTest.java +++ b/unit-of-work/src/test/java/com/iluwatar/unitofwork/StudentRepositoryTest.java @@ -97,7 +97,7 @@ public class StudentRepositoryTest { @Test public void shouldNotWriteToDbIfContextIsNull() { - StudentRepository studentRepository = new StudentRepository(null, studentDatabase); + var studentRepository = new StudentRepository(null, studentDatabase); studentRepository.commit(); @@ -106,7 +106,7 @@ public class StudentRepositoryTest { @Test public void shouldNotWriteToDbIfNothingToCommit() { - StudentRepository studentRepository = new StudentRepository(new HashMap<>(), studentDatabase); + var studentRepository = new StudentRepository(new HashMap<>(), studentDatabase); studentRepository.commit(); 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 9cc62f246..f2d773373 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 @@ -48,9 +48,9 @@ public class App { * This practice creates three HeroStats(Value object) and checks equality between those. */ public static void main(String[] args) { - HeroStat statA = HeroStat.valueOf(10, 5, 0); - HeroStat statB = HeroStat.valueOf(10, 5, 0); - HeroStat statC = HeroStat.valueOf(5, 1, 8); + var statA = HeroStat.valueOf(10, 5, 0); + var statB = HeroStat.valueOf(10, 5, 0); + var statC = HeroStat.valueOf(5, 1, 8); LOGGER.info(statA.toString()); 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 6ec2f541f..f31f29d9d 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 @@ -76,8 +76,8 @@ public class HeroStat { @Override public int hashCode() { - final int prime = 31; - int result = 1; + final var prime = 31; + var result = 1; result = prime * result + intelligence; result = prime * result + luck; result = prime * result + strength; @@ -95,7 +95,7 @@ public class HeroStat { if (getClass() != obj.getClass()) { return false; } - HeroStat other = (HeroStat) obj; + var other = (HeroStat) obj; if (intelligence != other.intelligence) { return false; } 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 e6c3f8952..a78092d36 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 @@ -45,8 +45,8 @@ public class HeroStatTest { */ @Test public void testEquals() { - HeroStat heroStatA = HeroStat.valueOf(3, 9, 2); - HeroStat heroStatB = HeroStat.valueOf(3, 9, 2); + var heroStatA = HeroStat.valueOf(3, 9, 2); + var heroStatB = HeroStat.valueOf(3, 9, 2); new EqualsTester().addEqualityGroup(heroStatA, heroStatB).testEquals(); } @@ -56,9 +56,9 @@ public class HeroStatTest { */ @Test public void testToString() { - HeroStat heroStatA = HeroStat.valueOf(3, 9, 2); - HeroStat heroStatB = HeroStat.valueOf(3, 9, 2); - HeroStat heroStatC = HeroStat.valueOf(3, 9, 8); + var heroStatA = HeroStat.valueOf(3, 9, 2); + var heroStatB = HeroStat.valueOf(3, 9, 2); + var heroStatC = HeroStat.valueOf(3, 9, 8); assertThat(heroStatA.toString(), is(heroStatB.toString())); assertThat(heroStatA.toString(), is(not(heroStatC.toString()))); diff --git a/visitor/src/main/java/com/iluwatar/visitor/App.java b/visitor/src/main/java/com/iluwatar/visitor/App.java index 9c8359cb1..143b915d8 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/App.java +++ b/visitor/src/main/java/com/iluwatar/visitor/App.java @@ -41,7 +41,7 @@ public class App { */ public static void main(String[] args) { - Commander commander = + var commander = new Commander(new Sergeant(new Soldier(), new Soldier(), new Soldier()), new Sergeant( new Soldier(), new Soldier(), new Soldier())); commander.accept(new SoldierVisitor()); diff --git a/visitor/src/main/java/com/iluwatar/visitor/Unit.java b/visitor/src/main/java/com/iluwatar/visitor/Unit.java index 27bcc26de..794308aaf 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/Unit.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Unit.java @@ -39,7 +39,7 @@ public abstract class Unit { * Accept visitor */ public void accept(UnitVisitor visitor) { - for (Unit child : children) { + for (var child : children) { child.accept(visitor); } } diff --git a/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java b/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java index d0807bab8..e375f4ce4 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java @@ -56,15 +56,15 @@ public abstract class UnitTest { @Test public void testAccept() { - final Unit[] children = new Unit[5]; + final var children = new Unit[5]; Arrays.setAll(children, (i) -> mock(Unit.class)); - final U unit = this.factory.apply(children); - final UnitVisitor visitor = mock(UnitVisitor.class); + final var unit = this.factory.apply(children); + final var visitor = mock(UnitVisitor.class); unit.accept(visitor); verifyVisit(unit, visitor); - for (final Unit child : children) { + for (final var child : children) { verify(child).accept(eq(visitor)); } From 4904d7eea047b5b924dcf33092ed887300f44d10 Mon Sep 17 00:00:00 2001 From: Alexander Ivanov Date: Tue, 22 Oct 2019 07:15:35 +0200 Subject: [PATCH 10/53] #1021: Fix checkstyle warnings by changing the license header template (#1027) * Add custom license header style in order to comply with Google's Checkstyle format * Update license headers to comply with Google's Checkstyle format --- .../abstractdocument/AbstractDocument.java | 3 +- .../com/iluwatar/abstractdocument/App.java | 3 +- .../iluwatar/abstractdocument/Document.java | 3 +- .../iluwatar/abstractdocument/domain/Car.java | 3 +- .../abstractdocument/domain/HasModel.java | 3 +- .../abstractdocument/domain/HasParts.java | 3 +- .../abstractdocument/domain/HasPrice.java | 3 +- .../abstractdocument/domain/HasType.java | 3 +- .../abstractdocument/domain/Part.java | 3 +- .../domain/enums/Property.java | 3 +- .../AbstractDocumentTest.java | 3 +- .../iluwatar/abstractdocument/AppTest.java | 3 +- .../iluwatar/abstractdocument/DomainTest.java | 3 +- .../com/iluwatar/abstractfactory/App.java | 3 +- .../com/iluwatar/abstractfactory/Army.java | 3 +- .../com/iluwatar/abstractfactory/Castle.java | 3 +- .../com/iluwatar/abstractfactory/ElfArmy.java | 3 +- .../iluwatar/abstractfactory/ElfCastle.java | 3 +- .../com/iluwatar/abstractfactory/ElfKing.java | 3 +- .../abstractfactory/ElfKingdomFactory.java | 3 +- .../com/iluwatar/abstractfactory/King.java | 3 +- .../abstractfactory/KingdomFactory.java | 3 +- .../com/iluwatar/abstractfactory/OrcArmy.java | 3 +- .../iluwatar/abstractfactory/OrcCastle.java | 3 +- .../com/iluwatar/abstractfactory/OrcKing.java | 3 +- .../abstractfactory/OrcKingdomFactory.java | 3 +- .../abstractfactory/AbstractFactoryTest.java | 3 +- .../com/iluwatar/abstractfactory/AppTest.java | 3 +- .../acyclicvisitor/AllModemVisitor.java | 3 +- .../java/com/iluwatar/acyclicvisitor/App.java | 3 +- .../ConfigureForDosVisitor.java | 3 +- .../ConfigureForUnixVisitor.java | 3 +- .../com/iluwatar/acyclicvisitor/Hayes.java | 3 +- .../iluwatar/acyclicvisitor/HayesVisitor.java | 3 +- .../com/iluwatar/acyclicvisitor/Modem.java | 3 +- .../iluwatar/acyclicvisitor/ModemVisitor.java | 3 +- .../com/iluwatar/acyclicvisitor/Zoom.java | 3 +- .../iluwatar/acyclicvisitor/ZoomVisitor.java | 3 +- .../com/iluwatar/acyclicvisitor/AppTest.java | 3 +- .../ConfigureForDosVisitorTest.java | 3 +- .../ConfigureForUnixVisitorTest.java | 3 +- .../iluwatar/acyclicvisitor/HayesTest.java | 3 +- .../com/iluwatar/acyclicvisitor/ZoomTest.java | 3 +- .../main/java/com/iluwatar/adapter/App.java | 3 +- .../java/com/iluwatar/adapter/Captain.java | 3 +- .../com/iluwatar/adapter/FishingBoat.java | 3 +- .../iluwatar/adapter/FishingBoatAdapter.java | 3 +- .../java/com/iluwatar/adapter/RowingBoat.java | 3 +- .../iluwatar/adapter/AdapterPatternTest.java | 3 +- .../java/com/iluwatar/adapter/AppTest.java | 3 +- .../aggregator/microservices/Aggregator.java | 3 +- .../aggregator/microservices/App.java | 3 +- .../aggregator/microservices/Product.java | 3 +- .../ProductInformationClient.java | 3 +- .../ProductInformationClientImpl.java | 3 +- .../microservices/ProductInventoryClient.java | 3 +- .../ProductInventoryClientImpl.java | 3 +- .../microservices/AggregatorTest.java | 3 +- .../microservice/InformationApplication.java | 3 +- .../microservice/InformationController.java | 3 +- .../InformationControllerTest.java | 3 +- .../microservice/InventoryApplication.java | 3 +- .../microservice/InventoryController.java | 3 +- .../microservice/InventoryControllerTest.java | 3 +- .../java/com/iluwatar/ambassador/App.java | 3 +- .../java/com/iluwatar/ambassador/Client.java | 3 +- .../iluwatar/ambassador/RemoteService.java | 3 +- .../ambassador/RemoteServiceInterface.java | 3 +- .../ambassador/ServiceAmbassador.java | 3 +- .../ambassador/util/RandomProvider.java | 3 +- .../java/com/iluwatar/ambassador/AppTest.java | 3 +- .../com/iluwatar/ambassador/ClientTest.java | 3 +- .../ambassador/RemoteServiceTest.java | 3 +- .../ambassador/ServiceAmbassadorTest.java | 3 +- .../com/iluwatar/api/gateway/ApiGateway.java | 3 +- .../java/com/iluwatar/api/gateway/App.java | 3 +- .../iluwatar/api/gateway/DesktopProduct.java | 3 +- .../com/iluwatar/api/gateway/ImageClient.java | 3 +- .../iluwatar/api/gateway/ImageClientImpl.java | 3 +- .../iluwatar/api/gateway/MobileProduct.java | 3 +- .../com/iluwatar/api/gateway/PriceClient.java | 3 +- .../iluwatar/api/gateway/PriceClientImpl.java | 3 +- .../iluwatar/api/gateway/ApiGatewayTest.java | 3 +- .../image/microservice/ImageApplication.java | 3 +- .../image/microservice/ImageController.java | 3 +- .../microservice/ImageControllerTest.java | 3 +- .../price/microservice/PriceApplication.java | 3 +- .../price/microservice/PriceController.java | 3 +- .../microservice/PriceControllerTest.java | 3 +- .../iluwatar/async/method/invocation/App.java | 3 +- .../method/invocation/AsyncCallback.java | 3 +- .../method/invocation/AsyncExecutor.java | 3 +- .../async/method/invocation/AsyncResult.java | 3 +- .../invocation/ThreadAsyncExecutor.java | 3 +- .../async/method/invocation/AppTest.java | 3 +- .../invocation/ThreadAsyncExecutorTest.java | 3 +- .../main/java/com/iluwatar/balking/App.java | 3 +- .../com/iluwatar/balking/DelayProvider.java | 3 +- .../com/iluwatar/balking/WashingMachine.java | 3 +- .../iluwatar/balking/WashingMachineState.java | 3 +- .../java/com/iluwatar/balking/AppTest.java | 3 +- .../iluwatar/balking/WashingMachineTest.java | 3 +- .../main/java/com/iluwatar/bridge/App.java | 3 +- .../java/com/iluwatar/bridge/Enchantment.java | 3 +- .../iluwatar/bridge/FlyingEnchantment.java | 3 +- .../main/java/com/iluwatar/bridge/Hammer.java | 3 +- .../bridge/SoulEatingEnchantment.java | 3 +- .../main/java/com/iluwatar/bridge/Sword.java | 3 +- .../main/java/com/iluwatar/bridge/Weapon.java | 3 +- .../java/com/iluwatar/bridge/AppTest.java | 3 +- .../java/com/iluwatar/bridge/HammerTest.java | 3 +- .../java/com/iluwatar/bridge/SwordTest.java | 3 +- .../java/com/iluwatar/bridge/WeaponTest.java | 3 +- .../main/java/com/iluwatar/builder/App.java | 3 +- .../main/java/com/iluwatar/builder/Armor.java | 3 +- .../java/com/iluwatar/builder/HairColor.java | 3 +- .../java/com/iluwatar/builder/HairType.java | 3 +- .../main/java/com/iluwatar/builder/Hero.java | 3 +- .../java/com/iluwatar/builder/Profession.java | 3 +- .../java/com/iluwatar/builder/Weapon.java | 3 +- .../java/com/iluwatar/builder/AppTest.java | 3 +- .../java/com/iluwatar/builder/HeroTest.java | 3 +- .../com/iluwatar/business/delegate/App.java | 3 +- .../business/delegate/BusinessDelegate.java | 3 +- .../business/delegate/BusinessLookup.java | 3 +- .../business/delegate/BusinessService.java | 3 +- .../iluwatar/business/delegate/Client.java | 3 +- .../business/delegate/EjbService.java | 3 +- .../business/delegate/JmsService.java | 3 +- .../business/delegate/ServiceType.java | 3 +- .../iluwatar/business/delegate/AppTest.java | 3 +- .../delegate/BusinessDelegateTest.java | 3 +- .../main/java/com/iluwatar/bytecode/App.java | 3 +- .../com/iluwatar/bytecode/Instruction.java | 3 +- .../com/iluwatar/bytecode/VirtualMachine.java | 3 +- .../java/com/iluwatar/bytecode/Wizard.java | 3 +- .../util/InstructionConverterUtil.java | 3 +- .../java/com/iluwatar/bytecode/AppTest.java | 3 +- .../iluwatar/bytecode/VirtualMachineTest.java | 3 +- .../util/InstructionConverterUtilTest.java | 3 +- .../main/java/com/iluwatar/caching/App.java | 3 +- .../java/com/iluwatar/caching/AppManager.java | 3 +- .../java/com/iluwatar/caching/CacheStore.java | 3 +- .../com/iluwatar/caching/CachingPolicy.java | 3 +- .../java/com/iluwatar/caching/DbManager.java | 3 +- .../java/com/iluwatar/caching/LruCache.java | 3 +- .../com/iluwatar/caching/UserAccount.java | 3 +- .../caching/constants/CachingConstants.java | 3 +- .../java/com/iluwatar/caching/AppTest.java | 3 +- .../com/iluwatar/caching/CachingTest.java | 3 +- .../main/java/com/iluwatar/callback/App.java | 3 +- .../java/com/iluwatar/callback/Callback.java | 3 +- .../com/iluwatar/callback/LambdasApp.java | 3 +- .../com/iluwatar/callback/SimpleTask.java | 3 +- .../main/java/com/iluwatar/callback/Task.java | 3 +- .../java/com/iluwatar/callback/AppTest.java | 3 +- .../com/iluwatar/callback/CallbackTest.java | 3 +- .../src/main/java/com/iluwatar/chain/App.java | 3 +- .../java/com/iluwatar/chain/OrcCommander.java | 3 +- .../main/java/com/iluwatar/chain/OrcKing.java | 3 +- .../java/com/iluwatar/chain/OrcOfficer.java | 3 +- .../java/com/iluwatar/chain/OrcSoldier.java | 3 +- .../main/java/com/iluwatar/chain/Request.java | 3 +- .../com/iluwatar/chain/RequestHandler.java | 3 +- .../java/com/iluwatar/chain/RequestType.java | 3 +- .../test/java/com/iluwatar/chain/AppTest.java | 3 +- .../java/com/iluwatar/chain/OrcKingTest.java | 3 +- circuit-breaker/pom.xml | 2 +- .../java/com/iluwatar/circuitbreaker/App.java | 4 +- .../circuitbreaker/CircuitBreaker.java | 4 +- .../circuitbreaker/DelayedService.java | 5 ++- .../circuitbreaker/MonitoringService.java | 4 +- .../com/iluwatar/circuitbreaker/State.java | 4 +- .../circuitbreaker/CircuitBreakerTest.java | 4 +- .../circuitbreaker/DelayedServiceTest.java | 4 +- .../circuitbreaker/MonitoringServiceTest.java | 4 +- .../com/iluwatar/collectionpipeline/App.java | 3 +- .../com/iluwatar/collectionpipeline/Car.java | 3 +- .../collectionpipeline/CarFactory.java | 3 +- .../iluwatar/collectionpipeline/Category.java | 3 +- .../FunctionalProgramming.java | 3 +- .../ImperativeProgramming.java | 3 +- .../iluwatar/collectionpipeline/Person.java | 3 +- .../iluwatar/collectionpipeline/AppTest.java | 3 +- .../main/java/com/iluwatar/command/App.java | 3 +- .../java/com/iluwatar/command/Command.java | 3 +- .../java/com/iluwatar/command/Goblin.java | 3 +- .../iluwatar/command/InvisibilitySpell.java | 3 +- .../com/iluwatar/command/ShrinkSpell.java | 3 +- .../main/java/com/iluwatar/command/Size.java | 3 +- .../java/com/iluwatar/command/Target.java | 3 +- .../java/com/iluwatar/command/Visibility.java | 3 +- .../java/com/iluwatar/command/Wizard.java | 3 +- .../java/com/iluwatar/command/AppTest.java | 3 +- .../com/iluwatar/command/CommandTest.java | 3 +- .../commander/AppEmployeeDbFailCases.java | 3 +- .../commander/AppMessagingFailCases.java | 3 +- .../commander/AppPaymentFailCases.java | 3 +- .../iluwatar/commander/AppQueueFailCases.java | 3 +- .../commander/AppShippingFailCases.java | 3 +- .../com/iluwatar/commander/Commander.java | 3 +- .../java/com/iluwatar/commander/Database.java | 3 +- .../java/com/iluwatar/commander/Order.java | 3 +- .../java/com/iluwatar/commander/Retry.java | 3 +- .../java/com/iluwatar/commander/Service.java | 3 +- .../java/com/iluwatar/commander/User.java | 3 +- .../employeehandle/EmployeeDatabase.java | 3 +- .../employeehandle/EmployeeHandle.java | 3 +- .../DatabaseUnavailableException.java | 3 +- .../exceptions/IsEmptyException.java | 3 +- .../exceptions/ItemUnavailableException.java | 3 +- .../PaymentDetailsErrorException.java | 3 +- .../ShippingNotPossibleException.java | 3 +- .../messagingservice/MessagingDatabase.java | 3 +- .../messagingservice/MessagingService.java | 3 +- .../paymentservice/PaymentDatabase.java | 3 +- .../paymentservice/PaymentService.java | 3 +- .../com/iluwatar/commander/queue/Queue.java | 3 +- .../commander/queue/QueueDatabase.java | 3 +- .../iluwatar/commander/queue/QueueTask.java | 3 +- .../shippingservice/ShippingDatabase.java | 3 +- .../shippingservice/ShippingService.java | 3 +- .../com/iluwatar/commander/RetryTest.java | 3 +- .../main/java/com/iluwatar/composite/App.java | 3 +- .../java/com/iluwatar/composite/Letter.java | 3 +- .../iluwatar/composite/LetterComposite.java | 3 +- .../com/iluwatar/composite/Messenger.java | 3 +- .../java/com/iluwatar/composite/Sentence.java | 3 +- .../java/com/iluwatar/composite/Word.java | 3 +- .../java/com/iluwatar/composite/AppTest.java | 3 +- .../com/iluwatar/composite/MessengerTest.java | 3 +- .../main/java/com/iluwatar/converter/App.java | 3 +- .../com/iluwatar/converter/Converter.java | 3 +- .../java/com/iluwatar/converter/User.java | 3 +- .../com/iluwatar/converter/UserConverter.java | 3 +- .../java/com/iluwatar/converter/UserDto.java | 3 +- .../java/com/iluwatar/converter/AppTest.java | 3 +- .../com/iluwatar/converter/ConverterTest.java | 3 +- .../main/java/com/iluwatar/cqrs/app/App.java | 3 +- .../cqrs/commandes/CommandServiceImpl.java | 3 +- .../cqrs/commandes/ICommandService.java | 3 +- .../iluwatar/cqrs/constants/AppConstants.java | 3 +- .../iluwatar/cqrs/domain/model/Author.java | 3 +- .../com/iluwatar/cqrs/domain/model/Book.java | 3 +- .../java/com/iluwatar/cqrs/dto/Author.java | 3 +- .../main/java/com/iluwatar/cqrs/dto/Book.java | 3 +- .../iluwatar/cqrs/queries/IQueryService.java | 3 +- .../cqrs/queries/QueryServiceImpl.java | 3 +- .../com/iluwatar/cqrs/util/HibernateUtil.java | 3 +- .../com/iluwatar/cqrs/IntegrationTest.java | 3 +- dao/src/main/java/com/iluwatar/dao/App.java | 3 +- .../com/iluwatar/dao/CustomException.java | 3 +- .../main/java/com/iluwatar/dao/Customer.java | 3 +- .../java/com/iluwatar/dao/CustomerDao.java | 3 +- .../com/iluwatar/dao/CustomerSchemaSql.java | 3 +- .../java/com/iluwatar/dao/DbCustomerDao.java | 3 +- .../com/iluwatar/dao/InMemoryCustomerDao.java | 3 +- .../test/java/com/iluwatar/dao/AppTest.java | 3 +- .../java/com/iluwatar/dao/CustomerTest.java | 3 +- .../com/iluwatar/dao/DbCustomerDaoTest.java | 3 +- .../iluwatar/dao/InMemoryCustomerDaoTest.java | 3 +- .../iluwatar/databus/AbstractDataType.java | 3 +- .../main/java/com/iluwatar/databus/App.java | 3 +- .../java/com/iluwatar/databus/DataBus.java | 3 +- .../java/com/iluwatar/databus/DataType.java | 3 +- .../java/com/iluwatar/databus/Member.java | 3 +- .../iluwatar/databus/data/MessageData.java | 3 +- .../iluwatar/databus/data/StartingData.java | 3 +- .../iluwatar/databus/data/StoppingData.java | 3 +- .../members/MessageCollectorMember.java | 3 +- .../databus/members/StatusMember.java | 3 +- .../com/iluwatar/databus/DataBusTest.java | 3 +- .../members/MessageCollectorMemberTest.java | 3 +- .../databus/members/StatusMemberTest.java | 3 +- .../iluwatar/data/locality/Application.java | 3 +- .../data/locality/game/GameEntity.java | 3 +- .../locality/game/component/AiComponent.java | 3 +- .../locality/game/component/Component.java | 3 +- .../game/component/PhysicsComponent.java | 3 +- .../game/component/RenderComponent.java | 3 +- .../component/manager/AiComponentManager.java | 3 +- .../manager/PhysicsComponentManager.java | 3 +- .../manager/RenderComponentManager.java | 3 +- .../data/locality/ApplicationTest.java | 3 +- .../java/com/iluwatar/datamapper/App.java | 3 +- .../datamapper/DataMapperException.java | 3 +- .../java/com/iluwatar/datamapper/Student.java | 3 +- .../datamapper/StudentDataMapper.java | 3 +- .../datamapper/StudentDataMapperImpl.java | 3 +- .../java/com/iluwatar/datamapper/AppTest.java | 3 +- .../iluwatar/datamapper/DataMapperTest.java | 3 +- .../com/iluwatar/datamapper/StudentTest.java | 3 +- .../datatransfer/CustomerClientApp.java | 3 +- .../iluwatar/datatransfer/CustomerDto.java | 3 +- .../datatransfer/CustomerResource.java | 3 +- .../datatransfer/CustomerResourceTest.java | 3 +- .../main/java/com/iluwatar/decorator/App.java | 3 +- .../com/iluwatar/decorator/ClubbedTroll.java | 3 +- .../com/iluwatar/decorator/SimpleTroll.java | 3 +- .../java/com/iluwatar/decorator/Troll.java | 3 +- .../java/com/iluwatar/decorator/AppTest.java | 3 +- .../iluwatar/decorator/ClubbedTrollTest.java | 3 +- .../iluwatar/decorator/SimpleTrollTest.java | 3 +- .../com/iluwatar/delegation/simple/App.java | 3 +- .../iluwatar/delegation/simple/Printer.java | 3 +- .../delegation/simple/PrinterController.java | 3 +- .../simple/printers/CanonPrinter.java | 3 +- .../simple/printers/EpsonPrinter.java | 3 +- .../delegation/simple/printers/HpPrinter.java | 3 +- .../iluwatar/delegation/simple/AppTest.java | 3 +- .../delegation/simple/DelegateTest.java | 3 +- .../injection/AdvancedSorceress.java | 3 +- .../dependency/injection/AdvancedWizard.java | 3 +- .../iluwatar/dependency/injection/App.java | 3 +- .../dependency/injection/GuiceWizard.java | 3 +- .../dependency/injection/OldTobyTobacco.java | 3 +- .../injection/RivendellTobacco.java | 3 +- .../injection/SecondBreakfastTobacco.java | 3 +- .../dependency/injection/SimpleWizard.java | 3 +- .../dependency/injection/Tobacco.java | 3 +- .../dependency/injection/TobaccoModule.java | 3 +- .../iluwatar/dependency/injection/Wizard.java | 3 +- .../injection/AdvancedSorceressTest.java | 3 +- .../injection/AdvancedWizardTest.java | 3 +- .../dependency/injection/AppTest.java | 3 +- .../dependency/injection/GuiceWizardTest.java | 3 +- .../injection/SimpleWizardTest.java | 3 +- .../injection/utils/InMemoryAppender.java | 3 +- .../main/java/com/iluwatar/dirtyflag/App.java | 3 +- .../com/iluwatar/dirtyflag/DataFetcher.java | 3 +- .../java/com/iluwatar/dirtyflag/World.java | 3 +- .../src/test/java/org/dirty/flag/AppTest.java | 3 +- .../java/org/dirty/flag/DirtyFlagTest.java | 3 +- .../java/com/iluwatar/doublebuffer/App.java | 10 ++--- .../com/iluwatar/doublebuffer/Buffer.java | 10 ++--- .../iluwatar/doublebuffer/FrameBuffer.java | 10 ++--- .../java/com/iluwatar/doublebuffer/Pixel.java | 10 ++--- .../java/com/iluwatar/doublebuffer/Scene.java | 10 ++--- .../com/iluwatar/doublebuffer/AppTest.java | 10 ++--- .../doublebuffer/FrameBufferTest.java | 10 ++--- .../com/iluwatar/doublebuffer/SceneTest.java | 10 ++--- .../iluwatar/doublechecked/locking/App.java | 3 +- .../doublechecked/locking/Inventory.java | 3 +- .../iluwatar/doublechecked/locking/Item.java | 3 +- .../doublechecked/locking/AppTest.java | 3 +- .../doublechecked/locking/InventoryTest.java | 3 +- .../java/com/iluwatar/doubledispatch/App.java | 3 +- .../doubledispatch/FlamingAsteroid.java | 3 +- .../iluwatar/doubledispatch/GameObject.java | 3 +- .../iluwatar/doubledispatch/Meteoroid.java | 3 +- .../iluwatar/doubledispatch/Rectangle.java | 3 +- .../doubledispatch/SpaceStationIss.java | 3 +- .../doubledispatch/SpaceStationMir.java | 3 +- .../constants/AppConstants.java | 3 +- .../com/iluwatar/doubledispatch/AppTest.java | 3 +- .../doubledispatch/CollisionTest.java | 3 +- .../doubledispatch/FlamingAsteroidTest.java | 3 +- .../doubledispatch/MeteoroidTest.java | 3 +- .../doubledispatch/RectangleTest.java | 3 +- .../doubledispatch/SpaceStationIssTest.java | 3 +- .../doubledispatch/SpaceStationMirTest.java | 3 +- .../java/com/iluwatar/eip/aggregator/App.java | 3 +- .../aggregator/routes/AggregatorRoute.java | 3 +- .../routes/MessageAggregationStrategy.java | 3 +- .../com/iluwatar/eip/aggregator/AppTest.java | 3 +- .../routes/AggregatorRouteTest.java | 3 +- .../MessageAggregationStrategyTest.java | 3 +- .../com/iluwatar/eip/message/channel/App.java | 3 +- .../iluwatar/eip/message/channel/AppTest.java | 3 +- .../iluwatar/eip/publish/subscribe/App.java | 3 +- .../eip/publish/subscribe/AppTest.java | 3 +- .../java/com/iluwatar/eip/splitter/App.java | 3 +- .../eip/splitter/routes/SplitterRoute.java | 3 +- .../com/iluwatar/eip/splitter/AppTest.java | 3 +- .../splitter/routes/SplitterRouteTest.java | 3 +- .../java/com/iluwatar/eip/wiretap/App.java | 3 +- .../eip/wiretap/routes/WireTapRoute.java | 3 +- .../com/iluwatar/eip/wiretap/AppTest.java | 3 +- .../eip/wiretap/routes/WireTapRouteTest.java | 3 +- .../com/iluwatar/event/aggregator/App.java | 3 +- .../com/iluwatar/event/aggregator/Event.java | 3 +- .../event/aggregator/EventEmitter.java | 3 +- .../event/aggregator/EventObserver.java | 3 +- .../event/aggregator/KingJoffrey.java | 3 +- .../iluwatar/event/aggregator/KingsHand.java | 3 +- .../event/aggregator/LordBaelish.java | 3 +- .../iluwatar/event/aggregator/LordVarys.java | 3 +- .../com/iluwatar/event/aggregator/Scout.java | 3 +- .../iluwatar/event/aggregator/Weekday.java | 3 +- .../iluwatar/event/aggregator/AppTest.java | 3 +- .../event/aggregator/EventEmitterTest.java | 3 +- .../iluwatar/event/aggregator/EventTest.java | 3 +- .../event/aggregator/KingJoffreyTest.java | 3 +- .../event/aggregator/KingsHandTest.java | 3 +- .../event/aggregator/LordBaelishTest.java | 3 +- .../event/aggregator/LordVarysTest.java | 3 +- .../iluwatar/event/aggregator/ScoutTest.java | 3 +- .../event/aggregator/WeekdayTest.java | 3 +- .../com/iluwatar/event/asynchronous/App.java | 3 +- .../iluwatar/event/asynchronous/Event.java | 3 +- .../EventDoesNotExistException.java | 3 +- .../event/asynchronous/EventManager.java | 3 +- .../iluwatar/event/asynchronous/IEvent.java | 3 +- .../InvalidOperationException.java | 3 +- .../LongRunningEventException.java | 3 +- .../MaxNumOfEventsAllowedException.java | 3 +- .../asynchronous/ThreadCompleteListener.java | 3 +- .../iluwatar/event/asynchronous/AppTest.java | 3 +- .../asynchronous/EventAsynchronousTest.java | 3 +- .../src/main/java/com/iluwatar/eda/App.java | 3 +- .../com/iluwatar/eda/event/AbstractEvent.java | 3 +- .../iluwatar/eda/event/UserCreatedEvent.java | 3 +- .../iluwatar/eda/event/UserUpdatedEvent.java | 3 +- .../com/iluwatar/eda/framework/Event.java | 3 +- .../eda/framework/EventDispatcher.java | 3 +- .../com/iluwatar/eda/framework/Handler.java | 3 +- .../eda/handler/UserCreatedEventHandler.java | 3 +- .../eda/handler/UserUpdatedEventHandler.java | 3 +- .../java/com/iluwatar/eda/model/User.java | 3 +- .../test/java/com/iluwatar/eda/AppTest.java | 3 +- .../eda/event/UserCreatedEventTest.java | 3 +- .../eda/framework/EventDispatcherTest.java | 3 +- .../java/com/iluwatar/event/queue/App.java | 3 +- .../java/com/iluwatar/event/queue/Audio.java | 3 +- .../com/iluwatar/event/queue/PlayMessage.java | 3 +- .../com/iluwatar/event/queue/AudioTest.java | 3 +- .../com/iluwatar/event/sourcing/app/App.java | 3 +- .../event/sourcing/domain/Account.java | 3 +- .../sourcing/event/AccountCreateEvent.java | 3 +- .../event/sourcing/event/DomainEvent.java | 3 +- .../sourcing/event/MoneyDepositEvent.java | 3 +- .../sourcing/event/MoneyTransferEvent.java | 3 +- .../processor/DomainEventProcessor.java | 3 +- .../sourcing/processor/JsonFileJournal.java | 3 +- .../sourcing/state/AccountAggregate.java | 3 +- .../src/test/java/IntegrationTest.java | 3 +- .../java/com/iluwatar/execute/around/App.java | 3 +- .../execute/around/FileWriterAction.java | 3 +- .../execute/around/SimpleFileWriter.java | 3 +- .../com/iluwatar/execute/around/AppTest.java | 3 +- .../execute/around/SimpleFileWriterTest.java | 3 +- extension-objects/src/main/java/App.java | 3 +- .../CommanderExtension.java | 3 +- .../abstractextensions/SergeantExtension.java | 3 +- .../abstractextensions/SoldierExtension.java | 3 +- .../abstractextensions/UnitExtension.java | 3 +- .../java/concreteextensions/Commander.java | 3 +- .../java/concreteextensions/Sergeant.java | 3 +- .../main/java/concreteextensions/Soldier.java | 3 +- .../src/main/java/units/CommanderUnit.java | 3 +- .../src/main/java/units/SergeantUnit.java | 3 +- .../src/main/java/units/SoldierUnit.java | 3 +- .../src/main/java/units/Unit.java | 3 +- extension-objects/src/test/java/AppTest.java | 3 +- .../concreteextensions/CommanderTest.java | 3 +- .../java/concreteextensions/SergeantTest.java | 3 +- .../java/concreteextensions/SoldierTest.java | 3 +- .../test/java/units/CommanderUnitTest.java | 3 +- .../src/test/java/units/SergeantUnitTest.java | 3 +- .../src/test/java/units/SoldierUnitTest.java | 3 +- .../src/test/java/units/UnitTest.java | 3 +- .../main/java/com/iluwatar/facade/App.java | 3 +- .../iluwatar/facade/DwarvenCartOperator.java | 3 +- .../iluwatar/facade/DwarvenGoldDigger.java | 3 +- .../facade/DwarvenGoldmineFacade.java | 3 +- .../iluwatar/facade/DwarvenMineWorker.java | 3 +- .../iluwatar/facade/DwarvenTunnelDigger.java | 3 +- .../java/com/iluwatar/facade/AppTest.java | 3 +- .../facade/DwarvenGoldmineFacadeTest.java | 3 +- .../java/com/iluwatar/factorykit/App.java | 3 +- .../java/com/iluwatar/factorykit/Axe.java | 3 +- .../java/com/iluwatar/factorykit/Bow.java | 3 +- .../java/com/iluwatar/factorykit/Builder.java | 3 +- .../java/com/iluwatar/factorykit/Spear.java | 3 +- .../java/com/iluwatar/factorykit/Sword.java | 3 +- .../java/com/iluwatar/factorykit/Weapon.java | 3 +- .../iluwatar/factorykit/WeaponFactory.java | 3 +- .../com/iluwatar/factorykit/WeaponType.java | 3 +- .../com/iluwatar/factorykit/app/AppTest.java | 3 +- .../factorykit/factorykit/FactoryKitTest.java | 3 +- .../java/com/iluwatar/factory/method/App.java | 3 +- .../iluwatar/factory/method/Blacksmith.java | 3 +- .../factory/method/ElfBlacksmith.java | 3 +- .../iluwatar/factory/method/ElfWeapon.java | 3 +- .../factory/method/OrcBlacksmith.java | 3 +- .../iluwatar/factory/method/OrcWeapon.java | 3 +- .../com/iluwatar/factory/method/Weapon.java | 3 +- .../iluwatar/factory/method/WeaponType.java | 3 +- .../com/iluwatar/factory/method/AppTest.java | 3 +- .../factory/method/FactoryMethodTest.java | 3 +- .../java/com/iluwatar/featuretoggle/App.java | 3 +- .../featuretoggle/pattern/Service.java | 3 +- .../PropertiesFeatureToggleVersion.java | 3 +- .../TieredFeatureToggleVersion.java | 3 +- .../com/iluwatar/featuretoggle/user/User.java | 3 +- .../featuretoggle/user/UserGroup.java | 3 +- .../PropertiesFeatureToggleVersionTest.java | 3 +- .../TieredFeatureToggleVersionTest.java | 3 +- .../featuretoggle/user/UserGroupTest.java | 3 +- .../com/iluwatar/fluentinterface/app/App.java | 3 +- .../fluentiterable/FluentIterable.java | 3 +- .../lazy/DecoratingIterator.java | 3 +- .../lazy/LazyFluentIterable.java | 3 +- .../simple/SimpleFluentIterable.java | 3 +- .../iluwatar/fluentinterface/app/AppTest.java | 3 +- .../fluentiterable/FluentIterableTest.java | 3 +- .../lazy/LazyFluentIterableTest.java | 3 +- .../simple/SimpleFluentIterableTest.java | 3 +- .../java/com/iluwatar/flux/action/Action.java | 3 +- .../com/iluwatar/flux/action/ActionType.java | 3 +- .../com/iluwatar/flux/action/Content.java | 3 +- .../iluwatar/flux/action/ContentAction.java | 3 +- .../com/iluwatar/flux/action/MenuAction.java | 3 +- .../com/iluwatar/flux/action/MenuItem.java | 3 +- .../main/java/com/iluwatar/flux/app/App.java | 3 +- .../iluwatar/flux/dispatcher/Dispatcher.java | 3 +- .../com/iluwatar/flux/store/ContentStore.java | 3 +- .../com/iluwatar/flux/store/MenuStore.java | 3 +- .../java/com/iluwatar/flux/store/Store.java | 3 +- .../com/iluwatar/flux/view/ContentView.java | 3 +- .../java/com/iluwatar/flux/view/MenuView.java | 3 +- .../java/com/iluwatar/flux/view/View.java | 3 +- .../com/iluwatar/flux/action/ContentTest.java | 3 +- .../iluwatar/flux/action/MenuItemTest.java | 3 +- .../java/com/iluwatar/flux/app/AppTest.java | 3 +- .../flux/dispatcher/DispatcherTest.java | 3 +- .../iluwatar/flux/store/ContentStoreTest.java | 3 +- .../iluwatar/flux/store/MenuStoreTest.java | 3 +- .../iluwatar/flux/view/ContentViewTest.java | 3 +- .../com/iluwatar/flux/view/MenuViewTest.java | 3 +- .../com/iluwatar/flyweight/AlchemistShop.java | 3 +- .../main/java/com/iluwatar/flyweight/App.java | 3 +- .../com/iluwatar/flyweight/HealingPotion.java | 3 +- .../iluwatar/flyweight/HolyWaterPotion.java | 3 +- .../flyweight/InvisibilityPotion.java | 3 +- .../com/iluwatar/flyweight/PoisonPotion.java | 3 +- .../java/com/iluwatar/flyweight/Potion.java | 3 +- .../com/iluwatar/flyweight/PotionFactory.java | 3 +- .../com/iluwatar/flyweight/PotionType.java | 3 +- .../iluwatar/flyweight/StrengthPotion.java | 3 +- .../iluwatar/flyweight/AlchemistShopTest.java | 3 +- .../java/com/iluwatar/flyweight/AppTest.java | 3 +- .../com/iluwatar/front/controller/App.java | 3 +- .../controller/ApplicationException.java | 3 +- .../front/controller/ArcherCommand.java | 3 +- .../iluwatar/front/controller/ArcherView.java | 3 +- .../front/controller/CatapultCommand.java | 3 +- .../front/controller/CatapultView.java | 3 +- .../iluwatar/front/controller/Command.java | 3 +- .../iluwatar/front/controller/ErrorView.java | 3 +- .../front/controller/FrontController.java | 3 +- .../front/controller/UnknownCommand.java | 3 +- .../com/iluwatar/front/controller/View.java | 3 +- .../iluwatar/front/controller/AppTest.java | 3 +- .../controller/ApplicationExceptionTest.java | 3 +- .../front/controller/CommandTest.java | 3 +- .../front/controller/FrontControllerTest.java | 3 +- .../iluwatar/front/controller/ViewTest.java | 3 +- .../controller/utils/InMemoryAppender.java | 3 +- .../com/iluwatar/guarded/suspension/App.java | 3 +- .../guarded/suspension/GuardedQueue.java | 3 +- .../guarded/suspension/GuardedQueueTest.java | 3 +- .../com/iluwatar/halfsynchalfasync/App.java | 3 +- .../iluwatar/halfsynchalfasync/AsyncTask.java | 3 +- .../AsynchronousService.java | 3 +- .../iluwatar/halfsynchalfasync/AppTest.java | 3 +- .../AsynchronousServiceTest.java | 3 +- .../main/java/com/iluwatar/hexagonal/App.java | 3 +- .../administration/ConsoleAdministration.java | 3 +- .../ConsoleAdministrationSrv.java | 3 +- .../ConsoleAdministrationSrvImpl.java | 3 +- .../hexagonal/banking/InMemoryBank.java | 3 +- .../iluwatar/hexagonal/banking/MongoBank.java | 3 +- .../hexagonal/banking/WireTransfers.java | 3 +- .../database/InMemoryTicketRepository.java | 3 +- .../database/LotteryTicketRepository.java | 3 +- .../database/MongoTicketRepository.java | 3 +- .../domain/LotteryAdministration.java | 3 +- .../hexagonal/domain/LotteryConstants.java | 3 +- .../hexagonal/domain/LotteryNumbers.java | 3 +- .../hexagonal/domain/LotteryService.java | 3 +- .../hexagonal/domain/LotteryTicket.java | 3 +- .../domain/LotteryTicketCheckResult.java | 3 +- .../hexagonal/domain/LotteryTicketId.java | 3 +- .../hexagonal/domain/LotteryUtils.java | 3 +- .../hexagonal/domain/PlayerDetails.java | 3 +- .../hexagonal/eventlog/LotteryEventLog.java | 3 +- .../hexagonal/eventlog/MongoEventLog.java | 3 +- .../hexagonal/eventlog/StdOutEventLog.java | 3 +- .../hexagonal/module/LotteryModule.java | 3 +- .../module/LotteryTestingModule.java | 3 +- .../MongoConnectionPropertiesLoader.java | 3 +- .../hexagonal/sampledata/SampleData.java | 3 +- .../hexagonal/service/ConsoleLottery.java | 3 +- .../service/LotteryConsoleService.java | 3 +- .../service/LotteryConsoleServiceImpl.java | 3 +- .../java/com/iluwatar/hexagonal/AppTest.java | 3 +- .../hexagonal/banking/InMemoryBankTest.java | 3 +- .../hexagonal/banking/MongoBankTest.java | 3 +- .../InMemoryTicketRepositoryTest.java | 3 +- .../database/MongoTicketRepositoryTest.java | 3 +- .../hexagonal/domain/LotteryNumbersTest.java | 3 +- .../hexagonal/domain/LotteryTest.java | 3 +- .../domain/LotteryTicketCheckResultTest.java | 3 +- .../hexagonal/domain/LotteryTicketIdTest.java | 3 +- .../hexagonal/domain/LotteryTicketTest.java | 3 +- .../hexagonal/domain/PlayerDetailsTest.java | 3 +- .../hexagonal/eventlog/MongoEventLogTest.java | 3 +- .../hexagonal/test/LotteryTestUtils.java | 3 +- .../intercepting/filter/AbstractFilter.java | 3 +- .../intercepting/filter/AddressFilter.java | 3 +- .../com/iluwatar/intercepting/filter/App.java | 3 +- .../iluwatar/intercepting/filter/Client.java | 3 +- .../intercepting/filter/ContactFilter.java | 3 +- .../intercepting/filter/DepositFilter.java | 3 +- .../iluwatar/intercepting/filter/Filter.java | 3 +- .../intercepting/filter/FilterChain.java | 3 +- .../intercepting/filter/FilterManager.java | 3 +- .../intercepting/filter/NameFilter.java | 3 +- .../iluwatar/intercepting/filter/Order.java | 3 +- .../intercepting/filter/OrderFilter.java | 3 +- .../iluwatar/intercepting/filter/Target.java | 3 +- .../iluwatar/intercepting/filter/AppTest.java | 3 +- .../filter/FilterManagerTest.java | 3 +- .../intercepting/filter/FilterTest.java | 3 +- .../intercepting/filter/OrderTest.java | 3 +- .../java/com/iluwatar/interpreter/App.java | 3 +- .../com/iluwatar/interpreter/Expression.java | 3 +- .../iluwatar/interpreter/MinusExpression.java | 3 +- .../interpreter/MultiplyExpression.java | 3 +- .../interpreter/NumberExpression.java | 3 +- .../iluwatar/interpreter/PlusExpression.java | 3 +- .../com/iluwatar/interpreter/AppTest.java | 3 +- .../iluwatar/interpreter/ExpressionTest.java | 3 +- .../interpreter/MinusExpressionTest.java | 3 +- .../interpreter/MultiplyExpressionTest.java | 3 +- .../interpreter/NumberExpressionTest.java | 3 +- .../interpreter/PlusExpressionTest.java | 3 +- .../main/java/com/iluwatar/iterator/App.java | 3 +- .../java/com/iluwatar/iterator/Iterator.java | 3 +- .../iluwatar/iterator/bst/BstIterator.java | 3 +- .../com/iluwatar/iterator/bst/TreeNode.java | 3 +- .../java/com/iluwatar/iterator/list/Item.java | 3 +- .../com/iluwatar/iterator/list/ItemType.java | 3 +- .../iluwatar/iterator/list/TreasureChest.java | 3 +- .../list/TreasureChestItemIterator.java | 3 +- .../java/com/iluwatar/iterator/AppTest.java | 3 +- .../iterator/bst/BstIteratorTest.java | 3 +- .../iterator/list/TreasureChestTest.java | 3 +- .../main/java/com/iluwatar/layers/App.java | 3 +- .../main/java/com/iluwatar/layers/Cake.java | 3 +- .../iluwatar/layers/CakeBakingException.java | 3 +- .../iluwatar/layers/CakeBakingService.java | 3 +- .../layers/CakeBakingServiceImpl.java | 3 +- .../java/com/iluwatar/layers/CakeDao.java | 3 +- .../java/com/iluwatar/layers/CakeInfo.java | 3 +- .../java/com/iluwatar/layers/CakeLayer.java | 3 +- .../com/iluwatar/layers/CakeLayerDao.java | 3 +- .../com/iluwatar/layers/CakeLayerInfo.java | 3 +- .../java/com/iluwatar/layers/CakeTopping.java | 3 +- .../com/iluwatar/layers/CakeToppingDao.java | 3 +- .../com/iluwatar/layers/CakeToppingInfo.java | 3 +- .../com/iluwatar/layers/CakeViewImpl.java | 3 +- .../main/java/com/iluwatar/layers/View.java | 3 +- .../java/com/iluwatar/layers/AppTest.java | 3 +- .../layers/CakeBakingExceptionTest.java | 3 +- .../layers/CakeBakingServiceImplTest.java | 3 +- .../java/com/iluwatar/layers/CakeTest.java | 3 +- .../com/iluwatar/layers/CakeViewImplTest.java | 3 +- .../java/com/iluwatar/lazy/loading/App.java | 3 +- .../java/com/iluwatar/lazy/loading/Heavy.java | 3 +- .../iluwatar/lazy/loading/HolderNaive.java | 3 +- .../lazy/loading/HolderThreadSafe.java | 3 +- .../iluwatar/lazy/loading/Java8Holder.java | 3 +- .../lazy/loading/AbstractHolderTest.java | 3 +- .../com/iluwatar/lazy/loading/AppTest.java | 3 +- .../lazy/loading/HolderNaiveTest.java | 3 +- .../lazy/loading/HolderThreadSafeTest.java | 3 +- .../lazy/loading/Java8HolderTest.java | 3 +- .../leaderelection/AbstractInstance.java | 3 +- .../AbstractMessageManager.java | 3 +- .../com/iluwatar/leaderelection/Instance.java | 3 +- .../com/iluwatar/leaderelection/Message.java | 3 +- .../leaderelection/MessageManager.java | 3 +- .../iluwatar/leaderelection/MessageType.java | 3 +- .../leaderelection/bully/BullyApp.java | 3 +- .../leaderelection/bully/BullyInstance.java | 3 +- .../bully/BullyMessageManager.java | 3 +- .../iluwatar/leaderelection/ring/RingApp.java | 3 +- .../leaderelection/ring/RingInstance.java | 3 +- .../ring/RingMessageManager.java | 3 +- .../iluwatar/leaderelection/MessageTest.java | 3 +- .../leaderelection/bully/BullyAppTest.java | 3 +- .../bully/BullyMessageManagerTest.java | 3 +- .../bully/BullyinstanceTest.java | 3 +- .../leaderelection/ring/RingAppTest.java | 3 +- .../leaderelection/ring/RingInstanceTest.java | 3 +- .../ring/RingMessageManagerTest.java | 3 +- license-plugin-header-style.xml | 41 +++++++++++++++++++ marker/src/main/java/App.java | 3 +- marker/src/main/java/Guard.java | 3 +- marker/src/main/java/Permission.java | 3 +- marker/src/main/java/Thief.java | 3 +- marker/src/test/java/AppTest.java | 3 +- marker/src/test/java/GuardTest.java | 3 +- marker/src/test/java/ThiefTest.java | 3 +- .../java/com/iluwatar/masterworker/App.java | 3 +- .../com/iluwatar/masterworker/ArrayInput.java | 3 +- .../iluwatar/masterworker/ArrayResult.java | 3 +- .../masterworker/ArrayUtilityMethods.java | 3 +- .../java/com/iluwatar/masterworker/Input.java | 3 +- .../com/iluwatar/masterworker/Result.java | 3 +- .../system/ArrayTransposeMasterWorker.java | 3 +- .../masterworker/system/MasterWorker.java | 3 +- .../systemmaster/ArrayTransposeMaster.java | 3 +- .../system/systemmaster/Master.java | 3 +- .../systemworkers/ArrayTransposeWorker.java | 3 +- .../system/systemworkers/Worker.java | 3 +- .../iluwatar/masterworker/ArrayInputTest.java | 3 +- .../masterworker/ArrayUtilityMethodsTest.java | 3 +- .../ArrayTransposeMasterWorkerTest.java | 3 +- .../ArrayTransposeWorkerTest.java | 3 +- .../java/com/iluwatar/mediator/Action.java | 3 +- .../main/java/com/iluwatar/mediator/App.java | 3 +- .../java/com/iluwatar/mediator/Hobbit.java | 3 +- .../java/com/iluwatar/mediator/Hunter.java | 3 +- .../java/com/iluwatar/mediator/Party.java | 3 +- .../java/com/iluwatar/mediator/PartyImpl.java | 3 +- .../com/iluwatar/mediator/PartyMember.java | 3 +- .../iluwatar/mediator/PartyMemberBase.java | 3 +- .../java/com/iluwatar/mediator/Rogue.java | 3 +- .../java/com/iluwatar/mediator/Wizard.java | 3 +- .../java/com/iluwatar/mediator/AppTest.java | 3 +- .../com/iluwatar/mediator/PartyImplTest.java | 3 +- .../iluwatar/mediator/PartyMemberTest.java | 3 +- .../main/java/com/iluwatar/memento/App.java | 3 +- .../main/java/com/iluwatar/memento/Star.java | 3 +- .../com/iluwatar/memento/StarMemento.java | 3 +- .../java/com/iluwatar/memento/StarType.java | 3 +- .../java/com/iluwatar/memento/AppTest.java | 3 +- .../java/com/iluwatar/memento/StarTest.java | 3 +- .../iluwatar/model/view/controller/App.java | 3 +- .../model/view/controller/Fatigue.java | 3 +- .../view/controller/GiantController.java | 3 +- .../model/view/controller/GiantModel.java | 3 +- .../model/view/controller/GiantView.java | 3 +- .../model/view/controller/Health.java | 3 +- .../model/view/controller/Nourishment.java | 3 +- .../model/view/controller/AppTest.java | 3 +- .../view/controller/GiantControllerTest.java | 3 +- .../model/view/controller/GiantModelTest.java | 3 +- .../model/view/controller/GiantViewTest.java | 3 +- .../iluwatar/model/view/presenter/App.java | 3 +- .../model/view/presenter/FileLoader.java | 3 +- .../view/presenter/FileSelectorJFrame.java | 3 +- .../view/presenter/FileSelectorPresenter.java | 3 +- .../view/presenter/FileSelectorStub.java | 3 +- .../view/presenter/FileSelectorView.java | 3 +- .../model/view/presenter/AppTest.java | 3 +- .../model/view/presenter/FileLoaderTest.java | 3 +- .../presenter/FileSelectorPresenterTest.java | 3 +- .../main/java/com/iluwatar/module/App.java | 3 +- .../iluwatar/module/ConsoleLoggerModule.java | 3 +- .../com/iluwatar/module/FileLoggerModule.java | 3 +- .../java/com/iluwatar/module/AppTest.java | 3 +- .../iluwatar/module/FileLoggerModuleTest.java | 3 +- .../src/main/java/com/iluwatar/monad/App.java | 3 +- .../src/main/java/com/iluwatar/monad/Sex.java | 3 +- .../main/java/com/iluwatar/monad/User.java | 3 +- .../java/com/iluwatar/monad/Validator.java | 3 +- .../test/java/com/iluwatar/monad/AppTest.java | 3 +- .../java/com/iluwatar/monad/MonadTest.java | 3 +- .../main/java/com/iluwatar/monostate/App.java | 3 +- .../com/iluwatar/monostate/LoadBalancer.java | 3 +- .../java/com/iluwatar/monostate/Request.java | 3 +- .../java/com/iluwatar/monostate/Server.java | 3 +- .../java/com/iluwatar/monostate/AppTest.java | 3 +- .../iluwatar/monostate/LoadBalancerTest.java | 3 +- .../main/java/com/iluwatar/multiton/App.java | 3 +- .../java/com/iluwatar/multiton/Nazgul.java | 3 +- .../com/iluwatar/multiton/NazgulEnum.java | 3 +- .../com/iluwatar/multiton/NazgulName.java | 3 +- .../java/com/iluwatar/multiton/AppTest.java | 3 +- .../com/iluwatar/multiton/NazgulEnumTest.java | 3 +- .../com/iluwatar/multiton/NazgulTest.java | 3 +- .../src/main/java/com/iluwatar/mute/App.java | 3 +- .../com/iluwatar/mute/CheckedRunnable.java | 3 +- .../src/main/java/com/iluwatar/mute/Mute.java | 3 +- .../main/java/com/iluwatar/mute/Resource.java | 3 +- .../test/java/com/iluwatar/mute/AppTest.java | 3 +- .../test/java/com/iluwatar/mute/MuteTest.java | 3 +- .../src/main/java/com/iluwatar/mutex/App.java | 3 +- .../src/main/java/com/iluwatar/mutex/Jar.java | 3 +- .../main/java/com/iluwatar/mutex/Lock.java | 3 +- .../main/java/com/iluwatar/mutex/Mutex.java | 3 +- .../main/java/com/iluwatar/mutex/Thief.java | 3 +- .../test/java/com/iluwatar/mutex/AppTest.java | 3 +- .../test/java/com/iluwatar/mutex/JarTest.java | 3 +- .../java/com/iluwatar/mutex/MutexTest.java | 3 +- .../dom/app/homepage/HomePageService.java | 3 +- .../dom/app/homepage/HomePageViewModel.java | 3 +- .../dom/modules/simple/SimpleObject.java | 3 +- .../dom/modules/simple/SimpleObjects.java | 3 +- .../dom/modules/simple/SimpleObjectTest.java | 3 +- .../dom/modules/simple/SimpleObjectsTest.java | 3 +- .../fixture/DomainAppFixturesProvider.java | 3 +- .../modules/simple/SimpleObjectCreate.java | 3 +- .../modules/simple/SimpleObjectsTearDown.java | 3 +- .../scenarios/RecreateSimpleObjects.java | 3 +- .../bootstrap/SimpleAppSystemInitializer.java | 3 +- .../specglue/BootstrappingGlue.java | 3 +- .../specglue/CatalogOfFixturesGlue.java | 3 +- .../modules/simple/SimpleObjectGlue.java | 3 +- .../domainapp/integtests/specs/RunSpecs.java | 3 +- .../integtests/tests/SimpleAppIntegTest.java | 3 +- .../modules/simple/SimpleObjectIntegTest.java | 3 +- .../simple/SimpleObjectsIntegTest.java | 3 +- .../domainapp/webapp/SimpleApplication.java | 3 +- .../java/com/iluwatar/nullobject/App.java | 3 +- .../java/com/iluwatar/nullobject/Node.java | 3 +- .../com/iluwatar/nullobject/NodeImpl.java | 3 +- .../com/iluwatar/nullobject/NullNode.java | 3 +- .../java/com/iluwatar/nullobject/AppTest.java | 3 +- .../com/iluwatar/nullobject/NullNodeTest.java | 3 +- .../com/iluwatar/nullobject/TreeTest.java | 3 +- .../java/com/iluwatar/objectmother/King.java | 3 +- .../java/com/iluwatar/objectmother/Queen.java | 3 +- .../com/iluwatar/objectmother/Royalty.java | 3 +- .../objectmother/RoyaltyObjectMother.java | 3 +- .../test/RoyaltyObjectMotherTest.java | 3 +- .../java/com/iluwatar/object/pool/App.java | 3 +- .../com/iluwatar/object/pool/ObjectPool.java | 3 +- .../com/iluwatar/object/pool/Oliphaunt.java | 3 +- .../iluwatar/object/pool/OliphauntPool.java | 3 +- .../com/iluwatar/object/pool/AppTest.java | 3 +- .../object/pool/OliphauntPoolTest.java | 3 +- .../main/java/com/iluwatar/observer/App.java | 3 +- .../java/com/iluwatar/observer/Hobbits.java | 3 +- .../main/java/com/iluwatar/observer/Orcs.java | 3 +- .../java/com/iluwatar/observer/Weather.java | 3 +- .../iluwatar/observer/WeatherObserver.java | 3 +- .../com/iluwatar/observer/WeatherType.java | 3 +- .../iluwatar/observer/generic/GHobbits.java | 3 +- .../com/iluwatar/observer/generic/GOrcs.java | 3 +- .../iluwatar/observer/generic/GWeather.java | 3 +- .../iluwatar/observer/generic/Observable.java | 3 +- .../iluwatar/observer/generic/Observer.java | 3 +- .../com/iluwatar/observer/generic/Race.java | 3 +- .../java/com/iluwatar/observer/AppTest.java | 3 +- .../com/iluwatar/observer/HobbitsTest.java | 3 +- .../java/com/iluwatar/observer/OrcsTest.java | 3 +- .../observer/WeatherObserverTest.java | 3 +- .../com/iluwatar/observer/WeatherTest.java | 3 +- .../observer/generic/GHobbitsTest.java | 3 +- .../observer/generic/GWeatherTest.java | 3 +- .../observer/generic/ObserverTest.java | 3 +- .../iluwatar/observer/generic/OrcsTest.java | 3 +- .../observer/utils/InMemoryAppender.java | 3 +- .../java/com/iluwatar/pageobject/App.java | 3 +- .../java/com/iluwatar/pageobject/App.java | 3 +- .../pageobject/AlbumListPageTest.java | 3 +- .../iluwatar/pageobject/AlbumPageTest.java | 3 +- .../iluwatar/pageobject/LoginPageTest.java | 3 +- .../pageobject/pages/AlbumListPage.java | 3 +- .../iluwatar/pageobject/pages/AlbumPage.java | 3 +- .../iluwatar/pageobject/pages/LoginPage.java | 3 +- .../com/iluwatar/pageobject/pages/Page.java | 3 +- .../iluwatar/pageobject/AlbumListPage.java | 3 +- .../com/iluwatar/pageobject/AlbumPage.java | 3 +- .../com/iluwatar/pageobject/LoginPage.java | 3 +- .../java/com/iluwatar/pageobject/Page.java | 3 +- .../pageobject/AlbumListPageTest.java | 3 +- .../iluwatar/pageobject/AlbumPageTest.java | 3 +- .../iluwatar/pageobject/LoginPageTest.java | 3 +- .../com/iluwatar/partialresponse/App.java | 3 +- .../partialresponse/FieldJsonMapper.java | 3 +- .../com/iluwatar/partialresponse/Video.java | 3 +- .../partialresponse/VideoResource.java | 3 +- .../com/iluwatar/partialresponse/AppTest.java | 3 +- .../partialresponse/FieldJsonMapperTest.java | 3 +- .../partialresponse/VideoResourceTest.java | 3 +- .../main/java/com/iluwatar/pipeline/App.java | 3 +- .../pipeline/ConvertToCharArrayHandler.java | 3 +- .../java/com/iluwatar/pipeline/Handler.java | 3 +- .../java/com/iluwatar/pipeline/Pipeline.java | 3 +- .../pipeline/RemoveAlphabetsHandler.java | 3 +- .../pipeline/RemoveDigitsHandler.java | 3 +- .../java/com/iluwatar/pipeline/AppTest.java | 3 +- .../com/iluwatar/pipeline/PipelineTest.java | 3 +- .../java/com/iluwatar/poison/pill/App.java | 3 +- .../com/iluwatar/poison/pill/Consumer.java | 3 +- .../com/iluwatar/poison/pill/Message.java | 3 +- .../iluwatar/poison/pill/MessageQueue.java | 3 +- .../iluwatar/poison/pill/MqPublishPoint.java | 3 +- .../poison/pill/MqSubscribePoint.java | 3 +- .../com/iluwatar/poison/pill/Producer.java | 3 +- .../iluwatar/poison/pill/SimpleMessage.java | 3 +- .../poison/pill/SimpleMessageQueue.java | 3 +- .../com/iluwatar/poison/pill/AppTest.java | 3 +- .../iluwatar/poison/pill/ConsumerTest.java | 3 +- .../poison/pill/PoisonMessageTest.java | 3 +- .../iluwatar/poison/pill/ProducerTest.java | 3 +- .../poison/pill/SimpleMessageTest.java | 3 +- pom.xml | 6 +++ .../iluwatar/priority/queue/Application.java | 3 +- .../com/iluwatar/priority/queue/Message.java | 3 +- .../priority/queue/PriorityMessageQueue.java | 3 +- .../iluwatar/priority/queue/QueueManager.java | 3 +- .../com/iluwatar/priority/queue/Worker.java | 3 +- .../queue/PriorityMessageQueueTest.java | 3 +- .../priority/queue/QueueManagerTest.java | 3 +- .../com/iluwatar/privateclassdata/App.java | 3 +- .../privateclassdata/ImmutableStew.java | 3 +- .../com/iluwatar/privateclassdata/Stew.java | 3 +- .../iluwatar/privateclassdata/StewData.java | 3 +- .../iluwatar/privateclassdata/AppTest.java | 3 +- .../privateclassdata/ImmutableStewTest.java | 3 +- .../iluwatar/privateclassdata/StewTest.java | 3 +- .../utils/InMemoryAppender.java | 3 +- .../com/iluwatar/producer/consumer/App.java | 3 +- .../iluwatar/producer/consumer/Consumer.java | 3 +- .../com/iluwatar/producer/consumer/Item.java | 3 +- .../iluwatar/producer/consumer/ItemQueue.java | 3 +- .../iluwatar/producer/consumer/Producer.java | 3 +- .../iluwatar/producer/consumer/AppTest.java | 3 +- .../producer/consumer/ConsumerTest.java | 3 +- .../producer/consumer/ProducerTest.java | 3 +- .../main/java/com/iluwatar/promise/App.java | 3 +- .../java/com/iluwatar/promise/Promise.java | 3 +- .../com/iluwatar/promise/PromiseSupport.java | 3 +- .../java/com/iluwatar/promise/Utility.java | 3 +- .../java/com/iluwatar/promise/AppTest.java | 3 +- .../com/iluwatar/promise/PromiseTest.java | 3 +- .../main/java/com/iluwatar/property/App.java | 3 +- .../java/com/iluwatar/property/Character.java | 3 +- .../java/com/iluwatar/property/Prototype.java | 3 +- .../java/com/iluwatar/property/Stats.java | 3 +- .../java/com/iluwatar/property/AppTest.java | 3 +- .../com/iluwatar/property/CharacterTest.java | 3 +- .../main/java/com/iluwatar/prototype/App.java | 3 +- .../java/com/iluwatar/prototype/Beast.java | 3 +- .../java/com/iluwatar/prototype/ElfBeast.java | 3 +- .../java/com/iluwatar/prototype/ElfMage.java | 3 +- .../com/iluwatar/prototype/ElfWarlord.java | 3 +- .../com/iluwatar/prototype/HeroFactory.java | 3 +- .../iluwatar/prototype/HeroFactoryImpl.java | 3 +- .../java/com/iluwatar/prototype/Mage.java | 3 +- .../java/com/iluwatar/prototype/OrcBeast.java | 3 +- .../java/com/iluwatar/prototype/OrcMage.java | 3 +- .../com/iluwatar/prototype/OrcWarlord.java | 3 +- .../com/iluwatar/prototype/Prototype.java | 3 +- .../java/com/iluwatar/prototype/Warlord.java | 3 +- .../java/com/iluwatar/prototype/AppTest.java | 3 +- .../prototype/HeroFactoryImplTest.java | 3 +- .../com/iluwatar/prototype/PrototypeTest.java | 3 +- .../src/main/java/com/iluwatar/proxy/App.java | 3 +- .../java/com/iluwatar/proxy/IvoryTower.java | 3 +- .../main/java/com/iluwatar/proxy/Wizard.java | 3 +- .../java/com/iluwatar/proxy/WizardTower.java | 3 +- .../com/iluwatar/proxy/WizardTowerProxy.java | 3 +- .../test/java/com/iluwatar/proxy/AppTest.java | 3 +- .../com/iluwatar/proxy/IvoryTowerTest.java | 3 +- .../java/com/iluwatar/proxy/WizardTest.java | 3 +- .../iluwatar/proxy/WizardTowerProxyTest.java | 3 +- .../proxy/utils/InMemoryAppender.java | 3 +- .../com/iluwatar/queue/load/leveling/App.java | 3 +- .../iluwatar/queue/load/leveling/Message.java | 3 +- .../queue/load/leveling/MessageQueue.java | 3 +- .../queue/load/leveling/ServiceExecutor.java | 3 +- .../iluwatar/queue/load/leveling/Task.java | 3 +- .../queue/load/leveling/TaskGenerator.java | 3 +- .../iluwatar/queue/load/leveling/AppTest.java | 3 +- .../queue/load/leveling/MessageQueueTest.java | 3 +- .../queue/load/leveling/MessageTest.java | 3 +- .../load/leveling/TaskGenSrvExeTest.java | 3 +- .../java/com/iluwatar/reactor/app/App.java | 3 +- .../com/iluwatar/reactor/app/AppClient.java | 3 +- .../iluwatar/reactor/app/LoggingHandler.java | 3 +- .../reactor/framework/AbstractNioChannel.java | 3 +- .../reactor/framework/ChannelHandler.java | 3 +- .../reactor/framework/Dispatcher.java | 3 +- .../reactor/framework/NioDatagramChannel.java | 3 +- .../reactor/framework/NioReactor.java | 3 +- .../framework/NioServerSocketChannel.java | 3 +- .../framework/SameThreadDispatcher.java | 3 +- .../framework/ThreadPoolDispatcher.java | 3 +- .../com/iluwatar/reactor/app/ReactorTest.java | 3 +- .../com/iluwatar/reader/writer/lock/App.java | 3 +- .../iluwatar/reader/writer/lock/Reader.java | 3 +- .../reader/writer/lock/ReaderWriterLock.java | 3 +- .../iluwatar/reader/writer/lock/Writer.java | 3 +- .../iluwatar/reader/writer/lock/AppTest.java | 3 +- .../writer/lock/ReaderAndWriterTest.java | 3 +- .../reader/writer/lock/ReaderTest.java | 3 +- .../reader/writer/lock/WriterTest.java | 3 +- .../writer/lock/utils/InMemoryAppender.java | 3 +- .../java/com/iluwatar/repository/App.java | 3 +- .../com/iluwatar/repository/AppConfig.java | 3 +- .../java/com/iluwatar/repository/Person.java | 3 +- .../iluwatar/repository/PersonRepository.java | 3 +- .../repository/PersonSpecifications.java | 3 +- .../AnnotationBasedRepositoryTest.java | 3 +- .../iluwatar/repository/AppConfigTest.java | 3 +- .../java/com/iluwatar/repository/AppTest.java | 3 +- .../iluwatar/repository/RepositoryTest.java | 3 +- .../acquisition/is/initialization/App.java | 3 +- .../is/initialization/SlidingDoor.java | 3 +- .../is/initialization/TreasureChest.java | 3 +- .../is/initialization/AppTest.java | 3 +- .../is/initialization/ClosableTest.java | 3 +- .../src/main/java/com/iluwatar/retry/App.java | 3 +- .../com/iluwatar/retry/BusinessException.java | 3 +- .../com/iluwatar/retry/BusinessOperation.java | 3 +- .../retry/CustomerNotFoundException.java | 3 +- .../retry/DatabaseNotAvailableException.java | 3 +- .../java/com/iluwatar/retry/FindCustomer.java | 3 +- .../main/java/com/iluwatar/retry/Retry.java | 3 +- .../retry/RetryExponentialBackoff.java | 3 +- .../com/iluwatar/retry/FindCustomerTest.java | 3 +- .../retry/RetryExponentialBackoffTest.java | 3 +- .../java/com/iluwatar/retry/RetryTest.java | 3 +- .../main/java/com/iluwatar/semaphore/App.java | 3 +- .../java/com/iluwatar/semaphore/Customer.java | 3 +- .../java/com/iluwatar/semaphore/Fruit.java | 3 +- .../com/iluwatar/semaphore/FruitBowl.java | 3 +- .../com/iluwatar/semaphore/FruitShop.java | 3 +- .../java/com/iluwatar/semaphore/Lock.java | 3 +- .../com/iluwatar/semaphore/Semaphore.java | 3 +- .../java/com/iluwatar/semaphore/AppTest.java | 3 +- .../com/iluwatar/semaphore/FruitBowlTest.java | 3 +- .../com/iluwatar/semaphore/SemaphoreTest.java | 3 +- .../main/java/com/iluwatar/servant/App.java | 3 +- .../main/java/com/iluwatar/servant/King.java | 3 +- .../main/java/com/iluwatar/servant/Queen.java | 3 +- .../java/com/iluwatar/servant/Royalty.java | 3 +- .../java/com/iluwatar/servant/Servant.java | 3 +- .../java/com/iluwatar/servant/AppTest.java | 3 +- .../java/com/iluwatar/servant/KingTest.java | 3 +- .../java/com/iluwatar/servant/QueenTest.java | 3 +- .../com/iluwatar/servant/ServantTest.java | 3 +- .../baas/api/AbstractDynamoDbHandler.java | 3 +- .../baas/api/FindPersonApiHandler.java | 3 +- .../baas/api/SavePersonApiHandler.java | 3 +- .../serverless/baas/model/Address.java | 3 +- .../serverless/baas/model/Person.java | 3 +- .../serverless/faas/ApiGatewayResponse.java | 3 +- .../iluwatar/serverless/faas/LambdaInfo.java | 3 +- .../faas/api/LambdaInfoApiHandler.java | 3 +- .../baas/api/FindPersonApiHandlerTest.java | 3 +- .../baas/api/SavePersonApiHandlerTest.java | 3 +- .../faas/api/LambdaInfoApiHandlerTest.java | 3 +- .../com/iluwatar/servicelayer/app/App.java | 3 +- .../servicelayer/common/BaseEntity.java | 3 +- .../com/iluwatar/servicelayer/common/Dao.java | 3 +- .../servicelayer/common/DaoBaseImpl.java | 3 +- .../servicelayer/hibernate/HibernateUtil.java | 3 +- .../servicelayer/magic/MagicService.java | 3 +- .../servicelayer/magic/MagicServiceImpl.java | 3 +- .../iluwatar/servicelayer/spell/Spell.java | 3 +- .../iluwatar/servicelayer/spell/SpellDao.java | 3 +- .../servicelayer/spell/SpellDaoImpl.java | 3 +- .../servicelayer/spellbook/Spellbook.java | 3 +- .../servicelayer/spellbook/SpellbookDao.java | 3 +- .../spellbook/SpellbookDaoImpl.java | 3 +- .../iluwatar/servicelayer/wizard/Wizard.java | 3 +- .../servicelayer/wizard/WizardDao.java | 3 +- .../servicelayer/wizard/WizardDaoImpl.java | 3 +- .../iluwatar/servicelayer/app/AppTest.java | 3 +- .../servicelayer/common/BaseDaoTest.java | 3 +- .../magic/MagicServiceImplTest.java | 3 +- .../servicelayer/spell/SpellDaoImplTest.java | 3 +- .../spellbook/SpellbookDaoImplTest.java | 3 +- .../wizard/WizardDaoImplTest.java | 3 +- .../java/com/iluwatar/servicelocator/App.java | 3 +- .../iluwatar/servicelocator/InitContext.java | 3 +- .../com/iluwatar/servicelocator/Service.java | 3 +- .../iluwatar/servicelocator/ServiceCache.java | 3 +- .../iluwatar/servicelocator/ServiceImpl.java | 3 +- .../servicelocator/ServiceLocator.java | 3 +- .../com/iluwatar/servicelocator/AppTest.java | 3 +- .../servicelocator/ServiceLocatorTest.java | 3 +- .../main/java/com/iluwatar/singleton/App.java | 3 +- .../iluwatar/singleton/EnumIvoryTower.java | 3 +- .../InitializingOnDemandHolderIdiom.java | 3 +- .../com/iluwatar/singleton/IvoryTower.java | 3 +- .../ThreadSafeDoubleCheckLocking.java | 3 +- .../ThreadSafeLazyLoadedIvoryTower.java | 3 +- .../java/com/iluwatar/singleton/AppTest.java | 3 +- .../singleton/EnumIvoryTowerTest.java | 3 +- .../InitializingOnDemandHolderIdiomTest.java | 3 +- .../iluwatar/singleton/IvoryTowerTest.java | 3 +- .../com/iluwatar/singleton/SingletonTest.java | 3 +- .../ThreadSafeDoubleCheckLockingTest.java | 3 +- .../ThreadSafeLazyLoadedIvoryTowerTest.java | 3 +- .../com/iluwatar/spatialpartition/App.java | 3 +- .../com/iluwatar/spatialpartition/Bubble.java | 3 +- .../com/iluwatar/spatialpartition/Point.java | 3 +- .../iluwatar/spatialpartition/QuadTree.java | 3 +- .../com/iluwatar/spatialpartition/Rect.java | 3 +- .../SpatialPartitionBubbles.java | 3 +- .../SpatialPartitionGeneric.java | 3 +- .../iluwatar/spatialpartition/BubbleTest.java | 3 +- .../spatialpartition/QuadTreeTest.java | 3 +- .../iluwatar/spatialpartition/RectTest.java | 3 +- .../SpatialPartitionBubblesTest.java | 3 +- .../com/iluwatar/specification/app/App.java | 3 +- .../creature/AbstractCreature.java | 3 +- .../specification/creature/Creature.java | 3 +- .../specification/creature/Dragon.java | 3 +- .../specification/creature/Goblin.java | 3 +- .../specification/creature/KillerBee.java | 3 +- .../specification/creature/Octopus.java | 3 +- .../specification/creature/Shark.java | 3 +- .../specification/creature/Troll.java | 3 +- .../specification/property/Color.java | 3 +- .../specification/property/Movement.java | 3 +- .../iluwatar/specification/property/Size.java | 3 +- .../specification/selector/ColorSelector.java | 3 +- .../selector/MovementSelector.java | 3 +- .../specification/selector/SizeSelector.java | 3 +- .../iluwatar/specification/app/AppTest.java | 3 +- .../specification/creature/CreatureTest.java | 3 +- .../selector/ColorSelectorTest.java | 3 +- .../selector/MovementSelectorTest.java | 3 +- .../selector/SizeSelectorTest.java | 3 +- .../java/com/iluwatar/state/AngryState.java | 3 +- .../src/main/java/com/iluwatar/state/App.java | 3 +- .../main/java/com/iluwatar/state/Mammoth.java | 3 +- .../com/iluwatar/state/PeacefulState.java | 3 +- .../main/java/com/iluwatar/state/State.java | 3 +- .../test/java/com/iluwatar/state/AppTest.java | 3 +- .../java/com/iluwatar/state/MammothTest.java | 3 +- .../java/com/iluwatar/stepbuilder/App.java | 3 +- .../com/iluwatar/stepbuilder/Character.java | 3 +- .../stepbuilder/CharacterStepBuilder.java | 3 +- .../com/iluwatar/stepbuilder/AppTest.java | 3 +- .../stepbuilder/CharacterStepBuilderTest.java | 3 +- .../main/java/com/iluwatar/strategy/App.java | 3 +- .../com/iluwatar/strategy/DragonSlayer.java | 3 +- .../strategy/DragonSlayingStrategy.java | 3 +- .../com/iluwatar/strategy/MeleeStrategy.java | 3 +- .../iluwatar/strategy/ProjectileStrategy.java | 3 +- .../com/iluwatar/strategy/SpellStrategy.java | 3 +- .../java/com/iluwatar/strategy/AppTest.java | 3 +- .../iluwatar/strategy/DragonSlayerTest.java | 3 +- .../strategy/DragonSlayingStrategyTest.java | 3 +- subclass-sandbox/pom.xml | 2 +- .../com/iluwatar/subclasssandbox/App.java | 10 ++--- .../iluwatar/subclasssandbox/GroundDive.java | 10 ++--- .../iluwatar/subclasssandbox/SkyLaunch.java | 10 ++--- .../iluwatar/subclasssandbox/Superpower.java | 10 ++--- .../com/iluwatar/subclasssandbox/AppTest.java | 10 ++--- .../subclasssandbox/GroundDiveTest.java | 10 ++--- .../subclasssandbox/SkyLaunchTest.java | 10 ++--- .../java/com/iluwatar/templatemethod/App.java | 3 +- .../templatemethod/HalflingThief.java | 3 +- .../templatemethod/HitAndRunMethod.java | 3 +- .../templatemethod/StealingMethod.java | 3 +- .../iluwatar/templatemethod/SubtleMethod.java | 3 +- .../com/iluwatar/templatemethod/AppTest.java | 3 +- .../templatemethod/HalflingThiefTest.java | 3 +- .../templatemethod/HitAndRunMethodTest.java | 3 +- .../templatemethod/StealingMethodTest.java | 3 +- .../templatemethod/SubtleMethodTest.java | 3 +- .../java/com/iluwatar/threadpool/App.java | 3 +- .../iluwatar/threadpool/CoffeeMakingTask.java | 3 +- .../threadpool/PotatoPeelingTask.java | 3 +- .../java/com/iluwatar/threadpool/Task.java | 3 +- .../java/com/iluwatar/threadpool/Worker.java | 3 +- .../java/com/iluwatar/threadpool/AppTest.java | 3 +- .../threadpool/CoffeeMakingTaskTest.java | 3 +- .../threadpool/PotatoPeelingTaskTest.java | 3 +- .../com/iluwatar/threadpool/TaskTest.java | 3 +- .../com/iluwatar/threadpool/WorkerTest.java | 3 +- .../java/com/iluwatar/throttling/App.java | 3 +- .../com/iluwatar/throttling/B2BService.java | 3 +- .../com/iluwatar/throttling/CallsCount.java | 3 +- .../java/com/iluwatar/throttling/Tenant.java | 3 +- .../throttling/timer/ThrottleTimerImpl.java | 3 +- .../iluwatar/throttling/timer/Throttler.java | 3 +- .../java/com/iluwatar/throttling/AppTest.java | 3 +- .../iluwatar/throttling/B2BServiceTest.java | 3 +- .../com/iluwatar/throttling/TenantTest.java | 3 +- tls/src/main/java/com/iluwatar/tls/App.java | 3 +- .../com/iluwatar/tls/DateFormatCallable.java | 3 +- .../main/java/com/iluwatar/tls/Result.java | 3 +- .../test/java/com/iluwatar/tls/AppTest.java | 3 +- .../iluwatar/tls/DateFormatCallableTest.java | 3 +- ...FormatCallableTestIncorrectDateFormat.java | 3 +- .../DateFormatCallableTestMultiThread.java | 3 +- .../java/com/iluwatar/tolerantreader/App.java | 3 +- .../iluwatar/tolerantreader/RainbowFish.java | 3 +- .../tolerantreader/RainbowFishSerializer.java | 3 +- .../tolerantreader/RainbowFishV2.java | 3 +- .../com/iluwatar/tolerantreader/AppTest.java | 3 +- .../RainbowFishSerializerTest.java | 3 +- .../tolerantreader/RainbowFishTest.java | 3 +- .../tolerantreader/RainbowFishV2Test.java | 3 +- .../com/iluwatar/trampoline/Trampoline.java | 3 +- .../iluwatar/trampoline/TrampolineApp.java | 3 +- .../trampoline/TrampolineAppTest.java | 3 +- twin/src/main/java/com/iluwatar/twin/App.java | 3 +- .../main/java/com/iluwatar/twin/BallItem.java | 3 +- .../java/com/iluwatar/twin/BallThread.java | 3 +- .../main/java/com/iluwatar/twin/GameItem.java | 2 +- .../test/java/com/iluwatar/twin/AppTest.java | 3 +- .../java/com/iluwatar/twin/BallItemTest.java | 3 +- .../com/iluwatar/twin/BallThreadTest.java | 3 +- .../java/com/iluwatar/typeobject/App.java | 3 +- .../java/com/iluwatar/typeobject/Candy.java | 3 +- .../com/iluwatar/typeobject/CandyGame.java | 3 +- .../java/com/iluwatar/typeobject/Cell.java | 3 +- .../com/iluwatar/typeobject/CellPool.java | 3 +- .../com/iluwatar/typeobject/JsonParser.java | 3 +- .../iluwatar/typeobject/CandyGameTest.java | 3 +- .../com/iluwatar/typeobject/CellPoolTest.java | 3 +- .../com/iluwatar/typeobject/CellTest.java | 3 +- .../java/com/iluwatar/unitofwork/App.java | 3 +- .../com/iluwatar/unitofwork/IUnitOfWork.java | 3 +- .../java/com/iluwatar/unitofwork/Student.java | 3 +- .../iluwatar/unitofwork/StudentDatabase.java | 3 +- .../unitofwork/StudentRepository.java | 3 +- .../java/com/iluwatar/unitofwork/AppTest.java | 3 +- .../unitofwork/StudentRepositoryTest.java | 3 +- .../java/com/iluwatar/value/object/App.java | 3 +- .../com/iluwatar/value/object/HeroStat.java | 3 +- .../com/iluwatar/value/object/AppTest.java | 3 +- .../iluwatar/value/object/HeroStatTest.java | 3 +- .../main/java/com/iluwatar/visitor/App.java | 3 +- .../java/com/iluwatar/visitor/Commander.java | 3 +- .../iluwatar/visitor/CommanderVisitor.java | 3 +- .../java/com/iluwatar/visitor/Sergeant.java | 3 +- .../com/iluwatar/visitor/SergeantVisitor.java | 3 +- .../java/com/iluwatar/visitor/Soldier.java | 3 +- .../com/iluwatar/visitor/SoldierVisitor.java | 3 +- .../main/java/com/iluwatar/visitor/Unit.java | 3 +- .../com/iluwatar/visitor/UnitVisitor.java | 3 +- .../java/com/iluwatar/visitor/AppTest.java | 3 +- .../com/iluwatar/visitor/CommanderTest.java | 3 +- .../visitor/CommanderVisitorTest.java | 3 +- .../com/iluwatar/visitor/SergeantTest.java | 3 +- .../iluwatar/visitor/SergeantVisitorTest.java | 3 +- .../com/iluwatar/visitor/SoldierTest.java | 3 +- .../iluwatar/visitor/SoldierVisitorTest.java | 3 +- .../java/com/iluwatar/visitor/UnitTest.java | 3 +- .../com/iluwatar/visitor/VisitorTest.java | 3 +- 1246 files changed, 2578 insertions(+), 1312 deletions(-) create mode 100644 license-plugin-header-style.xml diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java index dee8302c1..649bdbcc9 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument; import java.util.List; 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 e8b2410a8..a0d9d13c8 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument; import java.util.Arrays; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/Document.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/Document.java index 767002eb7..e1254c1f9 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/Document.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/Document.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument; import java.util.Map; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Car.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Car.java index f0db83993..738aaab26 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Car.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Car.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain; import java.util.Map; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java index 9c7ce855f..d5178ecad 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasModel.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain; import java.util.Optional; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java index 84f55989f..ff021a2ea 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasParts.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain; import java.util.stream.Stream; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java index 31f333bde..97683c344 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasPrice.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain; import java.util.Optional; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java index 89dce0e3b..8ec1a9fe4 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/HasType.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain; import java.util.Optional; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Part.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Part.java index 68c3e1aae..21e0c7070 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Part.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/Part.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain; import java.util.Map; diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java index 07ca62de5..b9957dd0c 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/domain/enums/Property.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument.domain.enums; /** 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 78088ab49..7f3e1eada 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument; import org.junit.jupiter.api.Test; diff --git a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AppTest.java b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AppTest.java index 4dffbdf88..aed63f303 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AppTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument; import org.junit.jupiter.api.Test; 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 6d67be392..2dde49a1e 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractdocument; import static org.junit.jupiter.api.Assertions.assertEquals; 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 9d77b2450..a2b4867b0 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; import org.slf4j.Logger; diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java index 03ada4ba0..158ad9fa8 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Army.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java index e349e6160..faf2cb4cc 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/Castle.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java index 2eaaf722c..f4196072c 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfArmy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java index 0562ffaaa..29f16907e 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfCastle.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java index faa78d401..8d4c6d7f0 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKing.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java index 887ba058c..61d744cfc 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/ElfKingdomFactory.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java index f11d5c685..cbb27cec2 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/King.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java index a117598ed..c3e3d0f25 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/KingdomFactory.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java index 66ac688ed..55842f2a9 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcArmy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java index ac6840276..1316cf6d4 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcCastle.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java index cc5bd158b..a4ffc1d28 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKing.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** diff --git a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java index 731d52eec..6792174f2 100644 --- a/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java +++ b/abstract-factory/src/main/java/com/iluwatar/abstractfactory/OrcKingdomFactory.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; /** 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 244ec0015..eab501e9b 100644 --- a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AbstractFactoryTest.java +++ b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AbstractFactoryTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java index 28224d123..892af7392 100644 --- a/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java +++ b/abstract-factory/src/test/java/com/iluwatar/abstractfactory/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.abstractfactory; import org.junit.jupiter.api.Test; diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/AllModemVisitor.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/AllModemVisitor.java index 97c9b1946..b5842cdf5 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/AllModemVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/AllModemVisitor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; /** diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java index be96f3a60..3875d7a2a 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; /** 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 1f0306550..8b64db8a7 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import org.slf4j.Logger; 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 d77118ccc..fb5a657d7 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import org.slf4j.Logger; 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 1c650ce0c..586d72876 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Hayes.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Hayes.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import org.slf4j.Logger; diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/HayesVisitor.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/HayesVisitor.java index 130fdf250..80dfc2320 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/HayesVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/HayesVisitor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; /** diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Modem.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Modem.java index c8ddfd3d9..9c1eb117e 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Modem.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Modem.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; /** diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ModemVisitor.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ModemVisitor.java index 57ccc3105..a5baa7169 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ModemVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ModemVisitor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; /** 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 39bd8c38f..c624f9f5f 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Zoom.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/Zoom.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import org.slf4j.Logger; diff --git a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ZoomVisitor.java b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ZoomVisitor.java index eebc5111b..707943884 100644 --- a/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ZoomVisitor.java +++ b/acyclic-visitor/src/main/java/com/iluwatar/acyclicvisitor/ZoomVisitor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; /** diff --git a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/AppTest.java b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/AppTest.java index 813a380b8..1f555ee99 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/AppTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import org.junit.jupiter.api.Test; 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 b90bafb0f..d49ba591c 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForDosVisitorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import static org.assertj.core.api.Assertions.assertThat; 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 ef6fd4d8e..e1765c81b 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ConfigureForUnixVisitorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import static org.assertj.core.api.Assertions.assertThat; 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 477354b13..308dd5879 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/HayesTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; import static org.mockito.Matchers.eq; 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 ff24d526d..2dcfcfbbb 100644 --- a/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java +++ b/acyclic-visitor/src/test/java/com/iluwatar/acyclicvisitor/ZoomTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.acyclicvisitor; diff --git a/adapter/src/main/java/com/iluwatar/adapter/App.java b/adapter/src/main/java/com/iluwatar/adapter/App.java index 4f31af795..a3bf5b14b 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/App.java +++ b/adapter/src/main/java/com/iluwatar/adapter/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; /** diff --git a/adapter/src/main/java/com/iluwatar/adapter/Captain.java b/adapter/src/main/java/com/iluwatar/adapter/Captain.java index dd9397b22..fbf0be6ca 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/Captain.java +++ b/adapter/src/main/java/com/iluwatar/adapter/Captain.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; /** diff --git a/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java b/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java index 381e4de97..6c2daae3d 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java +++ b/adapter/src/main/java/com/iluwatar/adapter/FishingBoat.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; import org.slf4j.Logger; diff --git a/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java b/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java index df0ba4792..7dda379c9 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java +++ b/adapter/src/main/java/com/iluwatar/adapter/FishingBoatAdapter.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; /** diff --git a/adapter/src/main/java/com/iluwatar/adapter/RowingBoat.java b/adapter/src/main/java/com/iluwatar/adapter/RowingBoat.java index 672511770..3b43da732 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/RowingBoat.java +++ b/adapter/src/main/java/com/iluwatar/adapter/RowingBoat.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; /** diff --git a/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java b/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java index b5164c68d..d4cca004f 100644 --- a/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java +++ b/adapter/src/test/java/com/iluwatar/adapter/AdapterPatternTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; import org.junit.jupiter.api.BeforeEach; diff --git a/adapter/src/test/java/com/iluwatar/adapter/AppTest.java b/adapter/src/test/java/com/iluwatar/adapter/AppTest.java index 5c7303353..7e94241b6 100644 --- a/adapter/src/test/java/com/iluwatar/adapter/AppTest.java +++ b/adapter/src/test/java/com/iluwatar/adapter/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.adapter; import org.junit.jupiter.api.Test; 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 593d83e13..e96ac9d43 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; import javax.annotation.Resource; diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/App.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/App.java index 5221ddd8a..ab4b11dcf 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/App.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; import org.springframework.boot.SpringApplication; 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 f47a035a9..3c214a58a 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; /** diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClient.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClient.java index 72684668b..47d786ec6 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClient.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInformationClient.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; /** 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 f04906b47..0fe68da17 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; import java.io.IOException; diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java index e7780257e..ed325be00 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; /** 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 c92eb678c..c43fe84c6 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; import java.io.IOException; 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 8aeab6d8d..59d790de2 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.aggregator.microservices; import org.junit.jupiter.api.BeforeEach; diff --git a/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationApplication.java b/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationApplication.java index c027f1499..3815fffc4 100644 --- a/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationApplication.java +++ b/aggregator-microservices/information-microservice/src/main/java/com/iluwatar/information/microservice/InformationApplication.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.information.microservice; import org.springframework.boot.SpringApplication; 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 f22d17eab..8306fd785 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.information.microservice; import org.springframework.web.bind.annotation.RequestMapping; 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 4f880d375..3f3f1b511 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.information.microservice; import org.junit.jupiter.api.Test; diff --git a/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryApplication.java b/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryApplication.java index 8fed4d4d7..9a49518b5 100644 --- a/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryApplication.java +++ b/aggregator-microservices/inventory-microservice/src/main/java/com/iluwatar/inventory/microservice/InventoryApplication.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.inventory.microservice; import org.springframework.boot.SpringApplication; 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 5117107b3..85eea4e9c 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.inventory.microservice; import org.springframework.web.bind.annotation.RequestMapping; 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 063cb9d9d..8933053d4 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.inventory.microservice; import org.junit.jupiter.api.Test; diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/App.java b/ambassador/src/main/java/com/iluwatar/ambassador/App.java index 465981d41..6b0b048c8 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/App.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; /** diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/Client.java b/ambassador/src/main/java/com/iluwatar/ambassador/Client.java index 3637c05be..fdadd71d2 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/Client.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/Client.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import org.slf4j.LoggerFactory; diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java index ad26951fd..10da79d0b 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteService.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import com.iluwatar.ambassador.util.RandomProvider; diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceInterface.java b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceInterface.java index 394839f2a..013015936 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceInterface.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/RemoteServiceInterface.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; /** diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java b/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java index 00a39e01b..37b6970b4 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/ServiceAmbassador.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import org.slf4j.Logger; diff --git a/ambassador/src/main/java/com/iluwatar/ambassador/util/RandomProvider.java b/ambassador/src/main/java/com/iluwatar/ambassador/util/RandomProvider.java index 9b46e096f..5948472c0 100644 --- a/ambassador/src/main/java/com/iluwatar/ambassador/util/RandomProvider.java +++ b/ambassador/src/main/java/com/iluwatar/ambassador/util/RandomProvider.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador.util; /** diff --git a/ambassador/src/test/java/com/iluwatar/ambassador/AppTest.java b/ambassador/src/test/java/com/iluwatar/ambassador/AppTest.java index e5a28addb..ff868b13b 100644 --- a/ambassador/src/test/java/com/iluwatar/ambassador/AppTest.java +++ b/ambassador/src/test/java/com/iluwatar/ambassador/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import org.junit.jupiter.api.Test; diff --git a/ambassador/src/test/java/com/iluwatar/ambassador/ClientTest.java b/ambassador/src/test/java/com/iluwatar/ambassador/ClientTest.java index aadb4b137..c3cbd66cb 100644 --- a/ambassador/src/test/java/com/iluwatar/ambassador/ClientTest.java +++ b/ambassador/src/test/java/com/iluwatar/ambassador/ClientTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import org.junit.jupiter.api.Test; diff --git a/ambassador/src/test/java/com/iluwatar/ambassador/RemoteServiceTest.java b/ambassador/src/test/java/com/iluwatar/ambassador/RemoteServiceTest.java index a8e582293..5f1ff4db7 100644 --- a/ambassador/src/test/java/com/iluwatar/ambassador/RemoteServiceTest.java +++ b/ambassador/src/test/java/com/iluwatar/ambassador/RemoteServiceTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import com.iluwatar.ambassador.util.RandomProvider; diff --git a/ambassador/src/test/java/com/iluwatar/ambassador/ServiceAmbassadorTest.java b/ambassador/src/test/java/com/iluwatar/ambassador/ServiceAmbassadorTest.java index 3b1fe51d0..2737c957e 100644 --- a/ambassador/src/test/java/com/iluwatar/ambassador/ServiceAmbassadorTest.java +++ b/ambassador/src/test/java/com/iluwatar/ambassador/ServiceAmbassadorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.ambassador; import org.junit.jupiter.api.Test; 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 dc4249c6e..25c201521 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/App.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/App.java index ba4b67c39..b92e3a7d0 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/App.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; import org.springframework.boot.SpringApplication; 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 89de62b1b..06b9e9495 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; /** diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClient.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClient.java index bc166c4c8..9c8c341cc 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClient.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/ImageClient.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; /** 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 dddd0dc20..d2f80858c 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; import java.io.IOException; 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 41644fb32..b7edb1047 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; /** diff --git a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClient.java b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClient.java index fca5fe32c..74c564132 100644 --- a/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClient.java +++ b/api-gateway/api-gateway-service/src/main/java/com/iluwatar/api/gateway/PriceClient.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; /** 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 25d7f0b11..0a43c4b1f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; import java.io.IOException; 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 ec579ead6..27068b52b 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.api.gateway; import org.junit.jupiter.api.BeforeEach; diff --git a/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageApplication.java b/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageApplication.java index 86580ad85..bb551ac31 100644 --- a/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageApplication.java +++ b/api-gateway/image-microservice/src/main/java/com/iluwatar/image/microservice/ImageApplication.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.image.microservice; import org.springframework.boot.SpringApplication; 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 5a84e7008..9781dbc01 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.image.microservice; import org.springframework.web.bind.annotation.RequestMapping; 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 71044b56d..d0c44ff0f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.image.microservice; import org.junit.jupiter.api.Test; diff --git a/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceApplication.java b/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceApplication.java index 1edaf4c32..1a29e53c9 100644 --- a/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceApplication.java +++ b/api-gateway/price-microservice/src/main/java/com/iluwatar/price/microservice/PriceApplication.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.price.microservice; import org.springframework.boot.SpringApplication; 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 8af122648..efb982253 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.price.microservice; import org.springframework.web.bind.annotation.RequestMapping; 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 a2c5c8161..54a4413a9 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.price.microservice; import org.junit.jupiter.api.Test; 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 0e0471c94..bc33494f7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import org.slf4j.Logger; diff --git a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncCallback.java b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncCallback.java index ffa162dbe..950444fe7 100644 --- a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncCallback.java +++ b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncCallback.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import java.util.Optional; diff --git a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncExecutor.java b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncExecutor.java index 8fa58d3f9..14e30cbeb 100644 --- a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncExecutor.java +++ b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncExecutor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import java.util.concurrent.Callable; diff --git a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncResult.java b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncResult.java index 700152144..c3b8467f1 100644 --- a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncResult.java +++ b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncResult.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import java.util.concurrent.ExecutionException; diff --git a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutor.java b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutor.java index c5f01b662..f05b83b4f 100644 --- a/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutor.java +++ b/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import java.util.Optional; diff --git a/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/AppTest.java b/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/AppTest.java index dd0cfd9ff..769cd66c4 100644 --- a/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/AppTest.java +++ b/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import org.junit.jupiter.api.Test; diff --git a/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutorTest.java b/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutorTest.java index 3f43e67af..d240f3c2e 100644 --- a/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutorTest.java +++ b/async-method-invocation/src/test/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.async.method.invocation; import org.junit.jupiter.api.Test; diff --git a/balking/src/main/java/com/iluwatar/balking/App.java b/balking/src/main/java/com/iluwatar/balking/App.java index 97fdda185..bb3fb085c 100644 --- a/balking/src/main/java/com/iluwatar/balking/App.java +++ b/balking/src/main/java/com/iluwatar/balking/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.balking; import org.slf4j.Logger; diff --git a/balking/src/main/java/com/iluwatar/balking/DelayProvider.java b/balking/src/main/java/com/iluwatar/balking/DelayProvider.java index bce946997..ed05cd292 100644 --- a/balking/src/main/java/com/iluwatar/balking/DelayProvider.java +++ b/balking/src/main/java/com/iluwatar/balking/DelayProvider.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.balking; import java.util.concurrent.TimeUnit; diff --git a/balking/src/main/java/com/iluwatar/balking/WashingMachine.java b/balking/src/main/java/com/iluwatar/balking/WashingMachine.java index 5fe32a106..044b1b6e9 100644 --- a/balking/src/main/java/com/iluwatar/balking/WashingMachine.java +++ b/balking/src/main/java/com/iluwatar/balking/WashingMachine.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.balking; import org.slf4j.Logger; diff --git a/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java b/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java index d6b7f7249..0799d3fd8 100644 --- a/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java +++ b/balking/src/main/java/com/iluwatar/balking/WashingMachineState.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.balking; /** diff --git a/balking/src/test/java/com/iluwatar/balking/AppTest.java b/balking/src/test/java/com/iluwatar/balking/AppTest.java index ca9af5262..440427f9f 100644 --- a/balking/src/test/java/com/iluwatar/balking/AppTest.java +++ b/balking/src/test/java/com/iluwatar/balking/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.balking; import org.junit.jupiter.api.Test; diff --git a/balking/src/test/java/com/iluwatar/balking/WashingMachineTest.java b/balking/src/test/java/com/iluwatar/balking/WashingMachineTest.java index 4140e74aa..8348f9256 100644 --- a/balking/src/test/java/com/iluwatar/balking/WashingMachineTest.java +++ b/balking/src/test/java/com/iluwatar/balking/WashingMachineTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.balking; import org.junit.jupiter.api.Test; diff --git a/bridge/src/main/java/com/iluwatar/bridge/App.java b/bridge/src/main/java/com/iluwatar/bridge/App.java index 89584cc92..195f463cf 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/App.java +++ b/bridge/src/main/java/com/iluwatar/bridge/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.slf4j.Logger; diff --git a/bridge/src/main/java/com/iluwatar/bridge/Enchantment.java b/bridge/src/main/java/com/iluwatar/bridge/Enchantment.java index 3e14a00b2..22acac8f9 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/Enchantment.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Enchantment.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; /** diff --git a/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java b/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java index 2aeb8e638..14abe4c63 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java +++ b/bridge/src/main/java/com/iluwatar/bridge/FlyingEnchantment.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.slf4j.Logger; diff --git a/bridge/src/main/java/com/iluwatar/bridge/Hammer.java b/bridge/src/main/java/com/iluwatar/bridge/Hammer.java index 6943ddd49..47f60613d 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/Hammer.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Hammer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.slf4j.Logger; diff --git a/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java index a9ebbf251..3655c7e97 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java +++ b/bridge/src/main/java/com/iluwatar/bridge/SoulEatingEnchantment.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.slf4j.Logger; diff --git a/bridge/src/main/java/com/iluwatar/bridge/Sword.java b/bridge/src/main/java/com/iluwatar/bridge/Sword.java index 19650999d..ab6f4ab7f 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/Sword.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Sword.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.slf4j.Logger; diff --git a/bridge/src/main/java/com/iluwatar/bridge/Weapon.java b/bridge/src/main/java/com/iluwatar/bridge/Weapon.java index 6c65ac8e8..b264dddca 100644 --- a/bridge/src/main/java/com/iluwatar/bridge/Weapon.java +++ b/bridge/src/main/java/com/iluwatar/bridge/Weapon.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; /** diff --git a/bridge/src/test/java/com/iluwatar/bridge/AppTest.java b/bridge/src/test/java/com/iluwatar/bridge/AppTest.java index ba9ecf211..55a848818 100644 --- a/bridge/src/test/java/com/iluwatar/bridge/AppTest.java +++ b/bridge/src/test/java/com/iluwatar/bridge/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.junit.jupiter.api.Test; diff --git a/bridge/src/test/java/com/iluwatar/bridge/HammerTest.java b/bridge/src/test/java/com/iluwatar/bridge/HammerTest.java index 4d17a0ddd..8e140862c 100644 --- a/bridge/src/test/java/com/iluwatar/bridge/HammerTest.java +++ b/bridge/src/test/java/com/iluwatar/bridge/HammerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.junit.jupiter.api.Test; diff --git a/bridge/src/test/java/com/iluwatar/bridge/SwordTest.java b/bridge/src/test/java/com/iluwatar/bridge/SwordTest.java index 168f4d929..a88ba9fa1 100644 --- a/bridge/src/test/java/com/iluwatar/bridge/SwordTest.java +++ b/bridge/src/test/java/com/iluwatar/bridge/SwordTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.junit.jupiter.api.Test; diff --git a/bridge/src/test/java/com/iluwatar/bridge/WeaponTest.java b/bridge/src/test/java/com/iluwatar/bridge/WeaponTest.java index 39b30d80b..4ca9d9ef0 100644 --- a/bridge/src/test/java/com/iluwatar/bridge/WeaponTest.java +++ b/bridge/src/test/java/com/iluwatar/bridge/WeaponTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bridge; import org.junit.jupiter.api.Disabled; diff --git a/builder/src/main/java/com/iluwatar/builder/App.java b/builder/src/main/java/com/iluwatar/builder/App.java index 0b524e9ad..f57e4d42f 100644 --- a/builder/src/main/java/com/iluwatar/builder/App.java +++ b/builder/src/main/java/com/iluwatar/builder/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; import com.iluwatar.builder.Hero.Builder; diff --git a/builder/src/main/java/com/iluwatar/builder/Armor.java b/builder/src/main/java/com/iluwatar/builder/Armor.java index 13cf0a758..8cf57a361 100644 --- a/builder/src/main/java/com/iluwatar/builder/Armor.java +++ b/builder/src/main/java/com/iluwatar/builder/Armor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; /** diff --git a/builder/src/main/java/com/iluwatar/builder/HairColor.java b/builder/src/main/java/com/iluwatar/builder/HairColor.java index 310c82c77..f94de3556 100644 --- a/builder/src/main/java/com/iluwatar/builder/HairColor.java +++ b/builder/src/main/java/com/iluwatar/builder/HairColor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; /** diff --git a/builder/src/main/java/com/iluwatar/builder/HairType.java b/builder/src/main/java/com/iluwatar/builder/HairType.java index 91416a479..6eece1e37 100644 --- a/builder/src/main/java/com/iluwatar/builder/HairType.java +++ b/builder/src/main/java/com/iluwatar/builder/HairType.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; /** diff --git a/builder/src/main/java/com/iluwatar/builder/Hero.java b/builder/src/main/java/com/iluwatar/builder/Hero.java index fff007565..a8f285b66 100644 --- a/builder/src/main/java/com/iluwatar/builder/Hero.java +++ b/builder/src/main/java/com/iluwatar/builder/Hero.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; /** diff --git a/builder/src/main/java/com/iluwatar/builder/Profession.java b/builder/src/main/java/com/iluwatar/builder/Profession.java index 2647946a2..1e22a1c67 100644 --- a/builder/src/main/java/com/iluwatar/builder/Profession.java +++ b/builder/src/main/java/com/iluwatar/builder/Profession.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; /** diff --git a/builder/src/main/java/com/iluwatar/builder/Weapon.java b/builder/src/main/java/com/iluwatar/builder/Weapon.java index 1bab8ca2d..51ddeafbc 100644 --- a/builder/src/main/java/com/iluwatar/builder/Weapon.java +++ b/builder/src/main/java/com/iluwatar/builder/Weapon.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; /** diff --git a/builder/src/test/java/com/iluwatar/builder/AppTest.java b/builder/src/test/java/com/iluwatar/builder/AppTest.java index ffee67444..9511d3f9c 100644 --- a/builder/src/test/java/com/iluwatar/builder/AppTest.java +++ b/builder/src/test/java/com/iluwatar/builder/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; import org.junit.jupiter.api.Test; diff --git a/builder/src/test/java/com/iluwatar/builder/HeroTest.java b/builder/src/test/java/com/iluwatar/builder/HeroTest.java index 8fa6fdd6b..411087d9b 100644 --- a/builder/src/test/java/com/iluwatar/builder/HeroTest.java +++ b/builder/src/test/java/com/iluwatar/builder/HeroTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.builder; import org.junit.jupiter.api.Test; diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/App.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/App.java index 00d9ab569..68e382c0f 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/App.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; /** 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 38b90c7df..cf2b25129 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; /** 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 776694c93..e7d8400d3 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; /** diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessService.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessService.java index eaca9b202..6e08aca1f 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessService.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/BusinessService.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; /** diff --git a/business-delegate/src/main/java/com/iluwatar/business/delegate/Client.java b/business-delegate/src/main/java/com/iluwatar/business/delegate/Client.java index 2d4e91561..c9c8950db 100644 --- a/business-delegate/src/main/java/com/iluwatar/business/delegate/Client.java +++ b/business-delegate/src/main/java/com/iluwatar/business/delegate/Client.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; /** 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 b5eac5151..aa9457abf 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; import org.slf4j.Logger; 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 20b22a1a4..83abd9762 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; import org.slf4j.Logger; 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 8f918a4e2..a09dde59c 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; /** diff --git a/business-delegate/src/test/java/com/iluwatar/business/delegate/AppTest.java b/business-delegate/src/test/java/com/iluwatar/business/delegate/AppTest.java index d31d6f7a3..48e756acb 100644 --- a/business-delegate/src/test/java/com/iluwatar/business/delegate/AppTest.java +++ b/business-delegate/src/test/java/com/iluwatar/business/delegate/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; import org.junit.jupiter.api.Test; 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 296fdaeef..dfc6dfa9d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.business.delegate; import org.junit.jupiter.api.BeforeEach; diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/App.java b/bytecode/src/main/java/com/iluwatar/bytecode/App.java index 09c8f90f3..9a5f66d88 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/App.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode; import com.iluwatar.bytecode.util.InstructionConverterUtil; diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java b/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java index 82ade9606..99b632ed8 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/Instruction.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode; /** diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java b/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java index 324085d81..c6b120963 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/VirtualMachine.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode; import java.util.Stack; diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java b/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java index 6e0a9ee41..434a1bddd 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/Wizard.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode; import org.slf4j.Logger; diff --git a/bytecode/src/main/java/com/iluwatar/bytecode/util/InstructionConverterUtil.java b/bytecode/src/main/java/com/iluwatar/bytecode/util/InstructionConverterUtil.java index 3905d692f..bdc0782dd 100644 --- a/bytecode/src/main/java/com/iluwatar/bytecode/util/InstructionConverterUtil.java +++ b/bytecode/src/main/java/com/iluwatar/bytecode/util/InstructionConverterUtil.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode.util; import com.iluwatar.bytecode.Instruction; diff --git a/bytecode/src/test/java/com/iluwatar/bytecode/AppTest.java b/bytecode/src/test/java/com/iluwatar/bytecode/AppTest.java index ae212b71c..6ab29c95c 100644 --- a/bytecode/src/test/java/com/iluwatar/bytecode/AppTest.java +++ b/bytecode/src/test/java/com/iluwatar/bytecode/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode; import org.junit.jupiter.api.Test; diff --git a/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java b/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java index fbb3064b2..837c40582 100644 --- a/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java +++ b/bytecode/src/test/java/com/iluwatar/bytecode/VirtualMachineTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode; import org.junit.jupiter.api.Test; 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 ff52ae451..8c0437629 100644 --- a/bytecode/src/test/java/com/iluwatar/bytecode/util/InstructionConverterUtilTest.java +++ b/bytecode/src/test/java/com/iluwatar/bytecode/util/InstructionConverterUtilTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.bytecode.util; import com.iluwatar.bytecode.Instruction; diff --git a/caching/src/main/java/com/iluwatar/caching/App.java b/caching/src/main/java/com/iluwatar/caching/App.java index 699ee9832..4ef12b7de 100644 --- a/caching/src/main/java/com/iluwatar/caching/App.java +++ b/caching/src/main/java/com/iluwatar/caching/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import org.slf4j.Logger; diff --git a/caching/src/main/java/com/iluwatar/caching/AppManager.java b/caching/src/main/java/com/iluwatar/caching/AppManager.java index 2545110e2..6939c6b80 100644 --- a/caching/src/main/java/com/iluwatar/caching/AppManager.java +++ b/caching/src/main/java/com/iluwatar/caching/AppManager.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import java.text.ParseException; diff --git a/caching/src/main/java/com/iluwatar/caching/CacheStore.java b/caching/src/main/java/com/iluwatar/caching/CacheStore.java index 8871f8648..e221f16e7 100644 --- a/caching/src/main/java/com/iluwatar/caching/CacheStore.java +++ b/caching/src/main/java/com/iluwatar/caching/CacheStore.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import org.slf4j.Logger; diff --git a/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java b/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java index fe5829919..23be7d7e2 100644 --- a/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java +++ b/caching/src/main/java/com/iluwatar/caching/CachingPolicy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; /** diff --git a/caching/src/main/java/com/iluwatar/caching/DbManager.java b/caching/src/main/java/com/iluwatar/caching/DbManager.java index 434d9281b..01b727fa5 100644 --- a/caching/src/main/java/com/iluwatar/caching/DbManager.java +++ b/caching/src/main/java/com/iluwatar/caching/DbManager.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import java.text.ParseException; diff --git a/caching/src/main/java/com/iluwatar/caching/LruCache.java b/caching/src/main/java/com/iluwatar/caching/LruCache.java index 346a5ad44..0f2e53823 100644 --- a/caching/src/main/java/com/iluwatar/caching/LruCache.java +++ b/caching/src/main/java/com/iluwatar/caching/LruCache.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import org.slf4j.Logger; diff --git a/caching/src/main/java/com/iluwatar/caching/UserAccount.java b/caching/src/main/java/com/iluwatar/caching/UserAccount.java index f64b5952c..fc6b8cb4c 100644 --- a/caching/src/main/java/com/iluwatar/caching/UserAccount.java +++ b/caching/src/main/java/com/iluwatar/caching/UserAccount.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; /** diff --git a/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java b/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java index 514a1e7f7..7e53f61f0 100644 --- a/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java +++ b/caching/src/main/java/com/iluwatar/caching/constants/CachingConstants.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching.constants; /** diff --git a/caching/src/test/java/com/iluwatar/caching/AppTest.java b/caching/src/test/java/com/iluwatar/caching/AppTest.java index 61b65544c..cb696f804 100644 --- a/caching/src/test/java/com/iluwatar/caching/AppTest.java +++ b/caching/src/test/java/com/iluwatar/caching/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import org.junit.jupiter.api.Test; diff --git a/caching/src/test/java/com/iluwatar/caching/CachingTest.java b/caching/src/test/java/com/iluwatar/caching/CachingTest.java index e978d31a2..ed6004429 100644 --- a/caching/src/test/java/com/iluwatar/caching/CachingTest.java +++ b/caching/src/test/java/com/iluwatar/caching/CachingTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.caching; import org.junit.jupiter.api.BeforeEach; diff --git a/callback/src/main/java/com/iluwatar/callback/App.java b/callback/src/main/java/com/iluwatar/callback/App.java index 4fa546fe6..3a9cd00cb 100644 --- a/callback/src/main/java/com/iluwatar/callback/App.java +++ b/callback/src/main/java/com/iluwatar/callback/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; import org.slf4j.Logger; diff --git a/callback/src/main/java/com/iluwatar/callback/Callback.java b/callback/src/main/java/com/iluwatar/callback/Callback.java index d871e3345..15f083662 100644 --- a/callback/src/main/java/com/iluwatar/callback/Callback.java +++ b/callback/src/main/java/com/iluwatar/callback/Callback.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; /** diff --git a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java index d6cd5d22c..2b445d9ca 100644 --- a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java +++ b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; import org.slf4j.Logger; diff --git a/callback/src/main/java/com/iluwatar/callback/SimpleTask.java b/callback/src/main/java/com/iluwatar/callback/SimpleTask.java index 9b0c16fc5..155d1e96d 100644 --- a/callback/src/main/java/com/iluwatar/callback/SimpleTask.java +++ b/callback/src/main/java/com/iluwatar/callback/SimpleTask.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; import org.slf4j.Logger; diff --git a/callback/src/main/java/com/iluwatar/callback/Task.java b/callback/src/main/java/com/iluwatar/callback/Task.java index b8257e1fc..9f2abe85f 100644 --- a/callback/src/main/java/com/iluwatar/callback/Task.java +++ b/callback/src/main/java/com/iluwatar/callback/Task.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; /** diff --git a/callback/src/test/java/com/iluwatar/callback/AppTest.java b/callback/src/test/java/com/iluwatar/callback/AppTest.java index 1d7c96f91..e954d8f04 100644 --- a/callback/src/test/java/com/iluwatar/callback/AppTest.java +++ b/callback/src/test/java/com/iluwatar/callback/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; import org.junit.jupiter.api.Test; diff --git a/callback/src/test/java/com/iluwatar/callback/CallbackTest.java b/callback/src/test/java/com/iluwatar/callback/CallbackTest.java index 5f07e4690..7f424f79d 100644 --- a/callback/src/test/java/com/iluwatar/callback/CallbackTest.java +++ b/callback/src/test/java/com/iluwatar/callback/CallbackTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.callback; import org.junit.jupiter.api.Test; diff --git a/chain/src/main/java/com/iluwatar/chain/App.java b/chain/src/main/java/com/iluwatar/chain/App.java index b696ff6e9..c45d68276 100644 --- a/chain/src/main/java/com/iluwatar/chain/App.java +++ b/chain/src/main/java/com/iluwatar/chain/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; /** diff --git a/chain/src/main/java/com/iluwatar/chain/OrcCommander.java b/chain/src/main/java/com/iluwatar/chain/OrcCommander.java index 23abddfcc..4770eafcb 100644 --- a/chain/src/main/java/com/iluwatar/chain/OrcCommander.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcCommander.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; /** diff --git a/chain/src/main/java/com/iluwatar/chain/OrcKing.java b/chain/src/main/java/com/iluwatar/chain/OrcKing.java index 143a02a9d..39243d0fd 100644 --- a/chain/src/main/java/com/iluwatar/chain/OrcKing.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcKing.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; /** diff --git a/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java b/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java index 363b55054..6cf78b11d 100644 --- a/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcOfficer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; /** diff --git a/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java b/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java index dcb3b78a8..686840d95 100644 --- a/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java +++ b/chain/src/main/java/com/iluwatar/chain/OrcSoldier.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; /** diff --git a/chain/src/main/java/com/iluwatar/chain/Request.java b/chain/src/main/java/com/iluwatar/chain/Request.java index 0afb681e5..c8962aafa 100644 --- a/chain/src/main/java/com/iluwatar/chain/Request.java +++ b/chain/src/main/java/com/iluwatar/chain/Request.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; import java.util.Objects; diff --git a/chain/src/main/java/com/iluwatar/chain/RequestHandler.java b/chain/src/main/java/com/iluwatar/chain/RequestHandler.java index de43e23a5..aed5c0611 100644 --- a/chain/src/main/java/com/iluwatar/chain/RequestHandler.java +++ b/chain/src/main/java/com/iluwatar/chain/RequestHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; import org.slf4j.Logger; diff --git a/chain/src/main/java/com/iluwatar/chain/RequestType.java b/chain/src/main/java/com/iluwatar/chain/RequestType.java index 03391bef2..4e377a2b6 100644 --- a/chain/src/main/java/com/iluwatar/chain/RequestType.java +++ b/chain/src/main/java/com/iluwatar/chain/RequestType.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; /** diff --git a/chain/src/test/java/com/iluwatar/chain/AppTest.java b/chain/src/test/java/com/iluwatar/chain/AppTest.java index d7964c86d..da73476ea 100644 --- a/chain/src/test/java/com/iluwatar/chain/AppTest.java +++ b/chain/src/test/java/com/iluwatar/chain/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; import org.junit.jupiter.api.Test; diff --git a/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java b/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java index 7e9c2a707..cf957f119 100644 --- a/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java +++ b/chain/src/test/java/com/iluwatar/chain/OrcKingTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.chain; import org.junit.jupiter.api.Test; diff --git a/circuit-breaker/pom.xml b/circuit-breaker/pom.xml index b6587b061..6ef7da223 100644 --- a/circuit-breaker/pom.xml +++ b/circuit-breaker/pom.xml @@ -1,7 +1,7 @@ + + + + /* + * + */EOL + (\\s|\\t)*/\\*.*$ + .*\\*/(\\s|\\t)*$ + false + true + false + + diff --git a/marker/src/main/java/App.java b/marker/src/main/java/App.java index 2958b993f..93697e6eb 100644 --- a/marker/src/main/java/App.java +++ b/marker/src/main/java/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/marker/src/main/java/Guard.java b/marker/src/main/java/Guard.java index 9f7ba7e76..d135d5459 100644 --- a/marker/src/main/java/Guard.java +++ b/marker/src/main/java/Guard.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/marker/src/main/java/Permission.java b/marker/src/main/java/Permission.java index 369173cb5..e1b45e99f 100644 --- a/marker/src/main/java/Permission.java +++ b/marker/src/main/java/Permission.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + /** * Interface without any methods * Marker interface is based on that assumption diff --git a/marker/src/main/java/Thief.java b/marker/src/main/java/Thief.java index 11be5828b..155a974c1 100644 --- a/marker/src/main/java/Thief.java +++ b/marker/src/main/java/Thief.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/marker/src/test/java/AppTest.java b/marker/src/test/java/AppTest.java index c658caba0..5d63db0ad 100644 --- a/marker/src/test/java/AppTest.java +++ b/marker/src/test/java/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + import org.junit.jupiter.api.Test; /** diff --git a/marker/src/test/java/GuardTest.java b/marker/src/test/java/GuardTest.java index 9ab5ac018..615d4e129 100644 --- a/marker/src/test/java/GuardTest.java +++ b/marker/src/test/java/GuardTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.instanceOf; diff --git a/marker/src/test/java/ThiefTest.java b/marker/src/test/java/ThiefTest.java index 813ebe907..2732fc78a 100644 --- a/marker/src/test/java/ThiefTest.java +++ b/marker/src/test/java/ThiefTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertFalse; 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 46c0baf8d..e3ffd08c4 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; import com.iluwatar.masterworker.system.ArrayTransposeMasterWorker; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayInput.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayInput.java index fcd4ab977..df2d691b2 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayInput.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayInput.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; import java.util.ArrayList; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayResult.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayResult.java index 47c0d364a..dbe4f7477 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayResult.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/ArrayResult.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; /** 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 576ffb6bf..04db66492 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; import org.slf4j.Logger; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Input.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Input.java index 6e89e9476..d0d0c2dde 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Input.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Input.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; import java.util.ArrayList; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Result.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Result.java index 0e73e21b3..1bc729aa9 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Result.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/Result.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; /** diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorker.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorker.java index aba8c92d6..76e9ff35a 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorker.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorker.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system; import com.iluwatar.masterworker.system.systemmaster.ArrayTransposeMaster; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/MasterWorker.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/MasterWorker.java index 142b5fd7c..009faf106 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/MasterWorker.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/MasterWorker.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system; import com.iluwatar.masterworker.Input; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/ArrayTransposeMaster.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/ArrayTransposeMaster.java index 81068878b..0a3ab79b7 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/ArrayTransposeMaster.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/ArrayTransposeMaster.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system.systemmaster; import java.util.ArrayList; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/Master.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/Master.java index 4a2d98f34..7e7d796eb 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/Master.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemmaster/Master.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system.systemmaster; import java.util.ArrayList; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorker.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorker.java index 982028465..1d06fcc87 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorker.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorker.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system.systemworkers; import com.iluwatar.masterworker.ArrayInput; diff --git a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/Worker.java b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/Worker.java index 99c769a4a..fff38e953 100644 --- a/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/Worker.java +++ b/master-worker-pattern/src/main/java/com/iluwatar/masterworker/system/systemworkers/Worker.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system.systemworkers; import com.iluwatar.masterworker.Input; diff --git a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayInputTest.java b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayInputTest.java index 46b2cce9d..b5820e2af 100644 --- a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayInputTest.java +++ b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayInputTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; import static org.junit.jupiter.api.Assertions.*; diff --git a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayUtilityMethodsTest.java b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayUtilityMethodsTest.java index 72282b0df..aae784b52 100644 --- a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayUtilityMethodsTest.java +++ b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/ArrayUtilityMethodsTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker; import static org.junit.jupiter.api.Assertions.*; diff --git a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorkerTest.java b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorkerTest.java index fd97b37ad..b80d7881f 100644 --- a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorkerTest.java +++ b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/ArrayTransposeMasterWorkerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system; import static org.junit.jupiter.api.Assertions.*; diff --git a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorkerTest.java b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorkerTest.java index e1f0433c9..3e5f581b9 100644 --- a/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorkerTest.java +++ b/master-worker-pattern/src/test/java/com/iluwatar/masterworker/system/systemworkers/ArrayTransposeWorkerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.masterworker.system.systemworkers; import static org.junit.jupiter.api.Assertions.*; diff --git a/mediator/src/main/java/com/iluwatar/mediator/Action.java b/mediator/src/main/java/com/iluwatar/mediator/Action.java index 479f86d55..dc89bcfdc 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/Action.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Action.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/App.java b/mediator/src/main/java/com/iluwatar/mediator/App.java index 8fd981e80..9af600f7c 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/App.java +++ b/mediator/src/main/java/com/iluwatar/mediator/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/Hobbit.java b/mediator/src/main/java/com/iluwatar/mediator/Hobbit.java index d47cd997e..1ddec27ab 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/Hobbit.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Hobbit.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/Hunter.java b/mediator/src/main/java/com/iluwatar/mediator/Hunter.java index 5e7a703f5..ed73c1684 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/Hunter.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Hunter.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/Party.java b/mediator/src/main/java/com/iluwatar/mediator/Party.java index a4e9f6348..c28b063f3 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/Party.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Party.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java b/mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java index 31bdbf019..a2a755408 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; import java.util.ArrayList; diff --git a/mediator/src/main/java/com/iluwatar/mediator/PartyMember.java b/mediator/src/main/java/com/iluwatar/mediator/PartyMember.java index 815614ebb..a45b37b17 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/PartyMember.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyMember.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java b/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java index c5825e0d9..7ff3535e8 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java +++ b/mediator/src/main/java/com/iluwatar/mediator/PartyMemberBase.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; import org.slf4j.Logger; diff --git a/mediator/src/main/java/com/iluwatar/mediator/Rogue.java b/mediator/src/main/java/com/iluwatar/mediator/Rogue.java index 551c51037..226bd8f04 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/Rogue.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Rogue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/main/java/com/iluwatar/mediator/Wizard.java b/mediator/src/main/java/com/iluwatar/mediator/Wizard.java index 61e9b1540..33d7d6dce 100644 --- a/mediator/src/main/java/com/iluwatar/mediator/Wizard.java +++ b/mediator/src/main/java/com/iluwatar/mediator/Wizard.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; /** diff --git a/mediator/src/test/java/com/iluwatar/mediator/AppTest.java b/mediator/src/test/java/com/iluwatar/mediator/AppTest.java index 8a24bb76d..3a55d51d8 100644 --- a/mediator/src/test/java/com/iluwatar/mediator/AppTest.java +++ b/mediator/src/test/java/com/iluwatar/mediator/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; import org.junit.jupiter.api.Test; diff --git a/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java b/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java index 209040306..5d2446545 100644 --- a/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java +++ b/mediator/src/test/java/com/iluwatar/mediator/PartyImplTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; import org.junit.jupiter.api.Test; diff --git a/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java b/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java index b9baac60d..b7092347b 100644 --- a/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java +++ b/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mediator; import ch.qos.logback.classic.Logger; diff --git a/memento/src/main/java/com/iluwatar/memento/App.java b/memento/src/main/java/com/iluwatar/memento/App.java index 64c283bdc..fc6dffb06 100644 --- a/memento/src/main/java/com/iluwatar/memento/App.java +++ b/memento/src/main/java/com/iluwatar/memento/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.memento; import org.slf4j.Logger; diff --git a/memento/src/main/java/com/iluwatar/memento/Star.java b/memento/src/main/java/com/iluwatar/memento/Star.java index 06b24448a..0e235752e 100644 --- a/memento/src/main/java/com/iluwatar/memento/Star.java +++ b/memento/src/main/java/com/iluwatar/memento/Star.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.memento; /** diff --git a/memento/src/main/java/com/iluwatar/memento/StarMemento.java b/memento/src/main/java/com/iluwatar/memento/StarMemento.java index fe5b26a58..b94f5996a 100644 --- a/memento/src/main/java/com/iluwatar/memento/StarMemento.java +++ b/memento/src/main/java/com/iluwatar/memento/StarMemento.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.memento; /** diff --git a/memento/src/main/java/com/iluwatar/memento/StarType.java b/memento/src/main/java/com/iluwatar/memento/StarType.java index a7bea6be8..29da62579 100644 --- a/memento/src/main/java/com/iluwatar/memento/StarType.java +++ b/memento/src/main/java/com/iluwatar/memento/StarType.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.memento; /** diff --git a/memento/src/test/java/com/iluwatar/memento/AppTest.java b/memento/src/test/java/com/iluwatar/memento/AppTest.java index d432c9e8e..074de2c41 100644 --- a/memento/src/test/java/com/iluwatar/memento/AppTest.java +++ b/memento/src/test/java/com/iluwatar/memento/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.memento; import org.junit.jupiter.api.Test; diff --git a/memento/src/test/java/com/iluwatar/memento/StarTest.java b/memento/src/test/java/com/iluwatar/memento/StarTest.java index bf9c3daca..40adb99e1 100644 --- a/memento/src/test/java/com/iluwatar/memento/StarTest.java +++ b/memento/src/test/java/com/iluwatar/memento/StarTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.memento; import org.junit.jupiter.api.Test; diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/App.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/App.java index cede84db2..b4bc8f6ca 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/App.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; /** diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Fatigue.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Fatigue.java index 300c23ab4..7f0fd2937 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Fatigue.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Fatigue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; /** diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantController.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantController.java index 4efc6c8b8..e420ec890 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantController.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantController.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; /** diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantModel.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantModel.java index bce81cb70..4ae2c4c19 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantModel.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/GiantModel.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; /** 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 39db87991..9590d609d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; import org.slf4j.Logger; diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Health.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Health.java index 84f402943..c8b9374bf 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Health.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Health.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; /** diff --git a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Nourishment.java b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Nourishment.java index c56e22b2d..9810b2015 100644 --- a/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Nourishment.java +++ b/model-view-controller/src/main/java/com/iluwatar/model/view/controller/Nourishment.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; /** diff --git a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/AppTest.java b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/AppTest.java index 0d2af602d..e6d2d9a0b 100644 --- a/model-view-controller/src/test/java/com/iluwatar/model/view/controller/AppTest.java +++ b/model-view-controller/src/test/java/com/iluwatar/model/view/controller/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; import org.junit.jupiter.api.Test; 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 86026e441..a2f42a80d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; import org.junit.jupiter.api.Test; 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 ee89b71b3..a566010cd 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; import org.junit.jupiter.api.Test; 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 a492a4493..a3e33f9dd 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.controller; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/App.java b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/App.java index 058fb5996..9b6e6cde8 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/App.java +++ b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; /** diff --git a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileLoader.java b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileLoader.java index eee206fae..980c0b56c 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileLoader.java +++ b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileLoader.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import java.io.BufferedReader; diff --git a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorJFrame.java b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorJFrame.java index d82ce553b..3d9bc035a 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorJFrame.java +++ b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorJFrame.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import java.awt.Color; diff --git a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorPresenter.java b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorPresenter.java index 315ac43be..a9cf1ba80 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorPresenter.java +++ b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorPresenter.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import java.io.Serializable; diff --git a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorStub.java b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorStub.java index ecf724e3f..d034bcb04 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorStub.java +++ b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorStub.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; /** diff --git a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorView.java b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorView.java index 8c03a4468..3deec63d9 100644 --- a/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorView.java +++ b/model-view-presenter/src/main/java/com/iluwatar/model/view/presenter/FileSelectorView.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import java.io.Serializable; diff --git a/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/AppTest.java b/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/AppTest.java index 6d9840bac..00e35ae1b 100644 --- a/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/AppTest.java +++ b/model-view-presenter/src/test/java/com/iluwatar/model/view/presenter/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import org.junit.jupiter.api.Test; 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 3d57e63eb..a63ca5ae8 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import org.junit.jupiter.api.Test; 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 351452868..fdc19398d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.model.view.presenter; import org.junit.jupiter.api.BeforeEach; diff --git a/module/src/main/java/com/iluwatar/module/App.java b/module/src/main/java/com/iluwatar/module/App.java index 69279d0f7..af0432afb 100644 --- a/module/src/main/java/com/iluwatar/module/App.java +++ b/module/src/main/java/com/iluwatar/module/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.module; import java.io.FileNotFoundException; diff --git a/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java b/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java index 12eaae1d9..6e6d0539d 100644 --- a/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java +++ b/module/src/main/java/com/iluwatar/module/ConsoleLoggerModule.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.module; import org.slf4j.Logger; diff --git a/module/src/main/java/com/iluwatar/module/FileLoggerModule.java b/module/src/main/java/com/iluwatar/module/FileLoggerModule.java index 65f954b6c..e461b31d7 100644 --- a/module/src/main/java/com/iluwatar/module/FileLoggerModule.java +++ b/module/src/main/java/com/iluwatar/module/FileLoggerModule.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.module; import org.slf4j.Logger; diff --git a/module/src/test/java/com/iluwatar/module/AppTest.java b/module/src/test/java/com/iluwatar/module/AppTest.java index 4236e4224..88fa4c68c 100644 --- a/module/src/test/java/com/iluwatar/module/AppTest.java +++ b/module/src/test/java/com/iluwatar/module/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.module; import org.junit.jupiter.api.Test; diff --git a/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java b/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java index 30f0baae5..e88b466f2 100644 --- a/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java +++ b/module/src/test/java/com/iluwatar/module/FileLoggerModuleTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.module; import org.junit.jupiter.api.Test; diff --git a/monad/src/main/java/com/iluwatar/monad/App.java b/monad/src/main/java/com/iluwatar/monad/App.java index 7c3efe70b..94e465487 100644 --- a/monad/src/main/java/com/iluwatar/monad/App.java +++ b/monad/src/main/java/com/iluwatar/monad/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monad; import org.slf4j.Logger; diff --git a/monad/src/main/java/com/iluwatar/monad/Sex.java b/monad/src/main/java/com/iluwatar/monad/Sex.java index a34dbc692..960711656 100644 --- a/monad/src/main/java/com/iluwatar/monad/Sex.java +++ b/monad/src/main/java/com/iluwatar/monad/Sex.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monad; /** diff --git a/monad/src/main/java/com/iluwatar/monad/User.java b/monad/src/main/java/com/iluwatar/monad/User.java index 7ade709de..9ecaa5275 100644 --- a/monad/src/main/java/com/iluwatar/monad/User.java +++ b/monad/src/main/java/com/iluwatar/monad/User.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monad; /** diff --git a/monad/src/main/java/com/iluwatar/monad/Validator.java b/monad/src/main/java/com/iluwatar/monad/Validator.java index c30427e71..b5618f91c 100644 --- a/monad/src/main/java/com/iluwatar/monad/Validator.java +++ b/monad/src/main/java/com/iluwatar/monad/Validator.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monad; import java.util.ArrayList; diff --git a/monad/src/test/java/com/iluwatar/monad/AppTest.java b/monad/src/test/java/com/iluwatar/monad/AppTest.java index 2ffead426..f4d89a7cd 100644 --- a/monad/src/test/java/com/iluwatar/monad/AppTest.java +++ b/monad/src/test/java/com/iluwatar/monad/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monad; import org.junit.jupiter.api.Test; diff --git a/monad/src/test/java/com/iluwatar/monad/MonadTest.java b/monad/src/test/java/com/iluwatar/monad/MonadTest.java index 5b8547d5a..d1bdd7487 100644 --- a/monad/src/test/java/com/iluwatar/monad/MonadTest.java +++ b/monad/src/test/java/com/iluwatar/monad/MonadTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monad; import org.junit.jupiter.api.Test; diff --git a/monostate/src/main/java/com/iluwatar/monostate/App.java b/monostate/src/main/java/com/iluwatar/monostate/App.java index 3e536d2b2..4b6f8b14b 100644 --- a/monostate/src/main/java/com/iluwatar/monostate/App.java +++ b/monostate/src/main/java/com/iluwatar/monostate/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monostate; diff --git a/monostate/src/main/java/com/iluwatar/monostate/LoadBalancer.java b/monostate/src/main/java/com/iluwatar/monostate/LoadBalancer.java index 23052d16b..ae590be5e 100644 --- a/monostate/src/main/java/com/iluwatar/monostate/LoadBalancer.java +++ b/monostate/src/main/java/com/iluwatar/monostate/LoadBalancer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monostate; import java.util.ArrayList; diff --git a/monostate/src/main/java/com/iluwatar/monostate/Request.java b/monostate/src/main/java/com/iluwatar/monostate/Request.java index 96a90dc9e..5a7429998 100644 --- a/monostate/src/main/java/com/iluwatar/monostate/Request.java +++ b/monostate/src/main/java/com/iluwatar/monostate/Request.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monostate; /** diff --git a/monostate/src/main/java/com/iluwatar/monostate/Server.java b/monostate/src/main/java/com/iluwatar/monostate/Server.java index 387947824..fa809864c 100644 --- a/monostate/src/main/java/com/iluwatar/monostate/Server.java +++ b/monostate/src/main/java/com/iluwatar/monostate/Server.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monostate; import org.slf4j.Logger; diff --git a/monostate/src/test/java/com/iluwatar/monostate/AppTest.java b/monostate/src/test/java/com/iluwatar/monostate/AppTest.java index 4ce49f03d..c914f136e 100644 --- a/monostate/src/test/java/com/iluwatar/monostate/AppTest.java +++ b/monostate/src/test/java/com/iluwatar/monostate/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monostate; import org.junit.jupiter.api.Test; diff --git a/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java b/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java index e806696e7..736bf6ea6 100644 --- a/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java +++ b/monostate/src/test/java/com/iluwatar/monostate/LoadBalancerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.monostate; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/multiton/src/main/java/com/iluwatar/multiton/App.java b/multiton/src/main/java/com/iluwatar/multiton/App.java index daf1ea4d9..8fb226625 100644 --- a/multiton/src/main/java/com/iluwatar/multiton/App.java +++ b/multiton/src/main/java/com/iluwatar/multiton/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; import org.slf4j.Logger; diff --git a/multiton/src/main/java/com/iluwatar/multiton/Nazgul.java b/multiton/src/main/java/com/iluwatar/multiton/Nazgul.java index e7f8ef65b..52a25e00d 100644 --- a/multiton/src/main/java/com/iluwatar/multiton/Nazgul.java +++ b/multiton/src/main/java/com/iluwatar/multiton/Nazgul.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; import java.util.Map; diff --git a/multiton/src/main/java/com/iluwatar/multiton/NazgulEnum.java b/multiton/src/main/java/com/iluwatar/multiton/NazgulEnum.java index 7d120fed0..f119ee68f 100644 --- a/multiton/src/main/java/com/iluwatar/multiton/NazgulEnum.java +++ b/multiton/src/main/java/com/iluwatar/multiton/NazgulEnum.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; /** diff --git a/multiton/src/main/java/com/iluwatar/multiton/NazgulName.java b/multiton/src/main/java/com/iluwatar/multiton/NazgulName.java index 62903c9c8..5fe2a5a0f 100644 --- a/multiton/src/main/java/com/iluwatar/multiton/NazgulName.java +++ b/multiton/src/main/java/com/iluwatar/multiton/NazgulName.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; /** diff --git a/multiton/src/test/java/com/iluwatar/multiton/AppTest.java b/multiton/src/test/java/com/iluwatar/multiton/AppTest.java index 8672e1815..f577b7f07 100644 --- a/multiton/src/test/java/com/iluwatar/multiton/AppTest.java +++ b/multiton/src/test/java/com/iluwatar/multiton/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; import org.junit.jupiter.api.Test; diff --git a/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java b/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java index 6a890777e..6668874f4 100644 --- a/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java +++ b/multiton/src/test/java/com/iluwatar/multiton/NazgulEnumTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; import static org.junit.jupiter.api.Assertions.*; diff --git a/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java b/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java index b9545dfef..0429f8e29 100644 --- a/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java +++ b/multiton/src/test/java/com/iluwatar/multiton/NazgulTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.multiton; import org.junit.jupiter.api.Test; 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 f8ac25f5c..28649e249 100644 --- a/mute-idiom/src/main/java/com/iluwatar/mute/App.java +++ b/mute-idiom/src/main/java/com/iluwatar/mute/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mute; import org.slf4j.Logger; diff --git a/mute-idiom/src/main/java/com/iluwatar/mute/CheckedRunnable.java b/mute-idiom/src/main/java/com/iluwatar/mute/CheckedRunnable.java index 9a3feefc1..d5fdaaec2 100644 --- a/mute-idiom/src/main/java/com/iluwatar/mute/CheckedRunnable.java +++ b/mute-idiom/src/main/java/com/iluwatar/mute/CheckedRunnable.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mute; /** diff --git a/mute-idiom/src/main/java/com/iluwatar/mute/Mute.java b/mute-idiom/src/main/java/com/iluwatar/mute/Mute.java index 6c2c41701..87a1f651e 100644 --- a/mute-idiom/src/main/java/com/iluwatar/mute/Mute.java +++ b/mute-idiom/src/main/java/com/iluwatar/mute/Mute.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mute; import java.io.ByteArrayOutputStream; diff --git a/mute-idiom/src/main/java/com/iluwatar/mute/Resource.java b/mute-idiom/src/main/java/com/iluwatar/mute/Resource.java index 366f014b4..a10fe4617 100644 --- a/mute-idiom/src/main/java/com/iluwatar/mute/Resource.java +++ b/mute-idiom/src/main/java/com/iluwatar/mute/Resource.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mute; import java.io.Closeable; diff --git a/mute-idiom/src/test/java/com/iluwatar/mute/AppTest.java b/mute-idiom/src/test/java/com/iluwatar/mute/AppTest.java index 8d2299492..5ca525a9d 100644 --- a/mute-idiom/src/test/java/com/iluwatar/mute/AppTest.java +++ b/mute-idiom/src/test/java/com/iluwatar/mute/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mute; import org.junit.jupiter.api.Test; diff --git a/mute-idiom/src/test/java/com/iluwatar/mute/MuteTest.java b/mute-idiom/src/test/java/com/iluwatar/mute/MuteTest.java index 9d946810f..f2743113b 100644 --- a/mute-idiom/src/test/java/com/iluwatar/mute/MuteTest.java +++ b/mute-idiom/src/test/java/com/iluwatar/mute/MuteTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mute; import org.junit.jupiter.api.Test; diff --git a/mutex/src/main/java/com/iluwatar/mutex/App.java b/mutex/src/main/java/com/iluwatar/mutex/App.java index 2e8f57256..827307d0f 100644 --- a/mutex/src/main/java/com/iluwatar/mutex/App.java +++ b/mutex/src/main/java/com/iluwatar/mutex/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; /** diff --git a/mutex/src/main/java/com/iluwatar/mutex/Jar.java b/mutex/src/main/java/com/iluwatar/mutex/Jar.java index 60236a57b..427907f31 100644 --- a/mutex/src/main/java/com/iluwatar/mutex/Jar.java +++ b/mutex/src/main/java/com/iluwatar/mutex/Jar.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; /** diff --git a/mutex/src/main/java/com/iluwatar/mutex/Lock.java b/mutex/src/main/java/com/iluwatar/mutex/Lock.java index aca8de4c0..bd28c3c08 100644 --- a/mutex/src/main/java/com/iluwatar/mutex/Lock.java +++ b/mutex/src/main/java/com/iluwatar/mutex/Lock.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; /** diff --git a/mutex/src/main/java/com/iluwatar/mutex/Mutex.java b/mutex/src/main/java/com/iluwatar/mutex/Mutex.java index 1b1bced56..a2ef71f11 100644 --- a/mutex/src/main/java/com/iluwatar/mutex/Mutex.java +++ b/mutex/src/main/java/com/iluwatar/mutex/Mutex.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; /** diff --git a/mutex/src/main/java/com/iluwatar/mutex/Thief.java b/mutex/src/main/java/com/iluwatar/mutex/Thief.java index 1798f4673..f88e46d96 100644 --- a/mutex/src/main/java/com/iluwatar/mutex/Thief.java +++ b/mutex/src/main/java/com/iluwatar/mutex/Thief.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; import org.slf4j.Logger; diff --git a/mutex/src/test/java/com/iluwatar/mutex/AppTest.java b/mutex/src/test/java/com/iluwatar/mutex/AppTest.java index 4195edbc2..1793bf90b 100644 --- a/mutex/src/test/java/com/iluwatar/mutex/AppTest.java +++ b/mutex/src/test/java/com/iluwatar/mutex/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; import org.junit.jupiter.api.Test; diff --git a/mutex/src/test/java/com/iluwatar/mutex/JarTest.java b/mutex/src/test/java/com/iluwatar/mutex/JarTest.java index ec359aa18..e0a316072 100644 --- a/mutex/src/test/java/com/iluwatar/mutex/JarTest.java +++ b/mutex/src/test/java/com/iluwatar/mutex/JarTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; import org.junit.jupiter.api.Test; diff --git a/mutex/src/test/java/com/iluwatar/mutex/MutexTest.java b/mutex/src/test/java/com/iluwatar/mutex/MutexTest.java index 3914e99c9..2e3184c51 100644 --- a/mutex/src/test/java/com/iluwatar/mutex/MutexTest.java +++ b/mutex/src/test/java/com/iluwatar/mutex/MutexTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.mutex; import org.junit.jupiter.api.Test; diff --git a/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageService.java b/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageService.java index 910b492b4..8c3618db8 100644 --- a/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageService.java +++ b/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageService.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.dom.app.homepage; import org.apache.isis.applib.DomainObjectContainer; diff --git a/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageViewModel.java b/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageViewModel.java index 6d8f87aeb..9d845cbd6 100644 --- a/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageViewModel.java +++ b/naked-objects/dom/src/main/java/domainapp/dom/app/homepage/HomePageViewModel.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.dom.app.homepage; import java.util.List; diff --git a/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java b/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java index b2c950e8d..329c4c138 100644 --- a/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java +++ b/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.dom.modules.simple; import javax.jdo.JDOHelper; diff --git a/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java b/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java index 9ef5e5395..506bda597 100644 --- a/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java +++ b/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.dom.modules.simple; import java.util.List; 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 9affd1b4f..03ab30f75 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.dom.modules.simple; import static org.junit.Assert.assertEquals; 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 0b1878cc2..a95ad5aa3 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.dom.modules.simple; import com.google.common.collect.Lists; diff --git a/naked-objects/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java b/naked-objects/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java index 4496d2e32..7a7e8c4b7 100644 --- a/naked-objects/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java +++ b/naked-objects/fixture/src/main/java/domainapp/fixture/DomainAppFixturesProvider.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.fixture; import org.apache.isis.applib.annotation.DomainService; diff --git a/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectCreate.java b/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectCreate.java index 89eadad31..4de9bfc9c 100644 --- a/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectCreate.java +++ b/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectCreate.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.fixture.modules.simple; import org.apache.isis.applib.fixturescripts.FixtureScript; diff --git a/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java b/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java index a5092c2ec..8fc54d0ad 100644 --- a/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java +++ b/naked-objects/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.fixture.modules.simple; import org.apache.isis.applib.fixturescripts.FixtureScript; diff --git a/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java b/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java index 33e5570a6..2c201ead2 100644 --- a/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java +++ b/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.fixture.scenarios; import java.util.Arrays; diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java b/naked-objects/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java index 930a805d5..f67c26876 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/bootstrap/SimpleAppSystemInitializer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.bootstrap; import org.apache.isis.core.commons.config.IsisConfiguration; diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/BootstrappingGlue.java b/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/BootstrappingGlue.java index 4b22615ec..b3bd973bd 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/BootstrappingGlue.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/BootstrappingGlue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.specglue; import org.apache.isis.core.specsupport.scenarios.ScenarioExecutionScope; diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/CatalogOfFixturesGlue.java b/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/CatalogOfFixturesGlue.java index acc1485ec..025c6724a 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/CatalogOfFixturesGlue.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/CatalogOfFixturesGlue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.specglue; import org.apache.isis.core.specsupport.specs.CukeGlueAbstract; diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/modules/simple/SimpleObjectGlue.java b/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/modules/simple/SimpleObjectGlue.java index 6c98b008c..7b508faf3 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/modules/simple/SimpleObjectGlue.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/specglue/modules/simple/SimpleObjectGlue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.specglue.modules.simple; import static org.hamcrest.CoreMatchers.is; 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 8f197985d..d92cfa881 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.specs; import org.junit.runner.RunWith; diff --git a/naked-objects/integtests/src/test/java/domainapp/integtests/tests/SimpleAppIntegTest.java b/naked-objects/integtests/src/test/java/domainapp/integtests/tests/SimpleAppIntegTest.java index 0c1971425..24d8d207c 100644 --- a/naked-objects/integtests/src/test/java/domainapp/integtests/tests/SimpleAppIntegTest.java +++ b/naked-objects/integtests/src/test/java/domainapp/integtests/tests/SimpleAppIntegTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.tests; import org.junit.BeforeClass; 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 0fc7c8f0b..11ff6a47d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.tests.modules.simple; import static org.junit.Assert.assertEquals; 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 a150bdb5a..c762dd88f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.integtests.tests.modules.simple; import static org.junit.Assert.assertEquals; 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 875212963..649aea7fd 100644 --- a/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java +++ b/naked-objects/webapp/src/main/java/domainapp/webapp/SimpleApplication.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package domainapp.webapp; import java.io.IOException; diff --git a/null-object/src/main/java/com/iluwatar/nullobject/App.java b/null-object/src/main/java/com/iluwatar/nullobject/App.java index 11c646d43..9e5a1412b 100644 --- a/null-object/src/main/java/com/iluwatar/nullobject/App.java +++ b/null-object/src/main/java/com/iluwatar/nullobject/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; /** diff --git a/null-object/src/main/java/com/iluwatar/nullobject/Node.java b/null-object/src/main/java/com/iluwatar/nullobject/Node.java index 5d74ff70f..61423778c 100644 --- a/null-object/src/main/java/com/iluwatar/nullobject/Node.java +++ b/null-object/src/main/java/com/iluwatar/nullobject/Node.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; /** 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 240bea929..c44c26fb9 100644 --- a/null-object/src/main/java/com/iluwatar/nullobject/NodeImpl.java +++ b/null-object/src/main/java/com/iluwatar/nullobject/NodeImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; import org.slf4j.Logger; diff --git a/null-object/src/main/java/com/iluwatar/nullobject/NullNode.java b/null-object/src/main/java/com/iluwatar/nullobject/NullNode.java index 41bf98c5c..c5085b03d 100644 --- a/null-object/src/main/java/com/iluwatar/nullobject/NullNode.java +++ b/null-object/src/main/java/com/iluwatar/nullobject/NullNode.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; /** diff --git a/null-object/src/test/java/com/iluwatar/nullobject/AppTest.java b/null-object/src/test/java/com/iluwatar/nullobject/AppTest.java index 57eb86748..97d6b5eef 100644 --- a/null-object/src/test/java/com/iluwatar/nullobject/AppTest.java +++ b/null-object/src/test/java/com/iluwatar/nullobject/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; import org.junit.jupiter.api.Test; diff --git a/null-object/src/test/java/com/iluwatar/nullobject/NullNodeTest.java b/null-object/src/test/java/com/iluwatar/nullobject/NullNodeTest.java index efd1a2b85..b4d9f72d0 100644 --- a/null-object/src/test/java/com/iluwatar/nullobject/NullNodeTest.java +++ b/null-object/src/test/java/com/iluwatar/nullobject/NullNodeTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; import org.junit.jupiter.api.Test; 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 ce1502d98..4ff30f524 100644 --- a/null-object/src/test/java/com/iluwatar/nullobject/TreeTest.java +++ b/null-object/src/test/java/com/iluwatar/nullobject/TreeTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.nullobject; import ch.qos.logback.classic.Logger; diff --git a/object-mother/src/main/java/com/iluwatar/objectmother/King.java b/object-mother/src/main/java/com/iluwatar/objectmother/King.java index 7bb2ebd20..cfebd2590 100644 --- a/object-mother/src/main/java/com/iluwatar/objectmother/King.java +++ b/object-mother/src/main/java/com/iluwatar/objectmother/King.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.objectmother; /** diff --git a/object-mother/src/main/java/com/iluwatar/objectmother/Queen.java b/object-mother/src/main/java/com/iluwatar/objectmother/Queen.java index 70fe0c0d6..98a41a960 100644 --- a/object-mother/src/main/java/com/iluwatar/objectmother/Queen.java +++ b/object-mother/src/main/java/com/iluwatar/objectmother/Queen.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.objectmother; /** diff --git a/object-mother/src/main/java/com/iluwatar/objectmother/Royalty.java b/object-mother/src/main/java/com/iluwatar/objectmother/Royalty.java index 025172e69..9abbbe75b 100644 --- a/object-mother/src/main/java/com/iluwatar/objectmother/Royalty.java +++ b/object-mother/src/main/java/com/iluwatar/objectmother/Royalty.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.objectmother; /** diff --git a/object-mother/src/main/java/com/iluwatar/objectmother/RoyaltyObjectMother.java b/object-mother/src/main/java/com/iluwatar/objectmother/RoyaltyObjectMother.java index 418fd1151..372f1166c 100644 --- a/object-mother/src/main/java/com/iluwatar/objectmother/RoyaltyObjectMother.java +++ b/object-mother/src/main/java/com/iluwatar/objectmother/RoyaltyObjectMother.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.objectmother; /** 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 62cc6db80..b9b211d96 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.objectmother.test; import com.iluwatar.objectmother.King; 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 421ee7118..24923c1e9 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.object.pool; import org.slf4j.Logger; diff --git a/object-pool/src/main/java/com/iluwatar/object/pool/ObjectPool.java b/object-pool/src/main/java/com/iluwatar/object/pool/ObjectPool.java index 4baf25e66..e71e97f16 100644 --- a/object-pool/src/main/java/com/iluwatar/object/pool/ObjectPool.java +++ b/object-pool/src/main/java/com/iluwatar/object/pool/ObjectPool.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.object.pool; import java.util.HashSet; diff --git a/object-pool/src/main/java/com/iluwatar/object/pool/Oliphaunt.java b/object-pool/src/main/java/com/iluwatar/object/pool/Oliphaunt.java index 3557d3b28..0d9f85adc 100644 --- a/object-pool/src/main/java/com/iluwatar/object/pool/Oliphaunt.java +++ b/object-pool/src/main/java/com/iluwatar/object/pool/Oliphaunt.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.object.pool; import java.util.concurrent.atomic.AtomicInteger; diff --git a/object-pool/src/main/java/com/iluwatar/object/pool/OliphauntPool.java b/object-pool/src/main/java/com/iluwatar/object/pool/OliphauntPool.java index c3bc860a3..b2d92936f 100644 --- a/object-pool/src/main/java/com/iluwatar/object/pool/OliphauntPool.java +++ b/object-pool/src/main/java/com/iluwatar/object/pool/OliphauntPool.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.object.pool; /** 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 e78936778..7113f9304 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.object.pool; import org.junit.jupiter.api.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 ad9d531a0..b946f8098 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.object.pool; import org.junit.jupiter.api.Test; diff --git a/observer/src/main/java/com/iluwatar/observer/App.java b/observer/src/main/java/com/iluwatar/observer/App.java index 1a174b7e7..07321ea6b 100644 --- a/observer/src/main/java/com/iluwatar/observer/App.java +++ b/observer/src/main/java/com/iluwatar/observer/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import com.iluwatar.observer.generic.GHobbits; diff --git a/observer/src/main/java/com/iluwatar/observer/Hobbits.java b/observer/src/main/java/com/iluwatar/observer/Hobbits.java index 50da760ec..b718aa5e8 100644 --- a/observer/src/main/java/com/iluwatar/observer/Hobbits.java +++ b/observer/src/main/java/com/iluwatar/observer/Hobbits.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import org.slf4j.Logger; diff --git a/observer/src/main/java/com/iluwatar/observer/Orcs.java b/observer/src/main/java/com/iluwatar/observer/Orcs.java index 377e47ebb..1420c7da7 100644 --- a/observer/src/main/java/com/iluwatar/observer/Orcs.java +++ b/observer/src/main/java/com/iluwatar/observer/Orcs.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import org.slf4j.Logger; diff --git a/observer/src/main/java/com/iluwatar/observer/Weather.java b/observer/src/main/java/com/iluwatar/observer/Weather.java index bf21e51e8..b5f6d2e39 100644 --- a/observer/src/main/java/com/iluwatar/observer/Weather.java +++ b/observer/src/main/java/com/iluwatar/observer/Weather.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import org.slf4j.Logger; diff --git a/observer/src/main/java/com/iluwatar/observer/WeatherObserver.java b/observer/src/main/java/com/iluwatar/observer/WeatherObserver.java index a859ac19a..deb4c15ed 100644 --- a/observer/src/main/java/com/iluwatar/observer/WeatherObserver.java +++ b/observer/src/main/java/com/iluwatar/observer/WeatherObserver.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; /** diff --git a/observer/src/main/java/com/iluwatar/observer/WeatherType.java b/observer/src/main/java/com/iluwatar/observer/WeatherType.java index e2d950798..384f8ac58 100644 --- a/observer/src/main/java/com/iluwatar/observer/WeatherType.java +++ b/observer/src/main/java/com/iluwatar/observer/WeatherType.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; /** 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 53b9b41cc..79669ef48 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/GHobbits.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/GHobbits.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; 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 aca6c7440..5ba85b17f 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/GOrcs.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/GOrcs.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; 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 d28fdad41..3bf52f46b 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/GWeather.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/GWeather.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; diff --git a/observer/src/main/java/com/iluwatar/observer/generic/Observable.java b/observer/src/main/java/com/iluwatar/observer/generic/Observable.java index 635904de0..722915b92 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/Observable.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/Observable.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import java.util.List; diff --git a/observer/src/main/java/com/iluwatar/observer/generic/Observer.java b/observer/src/main/java/com/iluwatar/observer/generic/Observer.java index 7440243ac..819068b6e 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/Observer.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/Observer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; /** diff --git a/observer/src/main/java/com/iluwatar/observer/generic/Race.java b/observer/src/main/java/com/iluwatar/observer/generic/Race.java index 301636164..1cd3aa4a6 100644 --- a/observer/src/main/java/com/iluwatar/observer/generic/Race.java +++ b/observer/src/main/java/com/iluwatar/observer/generic/Race.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; diff --git a/observer/src/test/java/com/iluwatar/observer/AppTest.java b/observer/src/test/java/com/iluwatar/observer/AppTest.java index c2ac8b11e..b557fdf7e 100644 --- a/observer/src/test/java/com/iluwatar/observer/AppTest.java +++ b/observer/src/test/java/com/iluwatar/observer/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import org.junit.jupiter.api.Test; diff --git a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java index f0f5e0825..c43c592da 100644 --- a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import java.util.ArrayList; diff --git a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java index 17ccf938e..b2c0fcbac 100644 --- a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import java.util.ArrayList; diff --git a/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java b/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java index ec3dfbed8..fbaceb02b 100644 --- a/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java +++ b/observer/src/test/java/com/iluwatar/observer/WeatherObserverTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import com.iluwatar.observer.utils.InMemoryAppender; diff --git a/observer/src/test/java/com/iluwatar/observer/WeatherTest.java b/observer/src/test/java/com/iluwatar/observer/WeatherTest.java index dfb370ca2..c00357153 100644 --- a/observer/src/test/java/com/iluwatar/observer/WeatherTest.java +++ b/observer/src/test/java/com/iluwatar/observer/WeatherTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer; import com.iluwatar.observer.utils.InMemoryAppender; 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 c9c525b9d..93e68a9f1 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; 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 60203ced3..7450a00b9 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/GWeatherTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/GWeatherTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherObserver; diff --git a/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java b/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java index 940d45aba..b5ef7ec0d 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/ObserverTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; 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 136b766c3..b73b10519 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; diff --git a/observer/src/test/java/com/iluwatar/observer/utils/InMemoryAppender.java b/observer/src/test/java/com/iluwatar/observer/utils/InMemoryAppender.java index fbfe107b8..b3d2bf1bc 100644 --- a/observer/src/test/java/com/iluwatar/observer/utils/InMemoryAppender.java +++ b/observer/src/test/java/com/iluwatar/observer/utils/InMemoryAppender.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.observer.utils; import ch.qos.logback.classic.Logger; 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 ff1f53790..aae08c15f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import java.awt.Desktop; diff --git a/page-object/src/main/java/com/iluwatar/pageobject/App.java b/page-object/src/main/java/com/iluwatar/pageobject/App.java index a84533b47..c76867e89 100644 --- a/page-object/src/main/java/com/iluwatar/pageobject/App.java +++ b/page-object/src/main/java/com/iluwatar/pageobject/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import java.awt.Desktop; 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 1a66d99d3..29704fe38 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; 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 9f8419be1..488dcc0bb 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; 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 911ee5769..70458eb64 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; diff --git a/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumListPage.java b/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumListPage.java index 20673c877..f64c7cec2 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumListPage.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumListPage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject.pages; import com.gargoylesoftware.htmlunit.WebClient; diff --git a/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumPage.java b/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumPage.java index e33ffc4af..911560314 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumPage.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/pages/AlbumPage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject.pages; import com.gargoylesoftware.htmlunit.WebClient; diff --git a/page-object/src/test/java/com/iluwatar/pageobject/pages/LoginPage.java b/page-object/src/test/java/com/iluwatar/pageobject/pages/LoginPage.java index 843a5e1dc..81debb5fb 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/pages/LoginPage.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/pages/LoginPage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject.pages; import com.gargoylesoftware.htmlunit.WebClient; diff --git a/page-object/src/test/java/com/iluwatar/pageobject/pages/Page.java b/page-object/src/test/java/com/iluwatar/pageobject/pages/Page.java index fbdc1b28c..3cebd94e9 100644 --- a/page-object/src/test/java/com/iluwatar/pageobject/pages/Page.java +++ b/page-object/src/test/java/com/iluwatar/pageobject/pages/Page.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject.pages; import com.gargoylesoftware.htmlunit.WebClient; 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 d464cec69..feab7838c 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; 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 312f2efb3..cf8c50dd7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import java.io.IOException; 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 a9dcb1051..b139253a7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; diff --git a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/Page.java b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/Page.java index f5c5a29f4..78bc4618c 100644 --- a/page-object/test-automation/src/main/java/com/iluwatar/pageobject/Page.java +++ b/page-object/test-automation/src/main/java/com/iluwatar/pageobject/Page.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; 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 e81c930b0..8e8173c04 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import com.gargoylesoftware.htmlunit.WebClient; 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 d42611d5c..f3fea0ee6 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import static org.junit.jupiter.api.Assertions.assertTrue; 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 312a08520..f6ec3978f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pageobject; import static org.junit.jupiter.api.Assertions.assertTrue; 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 03edfb844..05aa66088 100644 --- a/partial-response/src/main/java/com/iluwatar/partialresponse/App.java +++ b/partial-response/src/main/java/com/iluwatar/partialresponse/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; import org.slf4j.Logger; diff --git a/partial-response/src/main/java/com/iluwatar/partialresponse/FieldJsonMapper.java b/partial-response/src/main/java/com/iluwatar/partialresponse/FieldJsonMapper.java index be9055501..da1d22620 100644 --- a/partial-response/src/main/java/com/iluwatar/partialresponse/FieldJsonMapper.java +++ b/partial-response/src/main/java/com/iluwatar/partialresponse/FieldJsonMapper.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; import java.lang.reflect.Field; diff --git a/partial-response/src/main/java/com/iluwatar/partialresponse/Video.java b/partial-response/src/main/java/com/iluwatar/partialresponse/Video.java index e64718175..fcfda7497 100644 --- a/partial-response/src/main/java/com/iluwatar/partialresponse/Video.java +++ b/partial-response/src/main/java/com/iluwatar/partialresponse/Video.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; /** diff --git a/partial-response/src/main/java/com/iluwatar/partialresponse/VideoResource.java b/partial-response/src/main/java/com/iluwatar/partialresponse/VideoResource.java index 309765c7d..d0d77af05 100644 --- a/partial-response/src/main/java/com/iluwatar/partialresponse/VideoResource.java +++ b/partial-response/src/main/java/com/iluwatar/partialresponse/VideoResource.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; import java.util.Map; diff --git a/partial-response/src/test/java/com/iluwatar/partialresponse/AppTest.java b/partial-response/src/test/java/com/iluwatar/partialresponse/AppTest.java index 6bfd782cc..afd2c70e2 100644 --- a/partial-response/src/test/java/com/iluwatar/partialresponse/AppTest.java +++ b/partial-response/src/test/java/com/iluwatar/partialresponse/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; import org.junit.Test; diff --git a/partial-response/src/test/java/com/iluwatar/partialresponse/FieldJsonMapperTest.java b/partial-response/src/test/java/com/iluwatar/partialresponse/FieldJsonMapperTest.java index 696d2ef0e..c71cc21f4 100644 --- a/partial-response/src/test/java/com/iluwatar/partialresponse/FieldJsonMapperTest.java +++ b/partial-response/src/test/java/com/iluwatar/partialresponse/FieldJsonMapperTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; import org.junit.Before; diff --git a/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java b/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java index 5c4ac78fb..c28613f4a 100644 --- a/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java +++ b/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.partialresponse; import org.junit.Before; diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/App.java b/pipeline/src/main/java/com/iluwatar/pipeline/App.java index 581e41460..3298a6eb6 100644 --- a/pipeline/src/main/java/com/iluwatar/pipeline/App.java +++ b/pipeline/src/main/java/com/iluwatar/pipeline/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; /** diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java b/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java index 6a418fef4..104d81f40 100644 --- a/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java +++ b/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; import org.slf4j.Logger; diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/Handler.java b/pipeline/src/main/java/com/iluwatar/pipeline/Handler.java index b00e20a28..253bc22f5 100644 --- a/pipeline/src/main/java/com/iluwatar/pipeline/Handler.java +++ b/pipeline/src/main/java/com/iluwatar/pipeline/Handler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; /** diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/Pipeline.java b/pipeline/src/main/java/com/iluwatar/pipeline/Pipeline.java index 476c9f0a5..af5c69b1d 100644 --- a/pipeline/src/main/java/com/iluwatar/pipeline/Pipeline.java +++ b/pipeline/src/main/java/com/iluwatar/pipeline/Pipeline.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; /** diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java index 342ed86c2..930332671 100644 --- a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java +++ b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; import org.slf4j.Logger; diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java index a5320a0a5..6fd591006 100644 --- a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java +++ b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; import org.slf4j.Logger; diff --git a/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java b/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java index 552cd99bd..d5a892d91 100644 --- a/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java +++ b/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; import org.junit.jupiter.api.Test; diff --git a/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java b/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java index 590dfc62e..1de692222 100644 --- a/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java +++ b/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.pipeline; import org.junit.jupiter.api.Test; diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/App.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/App.java index 10e7f58d7..6d6a41eb9 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/App.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; /** 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 115915ffe..12cc246d8 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import com.iluwatar.poison.pill.Message.Headers; diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/Message.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/Message.java index cdbd7241d..9b35bf53a 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/Message.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/Message.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import java.util.Map; diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/MessageQueue.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/MessageQueue.java index d766f24c3..ce8005fce 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/MessageQueue.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/MessageQueue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; /** diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/MqPublishPoint.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/MqPublishPoint.java index 31b54610f..b0e086637 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/MqPublishPoint.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/MqPublishPoint.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; /** diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/MqSubscribePoint.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/MqSubscribePoint.java index 55554f270..bb01e6395 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/MqSubscribePoint.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/MqSubscribePoint.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; /** 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 766b84d96..0b746b31f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import java.util.Date; diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessage.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessage.java index a1875433a..efc45fc83 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessage.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import java.util.Collections; diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessageQueue.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessageQueue.java index 60e74db11..7f1b662cd 100644 --- a/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessageQueue.java +++ b/poison-pill/src/main/java/com/iluwatar/poison/pill/SimpleMessageQueue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import java.util.concurrent.ArrayBlockingQueue; diff --git a/poison-pill/src/test/java/com/iluwatar/poison/pill/AppTest.java b/poison-pill/src/test/java/com/iluwatar/poison/pill/AppTest.java index 1093852ae..b921f6bc7 100644 --- a/poison-pill/src/test/java/com/iluwatar/poison/pill/AppTest.java +++ b/poison-pill/src/test/java/com/iluwatar/poison/pill/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import org.junit.jupiter.api.Test; 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 af0e3d73e..c874d3629 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import ch.qos.logback.classic.Logger; 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 0e9454508..6b310d431 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import org.junit.jupiter.api.Test; 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 33c80d1f0..76f2373da 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import org.junit.jupiter.api.Test; 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 6edaab625..3eebecb01 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.poison.pill; import org.junit.jupiter.api.Test; diff --git a/pom.xml b/pom.xml index 913f600e7..b6c1b4472 100644 --- a/pom.xml +++ b/pom.xml @@ -416,6 +416,12 @@ Ilkka Seppälä true + + license-plugin-header-style.xml + + + SLASHSTAR_CUSTOM_STYLE + diff --git a/priority-queue/src/main/java/com/iluwatar/priority/queue/Application.java b/priority-queue/src/main/java/com/iluwatar/priority/queue/Application.java index 5f40bc1eb..1e6e44a68 100644 --- a/priority-queue/src/main/java/com/iluwatar/priority/queue/Application.java +++ b/priority-queue/src/main/java/com/iluwatar/priority/queue/Application.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; /** diff --git a/priority-queue/src/main/java/com/iluwatar/priority/queue/Message.java b/priority-queue/src/main/java/com/iluwatar/priority/queue/Message.java index 1fd5e7813..b874bd677 100644 --- a/priority-queue/src/main/java/com/iluwatar/priority/queue/Message.java +++ b/priority-queue/src/main/java/com/iluwatar/priority/queue/Message.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; /** 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 971c6551f..ff73a496f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; import org.slf4j.Logger; diff --git a/priority-queue/src/main/java/com/iluwatar/priority/queue/QueueManager.java b/priority-queue/src/main/java/com/iluwatar/priority/queue/QueueManager.java index ecf13b3d7..ade211766 100644 --- a/priority-queue/src/main/java/com/iluwatar/priority/queue/QueueManager.java +++ b/priority-queue/src/main/java/com/iluwatar/priority/queue/QueueManager.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; /** 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 e37feb679..bbeb64b73 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; import org.slf4j.Logger; 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 36ad1ef41..4fd1f06a6 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; import org.junit.jupiter.api.Test; 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 03909f830..17aad88b3 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.priority.queue; import org.junit.jupiter.api.Test; diff --git a/private-class-data/src/main/java/com/iluwatar/privateclassdata/App.java b/private-class-data/src/main/java/com/iluwatar/privateclassdata/App.java index 79f3c3895..c5b75eee4 100644 --- a/private-class-data/src/main/java/com/iluwatar/privateclassdata/App.java +++ b/private-class-data/src/main/java/com/iluwatar/privateclassdata/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; /** 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 ff42f96aa..627d74462 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; import org.slf4j.Logger; 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 d251fe65b..6618ee5da 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; import org.slf4j.Logger; diff --git a/private-class-data/src/main/java/com/iluwatar/privateclassdata/StewData.java b/private-class-data/src/main/java/com/iluwatar/privateclassdata/StewData.java index 9b7f00093..c170a531e 100644 --- a/private-class-data/src/main/java/com/iluwatar/privateclassdata/StewData.java +++ b/private-class-data/src/main/java/com/iluwatar/privateclassdata/StewData.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; /** diff --git a/private-class-data/src/test/java/com/iluwatar/privateclassdata/AppTest.java b/private-class-data/src/test/java/com/iluwatar/privateclassdata/AppTest.java index d34c3f107..cfdb73fd4 100644 --- a/private-class-data/src/test/java/com/iluwatar/privateclassdata/AppTest.java +++ b/private-class-data/src/test/java/com/iluwatar/privateclassdata/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; import org.junit.jupiter.api.Test; 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 3083925ce..b866b31ea 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; import com.iluwatar.privateclassdata.utils.InMemoryAppender; 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 9e58c2eab..3c30fc021 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata; import com.iluwatar.privateclassdata.utils.InMemoryAppender; diff --git a/private-class-data/src/test/java/com/iluwatar/privateclassdata/utils/InMemoryAppender.java b/private-class-data/src/test/java/com/iluwatar/privateclassdata/utils/InMemoryAppender.java index 08ada391f..dceaee29b 100644 --- a/private-class-data/src/test/java/com/iluwatar/privateclassdata/utils/InMemoryAppender.java +++ b/private-class-data/src/test/java/com/iluwatar/privateclassdata/utils/InMemoryAppender.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.privateclassdata.utils; import ch.qos.logback.classic.Logger; 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 17dc8c636..853c6fcfe 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import org.slf4j.Logger; 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 24cc457fa..3e4e9aadb 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import org.slf4j.Logger; diff --git a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Item.java b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Item.java index 1b98c1d9a..6991ec4d1 100644 --- a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Item.java +++ b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Item.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; /** diff --git a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/ItemQueue.java b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/ItemQueue.java index dfdf336fd..674fb069a 100644 --- a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/ItemQueue.java +++ b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/ItemQueue.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import java.util.concurrent.BlockingQueue; diff --git a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java index 3681c017d..e8c79afd4 100644 --- a/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java +++ b/producer-consumer/src/main/java/com/iluwatar/producer/consumer/Producer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import java.util.Random; diff --git a/producer-consumer/src/test/java/com/iluwatar/producer/consumer/AppTest.java b/producer-consumer/src/test/java/com/iluwatar/producer/consumer/AppTest.java index fa95d0f1b..e14e963a1 100644 --- a/producer-consumer/src/test/java/com/iluwatar/producer/consumer/AppTest.java +++ b/producer-consumer/src/test/java/com/iluwatar/producer/consumer/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import org.junit.jupiter.api.Test; 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 22477ac92..c4b3a17a7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import org.junit.jupiter.api.Test; 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 268f122a5..6e9345011 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.producer.consumer; import org.junit.jupiter.api.Test; diff --git a/promise/src/main/java/com/iluwatar/promise/App.java b/promise/src/main/java/com/iluwatar/promise/App.java index 54371023d..c201d3352 100644 --- a/promise/src/main/java/com/iluwatar/promise/App.java +++ b/promise/src/main/java/com/iluwatar/promise/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.promise; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/promise/src/main/java/com/iluwatar/promise/Promise.java b/promise/src/main/java/com/iluwatar/promise/Promise.java index c3f0d9fc7..eadcc5bd9 100644 --- a/promise/src/main/java/com/iluwatar/promise/Promise.java +++ b/promise/src/main/java/com/iluwatar/promise/Promise.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.promise; import java.util.concurrent.Callable; diff --git a/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java b/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java index 5cfb86af5..058e899d0 100644 --- a/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java +++ b/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.promise; import java.util.concurrent.ExecutionException; diff --git a/promise/src/main/java/com/iluwatar/promise/Utility.java b/promise/src/main/java/com/iluwatar/promise/Utility.java index b6830f03d..472f7b0a5 100644 --- a/promise/src/main/java/com/iluwatar/promise/Utility.java +++ b/promise/src/main/java/com/iluwatar/promise/Utility.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.promise; import org.slf4j.Logger; diff --git a/promise/src/test/java/com/iluwatar/promise/AppTest.java b/promise/src/test/java/com/iluwatar/promise/AppTest.java index 17d3bc3da..0913d5911 100644 --- a/promise/src/test/java/com/iluwatar/promise/AppTest.java +++ b/promise/src/test/java/com/iluwatar/promise/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.promise; import org.junit.jupiter.api.Test; diff --git a/promise/src/test/java/com/iluwatar/promise/PromiseTest.java b/promise/src/test/java/com/iluwatar/promise/PromiseTest.java index 08962f2e4..9b02191ee 100644 --- a/promise/src/test/java/com/iluwatar/promise/PromiseTest.java +++ b/promise/src/test/java/com/iluwatar/promise/PromiseTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.promise; import org.junit.jupiter.api.BeforeEach; diff --git a/property/src/main/java/com/iluwatar/property/App.java b/property/src/main/java/com/iluwatar/property/App.java index 0aa1ee403..a7045e6df 100644 --- a/property/src/main/java/com/iluwatar/property/App.java +++ b/property/src/main/java/com/iluwatar/property/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.property; import com.iluwatar.property.Character.Type; diff --git a/property/src/main/java/com/iluwatar/property/Character.java b/property/src/main/java/com/iluwatar/property/Character.java index 6b8dbd1d6..ef19f0107 100644 --- a/property/src/main/java/com/iluwatar/property/Character.java +++ b/property/src/main/java/com/iluwatar/property/Character.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.property; import java.util.HashMap; diff --git a/property/src/main/java/com/iluwatar/property/Prototype.java b/property/src/main/java/com/iluwatar/property/Prototype.java index eba8976ef..9570f6653 100644 --- a/property/src/main/java/com/iluwatar/property/Prototype.java +++ b/property/src/main/java/com/iluwatar/property/Prototype.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.property; /** diff --git a/property/src/main/java/com/iluwatar/property/Stats.java b/property/src/main/java/com/iluwatar/property/Stats.java index d4bc8aa49..4015e5693 100644 --- a/property/src/main/java/com/iluwatar/property/Stats.java +++ b/property/src/main/java/com/iluwatar/property/Stats.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.property; /** diff --git a/property/src/test/java/com/iluwatar/property/AppTest.java b/property/src/test/java/com/iluwatar/property/AppTest.java index d8addd67f..f8096b865 100644 --- a/property/src/test/java/com/iluwatar/property/AppTest.java +++ b/property/src/test/java/com/iluwatar/property/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.property; import org.junit.jupiter.api.Test; diff --git a/property/src/test/java/com/iluwatar/property/CharacterTest.java b/property/src/test/java/com/iluwatar/property/CharacterTest.java index 6c349438e..6bbd693a7 100644 --- a/property/src/test/java/com/iluwatar/property/CharacterTest.java +++ b/property/src/test/java/com/iluwatar/property/CharacterTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.property; import org.junit.jupiter.api.Test; diff --git a/prototype/src/main/java/com/iluwatar/prototype/App.java b/prototype/src/main/java/com/iluwatar/prototype/App.java index 1972979d8..457f4f2a0 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/App.java +++ b/prototype/src/main/java/com/iluwatar/prototype/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; import org.slf4j.Logger; diff --git a/prototype/src/main/java/com/iluwatar/prototype/Beast.java b/prototype/src/main/java/com/iluwatar/prototype/Beast.java index 8c2f0f31a..3b82cdd9d 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Beast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Beast.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java b/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java index 128a8ec37..9ef44b164 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfBeast.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java b/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java index 4abcc8d84..14b6e6261 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfMage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java b/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java index efba5fde0..6c5a4a4ff 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/ElfWarlord.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java b/prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java index 17ae47031..791671289 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java +++ b/prototype/src/main/java/com/iluwatar/prototype/HeroFactory.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java b/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java index f890b3b69..5803ee8ef 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java +++ b/prototype/src/main/java/com/iluwatar/prototype/HeroFactoryImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/Mage.java b/prototype/src/main/java/com/iluwatar/prototype/Mage.java index 03ed7b69b..9da5e45ba 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Mage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Mage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java b/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java index 37704c1a5..2b5fb5159 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcBeast.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java b/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java index 01189c8f8..de15b5e10 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcMage.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java b/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java index ee2136bc8..0b117357f 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/OrcWarlord.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/Prototype.java b/prototype/src/main/java/com/iluwatar/prototype/Prototype.java index 4c9fcbd2a..bae58b026 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Prototype.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Prototype.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/main/java/com/iluwatar/prototype/Warlord.java b/prototype/src/main/java/com/iluwatar/prototype/Warlord.java index 096a5b195..7ce8922e9 100644 --- a/prototype/src/main/java/com/iluwatar/prototype/Warlord.java +++ b/prototype/src/main/java/com/iluwatar/prototype/Warlord.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; /** diff --git a/prototype/src/test/java/com/iluwatar/prototype/AppTest.java b/prototype/src/test/java/com/iluwatar/prototype/AppTest.java index 5e93fcf95..4943339e8 100644 --- a/prototype/src/test/java/com/iluwatar/prototype/AppTest.java +++ b/prototype/src/test/java/com/iluwatar/prototype/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; import org.junit.jupiter.api.Test; diff --git a/prototype/src/test/java/com/iluwatar/prototype/HeroFactoryImplTest.java b/prototype/src/test/java/com/iluwatar/prototype/HeroFactoryImplTest.java index d90de6a6a..0d33b67c3 100644 --- a/prototype/src/test/java/com/iluwatar/prototype/HeroFactoryImplTest.java +++ b/prototype/src/test/java/com/iluwatar/prototype/HeroFactoryImplTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; import org.junit.jupiter.api.Test; diff --git a/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java b/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java index 5345ac43c..8fbd80294 100644 --- a/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java +++ b/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.prototype; import org.junit.jupiter.params.ParameterizedTest; diff --git a/proxy/src/main/java/com/iluwatar/proxy/App.java b/proxy/src/main/java/com/iluwatar/proxy/App.java index fb6a6f2b7..4c9d0efaa 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/App.java +++ b/proxy/src/main/java/com/iluwatar/proxy/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; /** diff --git a/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java b/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java index 304f316a2..3adb96d86 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java +++ b/proxy/src/main/java/com/iluwatar/proxy/IvoryTower.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; import org.slf4j.Logger; diff --git a/proxy/src/main/java/com/iluwatar/proxy/Wizard.java b/proxy/src/main/java/com/iluwatar/proxy/Wizard.java index f1043f672..031ab8dfd 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/Wizard.java +++ b/proxy/src/main/java/com/iluwatar/proxy/Wizard.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; /** diff --git a/proxy/src/main/java/com/iluwatar/proxy/WizardTower.java b/proxy/src/main/java/com/iluwatar/proxy/WizardTower.java index 6efb920b8..ac83aa6ea 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/WizardTower.java +++ b/proxy/src/main/java/com/iluwatar/proxy/WizardTower.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; /** diff --git a/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java b/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java index 90c453529..7e6b2acf0 100644 --- a/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java +++ b/proxy/src/main/java/com/iluwatar/proxy/WizardTowerProxy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; import org.slf4j.Logger; diff --git a/proxy/src/test/java/com/iluwatar/proxy/AppTest.java b/proxy/src/test/java/com/iluwatar/proxy/AppTest.java index 92b09c63d..7fcae7530 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/AppTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; import org.junit.jupiter.api.Test; diff --git a/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java b/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java index 0d068e1e1..ed3d6416c 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/IvoryTowerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; import com.iluwatar.proxy.utils.InMemoryAppender; diff --git a/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java b/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java index 62d35f4ea..db6ae5c33 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/WizardTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; import org.junit.jupiter.api.Test; diff --git a/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java b/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java index ba2f66f6d..6a51e4cbb 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java +++ b/proxy/src/test/java/com/iluwatar/proxy/WizardTowerProxyTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy; import com.iluwatar.proxy.utils.InMemoryAppender; 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 a18f11887..ebe841f2b 100644 --- a/proxy/src/test/java/com/iluwatar/proxy/utils/InMemoryAppender.java +++ b/proxy/src/test/java/com/iluwatar/proxy/utils/InMemoryAppender.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.proxy.utils; import ch.qos.logback.classic.Logger; 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 aa3c04efe..80fdc9462 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import java.util.concurrent.ExecutorService; 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 561618891..432d1fe40 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; /** 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 177d6df9f..b6059471f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import java.util.concurrent.ArrayBlockingQueue; 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 5c788011c..1ef27ff28 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import org.slf4j.Logger; diff --git a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Task.java b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Task.java index cae188933..fcdc3866f 100644 --- a/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Task.java +++ b/queue-load-leveling/src/main/java/com/iluwatar/queue/load/leveling/Task.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; /** * Task Interface. 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 4f3380252..cef9311fb 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import org.slf4j.Logger; diff --git a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/AppTest.java b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/AppTest.java index b6b85096d..b8d772f39 100644 --- a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/AppTest.java +++ b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import org.junit.jupiter.api.Test; 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 ac260f623..0333a666d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import org.junit.jupiter.api.Test; 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 9a6f27b93..4dad77162 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import org.junit.jupiter.api.Test; diff --git a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/TaskGenSrvExeTest.java b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/TaskGenSrvExeTest.java index c8626f841..a6cd3d36c 100644 --- a/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/TaskGenSrvExeTest.java +++ b/queue-load-leveling/src/test/java/com/iluwatar/queue/load/leveling/TaskGenSrvExeTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.queue.load.leveling; import org.junit.jupiter.api.Test; diff --git a/reactor/src/main/java/com/iluwatar/reactor/app/App.java b/reactor/src/main/java/com/iluwatar/reactor/app/App.java index 5f2ea96a3..8ccbe3145 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/App.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.app; import java.io.IOException; 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 6d28b795d..75db3079b 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/AppClient.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.app; import org.slf4j.Logger; 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 9a8b102a9..f0de033be 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/app/LoggingHandler.java +++ b/reactor/src/main/java/com/iluwatar/reactor/app/LoggingHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.app; import java.nio.ByteBuffer; diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java b/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java index b3dd1cedd..dd0572aef 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/AbstractNioChannel.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import java.io.IOException; diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/ChannelHandler.java b/reactor/src/main/java/com/iluwatar/reactor/framework/ChannelHandler.java index cb491b88a..e7204a550 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/ChannelHandler.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/ChannelHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import java.nio.channels.SelectionKey; diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java b/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java index 3bfc94b79..17ccb2ef8 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/Dispatcher.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import java.nio.channels.SelectionKey; 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 3ea4828b5..f62e46e72 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/NioDatagramChannel.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/NioDatagramChannel.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import org.slf4j.Logger; 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 e4f13d065..9c71ed80e 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/NioReactor.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/NioReactor.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import org.slf4j.Logger; 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 3fa6cfbe7..a56b5dfe9 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/NioServerSocketChannel.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/NioServerSocketChannel.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import org.slf4j.Logger; diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java b/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java index d672757c4..a64acc069 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/SameThreadDispatcher.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import java.nio.channels.SelectionKey; diff --git a/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java b/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java index 4283a50ac..e4bd20cfd 100644 --- a/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java +++ b/reactor/src/main/java/com/iluwatar/reactor/framework/ThreadPoolDispatcher.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.framework; import java.nio.channels.SelectionKey; 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 2a0af1411..4b2f0348a 100644 --- a/reactor/src/test/java/com/iluwatar/reactor/app/ReactorTest.java +++ b/reactor/src/test/java/com/iluwatar/reactor/app/ReactorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reactor.app; import com.iluwatar.reactor.framework.SameThreadDispatcher; 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 2ee3fa948..1232a73f7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import java.util.concurrent.ExecutorService; 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 3bc46c452..a4c7d0744 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import java.util.concurrent.locks.Lock; 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 d35703801..282503ea6 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import java.util.HashSet; 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 4aa5ab5a9..afe93efd7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import java.util.concurrent.locks.Lock; diff --git a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/AppTest.java b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/AppTest.java index 8815e6c8e..0c323724e 100644 --- a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/AppTest.java +++ b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import org.junit.jupiter.api.Test; 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 d190dfb9e..1f6edfa3c 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import com.iluwatar.reader.writer.lock.utils.InMemoryAppender; 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 d49a472e0..849cf32ba 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import com.iluwatar.reader.writer.lock.utils.InMemoryAppender; 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 55a8b7f95..60c78e573 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock; import com.iluwatar.reader.writer.lock.utils.InMemoryAppender; diff --git a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/utils/InMemoryAppender.java b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/utils/InMemoryAppender.java index c6b8319d2..98f14a82b 100644 --- a/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/utils/InMemoryAppender.java +++ b/reader-writer-lock/src/test/java/com/iluwatar/reader/writer/lock/utils/InMemoryAppender.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.reader.writer.lock.utils; import ch.qos.logback.classic.Logger; diff --git a/repository/src/main/java/com/iluwatar/repository/App.java b/repository/src/main/java/com/iluwatar/repository/App.java index 171369497..0ecafd030 100644 --- a/repository/src/main/java/com/iluwatar/repository/App.java +++ b/repository/src/main/java/com/iluwatar/repository/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import java.util.List; diff --git a/repository/src/main/java/com/iluwatar/repository/AppConfig.java b/repository/src/main/java/com/iluwatar/repository/AppConfig.java index 23de85b1e..f4f46be88 100644 --- a/repository/src/main/java/com/iluwatar/repository/AppConfig.java +++ b/repository/src/main/java/com/iluwatar/repository/AppConfig.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import java.sql.SQLException; diff --git a/repository/src/main/java/com/iluwatar/repository/Person.java b/repository/src/main/java/com/iluwatar/repository/Person.java index 1f68108ba..ded5b8cfa 100644 --- a/repository/src/main/java/com/iluwatar/repository/Person.java +++ b/repository/src/main/java/com/iluwatar/repository/Person.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import javax.persistence.Entity; diff --git a/repository/src/main/java/com/iluwatar/repository/PersonRepository.java b/repository/src/main/java/com/iluwatar/repository/PersonRepository.java index e6e559942..e181d19b5 100644 --- a/repository/src/main/java/com/iluwatar/repository/PersonRepository.java +++ b/repository/src/main/java/com/iluwatar/repository/PersonRepository.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; diff --git a/repository/src/main/java/com/iluwatar/repository/PersonSpecifications.java b/repository/src/main/java/com/iluwatar/repository/PersonSpecifications.java index 4e6ced00a..5a14985c9 100644 --- a/repository/src/main/java/com/iluwatar/repository/PersonSpecifications.java +++ b/repository/src/main/java/com/iluwatar/repository/PersonSpecifications.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import javax.persistence.criteria.CriteriaBuilder; diff --git a/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java b/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java index 519febf68..6e5371323 100644 --- a/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java b/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java index d73027c5b..c9f292029 100644 --- a/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import org.junit.jupiter.api.Test; diff --git a/repository/src/test/java/com/iluwatar/repository/AppTest.java b/repository/src/test/java/com/iluwatar/repository/AppTest.java index f33e83c91..8889833f6 100644 --- a/repository/src/test/java/com/iluwatar/repository/AppTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import org.junit.jupiter.api.Test; diff --git a/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java b/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java index d0f7fe9ae..9f7615aa5 100644 --- a/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java +++ b/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.repository; import static org.junit.jupiter.api.Assertions.assertEquals; 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 ea8f3e044..fc67465a7 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.resource.acquisition.is.initialization; import org.slf4j.Logger; 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 615a87fc9..47c36a77f 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.resource.acquisition.is.initialization; import org.slf4j.Logger; 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 ccca9015a..d8adf2ed4 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.resource.acquisition.is.initialization; import org.slf4j.Logger; diff --git a/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/AppTest.java b/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/AppTest.java index 97a160eda..0e58779af 100644 --- a/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/AppTest.java +++ b/resource-acquisition-is-initialization/src/test/java/com/iluwatar/resource/acquisition/is/initialization/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.resource.acquisition.is.initialization; import org.junit.jupiter.api.Test; 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 030848b9d..10a85c6ef 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.resource.acquisition.is.initialization; import ch.qos.logback.classic.Logger; diff --git a/retry/src/main/java/com/iluwatar/retry/App.java b/retry/src/main/java/com/iluwatar/retry/App.java index 76ec43363..5eb78125c 100644 --- a/retry/src/main/java/com/iluwatar/retry/App.java +++ b/retry/src/main/java/com/iluwatar/retry/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import org.slf4j.Logger; diff --git a/retry/src/main/java/com/iluwatar/retry/BusinessException.java b/retry/src/main/java/com/iluwatar/retry/BusinessException.java index d88aa8a10..2da1cca8a 100644 --- a/retry/src/main/java/com/iluwatar/retry/BusinessException.java +++ b/retry/src/main/java/com/iluwatar/retry/BusinessException.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; /** diff --git a/retry/src/main/java/com/iluwatar/retry/BusinessOperation.java b/retry/src/main/java/com/iluwatar/retry/BusinessOperation.java index 37846f54d..a829ff541 100644 --- a/retry/src/main/java/com/iluwatar/retry/BusinessOperation.java +++ b/retry/src/main/java/com/iluwatar/retry/BusinessOperation.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; /** diff --git a/retry/src/main/java/com/iluwatar/retry/CustomerNotFoundException.java b/retry/src/main/java/com/iluwatar/retry/CustomerNotFoundException.java index 990229ebe..c0a9ca434 100644 --- a/retry/src/main/java/com/iluwatar/retry/CustomerNotFoundException.java +++ b/retry/src/main/java/com/iluwatar/retry/CustomerNotFoundException.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; /** diff --git a/retry/src/main/java/com/iluwatar/retry/DatabaseNotAvailableException.java b/retry/src/main/java/com/iluwatar/retry/DatabaseNotAvailableException.java index be78a9e6f..02cbc6521 100644 --- a/retry/src/main/java/com/iluwatar/retry/DatabaseNotAvailableException.java +++ b/retry/src/main/java/com/iluwatar/retry/DatabaseNotAvailableException.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; /** diff --git a/retry/src/main/java/com/iluwatar/retry/FindCustomer.java b/retry/src/main/java/com/iluwatar/retry/FindCustomer.java index 83ab9a25c..11c2b40d6 100644 --- a/retry/src/main/java/com/iluwatar/retry/FindCustomer.java +++ b/retry/src/main/java/com/iluwatar/retry/FindCustomer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import java.util.ArrayDeque; diff --git a/retry/src/main/java/com/iluwatar/retry/Retry.java b/retry/src/main/java/com/iluwatar/retry/Retry.java index d5d16bf30..7f188cb8f 100644 --- a/retry/src/main/java/com/iluwatar/retry/Retry.java +++ b/retry/src/main/java/com/iluwatar/retry/Retry.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import java.util.ArrayList; diff --git a/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java b/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java index b7024c918..91dc0d6b2 100644 --- a/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java +++ b/retry/src/main/java/com/iluwatar/retry/RetryExponentialBackoff.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import java.util.ArrayList; diff --git a/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java b/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java index d1cd87b21..b52763099 100644 --- a/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java +++ b/retry/src/test/java/com/iluwatar/retry/FindCustomerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import org.junit.jupiter.api.Test; diff --git a/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java b/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java index 23fd8add7..f07d665af 100644 --- a/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java +++ b/retry/src/test/java/com/iluwatar/retry/RetryExponentialBackoffTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import org.junit.jupiter.api.Test; diff --git a/retry/src/test/java/com/iluwatar/retry/RetryTest.java b/retry/src/test/java/com/iluwatar/retry/RetryTest.java index 5366b525b..64df9d14d 100644 --- a/retry/src/test/java/com/iluwatar/retry/RetryTest.java +++ b/retry/src/test/java/com/iluwatar/retry/RetryTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.retry; import org.junit.jupiter.api.Test; diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/App.java b/semaphore/src/main/java/com/iluwatar/semaphore/App.java index 36a792f23..e1f43cf97 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/App.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; /** diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/Customer.java b/semaphore/src/main/java/com/iluwatar/semaphore/Customer.java index 432cbb52f..4e380f92a 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/Customer.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/Customer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; import org.slf4j.Logger; diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/Fruit.java b/semaphore/src/main/java/com/iluwatar/semaphore/Fruit.java index 52e8d8f04..05872be9d 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/Fruit.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/Fruit.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; /** diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/FruitBowl.java b/semaphore/src/main/java/com/iluwatar/semaphore/FruitBowl.java index a187c5a57..8696709a0 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/FruitBowl.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/FruitBowl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; import java.util.List; diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/FruitShop.java b/semaphore/src/main/java/com/iluwatar/semaphore/FruitShop.java index 7881a79b9..cd71955fb 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/FruitShop.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/FruitShop.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; /** diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/Lock.java b/semaphore/src/main/java/com/iluwatar/semaphore/Lock.java index 4813c5e22..df7df2cf0 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/Lock.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/Lock.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; /** diff --git a/semaphore/src/main/java/com/iluwatar/semaphore/Semaphore.java b/semaphore/src/main/java/com/iluwatar/semaphore/Semaphore.java index 9bd673807..9dfe79316 100644 --- a/semaphore/src/main/java/com/iluwatar/semaphore/Semaphore.java +++ b/semaphore/src/main/java/com/iluwatar/semaphore/Semaphore.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; /** diff --git a/semaphore/src/test/java/com/iluwatar/semaphore/AppTest.java b/semaphore/src/test/java/com/iluwatar/semaphore/AppTest.java index 55a8f0936..087ab7875 100644 --- a/semaphore/src/test/java/com/iluwatar/semaphore/AppTest.java +++ b/semaphore/src/test/java/com/iluwatar/semaphore/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; import org.junit.jupiter.api.Test; diff --git a/semaphore/src/test/java/com/iluwatar/semaphore/FruitBowlTest.java b/semaphore/src/test/java/com/iluwatar/semaphore/FruitBowlTest.java index b2ce4beb7..5cab7d64d 100644 --- a/semaphore/src/test/java/com/iluwatar/semaphore/FruitBowlTest.java +++ b/semaphore/src/test/java/com/iluwatar/semaphore/FruitBowlTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; import org.junit.jupiter.api.Test; diff --git a/semaphore/src/test/java/com/iluwatar/semaphore/SemaphoreTest.java b/semaphore/src/test/java/com/iluwatar/semaphore/SemaphoreTest.java index 393db51f3..76f68af15 100644 --- a/semaphore/src/test/java/com/iluwatar/semaphore/SemaphoreTest.java +++ b/semaphore/src/test/java/com/iluwatar/semaphore/SemaphoreTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.semaphore; import org.junit.jupiter.api.Test; diff --git a/servant/src/main/java/com/iluwatar/servant/App.java b/servant/src/main/java/com/iluwatar/servant/App.java index 3b982dfb8..a629856d5 100644 --- a/servant/src/main/java/com/iluwatar/servant/App.java +++ b/servant/src/main/java/com/iluwatar/servant/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; import org.slf4j.Logger; diff --git a/servant/src/main/java/com/iluwatar/servant/King.java b/servant/src/main/java/com/iluwatar/servant/King.java index 18c5bf3f8..19db41201 100644 --- a/servant/src/main/java/com/iluwatar/servant/King.java +++ b/servant/src/main/java/com/iluwatar/servant/King.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; /** diff --git a/servant/src/main/java/com/iluwatar/servant/Queen.java b/servant/src/main/java/com/iluwatar/servant/Queen.java index 8e7a89bed..3e4fa486f 100644 --- a/servant/src/main/java/com/iluwatar/servant/Queen.java +++ b/servant/src/main/java/com/iluwatar/servant/Queen.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; /** diff --git a/servant/src/main/java/com/iluwatar/servant/Royalty.java b/servant/src/main/java/com/iluwatar/servant/Royalty.java index 7a755cbd8..88c301ffe 100644 --- a/servant/src/main/java/com/iluwatar/servant/Royalty.java +++ b/servant/src/main/java/com/iluwatar/servant/Royalty.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; /** diff --git a/servant/src/main/java/com/iluwatar/servant/Servant.java b/servant/src/main/java/com/iluwatar/servant/Servant.java index 11b78734b..97d6107c4 100644 --- a/servant/src/main/java/com/iluwatar/servant/Servant.java +++ b/servant/src/main/java/com/iluwatar/servant/Servant.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; import java.util.List; diff --git a/servant/src/test/java/com/iluwatar/servant/AppTest.java b/servant/src/test/java/com/iluwatar/servant/AppTest.java index a41faa57d..ef37ff010 100644 --- a/servant/src/test/java/com/iluwatar/servant/AppTest.java +++ b/servant/src/test/java/com/iluwatar/servant/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; import org.junit.jupiter.api.Test; diff --git a/servant/src/test/java/com/iluwatar/servant/KingTest.java b/servant/src/test/java/com/iluwatar/servant/KingTest.java index 220667389..ed97ae7cf 100644 --- a/servant/src/test/java/com/iluwatar/servant/KingTest.java +++ b/servant/src/test/java/com/iluwatar/servant/KingTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; import org.junit.jupiter.api.Test; diff --git a/servant/src/test/java/com/iluwatar/servant/QueenTest.java b/servant/src/test/java/com/iluwatar/servant/QueenTest.java index 1dfe07716..a82eec776 100644 --- a/servant/src/test/java/com/iluwatar/servant/QueenTest.java +++ b/servant/src/test/java/com/iluwatar/servant/QueenTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; diff --git a/servant/src/test/java/com/iluwatar/servant/ServantTest.java b/servant/src/test/java/com/iluwatar/servant/ServantTest.java index 624ee32c3..4431f6d60 100644 --- a/servant/src/test/java/com/iluwatar/servant/ServantTest.java +++ b/servant/src/test/java/com/iluwatar/servant/ServantTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servant; import org.junit.jupiter.api.Test; diff --git a/serverless/src/main/java/com/iluwatar/serverless/baas/api/AbstractDynamoDbHandler.java b/serverless/src/main/java/com/iluwatar/serverless/baas/api/AbstractDynamoDbHandler.java index 0295f03a6..eff21f879 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/baas/api/AbstractDynamoDbHandler.java +++ b/serverless/src/main/java/com/iluwatar/serverless/baas/api/AbstractDynamoDbHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.api; import com.amazonaws.regions.Regions; diff --git a/serverless/src/main/java/com/iluwatar/serverless/baas/api/FindPersonApiHandler.java b/serverless/src/main/java/com/iluwatar/serverless/baas/api/FindPersonApiHandler.java index 14f2b25a5..3e0bde023 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/baas/api/FindPersonApiHandler.java +++ b/serverless/src/main/java/com/iluwatar/serverless/baas/api/FindPersonApiHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.api; import com.amazonaws.services.lambda.runtime.Context; diff --git a/serverless/src/main/java/com/iluwatar/serverless/baas/api/SavePersonApiHandler.java b/serverless/src/main/java/com/iluwatar/serverless/baas/api/SavePersonApiHandler.java index 8ef4b839e..502f12258 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/baas/api/SavePersonApiHandler.java +++ b/serverless/src/main/java/com/iluwatar/serverless/baas/api/SavePersonApiHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.api; import com.amazonaws.services.lambda.runtime.Context; 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 8c6232c4e..c2e8fdac6 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.model; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute; 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 2a8344850..3328b8370 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.model; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute; diff --git a/serverless/src/main/java/com/iluwatar/serverless/faas/ApiGatewayResponse.java b/serverless/src/main/java/com/iluwatar/serverless/faas/ApiGatewayResponse.java index 665c3dec6..8de042161 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/faas/ApiGatewayResponse.java +++ b/serverless/src/main/java/com/iluwatar/serverless/faas/ApiGatewayResponse.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.faas; import com.fasterxml.jackson.core.JsonProcessingException; 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 bae73281b..4186cfef8 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/faas/LambdaInfo.java +++ b/serverless/src/main/java/com/iluwatar/serverless/faas/LambdaInfo.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.faas; import java.io.Serializable; diff --git a/serverless/src/main/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandler.java b/serverless/src/main/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandler.java index 174e409c3..b88c24612 100644 --- a/serverless/src/main/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandler.java +++ b/serverless/src/main/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandler.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.faas.api; import com.iluwatar.serverless.faas.ApiGatewayResponse; diff --git a/serverless/src/test/java/com/iluwatar/serverless/baas/api/FindPersonApiHandlerTest.java b/serverless/src/test/java/com/iluwatar/serverless/baas/api/FindPersonApiHandlerTest.java index 193346ab8..a688bdf9d 100644 --- a/serverless/src/test/java/com/iluwatar/serverless/baas/api/FindPersonApiHandlerTest.java +++ b/serverless/src/test/java/com/iluwatar/serverless/baas/api/FindPersonApiHandlerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.api; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; diff --git a/serverless/src/test/java/com/iluwatar/serverless/baas/api/SavePersonApiHandlerTest.java b/serverless/src/test/java/com/iluwatar/serverless/baas/api/SavePersonApiHandlerTest.java index da31f8ac4..66636c011 100644 --- a/serverless/src/test/java/com/iluwatar/serverless/baas/api/SavePersonApiHandlerTest.java +++ b/serverless/src/test/java/com/iluwatar/serverless/baas/api/SavePersonApiHandlerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.baas.api; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; diff --git a/serverless/src/test/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandlerTest.java b/serverless/src/test/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandlerTest.java index 9922c1a5c..ec6872973 100644 --- a/serverless/src/test/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandlerTest.java +++ b/serverless/src/test/java/com/iluwatar/serverless/faas/api/LambdaInfoApiHandlerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.serverless.faas.api; import com.amazonaws.services.lambda.runtime.Context; 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 4d6ba0399..1da25e4cb 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.app; import java.util.List; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/common/BaseEntity.java b/service-layer/src/main/java/com/iluwatar/servicelayer/common/BaseEntity.java index a3c084109..d58ffd2c9 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/common/BaseEntity.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/common/BaseEntity.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.common; import javax.persistence.Inheritance; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/common/Dao.java b/service-layer/src/main/java/com/iluwatar/servicelayer/common/Dao.java index 8e72e3225..1fb41d0c8 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/common/Dao.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/common/Dao.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.common; import java.util.List; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/common/DaoBaseImpl.java b/service-layer/src/main/java/com/iluwatar/servicelayer/common/DaoBaseImpl.java index 290b9d148..9accede55 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/common/DaoBaseImpl.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/common/DaoBaseImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.common; import java.lang.reflect.ParameterizedType; 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 a6e3bd39b..673918711 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.hibernate; import com.iluwatar.servicelayer.spell.Spell; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicService.java b/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicService.java index ede38ec85..f0780b338 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicService.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicService.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.magic; import java.util.List; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicServiceImpl.java b/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicServiceImpl.java index d2319bc0d..78bf3c0d0 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicServiceImpl.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/magic/MagicServiceImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.magic; import java.util.ArrayList; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/spell/Spell.java b/service-layer/src/main/java/com/iluwatar/servicelayer/spell/Spell.java index 242dc9e16..cc456c124 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/spell/Spell.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/spell/Spell.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spell; import javax.persistence.Column; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDao.java b/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDao.java index 50f008670..cb7989176 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDao.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDao.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spell; import com.iluwatar.servicelayer.common.Dao; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDaoImpl.java b/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDaoImpl.java index fb061bb96..f4be0ae90 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDaoImpl.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/spell/SpellDaoImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spell; import com.iluwatar.servicelayer.common.DaoBaseImpl; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/Spellbook.java b/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/Spellbook.java index 07893f53a..481fa20db 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/Spellbook.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/Spellbook.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spellbook; import java.util.HashSet; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDao.java b/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDao.java index 69cb03fc8..11cb66789 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDao.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDao.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spellbook; import com.iluwatar.servicelayer.common.Dao; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImpl.java b/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImpl.java index 980dfdc76..3ca708fde 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImpl.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/spellbook/SpellbookDaoImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spellbook; import org.hibernate.Criteria; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/Wizard.java b/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/Wizard.java index c970d88df..05e65faf3 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/Wizard.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/Wizard.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.wizard; import java.util.HashSet; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDao.java b/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDao.java index d42656704..945509dc5 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDao.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDao.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.wizard; import com.iluwatar.servicelayer.common.Dao; diff --git a/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDaoImpl.java b/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDaoImpl.java index ccbd49f50..e16f150d0 100644 --- a/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDaoImpl.java +++ b/service-layer/src/main/java/com/iluwatar/servicelayer/wizard/WizardDaoImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.wizard; import org.hibernate.Criteria; diff --git a/service-layer/src/test/java/com/iluwatar/servicelayer/app/AppTest.java b/service-layer/src/test/java/com/iluwatar/servicelayer/app/AppTest.java index fc7a4910d..f144e0266 100644 --- a/service-layer/src/test/java/com/iluwatar/servicelayer/app/AppTest.java +++ b/service-layer/src/test/java/com/iluwatar/servicelayer/app/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.app; import com.iluwatar.servicelayer.hibernate.HibernateUtil; 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 b46584cc9..e70cf0625 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.common; import com.iluwatar.servicelayer.hibernate.HibernateUtil; 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 c92b15e10..03284ab6d 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.magic; import com.iluwatar.servicelayer.spell.Spell; 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 f6f61505b..bd6afaedc 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spell; import com.iluwatar.servicelayer.common.BaseDaoTest; 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 e24b12602..01fed1bcb 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.spellbook; import com.iluwatar.servicelayer.common.BaseDaoTest; 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 b3fa3dec0..ca2b679c9 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 @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelayer.wizard; import com.iluwatar.servicelayer.common.BaseDaoTest; diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/App.java b/service-locator/src/main/java/com/iluwatar/servicelocator/App.java index 72f7ed6a9..f5704c54f 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/App.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; /** 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 1366f5102..93c6e3c7d 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/InitContext.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/InitContext.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; import org.slf4j.Logger; diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java b/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java index 271bd60c2..805b3e92c 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/Service.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; /** 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 9009c3360..e32585b6b 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceCache.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceCache.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; import org.slf4j.Logger; 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 f26c22141..b2440c838 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceImpl.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceImpl.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; import org.slf4j.Logger; diff --git a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceLocator.java b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceLocator.java index cd2b94b7f..a94d8289e 100644 --- a/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceLocator.java +++ b/service-locator/src/main/java/com/iluwatar/servicelocator/ServiceLocator.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; /** diff --git a/service-locator/src/test/java/com/iluwatar/servicelocator/AppTest.java b/service-locator/src/test/java/com/iluwatar/servicelocator/AppTest.java index 9d3372637..f77f1c612 100644 --- a/service-locator/src/test/java/com/iluwatar/servicelocator/AppTest.java +++ b/service-locator/src/test/java/com/iluwatar/servicelocator/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; import org.junit.jupiter.api.Test; 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 c50b44a4b..16bc934eb 100644 --- a/service-locator/src/test/java/com/iluwatar/servicelocator/ServiceLocatorTest.java +++ b/service-locator/src/test/java/com/iluwatar/servicelocator/ServiceLocatorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.servicelocator; import org.junit.jupiter.api.Test; diff --git a/singleton/src/main/java/com/iluwatar/singleton/App.java b/singleton/src/main/java/com/iluwatar/singleton/App.java index 54d0da981..668e7658b 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/App.java +++ b/singleton/src/main/java/com/iluwatar/singleton/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; import org.slf4j.Logger; diff --git a/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java index b9dc1b3b1..2028b7d76 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java b/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java index c3492ac6c..dfd4951f7 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java +++ b/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java index d6cf3a3fb..c8d551404 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java index 3a811b552..db285ce2f 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java index 3001b7691..82580acf6 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/test/java/com/iluwatar/singleton/AppTest.java b/singleton/src/test/java/com/iluwatar/singleton/AppTest.java index 5c418b103..66974e472 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/AppTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; import org.junit.jupiter.api.Test; diff --git a/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java b/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java index fb10c9d54..49dfae6b0 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java b/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java index 4f5eb7156..d7021dac7 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java b/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java index 9f367bd2b..ac5a145cb 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** diff --git a/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java b/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java index 19814c3a5..e98796aef 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; import org.junit.jupiter.api.Disabled; diff --git a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java index 0255bd74a..fff516ad3 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; import org.junit.Test; diff --git a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java index a1cf61cd9..7ca1caf3d 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.singleton; /** 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 f6a07de62..3e7a64b6c 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/App.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import org.slf4j.Logger; 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 8147c4ea3..8a11c4f88 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Bubble.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import org.slf4j.Logger; diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Point.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Point.java index b1d58d7a8..3b5fb963f 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Point.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Point.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import java.util.ArrayList; diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/QuadTree.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/QuadTree.java index ea49020b8..7c2a93bda 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/QuadTree.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/QuadTree.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import java.util.ArrayList; diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Rect.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Rect.java index 71d4eda5b..6142c99d8 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Rect.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/Rect.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; /** diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionBubbles.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionBubbles.java index e1ed34145..48714aa0a 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionBubbles.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionBubbles.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import java.util.ArrayList; diff --git a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionGeneric.java b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionGeneric.java index 82c3d87e7..d5f1818ed 100644 --- a/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionGeneric.java +++ b/spatial-partition/src/main/java/com/iluwatar/spatialpartition/SpatialPartitionGeneric.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import java.util.Hashtable; diff --git a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/BubbleTest.java b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/BubbleTest.java index a8fc23647..e26de5b69 100644 --- a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/BubbleTest.java +++ b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/BubbleTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import static org.junit.jupiter.api.Assertions.*; diff --git a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/QuadTreeTest.java b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/QuadTreeTest.java index 15f1022fd..9335cd9c9 100644 --- a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/QuadTreeTest.java +++ b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/QuadTreeTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import static org.junit.jupiter.api.Assertions.*; diff --git a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/RectTest.java b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/RectTest.java index 7a88d43bc..599b0d9f4 100644 --- a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/RectTest.java +++ b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/RectTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import static org.junit.jupiter.api.Assertions.*; diff --git a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/SpatialPartitionBubblesTest.java b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/SpatialPartitionBubblesTest.java index 3b7a7d18d..aac2e0d69 100644 --- a/spatial-partition/src/test/java/com/iluwatar/spatialpartition/SpatialPartitionBubblesTest.java +++ b/spatial-partition/src/test/java/com/iluwatar/spatialpartition/SpatialPartitionBubblesTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.spatialpartition; import static org.junit.jupiter.api.Assertions.*; 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 0be1c109a..df80f855f 100644 --- a/specification/src/main/java/com/iluwatar/specification/app/App.java +++ b/specification/src/main/java/com/iluwatar/specification/app/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.app; import java.util.Arrays; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java b/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java index 033589f02..566885560 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Creature.java b/specification/src/main/java/com/iluwatar/specification/creature/Creature.java index 9c1705a9d..c999f546d 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Creature.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Creature.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java b/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java index 458c8e806..833b8522b 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java b/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java index 3835d6f71..0153e21fe 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java b/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java index f4ad3d2c7..04c416b7a 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java b/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java index ef99f5e40..bb2c5718b 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Shark.java b/specification/src/main/java/com/iluwatar/specification/creature/Shark.java index ef68b96bc..56ec1651a 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Shark.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Shark.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Troll.java b/specification/src/main/java/com/iluwatar/specification/creature/Troll.java index a6a74e17e..1d6a79bb8 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Troll.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Troll.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; diff --git a/specification/src/main/java/com/iluwatar/specification/property/Color.java b/specification/src/main/java/com/iluwatar/specification/property/Color.java index 8af07d6c9..9f64e1b77 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Color.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Color.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.property; /** diff --git a/specification/src/main/java/com/iluwatar/specification/property/Movement.java b/specification/src/main/java/com/iluwatar/specification/property/Movement.java index 7869fe63d..5bf0863e4 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Movement.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Movement.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.property; /** diff --git a/specification/src/main/java/com/iluwatar/specification/property/Size.java b/specification/src/main/java/com/iluwatar/specification/property/Size.java index c82b53ca6..a4a09e96c 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Size.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Size.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.property; /** diff --git a/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java b/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java index 9fb150b46..75e922bff 100644 --- a/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java +++ b/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.selector; import java.util.function.Predicate; diff --git a/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java b/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java index c0987218f..19613dfed 100644 --- a/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java +++ b/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.selector; import java.util.function.Predicate; diff --git a/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java b/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java index 39594cef0..1d561e95c 100644 --- a/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java +++ b/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.selector; import java.util.function.Predicate; diff --git a/specification/src/test/java/com/iluwatar/specification/app/AppTest.java b/specification/src/test/java/com/iluwatar/specification/app/AppTest.java index 64df2b286..5f6d950fe 100644 --- a/specification/src/test/java/com/iluwatar/specification/app/AppTest.java +++ b/specification/src/test/java/com/iluwatar/specification/app/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.app; import org.junit.jupiter.api.Test; 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 29d4bbd65..022475c24 100644 --- a/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java +++ b/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.creature; import com.iluwatar.specification.property.Color; 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 2c8572c54..cc47ba595 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/ColorSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/ColorSelectorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.selector; import com.iluwatar.specification.creature.Creature; 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 2797ef92d..e194790fb 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/MovementSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/MovementSelectorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.selector; import com.iluwatar.specification.creature.Creature; 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 66891927b..9145f9b81 100644 --- a/specification/src/test/java/com/iluwatar/specification/selector/SizeSelectorTest.java +++ b/specification/src/test/java/com/iluwatar/specification/selector/SizeSelectorTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.specification.selector; import com.iluwatar.specification.creature.Creature; diff --git a/state/src/main/java/com/iluwatar/state/AngryState.java b/state/src/main/java/com/iluwatar/state/AngryState.java index b79220288..0ce9f868c 100644 --- a/state/src/main/java/com/iluwatar/state/AngryState.java +++ b/state/src/main/java/com/iluwatar/state/AngryState.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; import org.slf4j.Logger; diff --git a/state/src/main/java/com/iluwatar/state/App.java b/state/src/main/java/com/iluwatar/state/App.java index 31d8baf76..d930e048b 100644 --- a/state/src/main/java/com/iluwatar/state/App.java +++ b/state/src/main/java/com/iluwatar/state/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; /** diff --git a/state/src/main/java/com/iluwatar/state/Mammoth.java b/state/src/main/java/com/iluwatar/state/Mammoth.java index df0a23dea..0791815f0 100644 --- a/state/src/main/java/com/iluwatar/state/Mammoth.java +++ b/state/src/main/java/com/iluwatar/state/Mammoth.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; /** diff --git a/state/src/main/java/com/iluwatar/state/PeacefulState.java b/state/src/main/java/com/iluwatar/state/PeacefulState.java index 37c6f6439..49586f877 100644 --- a/state/src/main/java/com/iluwatar/state/PeacefulState.java +++ b/state/src/main/java/com/iluwatar/state/PeacefulState.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; import org.slf4j.Logger; diff --git a/state/src/main/java/com/iluwatar/state/State.java b/state/src/main/java/com/iluwatar/state/State.java index f4dbbce1e..c2ae69780 100644 --- a/state/src/main/java/com/iluwatar/state/State.java +++ b/state/src/main/java/com/iluwatar/state/State.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; /** diff --git a/state/src/test/java/com/iluwatar/state/AppTest.java b/state/src/test/java/com/iluwatar/state/AppTest.java index b5089e7ab..b61fdcb10 100644 --- a/state/src/test/java/com/iluwatar/state/AppTest.java +++ b/state/src/test/java/com/iluwatar/state/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; import org.junit.jupiter.api.Test; diff --git a/state/src/test/java/com/iluwatar/state/MammothTest.java b/state/src/test/java/com/iluwatar/state/MammothTest.java index af943d78b..1286d7426 100644 --- a/state/src/test/java/com/iluwatar/state/MammothTest.java +++ b/state/src/test/java/com/iluwatar/state/MammothTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.state; import ch.qos.logback.classic.Logger; 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 1dd03306d..dda5dd225 100644 --- a/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java +++ b/step-builder/src/main/java/com/iluwatar/stepbuilder/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.stepbuilder; import org.slf4j.Logger; diff --git a/step-builder/src/main/java/com/iluwatar/stepbuilder/Character.java b/step-builder/src/main/java/com/iluwatar/stepbuilder/Character.java index aa94e3683..5036bd336 100644 --- a/step-builder/src/main/java/com/iluwatar/stepbuilder/Character.java +++ b/step-builder/src/main/java/com/iluwatar/stepbuilder/Character.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.stepbuilder; import java.util.List; diff --git a/step-builder/src/main/java/com/iluwatar/stepbuilder/CharacterStepBuilder.java b/step-builder/src/main/java/com/iluwatar/stepbuilder/CharacterStepBuilder.java index b07897ab5..e11698b2a 100644 --- a/step-builder/src/main/java/com/iluwatar/stepbuilder/CharacterStepBuilder.java +++ b/step-builder/src/main/java/com/iluwatar/stepbuilder/CharacterStepBuilder.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.stepbuilder; import java.util.ArrayList; diff --git a/step-builder/src/test/java/com/iluwatar/stepbuilder/AppTest.java b/step-builder/src/test/java/com/iluwatar/stepbuilder/AppTest.java index 7b4079a1f..d4e99bc9e 100644 --- a/step-builder/src/test/java/com/iluwatar/stepbuilder/AppTest.java +++ b/step-builder/src/test/java/com/iluwatar/stepbuilder/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.stepbuilder; import org.junit.jupiter.api.Test; 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 46d4a8cf3..4c8ebbd39 100644 --- a/step-builder/src/test/java/com/iluwatar/stepbuilder/CharacterStepBuilderTest.java +++ b/step-builder/src/test/java/com/iluwatar/stepbuilder/CharacterStepBuilderTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.stepbuilder; import org.junit.jupiter.api.Test; diff --git a/strategy/src/main/java/com/iluwatar/strategy/App.java b/strategy/src/main/java/com/iluwatar/strategy/App.java index d44ec5784..746afc041 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/App.java +++ b/strategy/src/main/java/com/iluwatar/strategy/App.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import org.slf4j.Logger; diff --git a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java index f04060c8d..0455edaca 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java +++ b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; /** diff --git a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java index 933a3d51e..eb89523ad 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; /** diff --git a/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java index 68c556baa..8cb2f24c1 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import org.slf4j.Logger; diff --git a/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java index 1da72fb09..4b6031ddf 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import org.slf4j.Logger; diff --git a/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java index ca3faa827..ffe85c7a2 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import org.slf4j.Logger; diff --git a/strategy/src/test/java/com/iluwatar/strategy/AppTest.java b/strategy/src/test/java/com/iluwatar/strategy/AppTest.java index 44487654f..598085ce4 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/AppTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/AppTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import org.junit.jupiter.api.Test; diff --git a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java index 2c1347d2e..52dfb3ff1 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import org.junit.jupiter.api.Test; diff --git a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java index c9d5170ff..b97cf499f 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java @@ -1,4 +1,4 @@ -/** +/* * The MIT License * Copyright © 2014-2019 Ilkka Seppälä * @@ -20,6 +20,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package com.iluwatar.strategy; import ch.qos.logback.classic.Logger; diff --git a/subclass-sandbox/pom.xml b/subclass-sandbox/pom.xml index 8016ba471..eb493b28c 100644 --- a/subclass-sandbox/pom.xml +++ b/subclass-sandbox/pom.xml @@ -2,7 +2,7 @@ + + org.commonjava.maven.plugins + directory-maven-plugin + 0.3.1 + + + directories + + directory-of + + initialize + + projectRoot + + com.iluwatar + java-design-patterns + + + + + + com.mycila license-maven-plugin @@ -417,7 +442,7 @@ true - license-plugin-header-style.xml + ${projectRoot}${file.separator}license-plugin-header-style.xml SLASHSTAR_CUSTOM_STYLE From d1767bbb51aa6895032f12bb58b62f6958e43f98 Mon Sep 17 00:00:00 2001 From: Boris Date: Sat, 26 Oct 2019 18:58:40 +0100 Subject: [PATCH 28/53] The pattern Role object (#1031) * init repo for role object * add to init * add to init * add first impl * add pattern * add license * add changes --- role-object/README.md | 31 ++++++ role-object/pom.xml | 44 ++++++++ .../roleobject/ApplicationRoleObject.java | 93 ++++++++++++++++ .../com/iluwatar/roleobject/BorrowerRole.java | 40 +++++++ .../com/iluwatar/roleobject/Customer.java | 79 ++++++++++++++ .../com/iluwatar/roleobject/CustomerCore.java | 75 +++++++++++++ .../com/iluwatar/roleobject/CustomerRole.java | 28 +++++ .../com/iluwatar/roleobject/InvestorRole.java | 48 ++++++++ .../java/com/iluwatar/roleobject/Role.java | 55 ++++++++++ .../roleobject/ApplicationRoleObjectTest.java | 33 ++++++ .../iluwatar/roleobject/BorrowerRoleTest.java | 40 +++++++ .../iluwatar/roleobject/CustomerCoreTest.java | 103 ++++++++++++++++++ .../iluwatar/roleobject/InvestorRoleTest.java | 38 +++++++ .../com/iluwatar/roleobject/RoleTest.java | 40 +++++++ 14 files changed, 747 insertions(+) create mode 100644 role-object/README.md create mode 100644 role-object/pom.xml create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/BorrowerRole.java create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/Customer.java create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/CustomerCore.java create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/CustomerRole.java create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/InvestorRole.java create mode 100644 role-object/src/main/java/com/iluwatar/roleobject/Role.java create mode 100644 role-object/src/test/java/com/iluwatar/roleobject/ApplicationRoleObjectTest.java create mode 100644 role-object/src/test/java/com/iluwatar/roleobject/BorrowerRoleTest.java create mode 100644 role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java create mode 100644 role-object/src/test/java/com/iluwatar/roleobject/InvestorRoleTest.java create mode 100644 role-object/src/test/java/com/iluwatar/roleobject/RoleTest.java diff --git a/role-object/README.md b/role-object/README.md new file mode 100644 index 000000000..c97177d7b --- /dev/null +++ b/role-object/README.md @@ -0,0 +1,31 @@ +--- +layout: pattern +title: Role object +folder: Migration +permalink: /patterns/role-object/ +categories: Structural +tags: + - Java + - Difficulty-Medium + - Handle Body Pattern +--- + +## Also known as +Post pattern, Extension Object pattern + +## Intent +Adapt an object to different client’s needs through transparently attached role objects, each one representing a role +the object has to play in that client’s context. The object manages its role set dynamically. By representing roles as +individual objects, different contexts are kept separate and system configuration is simplified. + +## Applicability +Use the Role Object pattern, if: +- you want to handle a key abstraction in different contexts and you do not want to put the resulting context specific interfaces into the same class interface. +- you want to handle the available roles dynamically so that they can be attached and removed on demand, that is at runtime, rather than fixing them statically at compile-time. +- you want to treat the extensions transparently and need to preserve the logical object identity of the resultingobject conglomerate. +- you want to keep role/client pairs independent from each other so that changes to a role do not affect clients that are not interested in that role. + +## Credits +- [Hillside - Role object pattern](https://hillside.net/plop/plop97/Proceedings/riehle.pdf) +- [Role object](http://wiki.c2.com/?RoleObject) +- [Fowler - Dealing with roles](https://martinfowler.com/apsupp/roles.pdf) \ No newline at end of file diff --git a/role-object/pom.xml b/role-object/pom.xml new file mode 100644 index 000000000..c9feb1419 --- /dev/null +++ b/role-object/pom.xml @@ -0,0 +1,44 @@ + + + + 4.0.0 + + com.iluwatar + java-design-patterns + 1.22.0-SNAPSHOT + + + role-object + + + junit + junit + test + + + + diff --git a/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java b/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java new file mode 100644 index 000000000..b8296daba --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/ApplicationRoleObject.java @@ -0,0 +1,93 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static com.iluwatar.roleobject.Role.*; + +/** + * The Role Object pattern suggests to model context-specific views + * of an object as separate role objects which are + * dynamically attached to and removed from the core object. + * We call the resulting composite object structure, + * consisting of the core and its role objects, a subject. + * A subject often plays several roles and the same role is likely to + * be played by different subjects. + * As an example consider two different customers playing the role of borrower and + * investor, respectively. Both roles could as well be played by a single {@link Customer} object. + * The common superclass for customer-specific roles is provided by {@link CustomerRole}, + * which also supports the {@link Customer} interface. + *

+ * The {@link CustomerRole} class is abstract and not meant to be instantiated. + * Concrete subclasses of {@link CustomerRole}, for example {@link BorrowerRole} or {@link InvestorRole}, + * define and implement the interface for specific roles. It is only + * these subclasses which are instantiated at runtime. + * The {@link BorrowerRole} class defines the context-specific view of {@link Customer} objects as needed by the loan department. + * It defines additional operations to manage the customer’s + * credits and securities. Similarly, the {@link InvestorRole} class adds operations specific + * to the investment department’s view of customers. + * A client like the loan application may either work with objects of the {@link CustomerRole} class, using the interface class + * {@link Customer}, or with objects of concrete {@link CustomerRole} subclasses. Suppose the loan application knows a particular + * {@link Customer} instance through its {@link Customer} interface. The loan application may want to check whether the {@link Customer} + * object plays the role of Borrower. + * To this end it calls {@link Customer#hasRole(Role)} with a suitable role specification. For the purpose of + * our example, let’s assume we can name roles with enum. + * If the {@link Customer} object can play the role named “Borrower,” the loan application will ask it + * to return a reference to the corresponding object. + * The loan application may now use this reference to call Borrower-specific operations. + */ +public class ApplicationRoleObject { + + private static final Logger logger = LoggerFactory.getLogger(Role.class); + + public static void main(String[] args) { + Customer customer = Customer.newCustomer(Borrower, Investor); + + logger.info(" the new customer created : {}", customer); + + boolean hasBorrowerRole = customer.hasRole(Borrower); + logger.info(" customer has a borrowed role - {}", hasBorrowerRole); + boolean hasInvestorRole = customer.hasRole(Investor); + logger.info(" customer has an investor role - {}", hasInvestorRole); + + customer.getRole(Investor, InvestorRole.class) + .ifPresent(inv -> { + inv.setAmountToInvest(1000); + inv.setName("Billy"); + }); + customer.getRole(Borrower, BorrowerRole.class) + .ifPresent(inv -> inv.setName("Johny")); + + customer.getRole(Investor, InvestorRole.class) + .map(InvestorRole::invest) + .ifPresent(logger::info); + + customer.getRole(Borrower, BorrowerRole.class) + .map(BorrowerRole::borrow) + .ifPresent(logger::info); + } + + +} diff --git a/role-object/src/main/java/com/iluwatar/roleobject/BorrowerRole.java b/role-object/src/main/java/com/iluwatar/roleobject/BorrowerRole.java new file mode 100644 index 000000000..425d9511d --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/BorrowerRole.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +public class BorrowerRole extends CustomerRole{ + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String borrow(){ + return String.format("Borrower %s wants to get some money.",name); + } + +} diff --git a/role-object/src/main/java/com/iluwatar/roleobject/Customer.java b/role-object/src/main/java/com/iluwatar/roleobject/Customer.java new file mode 100644 index 000000000..ebcddff4b --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/Customer.java @@ -0,0 +1,79 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import java.util.Optional; + +/** + * The main abstraction to work with Customer. + */ +public abstract class Customer { + + /** + * Add specific role @see {@link Role} + * + * @param role to add + * @return true if the operation has been successful otherwise false + */ + public abstract boolean addRole(Role role); + + /** + * Check specific role @see {@link Role} + * + * @param role to check + * @return true if the role exists otherwise false + */ + + public abstract boolean hasRole(Role role); + + /** + * Remove specific role @see {@link Role} + * + * @param role to remove + * @return true if the operation has been successful otherwise false + */ + public abstract boolean remRole(Role role); + + /** + * Get specific instance associated with this role @see {@link Role} + * + * @param role to get + * @param expectedRole instance class expected to get + * @return optional with value if the instance exists and corresponds expected class + */ + public abstract Optional getRole(Role role, Class expectedRole); + + + public static Customer newCustomer() { + return new CustomerCore(); + } + + public static Customer newCustomer(Role... role) { + Customer customer = newCustomer(); + for (Role r : role) { + customer.addRole(r); + } + return customer; + } + +} diff --git a/role-object/src/main/java/com/iluwatar/roleobject/CustomerCore.java b/role-object/src/main/java/com/iluwatar/roleobject/CustomerCore.java new file mode 100644 index 000000000..5de27aa92 --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/CustomerCore.java @@ -0,0 +1,75 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import java.util.*; + +/** + * Core class to store different customer roles + * + * @see CustomerRole + * Note: not thread safe + */ +public class CustomerCore extends Customer { + + private Map roles; + + public CustomerCore() { + roles = new HashMap<>(); + } + + @Override + public boolean addRole(Role role) { + return role + .instance() + .map(inst -> { + roles.put(role, inst); + return true; + }) + .orElse(false); + } + + @Override + public boolean hasRole(Role role) { + return roles.containsKey(role); + } + + @Override + public boolean remRole(Role role) { + return Objects.nonNull(roles.remove(role)); + } + + @Override + public Optional getRole(Role role, Class expectedRole) { + return Optional + .ofNullable(roles.get(role)) + .filter(expectedRole::isInstance) + .map(expectedRole::cast); + } + + @Override + public String toString() { + String roles = Arrays.toString(this.roles.keySet().toArray()); + return "Customer{roles=" + roles + "}"; + } +} diff --git a/role-object/src/main/java/com/iluwatar/roleobject/CustomerRole.java b/role-object/src/main/java/com/iluwatar/roleobject/CustomerRole.java new file mode 100644 index 000000000..40fe2341b --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/CustomerRole.java @@ -0,0 +1,28 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +/** + * Key abstraction for segregated roles + */ +public abstract class CustomerRole extends CustomerCore{} diff --git a/role-object/src/main/java/com/iluwatar/roleobject/InvestorRole.java b/role-object/src/main/java/com/iluwatar/roleobject/InvestorRole.java new file mode 100644 index 000000000..6d5c17c90 --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/InvestorRole.java @@ -0,0 +1,48 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +public class InvestorRole extends CustomerRole { + private String name; + private long amountToInvest; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public long getAmountToInvest() { + return amountToInvest; + } + + public void setAmountToInvest(long amountToInvest) { + this.amountToInvest = amountToInvest; + } + + public String invest() { + return String.format("Investor %s has invested %d dollars", name, amountToInvest); + } +} diff --git a/role-object/src/main/java/com/iluwatar/roleobject/Role.java b/role-object/src/main/java/com/iluwatar/roleobject/Role.java new file mode 100644 index 000000000..f6c739891 --- /dev/null +++ b/role-object/src/main/java/com/iluwatar/roleobject/Role.java @@ -0,0 +1,55 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Optional; + +/** + * Possible roles + */ +public enum Role { + Borrower(BorrowerRole.class), Investor(InvestorRole.class); + + private Class typeCst; + + Role(Class typeCst) { + this.typeCst = typeCst; + } + + private static final Logger logger = LoggerFactory.getLogger(Role.class); + + @SuppressWarnings("unchecked") + public Optional instance() { + Class typeCst = this.typeCst; + try { + return (Optional) Optional.of(typeCst.newInstance()); + } catch (InstantiationException | IllegalAccessException e) { + logger.error("error creating an object", e); + } + return Optional.empty(); + } + +} diff --git a/role-object/src/test/java/com/iluwatar/roleobject/ApplicationRoleObjectTest.java b/role-object/src/test/java/com/iluwatar/roleobject/ApplicationRoleObjectTest.java new file mode 100644 index 000000000..831781d71 --- /dev/null +++ b/role-object/src/test/java/com/iluwatar/roleobject/ApplicationRoleObjectTest.java @@ -0,0 +1,33 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.junit.Test; + +public class ApplicationRoleObjectTest { + + @Test + public void mainTest() { + ApplicationRoleObject.main(new String[]{}); + } +} \ No newline at end of file diff --git a/role-object/src/test/java/com/iluwatar/roleobject/BorrowerRoleTest.java b/role-object/src/test/java/com/iluwatar/roleobject/BorrowerRoleTest.java new file mode 100644 index 000000000..0c0f92fc2 --- /dev/null +++ b/role-object/src/test/java/com/iluwatar/roleobject/BorrowerRoleTest.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class BorrowerRoleTest { + + @Test + public void borrowTest() { + BorrowerRole borrowerRole = new BorrowerRole(); + borrowerRole.setName("test"); + String res = "Borrower test wants to get some money."; + + Assert.assertEquals(borrowerRole.borrow(),res); + } +} \ No newline at end of file diff --git a/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java b/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java new file mode 100644 index 000000000..1b2987400 --- /dev/null +++ b/role-object/src/test/java/com/iluwatar/roleobject/CustomerCoreTest.java @@ -0,0 +1,103 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.junit.Test; + +import java.util.Optional; + +import static org.junit.Assert.*; + +public class CustomerCoreTest { + + @Test + public void addRole() { + CustomerCore core = new CustomerCore(); + boolean add = core.addRole(Role.Borrower); + assertTrue(add); + + } + + @Test + public void hasRole() { + CustomerCore core = new CustomerCore(); + core.addRole(Role.Borrower); + + boolean has = core.hasRole(Role.Borrower); + assertTrue(has); + + boolean notHas = core.hasRole(Role.Investor); + assertFalse(notHas); + } + + @Test + public void remRole() { + CustomerCore core = new CustomerCore(); + core.addRole(Role.Borrower); + + Optional bRole = core.getRole(Role.Borrower, BorrowerRole.class); + assertTrue(bRole.isPresent()); + + boolean res = core.remRole(Role.Borrower); + assertTrue(res); + + Optional empt = core.getRole(Role.Borrower, BorrowerRole.class); + assertFalse(empt.isPresent()); + + } + + @Test + public void getRole() { + CustomerCore core = new CustomerCore(); + core.addRole(Role.Borrower); + + Optional bRole = core.getRole(Role.Borrower, BorrowerRole.class); + assertTrue(bRole.isPresent()); + + Optional nonRole = core.getRole(Role.Borrower, InvestorRole.class); + assertFalse(nonRole.isPresent()); + + Optional invRole = core.getRole(Role.Investor, InvestorRole.class); + assertFalse(invRole.isPresent()); + + + } + + + @Test + public void toStringTest() { + CustomerCore core = new CustomerCore(); + core.addRole(Role.Borrower); + assertEquals(core.toString(), "Customer{roles=[Borrower]}"); + + core = new CustomerCore(); + core.addRole(Role.Investor); + assertEquals(core.toString(), "Customer{roles=[Investor]}"); + + core = new CustomerCore(); + assertEquals(core.toString(), "Customer{roles=[]}"); + + + } + +} \ No newline at end of file diff --git a/role-object/src/test/java/com/iluwatar/roleobject/InvestorRoleTest.java b/role-object/src/test/java/com/iluwatar/roleobject/InvestorRoleTest.java new file mode 100644 index 000000000..06afa1016 --- /dev/null +++ b/role-object/src/test/java/com/iluwatar/roleobject/InvestorRoleTest.java @@ -0,0 +1,38 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.junit.Assert; +import org.junit.Test; + +public class InvestorRoleTest { + + @Test + public void investTest() { + InvestorRole investorRole = new InvestorRole(); + investorRole.setName("test"); + investorRole.setAmountToInvest(10); + String res = "Investor test has invested 10 dollars"; + Assert.assertEquals(investorRole.invest(), res); + } +} \ No newline at end of file diff --git a/role-object/src/test/java/com/iluwatar/roleobject/RoleTest.java b/role-object/src/test/java/com/iluwatar/roleobject/RoleTest.java new file mode 100644 index 000000000..6ae5b0cd8 --- /dev/null +++ b/role-object/src/test/java/com/iluwatar/roleobject/RoleTest.java @@ -0,0 +1,40 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.iluwatar.roleobject; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.Optional; + +import static org.junit.Assert.*; + +public class RoleTest { + + @Test + public void instanceTest() { + Optional instance = Role.Borrower.instance(); + Assert.assertTrue(instance.isPresent()); + Assert.assertEquals(instance.get().getClass(),BorrowerRole.class); + } +} \ No newline at end of file From 9f7e3fe55216d88e14d49e403a6149765d5e4d1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 26 Oct 2019 21:09:19 +0300 Subject: [PATCH 29/53] Update license headers --- .../com/iluwatar/adapter/package-info.java | 23 +++++++++++++++++++ pom.xml | 3 +++ 2 files changed, 26 insertions(+) diff --git a/adapter/src/main/java/com/iluwatar/adapter/package-info.java b/adapter/src/main/java/com/iluwatar/adapter/package-info.java index eb7e442f9..d036d86dd 100644 --- a/adapter/src/main/java/com/iluwatar/adapter/package-info.java +++ b/adapter/src/main/java/com/iluwatar/adapter/package-info.java @@ -1 +1,24 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + package com.iluwatar.adapter; diff --git a/pom.xml b/pom.xml index 1bcf73b8b..8b8139f79 100644 --- a/pom.xml +++ b/pom.xml @@ -447,6 +447,9 @@ SLASHSTAR_CUSTOM_STYLE + + .github/FUNDING.yml + From b50189e283b8e90023cc2b61b3ca0993f1618c90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 26 Oct 2019 21:26:42 +0300 Subject: [PATCH 30/53] Fix Role Object front matter --- role-object/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/role-object/README.md b/role-object/README.md index c97177d7b..0e960140c 100644 --- a/role-object/README.md +++ b/role-object/README.md @@ -1,7 +1,7 @@ --- layout: pattern -title: Role object -folder: Migration +title: Role Object +folder: role-object permalink: /patterns/role-object/ categories: Structural tags: From 63fb8dc31824ff81dc977de3e8e506e3041039af Mon Sep 17 00:00:00 2001 From: Leon Mak Date: Mon, 28 Oct 2019 04:05:10 +0800 Subject: [PATCH 31/53] Add java 11 (#1048) --- .../com/iluwatar/abstractdocument/App.java | 34 ++++++------ .../AbstractDocumentTest.java | 11 ++-- .../iluwatar/abstractdocument/DomainTest.java | 31 ++++++----- .../iluwatar/collectionpipeline/AppTest.java | 46 ++++++++-------- .../java/com/iluwatar/commander/Service.java | 8 ++- .../commander/queue/QueueDatabase.java | 9 ++-- .../com/iluwatar/commander/RetryTest.java | 24 ++++----- composite/README.md | 34 ++++++------ .../com/iluwatar/composite/Messenger.java | 54 ++++++++----------- .../main/java/com/iluwatar/converter/App.java | 6 +-- .../com/iluwatar/converter/ConverterTest.java | 7 ++- 11 files changed, 119 insertions(+), 145 deletions(-) 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 a0d9d13c8..99be4ee12 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/App.java @@ -23,14 +23,13 @@ package com.iluwatar.abstractdocument; -import java.util.Arrays; -import java.util.HashMap; - +import com.iluwatar.abstractdocument.domain.Car; +import com.iluwatar.abstractdocument.domain.enums.Property; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.iluwatar.abstractdocument.domain.Car; -import com.iluwatar.abstractdocument.domain.enums.Property; +import java.util.List; +import java.util.Map; /** * The Abstract Document pattern enables handling additional, non-static @@ -52,21 +51,20 @@ public class App { public App() { LOGGER.info("Constructing parts and car"); - var carProperties = new HashMap(); - carProperties.put(Property.MODEL.toString(), "300SL"); - carProperties.put(Property.PRICE.toString(), 10000L); + var wheelProperties = Map.of( + Property.TYPE.toString(), "wheel", + Property.MODEL.toString(), "15C", + Property.PRICE.toString(), 100L); - var wheelProperties = new HashMap(); - wheelProperties.put(Property.TYPE.toString(), "wheel"); - wheelProperties.put(Property.MODEL.toString(), "15C"); - wheelProperties.put(Property.PRICE.toString(), 100L); + var doorProperties = Map.of( + Property.TYPE.toString(), "door", + Property.MODEL.toString(), "Lambo", + Property.PRICE.toString(), 300L); - var doorProperties = new HashMap(); - doorProperties.put(Property.TYPE.toString(), "door"); - doorProperties.put(Property.MODEL.toString(), "Lambo"); - doorProperties.put(Property.PRICE.toString(), 300L); - - carProperties.put(Property.PARTS.toString(), Arrays.asList(wheelProperties, doorProperties)); + var carProperties = Map.of( + Property.MODEL.toString(), "300SL", + Property.PRICE.toString(), 10000L, + Property.PARTS.toString(), List.of(wheelProperties, doorProperties)); var car = new Car(carProperties); 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 7f3e1eada..0514c750a 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java @@ -31,9 +31,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Stream; -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 static org.junit.jupiter.api.Assertions.*; /** * AbstractDocument test class @@ -60,9 +58,7 @@ public class AbstractDocumentTest { @Test public void shouldRetrieveChildren() { - Map child1 = new HashMap<>(); - Map child2 = new HashMap<>(); - List> children = Arrays.asList(child1, child2); + var children = List.of(Map.of(), Map.of()); document.put(KEY, children); @@ -80,8 +76,7 @@ public class AbstractDocumentTest { @Test public void shouldIncludePropsInToString() { - Map props = new HashMap<>(); - props.put(KEY, VALUE); + Map props = Map.of(KEY, VALUE); DocumentImplementation document = new DocumentImplementation(props); assertTrue(document.toString().contains(KEY)); assertTrue(document.toString().contains(VALUE)); 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 2dde49a1e..663071f6a 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java @@ -23,17 +23,16 @@ package com.iluwatar.abstractdocument; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - -import org.junit.jupiter.api.Test; - 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.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; /** * Test for Part and Car @@ -49,10 +48,10 @@ public class DomainTest { @Test public void shouldConstructPart() { - Map partProperties = new HashMap<>(); - partProperties.put(Property.TYPE.toString(), TEST_PART_TYPE); - partProperties.put(Property.MODEL.toString(), TEST_PART_MODEL); - partProperties.put(Property.PRICE.toString(), TEST_PART_PRICE); + Map partProperties = Map.of( + Property.TYPE.toString(), TEST_PART_TYPE, + Property.MODEL.toString(), TEST_PART_MODEL, + Property.PRICE.toString(), TEST_PART_PRICE); Part part = new Part(partProperties); assertEquals(TEST_PART_TYPE, part.getType().get()); @@ -62,10 +61,10 @@ public class DomainTest { @Test public void shouldConstructCar() { - Map carProperties = new HashMap<>(); - carProperties.put(Property.MODEL.toString(), TEST_CAR_MODEL); - carProperties.put(Property.PRICE.toString(), TEST_CAR_PRICE); - carProperties.put(Property.PARTS.toString(), Arrays.asList(new HashMap<>(), new HashMap<>())); + Map carProperties = Map.of( + Property.MODEL.toString(), TEST_CAR_MODEL, + Property.PRICE.toString(), TEST_CAR_PRICE, + Property.PARTS.toString(), List.of(new HashMap<>(), new HashMap<>())); Car car = new Car(carProperties); assertEquals(TEST_CAR_MODEL, car.getModel().get()); 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 5cec263cd..6bc035920 100644 --- a/collection-pipeline/src/test/java/com/iluwatar/collectionpipeline/AppTest.java +++ b/collection-pipeline/src/test/java/com/iluwatar/collectionpipeline/AppTest.java @@ -23,17 +23,15 @@ package com.iluwatar.collectionpipeline; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; + /** * Tests that Collection Pipeline methods work as expected. */ @@ -44,27 +42,27 @@ public class AppTest { @Test public void testGetModelsAfter2000UsingFor() { - List models = ImperativeProgramming.getModelsAfter2000(cars); - assertEquals(Arrays.asList("Avenger", "Wrangler", "Focus", "Cascada"), models); + var models = ImperativeProgramming.getModelsAfter2000(cars); + assertEquals(List.of("Avenger", "Wrangler", "Focus", "Cascada"), models); } @Test public void testGetModelsAfter2000UsingPipeline() { - List models = FunctionalProgramming.getModelsAfter2000(cars); - assertEquals(Arrays.asList("Avenger", "Wrangler", "Focus", "Cascada"), models); + var models = FunctionalProgramming.getModelsAfter2000(cars); + assertEquals(List.of("Avenger", "Wrangler", "Focus", "Cascada"), models); } @Test public void testGetGroupingOfCarsByCategory() { - Map> modelsExpected = new HashMap<>(); - modelsExpected.put(Category.CONVERTIBLE, Arrays.asList(new Car("Buick", "Cascada", 2016, Category.CONVERTIBLE), - new Car("Chevrolet", "Geo Metro", 1992, Category.CONVERTIBLE))); - modelsExpected.put(Category.SEDAN, Arrays.asList(new Car("Dodge", "Avenger", 2010, Category.SEDAN), - new Car("Ford", "Focus", 2012, Category.SEDAN))); - modelsExpected.put(Category.JEEP, Arrays.asList(new Car("Jeep", "Wrangler", 2011, Category.JEEP), - new Car("Jeep", "Comanche", 1990, Category.JEEP))); - Map> modelsFunctional = FunctionalProgramming.getGroupingOfCarsByCategory(cars); - Map> modelsImperative = ImperativeProgramming.getGroupingOfCarsByCategory(cars); + var modelsExpected = Map.of( + Category.CONVERTIBLE, List.of(new Car("Buick", "Cascada", 2016, Category.CONVERTIBLE), + new Car("Chevrolet", "Geo Metro", 1992, Category.CONVERTIBLE)), + Category.SEDAN, List.of(new Car("Dodge", "Avenger", 2010, Category.SEDAN), + new Car("Ford", "Focus", 2012, Category.SEDAN)), + Category.JEEP, List.of(new Car("Jeep", "Wrangler", 2011, Category.JEEP), + new Car("Jeep", "Comanche", 1990, Category.JEEP))); + var modelsFunctional = FunctionalProgramming.getGroupingOfCarsByCategory(cars); + var modelsImperative = ImperativeProgramming.getGroupingOfCarsByCategory(cars); LOGGER.info("Category " + modelsFunctional); assertEquals(modelsExpected, modelsFunctional); assertEquals(modelsExpected, modelsImperative); @@ -72,11 +70,11 @@ public class AppTest { @Test public void testGetSedanCarsOwnedSortedByDate() { - Person john = new Person(cars); - List modelsExpected = Arrays.asList(new Car("Dodge", "Avenger", 2010, Category.SEDAN), + var john = new Person(cars); + var modelsExpected = List.of(new Car("Dodge", "Avenger", 2010, Category.SEDAN), new Car("Ford", "Focus", 2012, Category.SEDAN)); - List modelsFunctional = FunctionalProgramming.getSedanCarsOwnedSortedByDate(Arrays.asList(john)); - List modelsImperative = ImperativeProgramming.getSedanCarsOwnedSortedByDate(Arrays.asList(john)); + var modelsFunctional = FunctionalProgramming.getSedanCarsOwnedSortedByDate(List.of(john)); + var modelsImperative = ImperativeProgramming.getSedanCarsOwnedSortedByDate(List.of(john)); assertEquals(modelsExpected, modelsFunctional); assertEquals(modelsExpected, modelsImperative); } diff --git a/commander/src/main/java/com/iluwatar/commander/Service.java b/commander/src/main/java/com/iluwatar/commander/Service.java index f3b1940c7..2e293520b 100644 --- a/commander/src/main/java/com/iluwatar/commander/Service.java +++ b/commander/src/main/java/com/iluwatar/commander/Service.java @@ -23,10 +23,8 @@ package com.iluwatar.commander; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Random; +import java.util.*; + import com.iluwatar.commander.exceptions.DatabaseUnavailableException; /** @@ -49,7 +47,7 @@ public abstract class Service { protected Service(Database db, Exception...exc) { this.database = db; - this.exceptionsList = new ArrayList(Arrays.asList(exc)); + this.exceptionsList = new ArrayList<>(List.of(exc)); } public abstract String receiveRequest(Object...parameters) throws DatabaseUnavailableException; diff --git a/commander/src/main/java/com/iluwatar/commander/queue/QueueDatabase.java b/commander/src/main/java/com/iluwatar/commander/queue/QueueDatabase.java index 0010ce1f4..6b9007b9f 100644 --- a/commander/src/main/java/com/iluwatar/commander/queue/QueueDatabase.java +++ b/commander/src/main/java/com/iluwatar/commander/queue/QueueDatabase.java @@ -23,12 +23,13 @@ package com.iluwatar.commander.queue; -import java.util.ArrayList; -import java.util.Arrays; import com.iluwatar.commander.Database; import com.iluwatar.commander.exceptions.DatabaseUnavailableException; import com.iluwatar.commander.exceptions.IsEmptyException; +import java.util.ArrayList; +import java.util.List; + /** * QueueDatabase id where the instructions to be implemented are queued. */ @@ -39,8 +40,8 @@ public class QueueDatabase extends Database { public ArrayList exceptionsList; public QueueDatabase(Exception...exc) { - this.data = new Queue(); - this.exceptionsList = new ArrayList(Arrays.asList(exc)); + this.data = new Queue<>(); + this.exceptionsList = new ArrayList<>(List.of(exc)); } @Override diff --git a/commander/src/test/java/com/iluwatar/commander/RetryTest.java b/commander/src/test/java/com/iluwatar/commander/RetryTest.java index 7dd142b9c..c4ee5caf7 100644 --- a/commander/src/test/java/com/iluwatar/commander/RetryTest.java +++ b/commander/src/test/java/com/iluwatar/commander/RetryTest.java @@ -23,18 +23,14 @@ package com.iluwatar.commander; -import static org.junit.jupiter.api.Assertions.*; -import java.util.ArrayList; -import java.util.Arrays; -import org.junit.jupiter.api.Test; - -import com.iluwatar.commander.Order; -import com.iluwatar.commander.Retry; -import com.iluwatar.commander.User; -import com.iluwatar.commander.Retry.HandleErrorIssue; -import com.iluwatar.commander.Retry.Operation; import com.iluwatar.commander.exceptions.DatabaseUnavailableException; import com.iluwatar.commander.exceptions.ItemUnavailableException; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertTrue; class RetryTest { @@ -55,15 +51,15 @@ class RetryTest { e -> DatabaseUnavailableException.class.isAssignableFrom(e.getClass())); User user = new User("Jim", "ABCD"); Order order = new Order(user, "book", 10f); - ArrayList arr1 = new ArrayList(Arrays.asList(new Exception[] - {new ItemUnavailableException(), new DatabaseUnavailableException()})); + ArrayList arr1 = new ArrayList<>(List.of( + new ItemUnavailableException(), new DatabaseUnavailableException())); try { r1.perform(arr1, order); } catch (Exception e1) { e1.printStackTrace(); } - ArrayList arr2 = new ArrayList(Arrays.asList(new Exception[] - {new DatabaseUnavailableException(), new ItemUnavailableException()})); + ArrayList arr2 = new ArrayList<>(List.of( + new DatabaseUnavailableException(), new ItemUnavailableException())); try { r2.perform(arr2, order); } catch (Exception e1) { diff --git a/composite/README.md b/composite/README.md index 05ee70cbb..68d5339fb 100644 --- a/composite/README.md +++ b/composite/README.md @@ -94,27 +94,27 @@ Then we have a messenger to carry messages ```java public class Messenger { LetterComposite messageFromOrcs() { - List words = new ArrayList<>(); - words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'), new Letter('i'), new Letter('p')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'), new Letter('y')))); + List words = List.of( + new Word(List.of(new Letter('W'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e'))), + new Word(List.of(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e'))), + new Word(List.of(new Letter('i'), new Letter('s'))), + new Word(List.of(new Letter('a'))), + new Word(List.of(new Letter('w'), new Letter('h'), new Letter('i'), new Letter('p'))), + new Word(List.of(new Letter('t'), new Letter('h'), new Letter('e'), new Letter('r'), new Letter('e'))), + new Word(List.of(new Letter('i'), new Letter('s'))), + new Word(List.of(new Letter('a'))), + new Word(List.of(new Letter('w'), new Letter('a'), new Letter('y')))); return new Sentence(words); } LetterComposite messageFromElves() { - List words = new ArrayList<>(); - words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'), new Letter('c'), new Letter('h')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'), new Letter('n'), new Letter('d')))); - words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'), new Letter('u'), new Letter('r'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'), new Letter('o'), new Letter('m')))); - words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'), new Letter('u'), new Letter('r')))); - words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'), new Letter('u'), new Letter('t'), new Letter('h')))); + List words = List.of( + new Word(List.of(new Letter('M'), new Letter('u'), new Letter('c'), new Letter('h'))), + new Word(List.of(new Letter('w'), new Letter('i'), new Letter('n'), new Letter('d'))), + new Word(List.of(new Letter('p'), new Letter('o'), new Letter('u'), new Letter('r'), new Letter('s'))), + new Word(List.of(new Letter('f'), new Letter('r'), new Letter('o'), new Letter('m'))), + new Word(List.of(new Letter('y'), new Letter('o'), new Letter('u'), new Letter('r'))), + new Word(List.of(new Letter('m'), new Letter('o'), new Letter('u'), new Letter('t'), new Letter('h')))); return new Sentence(words); } } diff --git a/composite/src/main/java/com/iluwatar/composite/Messenger.java b/composite/src/main/java/com/iluwatar/composite/Messenger.java index c4d99faf6..ba6a08161 100644 --- a/composite/src/main/java/com/iluwatar/composite/Messenger.java +++ b/composite/src/main/java/com/iluwatar/composite/Messenger.java @@ -23,8 +23,6 @@ package com.iluwatar.composite; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; /** @@ -36,21 +34,20 @@ public class Messenger { LetterComposite messageFromOrcs() { - List words = new ArrayList<>(); - - words.add(new Word(Arrays.asList(new Letter('W'), new Letter('h'), new Letter('e'), new Letter( - 'r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter( - 'r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('h'), new Letter('i'), new Letter( - 'p')))); - words.add(new Word(Arrays.asList(new Letter('t'), new Letter('h'), new Letter('e'), new Letter( - 'r'), new Letter('e')))); - words.add(new Word(Arrays.asList(new Letter('i'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('a')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('a'), new Letter('y')))); + List words = List.of( + new Word(List.of(new Letter('W'), new Letter('h'), new Letter('e'), new Letter( + 'r'), new Letter('e'))), + new Word(List.of(new Letter('t'), new Letter('h'), new Letter('e'), new Letter( + 'r'), new Letter('e'))), + new Word(List.of(new Letter('i'), new Letter('s'))), + new Word(List.of(new Letter('a'))), + new Word(List.of(new Letter('w'), new Letter('h'), new Letter('i'), new Letter( + 'p'))), + new Word(List.of(new Letter('t'), new Letter('h'), new Letter('e'), new Letter( + 'r'), new Letter('e'))), + new Word(List.of(new Letter('i'), new Letter('s'))), + new Word(List.of(new Letter('a'))), + new Word(List.of(new Letter('w'), new Letter('a'), new Letter('y')))); return new Sentence(words); @@ -58,20 +55,15 @@ public class Messenger { LetterComposite messageFromElves() { - List words = new ArrayList<>(); - - words.add(new Word(Arrays.asList(new Letter('M'), new Letter('u'), new Letter('c'), new Letter( - 'h')))); - words.add(new Word(Arrays.asList(new Letter('w'), new Letter('i'), new Letter('n'), new Letter( - 'd')))); - words.add(new Word(Arrays.asList(new Letter('p'), new Letter('o'), new Letter('u'), new Letter( - 'r'), new Letter('s')))); - words.add(new Word(Arrays.asList(new Letter('f'), new Letter('r'), new Letter('o'), new Letter( - 'm')))); - words.add(new Word(Arrays.asList(new Letter('y'), new Letter('o'), new Letter('u'), new Letter( - 'r')))); - words.add(new Word(Arrays.asList(new Letter('m'), new Letter('o'), new Letter('u'), new Letter( - 't'), new Letter('h')))); + List words = List.of( + new Word(List.of(new Letter('M'), new Letter('u'), new Letter('c'), new Letter('h'))), + new Word(List.of(new Letter('w'), new Letter('i'), new Letter('n'), new Letter('d'))), + new Word(List.of(new Letter('p'), new Letter('o'), new Letter('u'), new Letter('r'), + new Letter('s'))), + new Word(List.of(new Letter('f'), new Letter('r'), new Letter('o'), new Letter('m'))), + new Word(List.of(new Letter('y'), new Letter('o'), new Letter('u'), new Letter('r'))), + new Word(List.of(new Letter('m'), new Letter('o'), new Letter('u'), new Letter('t'), + new Letter('h')))); return new Sentence(words); diff --git a/converter/src/main/java/com/iluwatar/converter/App.java b/converter/src/main/java/com/iluwatar/converter/App.java index 0d4666ae6..fab472328 100644 --- a/converter/src/main/java/com/iluwatar/converter/App.java +++ b/converter/src/main/java/com/iluwatar/converter/App.java @@ -24,11 +24,9 @@ package com.iluwatar.converter; -import com.google.common.collect.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.List; /** @@ -38,7 +36,7 @@ import java.util.List; * objects between types. */ public class App { - + private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** * Program entry point @@ -52,7 +50,7 @@ public class App { User user = userConverter.convertFromDto(dtoUser); LOGGER.info("Entity converted from DTO:" + user); - ArrayList users = Lists.newArrayList(new User("Camile", "Tough", false, "124sad"), + var users = List.of(new User("Camile", "Tough", false, "124sad"), new User("Marti", "Luther", true, "42309fd"), new User("Kate", "Smith", true, "if0243")); LOGGER.info("Domain entities:"); users.stream().map(User::toString).forEach(LOGGER::info); diff --git a/converter/src/test/java/com/iluwatar/converter/ConverterTest.java b/converter/src/test/java/com/iluwatar/converter/ConverterTest.java index 90160c467..92d47bb41 100644 --- a/converter/src/test/java/com/iluwatar/converter/ConverterTest.java +++ b/converter/src/test/java/com/iluwatar/converter/ConverterTest.java @@ -23,10 +23,8 @@ package com.iluwatar.converter; -import com.google.common.collect.Lists; import org.junit.jupiter.api.Test; -import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -81,8 +79,9 @@ public class ConverterTest { */ @Test public void testCollectionConversion() { - ArrayList users = Lists.newArrayList(new User("Camile", "Tough", false, "124sad"), - new User("Marti", "Luther", true, "42309fd"), new User("Kate", "Smith", true, "if0243")); + List users = List.of(new User("Camile", "Tough", false, "124sad"), + new User("Marti", "Luther", true, "42309fd"), + new User("Kate", "Smith", true, "if0243")); List fromDtos = userConverter.createFromDtos(userConverter.createFromEntities(users)); assertEquals(users, fromDtos); } From 6bb343896539bdce4a87e219f32362101e5088ac Mon Sep 17 00:00:00 2001 From: Leon Mak Date: Mon, 28 Oct 2019 04:08:09 +0800 Subject: [PATCH 32/53] Add java 11 (#1049) --- dao/src/main/java/com/iluwatar/dao/App.java | 6 +-- .../java/com/iluwatar/doubledispatch/App.java | 11 +++-- facade/README.md | 8 ++-- .../facade/DwarvenGoldmineFacade.java | 9 ++--- .../com/iluwatar/flyweight/AlchemistShop.java | 40 ++++++++----------- 5 files changed, 31 insertions(+), 43 deletions(-) diff --git a/dao/src/main/java/com/iluwatar/dao/App.java b/dao/src/main/java/com/iluwatar/dao/App.java index c8dd5629d..78406208a 100644 --- a/dao/src/main/java/com/iluwatar/dao/App.java +++ b/dao/src/main/java/com/iluwatar/dao/App.java @@ -128,10 +128,6 @@ public class App { final Customer customer1 = new Customer(1, "Adam", "Adamson"); final Customer customer2 = new Customer(2, "Bob", "Bobson"); final Customer customer3 = new Customer(3, "Carl", "Carlson"); - final List customers = new ArrayList<>(); - customers.add(customer1); - customers.add(customer2); - customers.add(customer3); - return customers; + return List.of(customer1, customer2, customer3); } } 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 08d5440b9..e6b670a6d 100644 --- a/double-dispatch/src/main/java/com/iluwatar/doubledispatch/App.java +++ b/double-dispatch/src/main/java/com/iluwatar/doubledispatch/App.java @@ -26,7 +26,6 @@ package com.iluwatar.doubledispatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.List; /** @@ -59,11 +58,11 @@ public class App { */ public static void main(String[] args) { // initialize game objects and print their status - List objects = new ArrayList<>(); - objects.add(new FlamingAsteroid(0, 0, 5, 5)); - objects.add(new SpaceStationMir(1, 1, 2, 2)); - objects.add(new Meteoroid(10, 10, 15, 15)); - objects.add(new SpaceStationIss(12, 12, 14, 14)); + List objects = List.of( + new FlamingAsteroid(0, 0, 5, 5), + new SpaceStationMir(1, 1, 2, 2), + new Meteoroid(10, 10, 15, 15), + new SpaceStationIss(12, 12, 14, 14)); objects.stream().forEach(o -> LOGGER.info(o.toString())); LOGGER.info(""); diff --git a/facade/README.md b/facade/README.md index 505ceee39..d6c64500c 100644 --- a/facade/README.md +++ b/facade/README.md @@ -146,10 +146,10 @@ public class DwarvenGoldmineFacade { private final List workers; public DwarvenGoldmineFacade() { - workers = new ArrayList<>(); - workers.add(new DwarvenGoldDigger()); - workers.add(new DwarvenCartOperator()); - workers.add(new DwarvenTunnelDigger()); + workers = List.of( + new DwarvenGoldDigger(), + new DwarvenCartOperator(), + new DwarvenTunnelDigger()); } public void startNewDay() { diff --git a/facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java index e7062f334..b49d46e93 100644 --- a/facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java +++ b/facade/src/main/java/com/iluwatar/facade/DwarvenGoldmineFacade.java @@ -23,7 +23,6 @@ package com.iluwatar.facade; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -43,10 +42,10 @@ public class DwarvenGoldmineFacade { * Constructor */ public DwarvenGoldmineFacade() { - workers = new ArrayList<>(); - workers.add(new DwarvenGoldDigger()); - workers.add(new DwarvenCartOperator()); - workers.add(new DwarvenTunnelDigger()); + workers = List.of( + new DwarvenGoldDigger(), + new DwarvenCartOperator(), + new DwarvenTunnelDigger()); } public void startNewDay() { diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java index c139e25b4..78f01474f 100644 --- a/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java +++ b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java @@ -26,7 +26,6 @@ package com.iluwatar.flyweight; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -46,29 +45,24 @@ public class AlchemistShop { * Constructor */ public AlchemistShop() { - topShelf = new ArrayList<>(); - bottomShelf = new ArrayList<>(); - fillShelves(); - } - - private void fillShelves() { - PotionFactory factory = new PotionFactory(); - - topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); - topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); - topShelf.add(factory.createPotion(PotionType.STRENGTH)); - topShelf.add(factory.createPotion(PotionType.HEALING)); - topShelf.add(factory.createPotion(PotionType.INVISIBILITY)); - topShelf.add(factory.createPotion(PotionType.STRENGTH)); - topShelf.add(factory.createPotion(PotionType.HEALING)); - topShelf.add(factory.createPotion(PotionType.HEALING)); - - bottomShelf.add(factory.createPotion(PotionType.POISON)); - bottomShelf.add(factory.createPotion(PotionType.POISON)); - bottomShelf.add(factory.createPotion(PotionType.POISON)); - bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); - bottomShelf.add(factory.createPotion(PotionType.HOLY_WATER)); + topShelf = List.of( + factory.createPotion(PotionType.INVISIBILITY), + factory.createPotion(PotionType.INVISIBILITY), + factory.createPotion(PotionType.STRENGTH), + factory.createPotion(PotionType.HEALING), + factory.createPotion(PotionType.INVISIBILITY), + factory.createPotion(PotionType.STRENGTH), + factory.createPotion(PotionType.HEALING), + factory.createPotion(PotionType.HEALING) + ); + bottomShelf = List.of( + factory.createPotion(PotionType.POISON), + factory.createPotion(PotionType.POISON), + factory.createPotion(PotionType.POISON), + factory.createPotion(PotionType.HOLY_WATER), + factory.createPotion(PotionType.HOLY_WATER) + ); } /** From dd971d8c19bcf3ae8b25956ea6daed0362488cef Mon Sep 17 00:00:00 2001 From: Leon Mak Date: Mon, 28 Oct 2019 23:02:17 +0800 Subject: [PATCH 33/53] Use java 11 (#1050) --- .../hexagonal/sampledata/SampleData.java | 82 +++++++++---------- .../service/LotteryConsoleServiceImpl.java | 12 +-- .../hexagonal/domain/LotteryNumbersTest.java | 11 +-- .../hexagonal/domain/LotteryTest.java | 11 +-- .../hexagonal/domain/LotteryTicketTest.java | 7 +- .../hexagonal/test/LotteryTestUtils.java | 2 +- .../iluwatar/iterator/list/TreasureChest.java | 22 ++--- .../iterator/list/TreasureChestTest.java | 25 +++--- .../java/com/iluwatar/layers/CakeTest.java | 11 ++- .../com/iluwatar/layers/CakeViewImplTest.java | 12 ++- .../bully/BullyMessageManagerTest.java | 29 ++----- .../ring/RingMessageManagerTest.java | 19 +---- 12 files changed, 102 insertions(+), 141 deletions(-) diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java index 90dfd1fbd..8189303eb 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java @@ -31,7 +31,6 @@ import com.iluwatar.hexagonal.domain.LotteryTicket; import com.iluwatar.hexagonal.domain.LotteryTicketId; import com.iluwatar.hexagonal.domain.PlayerDetails; -import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -44,46 +43,47 @@ public class SampleData { private static final Random RANDOM = new Random(); static { - PLAYERS = new ArrayList<>(); - PLAYERS.add(new PlayerDetails("john@google.com", "312-342", "+3242434242")); - PLAYERS.add(new PlayerDetails("mary@google.com", "234-987", "+23452346")); - PLAYERS.add(new PlayerDetails("steve@google.com", "833-836", "+63457543")); - PLAYERS.add(new PlayerDetails("wayne@google.com", "319-826", "+24626")); - PLAYERS.add(new PlayerDetails("johnie@google.com", "983-322", "+3635635")); - PLAYERS.add(new PlayerDetails("andy@google.com", "934-734", "+0898245")); - PLAYERS.add(new PlayerDetails("richard@google.com", "536-738", "+09845325")); - PLAYERS.add(new PlayerDetails("kevin@google.com", "453-936", "+2423532")); - PLAYERS.add(new PlayerDetails("arnold@google.com", "114-988", "+5646346524")); - PLAYERS.add(new PlayerDetails("ian@google.com", "663-765", "+928394235")); - PLAYERS.add(new PlayerDetails("robin@google.com", "334-763", "+35448")); - PLAYERS.add(new PlayerDetails("ted@google.com", "735-964", "+98752345")); - PLAYERS.add(new PlayerDetails("larry@google.com", "734-853", "+043842423")); - PLAYERS.add(new PlayerDetails("calvin@google.com", "334-746", "+73294135")); - PLAYERS.add(new PlayerDetails("jacob@google.com", "444-766", "+358042354")); - PLAYERS.add(new PlayerDetails("edwin@google.com", "895-345", "+9752435")); - PLAYERS.add(new PlayerDetails("mary@google.com", "760-009", "+34203542")); - PLAYERS.add(new PlayerDetails("lolita@google.com", "425-907", "+9872342")); - PLAYERS.add(new PlayerDetails("bruno@google.com", "023-638", "+673824122")); - PLAYERS.add(new PlayerDetails("peter@google.com", "335-886", "+5432503945")); - PLAYERS.add(new PlayerDetails("warren@google.com", "225-946", "+9872341324")); - PLAYERS.add(new PlayerDetails("monica@google.com", "265-748", "+134124")); - PLAYERS.add(new PlayerDetails("ollie@google.com", "190-045", "+34453452")); - PLAYERS.add(new PlayerDetails("yngwie@google.com", "241-465", "+9897641231")); - PLAYERS.add(new PlayerDetails("lars@google.com", "746-936", "+42345298345")); - PLAYERS.add(new PlayerDetails("bobbie@google.com", "946-384", "+79831742")); - PLAYERS.add(new PlayerDetails("tyron@google.com", "310-992", "+0498837412")); - PLAYERS.add(new PlayerDetails("tyrell@google.com", "032-045", "+67834134")); - PLAYERS.add(new PlayerDetails("nadja@google.com", "000-346", "+498723")); - PLAYERS.add(new PlayerDetails("wendy@google.com", "994-989", "+987324454")); - PLAYERS.add(new PlayerDetails("luke@google.com", "546-634", "+987642435")); - PLAYERS.add(new PlayerDetails("bjorn@google.com", "342-874", "+7834325")); - PLAYERS.add(new PlayerDetails("lisa@google.com", "024-653", "+980742154")); - PLAYERS.add(new PlayerDetails("anton@google.com", "834-935", "+876423145")); - PLAYERS.add(new PlayerDetails("bruce@google.com", "284-936", "+09843212345")); - PLAYERS.add(new PlayerDetails("ray@google.com", "843-073", "+678324123")); - PLAYERS.add(new PlayerDetails("ron@google.com", "637-738", "+09842354")); - PLAYERS.add(new PlayerDetails("xavier@google.com", "143-947", "+375245")); - PLAYERS.add(new PlayerDetails("harriet@google.com", "842-404", "+131243252")); + PLAYERS = List.of( + new PlayerDetails("john@google.com", "312-342", "+3242434242"), + new PlayerDetails("mary@google.com", "234-987", "+23452346"), + new PlayerDetails("steve@google.com", "833-836", "+63457543"), + new PlayerDetails("wayne@google.com", "319-826", "+24626"), + new PlayerDetails("johnie@google.com", "983-322", "+3635635"), + new PlayerDetails("andy@google.com", "934-734", "+0898245"), + new PlayerDetails("richard@google.com", "536-738", "+09845325"), + new PlayerDetails("kevin@google.com", "453-936", "+2423532"), + new PlayerDetails("arnold@google.com", "114-988", "+5646346524"), + new PlayerDetails("ian@google.com", "663-765", "+928394235"), + new PlayerDetails("robin@google.com", "334-763", "+35448"), + new PlayerDetails("ted@google.com", "735-964", "+98752345"), + new PlayerDetails("larry@google.com", "734-853", "+043842423"), + new PlayerDetails("calvin@google.com", "334-746", "+73294135"), + new PlayerDetails("jacob@google.com", "444-766", "+358042354"), + new PlayerDetails("edwin@google.com", "895-345", "+9752435"), + new PlayerDetails("mary@google.com", "760-009", "+34203542"), + new PlayerDetails("lolita@google.com", "425-907", "+9872342"), + new PlayerDetails("bruno@google.com", "023-638", "+673824122"), + new PlayerDetails("peter@google.com", "335-886", "+5432503945"), + new PlayerDetails("warren@google.com", "225-946", "+9872341324"), + new PlayerDetails("monica@google.com", "265-748", "+134124"), + new PlayerDetails("ollie@google.com", "190-045", "+34453452"), + new PlayerDetails("yngwie@google.com", "241-465", "+9897641231"), + new PlayerDetails("lars@google.com", "746-936", "+42345298345"), + new PlayerDetails("bobbie@google.com", "946-384", "+79831742"), + new PlayerDetails("tyron@google.com", "310-992", "+0498837412"), + new PlayerDetails("tyrell@google.com", "032-045", "+67834134"), + new PlayerDetails("nadja@google.com", "000-346", "+498723"), + new PlayerDetails("wendy@google.com", "994-989", "+987324454"), + new PlayerDetails("luke@google.com", "546-634", "+987642435"), + new PlayerDetails("bjorn@google.com", "342-874", "+7834325"), + new PlayerDetails("lisa@google.com", "024-653", "+980742154"), + new PlayerDetails("anton@google.com", "834-935", "+876423145"), + new PlayerDetails("bruce@google.com", "284-936", "+09843212345"), + new PlayerDetails("ray@google.com", "843-073", "+678324123"), + new PlayerDetails("ron@google.com", "637-738", "+09842354"), + new PlayerDetails("xavier@google.com", "143-947", "+375245"), + new PlayerDetails("harriet@google.com", "842-404", "+131243252") + ); InMemoryBank wireTransfers = new InMemoryBank(); for (PlayerDetails player : PLAYERS) { wireTransfers.setFunds(player.getBankAccount(), diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryConsoleServiceImpl.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryConsoleServiceImpl.java index c2a164353..3641b9a5c 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryConsoleServiceImpl.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryConsoleServiceImpl.java @@ -27,10 +27,9 @@ import com.iluwatar.hexagonal.banking.WireTransfers; import com.iluwatar.hexagonal.domain.*; import org.slf4j.Logger; -import java.util.HashSet; -import java.util.Optional; -import java.util.Scanner; -import java.util.Set; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.IntStream; /** * Console implementation for lottery console service @@ -88,10 +87,7 @@ public class LotteryConsoleServiceImpl implements LotteryConsoleService { String numbers = readString( scanner ); try { String[] parts = numbers.split( "," ); - Set chosen = new HashSet<>(); - for (int i = 0; i < 4; i++) { - chosen.add( Integer.parseInt( parts[i] ) ); - } + Set chosen = Arrays.stream(parts).map(Integer::parseInt).collect(Collectors.toSet()); LotteryNumbers lotteryNumbers = LotteryNumbers.create( chosen ); LotteryTicket lotteryTicket = new LotteryTicket( new LotteryTicketId(), details, lotteryNumbers ); Optional id = service.submitTicket( lotteryTicket ); diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java index 83699d6d4..181226389 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java @@ -27,6 +27,7 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.HashSet; +import java.util.Set; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -43,7 +44,7 @@ class LotteryNumbersTest { @Test void testGivenNumbers() { LotteryNumbers numbers = LotteryNumbers.create( - new HashSet<>(Arrays.asList(1, 2, 3, 4))); + Set.of(1, 2, 3, 4)); assertEquals(numbers.getNumbers().size(), 4); assertTrue(numbers.getNumbers().contains(1)); assertTrue(numbers.getNumbers().contains(2)); @@ -54,7 +55,7 @@ class LotteryNumbersTest { @Test void testNumbersCantBeModified() { LotteryNumbers numbers = LotteryNumbers.create( - new HashSet<>(Arrays.asList(1, 2, 3, 4))); + Set.of(1, 2, 3, 4)); assertThrows(UnsupportedOperationException.class, () -> numbers.getNumbers().add(5)); } @@ -67,12 +68,12 @@ class LotteryNumbersTest { @Test void testEquals() { LotteryNumbers numbers1 = LotteryNumbers.create( - new HashSet<>(Arrays.asList(1, 2, 3, 4))); + Set.of(1, 2, 3, 4)); LotteryNumbers numbers2 = LotteryNumbers.create( - new HashSet<>(Arrays.asList(1, 2, 3, 4))); + Set.of(1, 2, 3, 4)); assertEquals(numbers1, numbers2); LotteryNumbers numbers3 = LotteryNumbers.create( - new HashSet<>(Arrays.asList(11, 12, 13, 14))); + Set.of(11, 12, 13, 14)); assertNotEquals(numbers1, numbers3); } } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java index 4d06463d0..a62adaff8 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java @@ -33,10 +33,7 @@ import com.iluwatar.hexagonal.test.LotteryTestUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; -import java.util.Optional; +import java.util.*; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -76,13 +73,13 @@ class LotteryTest { // players submit the lottery tickets Optional ticket1 = service.submitTicket(LotteryTestUtils.createLotteryTicket("cvt@bbb.com", - "123-12312", "+32425255", new HashSet<>(Arrays.asList(1, 2, 3, 4)))); + "123-12312", "+32425255", Set.of(1, 2, 3, 4))); assertTrue(ticket1.isPresent()); Optional ticket2 = service.submitTicket(LotteryTestUtils.createLotteryTicket("ant@bac.com", - "123-12312", "+32423455", new HashSet<>(Arrays.asList(11, 12, 13, 14)))); + "123-12312", "+32423455", Set.of(11, 12, 13, 14))); assertTrue(ticket2.isPresent()); Optional ticket3 = service.submitTicket(LotteryTestUtils.createLotteryTicket("arg@boo.com", - "123-12312", "+32421255", new HashSet<>(Arrays.asList(6, 8, 13, 19)))); + "123-12312", "+32421255", Set.of(6, 8, 13, 19))); assertTrue(ticket3.isPresent()); assertEquals(3, administration.getAllSubmittedTickets().size()); diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java index 5b9441a91..0e81a163b 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java @@ -27,6 +27,7 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.HashSet; +import java.util.Set; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -39,14 +40,14 @@ class LotteryTicketTest { @Test void testEquals() { PlayerDetails details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322"); - LotteryNumbers numbers1 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4))); + LotteryNumbers numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4)); LotteryTicket ticket1 = new LotteryTicket(new LotteryTicketId(), details1, numbers1); PlayerDetails details2 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322"); - LotteryNumbers numbers2 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4))); + LotteryNumbers numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4)); LotteryTicket ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2); assertEquals(ticket1, ticket2); PlayerDetails details3 = new PlayerDetails("elsa@foo.bar", "1223-121212", "+49332322"); - LotteryNumbers numbers3 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 8))); + LotteryNumbers numbers3 = LotteryNumbers.create(Set.of(1, 2, 3, 8)); LotteryTicket ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3); assertNotEquals(ticket1, ticket3); } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java index 2e67d2536..4646aa2ff 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java @@ -43,7 +43,7 @@ public class LotteryTestUtils { * @return lottery ticket */ public static LotteryTicket createLotteryTicket() { - return createLotteryTicket("foo@bar.com", "12231-213132", "+99324554", new HashSet<>(Arrays.asList(1, 2, 3, 4))); + return createLotteryTicket("foo@bar.com", "12231-213132", "+99324554", Set.of(1, 2, 3, 4)); } /** diff --git a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java index 9c6dbc64f..3fb93f5af 100644 --- a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java +++ b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java @@ -40,17 +40,17 @@ public class TreasureChest { * Constructor */ public TreasureChest() { - items = new ArrayList<>(); - items.add(new Item(ItemType.POTION, "Potion of courage")); - items.add(new Item(ItemType.RING, "Ring of shadows")); - items.add(new Item(ItemType.POTION, "Potion of wisdom")); - items.add(new Item(ItemType.POTION, "Potion of blood")); - items.add(new Item(ItemType.WEAPON, "Sword of silver +1")); - items.add(new Item(ItemType.POTION, "Potion of rust")); - items.add(new Item(ItemType.POTION, "Potion of healing")); - items.add(new Item(ItemType.RING, "Ring of armor")); - items.add(new Item(ItemType.WEAPON, "Steel halberd")); - items.add(new Item(ItemType.WEAPON, "Dagger of poison")); + items = List.of( + new Item(ItemType.POTION, "Potion of courage"), + new Item(ItemType.RING, "Ring of shadows"), + new Item(ItemType.POTION, "Potion of wisdom"), + new Item(ItemType.POTION, "Potion of blood"), + new Item(ItemType.WEAPON, "Sword of silver +1"), + new Item(ItemType.POTION, "Potion of rust"), + new Item(ItemType.POTION, "Potion of healing"), + new Item(ItemType.RING, "Ring of armor"), + new Item(ItemType.WEAPON, "Steel halberd"), + new Item(ItemType.WEAPON, "Dagger of poison")); } public Iterator iterator(ItemType itemType) { diff --git a/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java b/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java index cac45c851..350934590 100644 --- a/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java +++ b/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java @@ -28,7 +28,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.fail; import com.iluwatar.iterator.Iterator; -import java.util.ArrayList; import java.util.List; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -46,18 +45,18 @@ public class TreasureChestTest { * @return The set of all expected items in the chest */ public static List dataProvider() { - final List parameters = new ArrayList<>(); - parameters.add(new Object[]{new Item(ItemType.POTION, "Potion of courage")}); - parameters.add(new Object[]{new Item(ItemType.RING, "Ring of shadows")}); - parameters.add(new Object[]{new Item(ItemType.POTION, "Potion of wisdom")}); - parameters.add(new Object[]{new Item(ItemType.POTION, "Potion of blood")}); - parameters.add(new Object[]{new Item(ItemType.WEAPON, "Sword of silver +1")}); - parameters.add(new Object[]{new Item(ItemType.POTION, "Potion of rust")}); - parameters.add(new Object[]{new Item(ItemType.POTION, "Potion of healing")}); - parameters.add(new Object[]{new Item(ItemType.RING, "Ring of armor")}); - parameters.add(new Object[]{new Item(ItemType.WEAPON, "Steel halberd")}); - parameters.add(new Object[]{new Item(ItemType.WEAPON, "Dagger of poison")}); - return parameters; + return List.of( + new Object[]{new Item(ItemType.POTION, "Potion of courage")}, + new Object[]{new Item(ItemType.RING, "Ring of shadows")}, + new Object[]{new Item(ItemType.POTION, "Potion of wisdom")}, + new Object[]{new Item(ItemType.POTION, "Potion of blood")}, + new Object[]{new Item(ItemType.WEAPON, "Sword of silver +1")}, + new Object[]{new Item(ItemType.POTION, "Potion of rust")}, + new Object[]{new Item(ItemType.POTION, "Potion of healing")}, + new Object[]{new Item(ItemType.RING, "Ring of armor")}, + new Object[]{new Item(ItemType.WEAPON, "Steel halberd")}, + new Object[]{new Item(ItemType.WEAPON, "Dagger of poison")} + ); } /** diff --git a/layers/src/test/java/com/iluwatar/layers/CakeTest.java b/layers/src/test/java/com/iluwatar/layers/CakeTest.java index 28bbf0260..81bb6d1de 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeTest.java +++ b/layers/src/test/java/com/iluwatar/layers/CakeTest.java @@ -66,11 +66,10 @@ public class CakeTest { assertNotNull(cake.getLayers()); assertTrue(cake.getLayers().isEmpty()); - final Set expectedLayers = new HashSet<>(); - expectedLayers.add(new CakeLayer("layer1", 1000)); - expectedLayers.add(new CakeLayer("layer2", 2000)); - expectedLayers.add(new CakeLayer("layer3", 3000)); - + final Set expectedLayers = Set.of( + new CakeLayer("layer1", 1000), + new CakeLayer("layer2", 2000), + new CakeLayer("layer3", 3000)); cake.setLayers(expectedLayers); assertEquals(expectedLayers, cake.getLayers()); } @@ -111,7 +110,7 @@ public class CakeTest { cake.setTopping(topping); cake.addLayer(layer); - final String expected = "id=1234 topping=id=2345 name=topping calories=20 " + final String expected = "id=1234 topping=id=2345 name=topping calories=20 " + "layers=[id=3456 name=layer calories=100]"; assertEquals(expected, cake.toString()); diff --git a/layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java b/layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java index 56feae2e0..ec19b115c 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java +++ b/layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java @@ -31,7 +31,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -64,14 +63,13 @@ public class CakeViewImplTest { @Test public void testRender() { - final List layers = new ArrayList<>(); - layers.add(new CakeLayerInfo("layer1", 1000)); - layers.add(new CakeLayerInfo("layer2", 2000)); - layers.add(new CakeLayerInfo("layer3", 3000)); + final List layers = List.of( + new CakeLayerInfo("layer1", 1000), + new CakeLayerInfo("layer2", 2000), + new CakeLayerInfo("layer3", 3000)); - final List cakes = new ArrayList<>(); final CakeInfo cake = new CakeInfo(new CakeToppingInfo("topping", 1000), layers); - cakes.add(cake); + final List cakes = List.of(cake); final CakeBakingService bakingService = mock(CakeBakingService.class); when(bakingService.getAllCakes()).thenReturn(cakes); 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 f099ed946..524cf3217 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 @@ -24,12 +24,9 @@ package com.iluwatar.leaderelection.bully; import com.iluwatar.leaderelection.*; -import com.iluwatar.leaderelection.ring.RingInstance; -import com.iluwatar.leaderelection.ring.RingMessageManager; import org.junit.jupiter.api.Test; import java.lang.reflect.Field; -import java.util.HashMap; import java.util.Map; import java.util.Queue; @@ -43,8 +40,7 @@ public class BullyMessageManagerTest { @Test public void testSendHeartbeatMessage() { Instance instance1 = new BullyInstance(null, 1, 1); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); + Map instanceMap = Map.of(1, instance1); MessageManager messageManager = new BullyMessageManager(instanceMap); assertTrue(messageManager.sendHeartbeatMessage(1)); } @@ -56,11 +52,7 @@ public class BullyMessageManagerTest { Instance instance2 = new BullyInstance(null, 1, 2); Instance instance3 = new BullyInstance(null, 1, 3); Instance instance4 = new BullyInstance(null, 1, 4); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); - instanceMap.put(4, instance4); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3, 4, instance4); instance1.setAlive(false); MessageManager messageManager = new BullyMessageManager(instanceMap); boolean result = messageManager.sendElectionMessage(3, "3"); @@ -84,11 +76,7 @@ public class BullyMessageManagerTest { Instance instance2 = new BullyInstance(null, 1, 2); Instance instance3 = new BullyInstance(null, 1, 3); Instance instance4 = new BullyInstance(null, 1, 4); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); - instanceMap.put(4, instance4); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3, 4, instance4); instance1.setAlive(false); MessageManager messageManager = new BullyMessageManager(instanceMap); boolean result = messageManager.sendElectionMessage(2, "2"); @@ -102,11 +90,7 @@ public class BullyMessageManagerTest { Instance instance2 = new BullyInstance(null, 1, 2); Instance instance3 = new BullyInstance(null, 1, 3); Instance instance4 = new BullyInstance(null, 1, 4); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); - instanceMap.put(4, instance4); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3, 4, instance4); instance1.setAlive(false); MessageManager messageManager = new BullyMessageManager(instanceMap); messageManager.sendLeaderMessage(2, 2); @@ -129,10 +113,7 @@ public class BullyMessageManagerTest { Instance instance1 = new BullyInstance(null, 1, 1); Instance instance2 = new BullyInstance(null, 1, 2); Instance instance3 = new BullyInstance(null, 1, 3); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3); MessageManager messageManager = new BullyMessageManager(instanceMap); messageManager.sendHeartbeatInvokeMessage(2); Message message = new Message(MessageType.HEARTBEAT_INVOKE, ""); 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 82a5a5936..d8429f02b 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 @@ -27,7 +27,6 @@ import com.iluwatar.leaderelection.*; import org.junit.jupiter.api.Test; import java.lang.reflect.Field; -import java.util.HashMap; import java.util.Map; import java.util.Queue; @@ -41,8 +40,7 @@ public class RingMessageManagerTest { @Test public void testSendHeartbeatMessage() { Instance instance1 = new RingInstance(null, 1, 1); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); + Map instanceMap = Map.of(1, instance1); MessageManager messageManager = new RingMessageManager(instanceMap); assertTrue(messageManager.sendHeartbeatMessage(1)); } @@ -53,10 +51,7 @@ public class RingMessageManagerTest { Instance instance1 = new RingInstance(null, 1, 1); Instance instance2 = new RingInstance(null, 1, 2); Instance instance3 = new RingInstance(null, 1, 3); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3); MessageManager messageManager = new RingMessageManager(instanceMap); String messageContent = "2"; messageManager.sendElectionMessage(2, messageContent); @@ -78,10 +73,7 @@ public class RingMessageManagerTest { Instance instance1 = new RingInstance(null, 1, 1); Instance instance2 = new RingInstance(null, 1, 2); Instance instance3 = new RingInstance(null, 1, 3); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3); MessageManager messageManager = new RingMessageManager(instanceMap); String messageContent = "3"; messageManager.sendLeaderMessage(2, 3); @@ -102,10 +94,7 @@ public class RingMessageManagerTest { Instance instance1 = new RingInstance(null, 1, 1); Instance instance2 = new RingInstance(null, 1, 2); Instance instance3 = new RingInstance(null, 1, 3); - Map instanceMap = new HashMap<>(); - instanceMap.put(1, instance1); - instanceMap.put(2, instance2); - instanceMap.put(3, instance3); + Map instanceMap = Map.of(1, instance1, 2, instance2, 3, instance3); MessageManager messageManager = new RingMessageManager(instanceMap); messageManager.sendHeartbeatInvokeMessage(2); Message ringMessage = new Message(MessageType.HEARTBEAT_INVOKE, ""); From c8a481bb77ddfb725ae138110ad6e5cd301a5291 Mon Sep 17 00:00:00 2001 From: Leon Mak Date: Tue, 29 Oct 2019 14:37:40 +0800 Subject: [PATCH 34/53] Add java 11 support for #987 (o-t) (#1051) * Use java 11 * Use .of - Replace Arrays.asList with List.of - Replace HashSet<>(List.of()) with Set.of * Formatting --- .../AbstractDocumentTest.java | 1 - .../iluwatar/abstractdocument/DomainTest.java | 3 +- .../com/iluwatar/collectionpipeline/App.java | 13 ++++---- .../collectionpipeline/CarFactory.java | 3 +- .../java/com/iluwatar/commander/Service.java | 2 +- .../com/iluwatar/commander/RetryTest.java | 4 +-- .../com/iluwatar/fluentinterface/app/App.java | 15 ++++----- .../fluentiterable/FluentIterableTest.java | 31 +++++++----------- .../hexagonal/domain/LotteryNumbersTest.java | 22 ++++--------- .../hexagonal/domain/LotteryTest.java | 4 +-- .../hexagonal/domain/LotteryTicketTest.java | 2 -- .../hexagonal/test/LotteryTestUtils.java | 6 ++-- .../main/java/com/iluwatar/layers/App.java | 12 ++++--- .../layers/CakeBakingServiceImplTest.java | 15 +++------ .../iluwatar/mediator/PartyMemberTest.java | 3 +- .../scenarios/RecreateSimpleObjects.java | 15 ++++----- .../object/pool/OliphauntPoolTest.java | 9 ++---- .../com/iluwatar/observer/HobbitsTest.java | 12 +++---- .../java/com/iluwatar/observer/OrcsTest.java | 12 +++---- .../observer/generic/GHobbitsTest.java | 13 ++++---- .../iluwatar/observer/generic/OrcsTest.java | 13 ++++---- .../com/iluwatar/partialresponse/App.java | 12 ++++--- .../partialresponse/VideoResourceTest.java | 12 ++++--- .../com/iluwatar/prototype/PrototypeTest.java | 9 ++---- .../AnnotationBasedRepositoryTest.java | 19 ++++------- .../iluwatar/repository/RepositoryTest.java | 19 ++++------- .../java/com/iluwatar/retry/FindCustomer.java | 4 +-- .../main/java/com/iluwatar/servant/App.java | 5 +-- .../com/iluwatar/servant/ServantTest.java | 11 ++----- .../magic/MagicServiceImplTest.java | 18 +++++------ .../com/iluwatar/specification/app/App.java | 18 +++-------- .../specification/creature/CreatureTest.java | 10 +++--- .../strategy/DragonSlayingStrategyTest.java | 27 ++++++++-------- .../java/com/iluwatar/threadpool/App.java | 32 +++++++++---------- .../iluwatar/tls/DateFormatCallableTest.java | 9 +++--- ...FormatCallableTestIncorrectDateFormat.java | 9 +++--- .../DateFormatCallableTestMultiThread.java | 9 +++--- 37 files changed, 176 insertions(+), 257 deletions(-) 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 0514c750a..da5765391 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/AbstractDocumentTest.java @@ -25,7 +25,6 @@ package com.iluwatar.abstractdocument; import org.junit.jupiter.api.Test; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; 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 663071f6a..eed4ad9bb 100644 --- a/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java +++ b/abstract-document/src/test/java/com/iluwatar/abstractdocument/DomainTest.java @@ -28,7 +28,6 @@ import com.iluwatar.abstractdocument.domain.Part; import com.iluwatar.abstractdocument.domain.enums.Property; import org.junit.jupiter.api.Test; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -64,7 +63,7 @@ public class DomainTest { Map carProperties = Map.of( Property.MODEL.toString(), TEST_CAR_MODEL, Property.PRICE.toString(), TEST_CAR_PRICE, - Property.PARTS.toString(), List.of(new HashMap<>(), new HashMap<>())); + Property.PARTS.toString(), List.of(Map.of(), Map.of())); Car car = new Car(carProperties); assertEquals(TEST_CAR_MODEL, car.getModel().get()); 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 3a811f0e0..de19a3b15 100644 --- a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/App.java +++ b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/App.java @@ -23,13 +23,12 @@ package com.iluwatar.collectionpipeline; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; +import java.util.Map; + /** * In imperative-style programming, it is common to use for and while loops for * most kinds of data processing. Function composition is a simple technique @@ -67,11 +66,11 @@ public class App { LOGGER.info(groupingByCategoryFunctional.toString()); Person john = new Person(cars); - - List sedansOwnedImperative = ImperativeProgramming.getSedanCarsOwnedSortedByDate(Arrays.asList(john)); + + List sedansOwnedImperative = ImperativeProgramming.getSedanCarsOwnedSortedByDate(List.of(john)); LOGGER.info(sedansOwnedImperative.toString()); - List sedansOwnedFunctional = FunctionalProgramming.getSedanCarsOwnedSortedByDate(Arrays.asList(john)); + List sedansOwnedFunctional = FunctionalProgramming.getSedanCarsOwnedSortedByDate(List.of(john)); LOGGER.info(sedansOwnedFunctional.toString()); } } diff --git a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/CarFactory.java b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/CarFactory.java index 6e4531f5f..aee1e2193 100644 --- a/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/CarFactory.java +++ b/collection-pipeline/src/main/java/com/iluwatar/collectionpipeline/CarFactory.java @@ -23,7 +23,6 @@ package com.iluwatar.collectionpipeline; -import java.util.Arrays; import java.util.List; /** @@ -38,7 +37,7 @@ public class CarFactory { * @return {@link List} of {@link Car} */ public static List createCars() { - return Arrays.asList(new Car("Jeep", "Wrangler", 2011, Category.JEEP), + return List.of(new Car("Jeep", "Wrangler", 2011, Category.JEEP), new Car("Jeep", "Comanche", 1990, Category.JEEP), new Car("Dodge", "Avenger", 2010, Category.SEDAN), new Car("Buick", "Cascada", 2016, Category.CONVERTIBLE), diff --git a/commander/src/main/java/com/iluwatar/commander/Service.java b/commander/src/main/java/com/iluwatar/commander/Service.java index 2e293520b..64af79053 100644 --- a/commander/src/main/java/com/iluwatar/commander/Service.java +++ b/commander/src/main/java/com/iluwatar/commander/Service.java @@ -43,7 +43,7 @@ public abstract class Service { public ArrayList exceptionsList; private static final Random RANDOM = new Random(); private static final String ALL_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - private static final Hashtable USED_IDS = new Hashtable(); + private static final Hashtable USED_IDS = new Hashtable<>(); protected Service(Database db, Exception...exc) { this.database = db; diff --git a/commander/src/test/java/com/iluwatar/commander/RetryTest.java b/commander/src/test/java/com/iluwatar/commander/RetryTest.java index c4ee5caf7..749b2619c 100644 --- a/commander/src/test/java/com/iluwatar/commander/RetryTest.java +++ b/commander/src/test/java/com/iluwatar/commander/RetryTest.java @@ -45,9 +45,9 @@ class RetryTest { Retry.HandleErrorIssue handleError = (o,e) -> { return; }; - Retry r1 = new Retry(op, handleError, 3, 30000, + Retry r1 = new Retry<>(op, handleError, 3, 30000, e -> DatabaseUnavailableException.class.isAssignableFrom(e.getClass())); - Retry r2 = new Retry(op, handleError, 3, 30000, + Retry r2 = new Retry<>(op, handleError, 3, 30000, e -> DatabaseUnavailableException.class.isAssignableFrom(e.getClass())); User user = new User("Jim", "ABCD"); Order order = new Order(user, "book", 10f); 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 597f9d928..36766a568 100644 --- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java +++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java @@ -23,21 +23,20 @@ package com.iluwatar.fluentinterface.app; -import static java.lang.String.valueOf; +import com.iluwatar.fluentinterface.fluentiterable.FluentIterable; +import com.iluwatar.fluentinterface.fluentiterable.lazy.LazyFluentIterable; +import com.iluwatar.fluentinterface.fluentiterable.simple.SimpleFluentIterable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; -import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.StringJoiner; import java.util.function.Function; import java.util.function.Predicate; -import com.iluwatar.fluentinterface.fluentiterable.FluentIterable; -import com.iluwatar.fluentinterface.fluentiterable.lazy.LazyFluentIterable; -import com.iluwatar.fluentinterface.fluentiterable.simple.SimpleFluentIterable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static java.lang.String.valueOf; /** * The Fluent Interface pattern is useful when you want to provide an easy readable, flowing API. @@ -61,7 +60,7 @@ public class App { public static void main(String[] args) { List integerList = new ArrayList<>(); - integerList.addAll(Arrays.asList(1, -61, 14, -22, 18, -87, 6, 64, -82, 26, -98, 97, 45, 23, 2, + integerList.addAll(List.of(1, -61, 14, -22, 18, -87, 6, 64, -82, 26, -98, 97, 45, 23, 2, -68, 45)); prettyPrint("The initial list contains: ", integerList); 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 cfe52be7f..4ee30d3e5 100644 --- a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java +++ b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java @@ -25,21 +25,14 @@ package com.iluwatar.fluentinterface.fluentiterable; import org.junit.jupiter.api.Test; -import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.Spliterator; import java.util.function.Consumer; -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.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; /** * Date: 12/12/15 - 7:00 PM @@ -58,7 +51,7 @@ public abstract class FluentIterableTest { @Test public void testFirst() throws Exception { - final List integers = Arrays.asList(1, 2, 3, 10, 9, 8); + final List integers = List.of(1, 2, 3, 10, 9, 8); final Optional first = createFluentIterable(integers).first(); assertNotNull(first); assertTrue(first.isPresent()); @@ -75,7 +68,7 @@ public abstract class FluentIterableTest { @Test public void testFirstCount() throws Exception { - final List integers = Arrays.asList(1, 2, 3, 10, 9, 8); + final List integers = List.of(1, 2, 3, 10, 9, 8); final List first4 = createFluentIterable(integers) .first(4) .asList(); @@ -91,7 +84,7 @@ public abstract class FluentIterableTest { @Test public void testFirstCountLessItems() throws Exception { - final List integers = Arrays.asList(1, 2, 3); + final List integers = List.of(1, 2, 3); final List first4 = createFluentIterable(integers) .first(4) .asList(); @@ -106,7 +99,7 @@ public abstract class FluentIterableTest { @Test public void testLast() throws Exception { - final List integers = Arrays.asList(1, 2, 3, 10, 9, 8); + final List integers = List.of(1, 2, 3, 10, 9, 8); final Optional last = createFluentIterable(integers).last(); assertNotNull(last); assertTrue(last.isPresent()); @@ -123,7 +116,7 @@ public abstract class FluentIterableTest { @Test public void testLastCount() throws Exception { - final List integers = Arrays.asList(1, 2, 3, 10, 9, 8); + final List integers = List.of(1, 2, 3, 10, 9, 8); final List last4 = createFluentIterable(integers) .last(4) .asList(); @@ -138,7 +131,7 @@ public abstract class FluentIterableTest { @Test public void testLastCountLessItems() throws Exception { - final List integers = Arrays.asList(1, 2, 3); + final List integers = List.of(1, 2, 3); final List last4 = createFluentIterable(integers) .last(4) .asList(); @@ -153,7 +146,7 @@ public abstract class FluentIterableTest { @Test public void testFilter() throws Exception { - final List integers = Arrays.asList(1, 2, 3, 10, 9, 8); + final List integers = List.of(1, 2, 3, 10, 9, 8); final List evenItems = createFluentIterable(integers) .filter(i -> i % 2 == 0) .asList(); @@ -167,7 +160,7 @@ public abstract class FluentIterableTest { @Test public void testMap() throws Exception { - final List integers = Arrays.asList(1, 2, 3); + final List integers = List.of(1, 2, 3); final List longs = createFluentIterable(integers) .map(Integer::longValue) .asList(); @@ -181,7 +174,7 @@ public abstract class FluentIterableTest { @Test public void testForEach() { - final List integers = Arrays.asList(1, 2, 3); + final List integers = List.of(1, 2, 3); final Consumer consumer = mock(Consumer.class); createFluentIterable(integers).forEach(consumer); @@ -195,7 +188,7 @@ public abstract class FluentIterableTest { @Test public void testSpliterator() throws Exception { - final List integers = Arrays.asList(1, 2, 3); + final List integers = List.of(1, 2, 3); final Spliterator split = createFluentIterable(integers).spliterator(); assertNotNull(split); } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java index 181226389..c17c5c1fd 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java @@ -25,14 +25,9 @@ package com.iluwatar.hexagonal.domain; import org.junit.jupiter.api.Test; -import java.util.Arrays; -import java.util.HashSet; import java.util.Set; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @@ -43,8 +38,7 @@ class LotteryNumbersTest { @Test void testGivenNumbers() { - LotteryNumbers numbers = LotteryNumbers.create( - Set.of(1, 2, 3, 4)); + LotteryNumbers numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4)); assertEquals(numbers.getNumbers().size(), 4); assertTrue(numbers.getNumbers().contains(1)); assertTrue(numbers.getNumbers().contains(2)); @@ -54,8 +48,7 @@ class LotteryNumbersTest { @Test void testNumbersCantBeModified() { - LotteryNumbers numbers = LotteryNumbers.create( - Set.of(1, 2, 3, 4)); + LotteryNumbers numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4)); assertThrows(UnsupportedOperationException.class, () -> numbers.getNumbers().add(5)); } @@ -67,13 +60,10 @@ class LotteryNumbersTest { @Test void testEquals() { - LotteryNumbers numbers1 = LotteryNumbers.create( - Set.of(1, 2, 3, 4)); - LotteryNumbers numbers2 = LotteryNumbers.create( - Set.of(1, 2, 3, 4)); + LotteryNumbers numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4)); + LotteryNumbers numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4)); assertEquals(numbers1, numbers2); - LotteryNumbers numbers3 = LotteryNumbers.create( - Set.of(11, 12, 13, 14)); + LotteryNumbers numbers3 = LotteryNumbers.create(Set.of(11, 12, 13, 14)); assertNotEquals(numbers1, numbers3); } } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java index a62adaff8..927e2fcd1 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java @@ -35,9 +35,7 @@ import org.junit.jupiter.api.Test; import java.util.*; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java index 0e81a163b..6d2e371c4 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java @@ -25,8 +25,6 @@ package com.iluwatar.hexagonal.domain; import org.junit.jupiter.api.Test; -import java.util.Arrays; -import java.util.HashSet; import java.util.Set; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java index 4646aa2ff..2f02ca34e 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java @@ -23,15 +23,13 @@ package com.iluwatar.hexagonal.test; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - import com.iluwatar.hexagonal.domain.LotteryNumbers; import com.iluwatar.hexagonal.domain.LotteryTicket; import com.iluwatar.hexagonal.domain.LotteryTicketId; import com.iluwatar.hexagonal.domain.PlayerDetails; +import java.util.Set; + /** * * Utilities for lottery tests diff --git a/layers/src/main/java/com/iluwatar/layers/App.java b/layers/src/main/java/com/iluwatar/layers/App.java index 744c82768..a4e0a4ab2 100644 --- a/layers/src/main/java/com/iluwatar/layers/App.java +++ b/layers/src/main/java/com/iluwatar/layers/App.java @@ -23,7 +23,7 @@ package com.iluwatar.layers; -import java.util.Arrays; +import java.util.List; /** * @@ -99,16 +99,18 @@ public class App { cakeBakingService.saveNewTopping(new CakeToppingInfo("cherry", 350)); CakeInfo cake1 = - new CakeInfo(new CakeToppingInfo("candies", 0), Arrays.asList(new CakeLayerInfo( - "chocolate", 0), new CakeLayerInfo("banana", 0), new CakeLayerInfo("strawberry", 0))); + new CakeInfo(new CakeToppingInfo("candies", 0), List.of( + new CakeLayerInfo("chocolate", 0), + new CakeLayerInfo("banana", 0), + new CakeLayerInfo("strawberry", 0))); try { cakeBakingService.bakeNewCake(cake1); } catch (CakeBakingException e) { e.printStackTrace(); } CakeInfo cake2 = - new CakeInfo(new CakeToppingInfo("cherry", 0), Arrays.asList( - new CakeLayerInfo("vanilla", 0), new CakeLayerInfo("lemon", 0), new CakeLayerInfo( + new CakeInfo(new CakeToppingInfo("cherry", 0), List.of( + new CakeLayerInfo("vanilla", 0), new CakeLayerInfo("lemon", 0), new CakeLayerInfo( "strawberry", 0))); try { cakeBakingService.bakeNewCake(cake2); diff --git a/layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java b/layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java index 681b37e05..21f362329 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java +++ b/layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java @@ -25,15 +25,10 @@ package com.iluwatar.layers; import org.junit.jupiter.api.Test; -import java.util.Arrays; import java.util.Collections; import java.util.List; -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 static org.junit.jupiter.api.Assertions.*; /** * Date: 12/15/15 - 9:55 PM @@ -108,7 +103,7 @@ public class CakeBakingServiceImplTest { service.saveNewLayer(layer2); service.saveNewLayer(layer3); - service.bakeNewCake(new CakeInfo(topping1, Arrays.asList(layer1, layer2))); + service.bakeNewCake(new CakeInfo(topping1, List.of(layer1, layer2))); service.bakeNewCake(new CakeInfo(topping2, Collections.singletonList(layer3))); final List allCakes = service.getAllCakes(); @@ -136,7 +131,7 @@ public class CakeBakingServiceImplTest { final CakeToppingInfo missingTopping = new CakeToppingInfo("Topping1", 1000); assertThrows(CakeBakingException.class, () -> { - service.bakeNewCake(new CakeInfo(missingTopping, Arrays.asList(layer1, layer2))); + service.bakeNewCake(new CakeInfo(missingTopping, List.of(layer1, layer2))); }); } @@ -156,7 +151,7 @@ public class CakeBakingServiceImplTest { final CakeLayerInfo missingLayer = new CakeLayerInfo("Layer2", 2000); assertThrows(CakeBakingException.class, () -> { - service.bakeNewCake(new CakeInfo(topping1, Arrays.asList(layer1, missingLayer))); + service.bakeNewCake(new CakeInfo(topping1, List.of(layer1, missingLayer))); }); } @@ -178,7 +173,7 @@ public class CakeBakingServiceImplTest { service.saveNewLayer(layer1); service.saveNewLayer(layer2); - service.bakeNewCake(new CakeInfo(topping1, Arrays.asList(layer1, layer2))); + service.bakeNewCake(new CakeInfo(topping1, List.of(layer1, layer2))); assertThrows(CakeBakingException.class, () -> { service.bakeNewCake(new CakeInfo(topping2, Collections.singletonList(layer2))); }); diff --git a/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java b/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java index b7092347b..951f8e166 100644 --- a/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java +++ b/mediator/src/test/java/com/iluwatar/mediator/PartyMemberTest.java @@ -32,7 +32,6 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.LoggerFactory; -import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -50,7 +49,7 @@ import static org.mockito.Mockito.verify; public class PartyMemberTest { static Collection[]> dataProvider() { - return Arrays.asList( + return List.of( new Supplier[]{Hobbit::new}, new Supplier[]{Hunter::new}, new Supplier[]{Rogue::new}, diff --git a/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java b/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java index 2c201ead2..303dfda4f 100644 --- a/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java +++ b/naked-objects/fixture/src/main/java/domainapp/fixture/scenarios/RecreateSimpleObjects.java @@ -23,17 +23,14 @@ package domainapp.fixture.scenarios; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - import com.google.common.collect.Lists; - -import org.apache.isis.applib.fixturescripts.FixtureScript; - import domainapp.dom.modules.simple.SimpleObject; import domainapp.fixture.modules.simple.SimpleObjectCreate; import domainapp.fixture.modules.simple.SimpleObjectsTearDown; +import org.apache.isis.applib.fixturescripts.FixtureScript; + +import java.util.Collections; +import java.util.List; /** @@ -41,8 +38,8 @@ import domainapp.fixture.modules.simple.SimpleObjectsTearDown; */ public class RecreateSimpleObjects extends FixtureScript { - public final List names = Collections.unmodifiableList(Arrays.asList("Foo", "Bar", "Baz", - "Frodo", "Froyo", "Fizz", "Bip", "Bop", "Bang", "Boo")); + public final List names = Collections.unmodifiableList(List.of("Foo", "Bar", "Baz", + "Frodo", "Froyo", "Fizz", "Bip", "Bop", "Bang", "Boo")); // region > number (optional input) private Integer number; 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 b946f8098..d4ca42948 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 @@ -25,15 +25,10 @@ package com.iluwatar.object.pool; import org.junit.jupiter.api.Test; -import java.util.Arrays; import java.util.List; 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 static org.junit.jupiter.api.Assertions.*; /** * Date: 12/27/15 - 1:05 AM @@ -115,7 +110,7 @@ public class OliphauntPoolTest { // The order of the returned instances is not determined, so just put them in a list // and verify if both expected instances are in there. - final List oliphaunts = Arrays.asList(pool.checkOut(), pool.checkOut()); + final List oliphaunts = List.of(pool.checkOut(), pool.checkOut()); assertEquals(pool.toString(), "Pool available=0 inUse=2"); assertTrue(oliphaunts.contains(firstOliphaunt)); assertTrue(oliphaunts.contains(secondOliphaunt)); diff --git a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java index c43c592da..66ec45fdb 100644 --- a/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/HobbitsTest.java @@ -23,7 +23,6 @@ package com.iluwatar.observer; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -36,12 +35,11 @@ public class HobbitsTest extends WeatherObserverTest { @Override public Collection dataProvider() { - final List testData = new ArrayList<>(); - testData.add(new Object[]{WeatherType.SUNNY, "The happy hobbits bade in the warm sun."}); - testData.add(new Object[]{WeatherType.RAINY, "The hobbits look for cover from the rain."}); - testData.add(new Object[]{WeatherType.WINDY, "The hobbits hold their hats tightly in the windy weather."}); - testData.add(new Object[]{WeatherType.COLD, "The hobbits are shivering in the cold weather."}); - return testData; + return List.of( + new Object[]{WeatherType.SUNNY, "The happy hobbits bade in the warm sun."}, + new Object[]{WeatherType.RAINY, "The hobbits look for cover from the rain."}, + new Object[]{WeatherType.WINDY, "The hobbits hold their hats tightly in the windy weather."}, + new Object[]{WeatherType.COLD, "The hobbits are shivering in the cold weather."}); } /** diff --git a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java index b2c0fcbac..ff615df3c 100644 --- a/observer/src/test/java/com/iluwatar/observer/OrcsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/OrcsTest.java @@ -23,7 +23,6 @@ package com.iluwatar.observer; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -36,12 +35,11 @@ public class OrcsTest extends WeatherObserverTest { @Override public Collection dataProvider() { - final List testData = new ArrayList<>(); - testData.add(new Object[]{WeatherType.SUNNY, "The sun hurts the orcs' eyes."}); - testData.add(new Object[]{WeatherType.RAINY, "The orcs are dripping wet."}); - testData.add(new Object[]{WeatherType.WINDY, "The orc smell almost vanishes in the wind."}); - testData.add(new Object[]{WeatherType.COLD, "The orcs are freezing cold."}); - return testData; + return List.of( + new Object[]{WeatherType.SUNNY, "The sun hurts the orcs' eyes."}, + new Object[]{WeatherType.RAINY, "The orcs are dripping wet."}, + new Object[]{WeatherType.WINDY, "The orc smell almost vanishes in the wind."}, + new Object[]{WeatherType.COLD, "The orcs are freezing cold."}); } /** 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 93e68a9f1..dd0e6d6bf 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/GHobbitsTest.java @@ -25,7 +25,6 @@ package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -38,12 +37,12 @@ public class GHobbitsTest extends ObserverTest { @Override public Collection dataProvider() { - final List testData = new ArrayList<>(); - testData.add(new Object[]{WeatherType.SUNNY, "The happy hobbits bade in the warm sun."}); - testData.add(new Object[]{WeatherType.RAINY, "The hobbits look for cover from the rain."}); - testData.add(new Object[]{WeatherType.WINDY, "The hobbits hold their hats tightly in the windy weather."}); - testData.add(new Object[]{WeatherType.COLD, "The hobbits are shivering in the cold weather."}); - return testData; + return List.of( + new Object[]{WeatherType.SUNNY, "The happy hobbits bade in the warm sun."}, + new Object[]{WeatherType.RAINY, "The hobbits look for cover from the rain."}, + new Object[]{WeatherType.WINDY, "The hobbits hold their hats tightly in the windy weather."}, + new Object[]{WeatherType.COLD, "The hobbits are shivering in the cold weather."} + ); } /** 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 b73b10519..396de4456 100644 --- a/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java +++ b/observer/src/test/java/com/iluwatar/observer/generic/OrcsTest.java @@ -25,7 +25,6 @@ package com.iluwatar.observer.generic; import com.iluwatar.observer.WeatherType; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -38,12 +37,12 @@ public class OrcsTest extends ObserverTest { @Override public Collection dataProvider() { - final List testData = new ArrayList<>(); - testData.add(new Object[]{WeatherType.SUNNY, "The sun hurts the orcs' eyes."}); - testData.add(new Object[]{WeatherType.RAINY, "The orcs are dripping wet."}); - testData.add(new Object[]{WeatherType.WINDY, "The orc smell almost vanishes in the wind."}); - testData.add(new Object[]{WeatherType.COLD, "The orcs are freezing cold."}); - return testData; + return List.of( + new Object[]{WeatherType.SUNNY, "The sun hurts the orcs' eyes."}, + new Object[]{WeatherType.RAINY, "The orcs are dripping wet."}, + new Object[]{WeatherType.WINDY, "The orc smell almost vanishes in the wind."}, + new Object[]{WeatherType.COLD, "The orcs are freezing cold."} + ); } /** 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 05aa66088..314846a3d 100644 --- a/partial-response/src/main/java/com/iluwatar/partialresponse/App.java +++ b/partial-response/src/main/java/com/iluwatar/partialresponse/App.java @@ -26,7 +26,6 @@ package com.iluwatar.partialresponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.HashMap; import java.util.Map; /** @@ -47,10 +46,13 @@ public class App { * @param args program argument. */ public static void main(String[] args) throws Exception { - Map videos = new HashMap<>(); - videos.put(1, new Video(1, "Avatar", 178, "epic science fiction film", "James Cameron", "English")); - videos.put(2, new Video(2, "Godzilla Resurgence", 120, "Action & drama movie|", "Hideaki Anno", "Japanese")); - videos.put(3, new Video(3, "Interstellar", 169, "Adventure & Sci-Fi", "Christopher Nolan", "English")); + Map videos = Map.of( + 1, new Video(1, "Avatar", 178, "epic science fiction film", + "James Cameron", "English"), + 2, new Video(2, "Godzilla Resurgence", 120, "Action & drama movie|", + "Hideaki Anno", "Japanese"), + 3, new Video(3, "Interstellar", 169, "Adventure & Sci-Fi", + "Christopher Nolan", "English")); VideoResource videoResource = new VideoResource(new FieldJsonMapper(), videos); diff --git a/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java b/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java index c28613f4a..85f240fa0 100644 --- a/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java +++ b/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java @@ -29,7 +29,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertEquals; @@ -49,10 +48,13 @@ public class VideoResourceTest { @Before public void setUp() { - Map videos = new HashMap<>(); - videos.put(1, new Video(1, "Avatar", 178, "epic science fiction film", "James Cameron", "English")); - videos.put(2, new Video(2, "Godzilla Resurgence", 120, "Action & drama movie|", "Hideaki Anno", "Japanese")); - videos.put(3, new Video(3, "Interstellar", 169, "Adventure & Sci-Fi", "Christopher Nolan", "English")); + Map videos = Map.of( + 1, new Video(1, "Avatar", 178, "epic science fiction film", + "James Cameron", "English"), + 2, new Video(2, "Godzilla Resurgence", 120, "Action & drama movie|", + "Hideaki Anno", "Japanese"), + 3, new Video(3, "Interstellar", 169, "Adventure & Sci-Fi", + "Christopher Nolan", "English")); resource = new VideoResource(fieldJsonMapper, videos); } diff --git a/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java b/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java index 8fbd80294..e4dd0658a 100644 --- a/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java +++ b/prototype/src/test/java/com/iluwatar/prototype/PrototypeTest.java @@ -26,13 +26,10 @@ package com.iluwatar.prototype; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import java.util.Arrays; import java.util.Collection; +import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNotSame; -import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.*; /** * Date: 12/28/15 - 8:45 PM @@ -41,7 +38,7 @@ import static org.junit.jupiter.api.Assertions.assertSame; */ public class PrototypeTest

{ static Collection dataProvider() { - return Arrays.asList( + return List.of( new Object[]{new OrcBeast("axe"), "Orcish wolf attacks with axe"}, new Object[]{new OrcMage("sword"), "Orcish mage attacks with sword"}, new Object[]{new OrcWarlord("laser"), "Orcish warlord attacks with laser"}, diff --git a/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java b/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java index 6e5371323..3b0bff608 100644 --- a/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AnnotationBasedRepositoryTest.java @@ -23,16 +23,7 @@ package com.iluwatar.repository; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.Arrays; -import java.util.List; -import java.util.Optional; - -import javax.annotation.Resource; - +import com.google.common.collect.Lists; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -40,7 +31,11 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; -import com.google.common.collect.Lists; +import javax.annotation.Resource; +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; /** * Test case to test the functions of {@link PersonRepository}, beside the CRUD functions, the query @@ -59,7 +54,7 @@ public class AnnotationBasedRepositoryTest { Person john = new Person("John", "lawrence", 35); Person terry = new Person("Terry", "Law", 36); - List persons = Arrays.asList(peter, nasta, john, terry); + List persons = List.of(peter, nasta, john, terry); /** * Prepare data for test diff --git a/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java b/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java index 9f7615aa5..614f18dba 100644 --- a/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java +++ b/repository/src/test/java/com/iluwatar/repository/RepositoryTest.java @@ -23,16 +23,7 @@ package com.iluwatar.repository; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.Arrays; -import java.util.List; -import java.util.Optional; - -import javax.annotation.Resource; - +import com.google.common.collect.Lists; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -40,7 +31,11 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; -import com.google.common.collect.Lists; +import javax.annotation.Resource; +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; /** * Test case to test the functions of {@link PersonRepository}, beside the CRUD functions, the query @@ -58,7 +53,7 @@ public class RepositoryTest { Person john = new Person("John", "lawrence", 35); Person terry = new Person("Terry", "Law", 36); - List persons = Arrays.asList(peter, nasta, john, terry); + List persons = List.of(peter, nasta, john, terry); /** * Prepare data for test diff --git a/retry/src/main/java/com/iluwatar/retry/FindCustomer.java b/retry/src/main/java/com/iluwatar/retry/FindCustomer.java index 11c2b40d6..e5013f50e 100644 --- a/retry/src/main/java/com/iluwatar/retry/FindCustomer.java +++ b/retry/src/main/java/com/iluwatar/retry/FindCustomer.java @@ -24,8 +24,8 @@ package com.iluwatar.retry; import java.util.ArrayDeque; -import java.util.Arrays; import java.util.Deque; +import java.util.List; /** * Finds a customer, returning its ID from our records. @@ -48,7 +48,7 @@ public final class FindCustomer implements BusinessOperation { */ public FindCustomer(String customerId, BusinessException... errors) { this.customerId = customerId; - this.errors = new ArrayDeque<>(Arrays.asList(errors)); + this.errors = new ArrayDeque<>(List.of(errors)); } @Override diff --git a/servant/src/main/java/com/iluwatar/servant/App.java b/servant/src/main/java/com/iluwatar/servant/App.java index a629856d5..35a26dbcc 100644 --- a/servant/src/main/java/com/iluwatar/servant/App.java +++ b/servant/src/main/java/com/iluwatar/servant/App.java @@ -26,7 +26,6 @@ package com.iluwatar.servant; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.List; @@ -60,9 +59,7 @@ public class App { King k = new King(); Queen q = new Queen(); - List guests = new ArrayList<>(); - guests.add(k); - guests.add(q); + List guests = List.of(k, q); // feed servant.feed(k); diff --git a/servant/src/test/java/com/iluwatar/servant/ServantTest.java b/servant/src/test/java/com/iluwatar/servant/ServantTest.java index 4431f6d60..02b69559e 100644 --- a/servant/src/test/java/com/iluwatar/servant/ServantTest.java +++ b/servant/src/test/java/com/iluwatar/servant/ServantTest.java @@ -25,7 +25,6 @@ package com.iluwatar.servant; import org.junit.jupiter.api.Test; -import java.util.ArrayList; import java.util.List; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -76,15 +75,9 @@ public class ServantTest { final Royalty badMoodRoyalty = mock(Royalty.class); when(badMoodRoyalty.getMood()).thenReturn(true); - final List goodCompany = new ArrayList<>(); - goodCompany.add(goodMoodRoyalty); - goodCompany.add(goodMoodRoyalty); - goodCompany.add(goodMoodRoyalty); + final List goodCompany = List.of(goodMoodRoyalty, goodMoodRoyalty, goodMoodRoyalty); - final List badCompany = new ArrayList<>(); - goodCompany.add(goodMoodRoyalty); - goodCompany.add(goodMoodRoyalty); - goodCompany.add(badMoodRoyalty); + final List badCompany = List.of(goodMoodRoyalty, goodMoodRoyalty, badMoodRoyalty); assertTrue(new Servant("test").checkIfYouWillBeHanged(goodCompany)); assertTrue(new Servant("test").checkIfYouWillBeHanged(badCompany)); 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 03284ab6d..b4b3c5714 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 @@ -97,11 +97,10 @@ public class MagicServiceImplTest { public void testFindWizardsWithSpellbook() throws Exception { final String bookname = "bookname"; final Spellbook spellbook = mock(Spellbook.class); - final Set wizards = new HashSet<>(); - wizards.add(mock(Wizard.class)); - wizards.add(mock(Wizard.class)); - wizards.add(mock(Wizard.class)); - + final Set wizards = Set.of( + mock(Wizard.class), + mock(Wizard.class), + mock(Wizard.class)); when(spellbook.getWizards()).thenReturn(wizards); final SpellbookDao spellbookDao = mock(SpellbookDao.class); @@ -126,11 +125,10 @@ public class MagicServiceImplTest { @Test public void testFindWizardsWithSpell() throws Exception { - final Set wizards = new HashSet<>(); - wizards.add(mock(Wizard.class)); - wizards.add(mock(Wizard.class)); - wizards.add(mock(Wizard.class)); - + final Set wizards = Set.of( + mock(Wizard.class), + mock(Wizard.class), + mock(Wizard.class)); final Spellbook spellbook = mock(Spellbook.class); when(spellbook.getWizards()).thenReturn(wizards); 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 df80f855f..00b371814 100644 --- a/specification/src/main/java/com/iluwatar/specification/app/App.java +++ b/specification/src/main/java/com/iluwatar/specification/app/App.java @@ -23,17 +23,7 @@ package com.iluwatar.specification.app; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import com.iluwatar.specification.creature.Creature; -import com.iluwatar.specification.creature.Dragon; -import com.iluwatar.specification.creature.Goblin; -import com.iluwatar.specification.creature.KillerBee; -import com.iluwatar.specification.creature.Octopus; -import com.iluwatar.specification.creature.Shark; -import com.iluwatar.specification.creature.Troll; +import com.iluwatar.specification.creature.*; import com.iluwatar.specification.property.Color; import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.selector.ColorSelector; @@ -41,6 +31,9 @@ import com.iluwatar.specification.selector.MovementSelector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; +import java.util.stream.Collectors; + /** * * The central idea of the Specification pattern is to separate the statement of how to match a @@ -64,8 +57,7 @@ public class App { public static void main(String[] args) { // initialize creatures list List creatures = - Arrays.asList(new Goblin(), new Octopus(), new Dragon(), new Shark(), new Troll(), - new KillerBee()); + List.of(new Goblin(), new Octopus(), new Dragon(), new Shark(), new Troll(), new KillerBee()); // find all walking creatures LOGGER.info("Find all walking creatures"); List walkingCreatures = 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 022475c24..26ff4c1ab 100644 --- a/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java +++ b/specification/src/test/java/com/iluwatar/specification/creature/CreatureTest.java @@ -29,8 +29,8 @@ import com.iluwatar.specification.property.Size; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import java.util.Arrays; import java.util.Collection; +import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -46,7 +46,7 @@ public class CreatureTest { * @return The tested {@link Creature} instance and its expected specs */ public static Collection dataProvider() { - return Arrays.asList( + return List.of( new Object[]{new Dragon(), "Dragon", Size.LARGE, Movement.FLYING, Color.RED}, new Object[]{new Goblin(), "Goblin", Size.SMALL, Movement.WALKING, Color.GREEN}, new Object[]{new KillerBee(), "KillerBee", Size.SMALL, Movement.FLYING, Color.LIGHT}, @@ -76,15 +76,13 @@ public class CreatureTest { @ParameterizedTest @MethodSource("dataProvider") - public void testGetColor(Creature testedCreature, String name, Size size, Movement movement, - Color color) { + public void testGetColor(Creature testedCreature, String name, Size size, Movement movement, Color color) { assertEquals(color, testedCreature.getColor()); } @ParameterizedTest @MethodSource("dataProvider") - public void testToString(Creature testedCreature, String name, Size size, Movement movement, - Color color) { + public void testToString(Creature testedCreature, String name, Size size, Movement movement, Color color) { final String toString = testedCreature.toString(); assertNotNull(toString); assertEquals( diff --git a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java index b97cf499f..67e4b92cc 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java @@ -32,7 +32,6 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.LoggerFactory; -import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -50,19 +49,19 @@ public class DragonSlayingStrategyTest { * @return The test parameters for each cycle */ static Collection dataProvider() { - return Arrays.asList( - new Object[]{ - new MeleeStrategy(), - "With your Excalibur you sever the dragon's head!" - }, - new Object[]{ - new ProjectileStrategy(), - "You shoot the dragon with the magical crossbow and it falls dead on the ground!" - }, - new Object[]{ - new SpellStrategy(), - "You cast the spell of disintegration and the dragon vaporizes in a pile of dust!" - } + return List.of( + new Object[]{ + new MeleeStrategy(), + "With your Excalibur you sever the dragon's head!" + }, + new Object[]{ + new ProjectileStrategy(), + "You shoot the dragon with the magical crossbow and it falls dead on the ground!" + }, + new Object[]{ + new SpellStrategy(), + "You cast the spell of disintegration and the dragon vaporizes in a pile of dust!" + } ); } 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 9fe16d36a..b21f8cc4a 100644 --- a/thread-pool/src/main/java/com/iluwatar/threadpool/App.java +++ b/thread-pool/src/main/java/com/iluwatar/threadpool/App.java @@ -60,22 +60,22 @@ public class App { LOGGER.info("Program started"); // Create a list of tasks to be executed - List tasks = new ArrayList<>(); - tasks.add(new PotatoPeelingTask(3)); - tasks.add(new PotatoPeelingTask(6)); - tasks.add(new CoffeeMakingTask(2)); - tasks.add(new CoffeeMakingTask(6)); - tasks.add(new PotatoPeelingTask(4)); - tasks.add(new CoffeeMakingTask(2)); - tasks.add(new PotatoPeelingTask(4)); - tasks.add(new CoffeeMakingTask(9)); - tasks.add(new PotatoPeelingTask(3)); - tasks.add(new CoffeeMakingTask(2)); - tasks.add(new PotatoPeelingTask(4)); - tasks.add(new CoffeeMakingTask(2)); - tasks.add(new CoffeeMakingTask(7)); - tasks.add(new PotatoPeelingTask(4)); - tasks.add(new PotatoPeelingTask(5)); + List tasks = List.of( + new PotatoPeelingTask(3), + new PotatoPeelingTask(6), + new CoffeeMakingTask(2), + new CoffeeMakingTask(6), + new PotatoPeelingTask(4), + new CoffeeMakingTask(2), + new PotatoPeelingTask(4), + new CoffeeMakingTask(9), + new PotatoPeelingTask(3), + new CoffeeMakingTask(2), + new PotatoPeelingTask(4), + new CoffeeMakingTask(2), + new CoffeeMakingTask(7), + new PotatoPeelingTask(4), + new PotatoPeelingTask(5)); // Creates a thread pool that reuses a fixed number of threads operating off a shared // unbounded queue. At any point, at most nThreads threads will be active processing diff --git a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java index 04ca5ffcc..2e69e2c7f 100644 --- a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java +++ b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTest.java @@ -23,8 +23,10 @@ package com.iluwatar.tls; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -32,9 +34,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; @@ -82,7 +81,7 @@ public class DateFormatCallableTest { /** * Expected content of the list containing the date values created by the run of DateFormatRunnalbe */ - List expectedDateValues = Arrays.asList("15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015"); + List expectedDateValues = List.of("15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015"); /** * Run Callable and prepare results for usage in the test methods diff --git a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java index 2c88fc13d..df2ab2a93 100644 --- a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java +++ b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestIncorrectDateFormat.java @@ -23,16 +23,15 @@ package com.iluwatar.tls; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; @@ -76,7 +75,7 @@ public class DateFormatCallableTestIncorrectDateFormat { /** * Expected content of the list containing the exceptions created by the run of DateFormatRunnalbe */ - List expectedExceptions = Arrays.asList("class java.text.ParseException: Unparseable date: \"15.12.2015\"", + List expectedExceptions = List.of("class java.text.ParseException: Unparseable date: \"15.12.2015\"", "class java.text.ParseException: Unparseable date: \"15.12.2015\"", "class java.text.ParseException: Unparseable date: \"15.12.2015\"", "class java.text.ParseException: Unparseable date: \"15.12.2015\"", diff --git a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java index 11e8eef5b..1001e1bdf 100644 --- a/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java +++ b/tls/src/test/java/com/iluwatar/tls/DateFormatCallableTestMultiThread.java @@ -23,8 +23,10 @@ package com.iluwatar.tls; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -32,9 +34,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; @@ -86,7 +85,7 @@ public class DateFormatCallableTestMultiThread { /** * Expected content of the list containing the date values created by each thread */ - List expectedDateValues = Arrays.asList("15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015"); + List expectedDateValues = List.of("15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015", "15.11.2015"); /** * Run Callable and prepare results for usage in the test methods From a65a60183575c35c16c16aeba2338675eb8bbe6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 29 Oct 2019 22:11:09 +0200 Subject: [PATCH 35/53] Update web site logic --- .travis.yml | 3 +-- update-ghpages.sh => update-website.sh | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) rename update-ghpages.sh => update-website.sh (87%) diff --git a/.travis.yml b/.travis.yml index f9bfeaa85..0a5ac7709 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ sudo: required env: global: - - GH_REF: github.com/iluwatar/java-design-patterns.git - secure: "DCpazS3nkLnter3sguXEAS2fC/1ZWNfM+XLyif9MfNFxlZdpni2vCD/jA0Rdpga8puQWHNVLyAec+RPFH/2qSmJ1c1UTV5MaLv8tPqwUX0VFA+1I6XoSv6oX4ldHTBWHEWqQHkRFOLoil0h0edc0tTOWQwXF8U+DLAB+HkRb4gw=" services: @@ -24,7 +23,7 @@ script: - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then mvn clean verify sonar:sonar -Dsonar.projectKey=iluwatar_java-design-patterns -Dsonar.host.url=https://sonarcloud.io; fi' after_success: -- bash update-ghpages.sh +- bash update-website.sh notifications: email: diff --git a/update-ghpages.sh b/update-website.sh similarity index 87% rename from update-ghpages.sh rename to update-website.sh index 25ea680cc..5b9fe5515 100644 --- a/update-ghpages.sh +++ b/update-website.sh @@ -24,8 +24,8 @@ # Clone gh-pages -git clone -b gh-pages "https://${GH_REF}" ghpagesclone -cd ghpagesclone +git clone https://github.com/iluwatar/java-design-patterns-web.git +cd java-design-patterns-web # Init and update submodule to latest git submodule update --init --recursive @@ -41,5 +41,5 @@ then # it should be committed git add . git commit -m ":sparkles: :up: Automagic Update via Travis-CI" - git push --quiet "https://${GH_TOKEN}:x-oauth-basic@${GH_REF}" gh-pages > /dev/null 2>&1 + git push --quiet "https://${GH_TOKEN}:x-oauth-basic@github.com/iluwatar/java-design-patterns-web.git" gh-pages > /dev/null 2>&1 fi From ccc1a6340b6b74e337d431d2aff3a067dd078070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 29 Oct 2019 23:02:24 +0200 Subject: [PATCH 36/53] Update script --- update-website.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/update-website.sh b/update-website.sh index 5b9fe5515..cdff97392 100644 --- a/update-website.sh +++ b/update-website.sh @@ -29,7 +29,6 @@ cd java-design-patterns-web # Init and update submodule to latest git submodule update --init --recursive -git submodule update --remote # Setup Git git config user.name "Travis-CI" From ff5284848188afaedb4463796df1e0c002603685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 29 Oct 2019 23:28:05 +0200 Subject: [PATCH 37/53] Update script --- update-website.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/update-website.sh b/update-website.sh index cdff97392..7dd96a144 100644 --- a/update-website.sh +++ b/update-website.sh @@ -34,11 +34,6 @@ git submodule update --init --recursive git config user.name "Travis-CI" git config user.email "travis@no.reply" -# If there is a new version of the master branch -if git status | grep patterns > /dev/null 2>&1 -then - # it should be committed - git add . - git commit -m ":sparkles: :up: Automagic Update via Travis-CI" - git push --quiet "https://${GH_TOKEN}:x-oauth-basic@github.com/iluwatar/java-design-patterns-web.git" gh-pages > /dev/null 2>&1 -fi +git add . +git commit -m ":sparkles: :up: Automagic Update via Travis-CI" +git push --quiet "https://${GH_TOKEN}:x-oauth-basic@github.com/iluwatar/java-design-patterns-web.git" master > /dev/null 2>&1 From 91a085d3d18905f845c0328d5ebef36c630bf36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Wed, 30 Oct 2019 08:15:43 +0200 Subject: [PATCH 38/53] Update script --- update-website.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/update-website.sh b/update-website.sh index 7dd96a144..66192f15f 100644 --- a/update-website.sh +++ b/update-website.sh @@ -29,6 +29,13 @@ cd java-design-patterns-web # Init and update submodule to latest git submodule update --init --recursive +cd 30-seconds-of-java +git pull origin master +cd ../patterns +git pull origin master +cd ../programming-principles +git pull origin gh-pages +cd .. # Setup Git git config user.name "Travis-CI" From fca7e9c8c7e9b0ffd579624b7c137db46eeeb6ca Mon Sep 17 00:00:00 2001 From: "adamski.pro" Date: Wed, 30 Oct 2019 07:19:33 +0100 Subject: [PATCH 39/53] https://github.com/iluwatar/java-design-patterns/issues/1021 - decrease number of checkstyle errors in callback pattern (#1053) --- .../main/java/com/iluwatar/callback/App.java | 22 +++++++++++-------- .../java/com/iluwatar/callback/Callback.java | 4 ++-- .../com/iluwatar/callback/LambdasApp.java | 15 ++++++++----- .../com/iluwatar/callback/SimpleTask.java | 14 +++++++----- .../main/java/com/iluwatar/callback/Task.java | 6 ++--- .../com/iluwatar/callback/package-info.java | 1 + 6 files changed, 36 insertions(+), 26 deletions(-) create mode 100644 callback/src/main/java/com/iluwatar/callback/package-info.java diff --git a/callback/src/main/java/com/iluwatar/callback/App.java b/callback/src/main/java/com/iluwatar/callback/App.java index 3a9cd00cb..842f01dcd 100644 --- a/callback/src/main/java/com/iluwatar/callback/App.java +++ b/callback/src/main/java/com/iluwatar/callback/App.java @@ -24,23 +24,27 @@ package com.iluwatar.callback; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import static org.slf4j.LoggerFactory.getLogger; /** - * - * 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. - * + * + * 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. + * */ -public class App { +public final class App { - private static final Logger LOGGER = LoggerFactory.getLogger(App.class); + private static final Logger LOGGER = getLogger(App.class); + + private App() { + } /** * Program entry point */ - public static void main(String[] args) { + public static void main(final String[] args) { Task task = new SimpleTask(); Callback callback = () -> LOGGER.info("I'm done now."); task.executeWith(callback); diff --git a/callback/src/main/java/com/iluwatar/callback/Callback.java b/callback/src/main/java/com/iluwatar/callback/Callback.java index 15f083662..0158dcda0 100644 --- a/callback/src/main/java/com/iluwatar/callback/Callback.java +++ b/callback/src/main/java/com/iluwatar/callback/Callback.java @@ -24,9 +24,9 @@ package com.iluwatar.callback; /** - * + * * Callback interface - * + * */ public interface Callback { diff --git a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java index 2b445d9ca..18715e3b7 100644 --- a/callback/src/main/java/com/iluwatar/callback/LambdasApp.java +++ b/callback/src/main/java/com/iluwatar/callback/LambdasApp.java @@ -24,22 +24,25 @@ package com.iluwatar.callback; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import static org.slf4j.LoggerFactory.getLogger; /** * - * This example generates the exact same output as {@link App} however the callback has been - * defined as a Lambdas expression. + * This example generates the exact same output as {@link App} however the + * callback has been defined as a Lambdas expression. * */ -public class LambdasApp { +public final class LambdasApp { - private static final Logger LOGGER = LoggerFactory.getLogger(LambdasApp.class); + private static final Logger LOGGER = getLogger(LambdasApp.class); + + private LambdasApp() { } /** * Program entry point */ - public static void main(String[] args) { + public static void main(final String[] args) { Task task = new SimpleTask(); Callback c = () -> LOGGER.info("I'm done now."); task.executeWith(c); diff --git a/callback/src/main/java/com/iluwatar/callback/SimpleTask.java b/callback/src/main/java/com/iluwatar/callback/SimpleTask.java index 155d1e96d..21162833a 100644 --- a/callback/src/main/java/com/iluwatar/callback/SimpleTask.java +++ b/callback/src/main/java/com/iluwatar/callback/SimpleTask.java @@ -24,19 +24,21 @@ package com.iluwatar.callback; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import static org.slf4j.LoggerFactory.getLogger; /** - * + * * Implementation of task that need to be executed - * + * */ -public class SimpleTask extends Task { +public final class SimpleTask extends Task { - private static final Logger LOGGER = LoggerFactory.getLogger(SimpleTask.class); + 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/main/java/com/iluwatar/callback/Task.java b/callback/src/main/java/com/iluwatar/callback/Task.java index 9f2abe85f..15cd99e9a 100644 --- a/callback/src/main/java/com/iluwatar/callback/Task.java +++ b/callback/src/main/java/com/iluwatar/callback/Task.java @@ -24,16 +24,16 @@ package com.iluwatar.callback; /** - * + * * Template-method class for callback hook execution - * + * */ public abstract class Task { /** * Execute with callback */ - public final void executeWith(Callback callback) { + final void executeWith(final Callback callback) { execute(); if (callback != null) { callback.call(); diff --git a/callback/src/main/java/com/iluwatar/callback/package-info.java b/callback/src/main/java/com/iluwatar/callback/package-info.java new file mode 100644 index 000000000..a72bbb50d --- /dev/null +++ b/callback/src/main/java/com/iluwatar/callback/package-info.java @@ -0,0 +1 @@ +package com.iluwatar.callback; From a9dfd7e8091cfe6ba8312f518827c71af1352bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Wed, 30 Oct 2019 08:23:45 +0200 Subject: [PATCH 40/53] Update license header --- .../com/iluwatar/callback/package-info.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/callback/src/main/java/com/iluwatar/callback/package-info.java b/callback/src/main/java/com/iluwatar/callback/package-info.java index a72bbb50d..0b86125fd 100644 --- a/callback/src/main/java/com/iluwatar/callback/package-info.java +++ b/callback/src/main/java/com/iluwatar/callback/package-info.java @@ -1 +1,24 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + package com.iluwatar.callback; From cdb80b8ddd09ec487278a6c9b89cc07b58de8559 Mon Sep 17 00:00:00 2001 From: Hemant Bothra Date: Wed, 30 Oct 2019 11:57:24 +0530 Subject: [PATCH 41/53] Issue 893 (#1014) * Using static object to reduce memory foot prints * Updating README along with name of static fields * Updating code as per review comments * Updating code as per review comments * Updating doc as per new code --- factory-method/README.md | 4 ++-- .../iluwatar/factory/method/ElfBlacksmith.java | 15 +++++++++++++-- .../iluwatar/factory/method/OrcBlacksmith.java | 13 ++++++++++++- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/factory-method/README.md b/factory-method/README.md index 087221fb9..31e2ab98b 100644 --- a/factory-method/README.md +++ b/factory-method/README.md @@ -42,13 +42,13 @@ public interface Blacksmith { public class ElfBlacksmith implements Blacksmith { public Weapon manufactureWeapon(WeaponType weaponType) { - return new ElfWeapon(weaponType); + return ELFARSENAL.get(weaponType); } } public class OrcBlacksmith implements Blacksmith { public Weapon manufactureWeapon(WeaponType weaponType) { - return new OrcWeapon(weaponType); + return ORCARSENAL.get(weaponType); } } ``` 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 adae5bd50..eccff10d9 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 @@ -23,6 +23,9 @@ package com.iluwatar.factory.method; +import java.util.HashMap; +import java.util.Map; + /** * * Concrete subclass for creating new objects. @@ -30,9 +33,17 @@ package com.iluwatar.factory.method; */ public class ElfBlacksmith implements Blacksmith { + private static Map ELFARSENAL; + static { + ELFARSENAL= new HashMap<>(WeaponType.values().length); + for (WeaponType type : WeaponType.values()) { + ELFARSENAL.put(type, new ElfWeapon(type)); + } + } + @Override public Weapon manufactureWeapon(WeaponType weaponType) { - return new ElfWeapon(weaponType); + return ELFARSENAL.get(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 a2a86fe44..673663049 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 @@ -23,6 +23,9 @@ package com.iluwatar.factory.method; +import java.util.HashMap; +import java.util.Map; + /** * * Concrete subclass for creating new objects. @@ -30,8 +33,16 @@ package com.iluwatar.factory.method; */ public class OrcBlacksmith implements Blacksmith { + private static Map ORCARSENAL; + static { + ORCARSENAL= new HashMap<>(WeaponType.values().length); + for (WeaponType type : WeaponType.values()) { + ORCARSENAL.put(type, new OrcWeapon(type)); + } + } + @Override public Weapon manufactureWeapon(WeaponType weaponType) { - return new OrcWeapon(weaponType); + return ORCARSENAL.get(weaponType); } } From cc85c73fbc6a43dd564d2858a0a00671dd042493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Wed, 30 Oct 2019 19:52:03 +0200 Subject: [PATCH 42/53] Move faq.md to java-design-patterns-web repository --- faq.md | 88 ---------------------------------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 faq.md diff --git a/faq.md b/faq.md deleted file mode 100644 index 107ee1e68..000000000 --- a/faq.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -layout: page -link-title: FAQ -title: FAQ - Java Design Patterns -description: Java Design Pattern FAQ answers the most commonly asked design patterns questions. -permalink: /faq/ -icon: fa-question -page-index: 5 ---- - -### Q1: What is the difference between State and Strategy patterns? {#Q1} - -While the implementation is similar they solve different problems. The State -pattern deals with what state an object is in - it encapsulates state-dependent -behavior. -The Strategy pattern deals with how an object performs a certain task - it -encapsulates an algorithm. - -### Q2: What is the difference between Strategy and Template Method patterns? {#Q2} - -In Template Method the algorithm is chosen at compile time via inheritance. -With Strategy pattern the algorithm is chosen at runtime via composition. - -### Q3: What is the difference between Proxy and Decorator patterns? {#Q3} - -The difference is the intent of the patterns. While Proxy controls access to -the object Decorator is used to add responsibilities to the object. - -### Q4: What is the difference between Chain of Responsibility and Intercepting Filter patterns? {#Q4} - -While the implementations look similar there are differences. The Chain of -Responsibility forms a chain of request processors and the processors are then -executed one by one until the correct processor is found. In Intercepting -Filter the chain is constructed from filters and the whole chain is always -executed. - -### Q5: What is the difference between Visitor and Double Dispatch patterns? {#Q5} - -The Visitor pattern is a means of adding a new operation to existing classes. -Double dispatch is a means of dispatching function calls with respect to two -polymorphic types, rather than a single polymorphic type, which is what -languages like C++ and Java _do not_ support directly. - -### Q6: What are the differences between Flyweight and Object Pool patterns? {#Q6} - -They differ in the way they are used. - -Pooled objects can simultaneously be used by a single "client" only. For that, -a pooled object must be checked out from the pool, then it can be used by a -client, and then the client must return the object back to the pool. Multiple -instances of identical objects may exist, up to the maximal capacity of the -pool. - -In contrast, a Flyweight object is singleton, and it can be used simultaneously -by multiple clients. - -As for concurrent access, pooled objects can be mutable and they usually don't -need to be thread safe, as typically, only one thread is going to use a -specific instance at the same time. Flyweight must either be immutable (the -best option), or implement thread safety. - -As for performance and scalability, pools can become bottlenecks, if all the -pooled objects are in use and more clients need them, threads will become -blocked waiting for available object from the pool. This is not the case with -Flyweight. - -### Q7: What are the differences between FluentInterface and Builder patterns? {#Q7} - -Fluent interfaces are sometimes confused with the Builder pattern, because they share method chaining and a fluent usage. However, fluent interfaces are not primarily used to create shared (mutable) objects, but to configure complex objects without having to respecify the target object on every property change. - -### Q8: What is the difference between java.io.Serialization and Memento pattern? {#Q8} - -Memento is typically used to implement rollback/save-point support. Example we might want to mark the state of an object at a point in time, do some work and then decide to rollback to the previous state. - -On the other hand serialization may be used as a tool to save the state of an object into byte[] and preserving the contents in memory or disk. When someone invokes the memento to revert object's previous state then we can deserialize the information stored and recreate previous state. - -So Memento is a pattern and serialization is a tool that can be used to implement this pattern. Other ways to implement the pattern can be to clone the contents of the object and keep track of those clones. - - -### Q9: What's the difference between “API Gateway” and “Aggregator Microservices”? Isn't it the same? {#Q9} - -The API Gateway : Aggregate calls to microservices in a single location. The user makes a single call to the API Gateway, and the API Gateway then calls each relevant microservice. -Use the API Gateway pattern when you're also using the Microservices pattern and need a single point of aggregation for your microservice calls. - -Aggregator Microservices : The user makes a single call to the Aggregator, and the aggregator then calls each relevant microservice and collects the data, apply business logic to it, and further publish is as a REST Endpoint.Use the Aggregator Microservices pattern when you need a unified API for various microservices, regardless the client device. - - - From 1eb1961f1b38c8360ac7a99204224087dadad46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Wed, 30 Oct 2019 21:12:10 +0200 Subject: [PATCH 43/53] Remove presentations --- abstract-factory/README.md | 4 - abstract-factory/etc/diagram1.png | Bin 58018 -> 0 bytes abstract-factory/etc/diagram2.png | Bin 26347 -> 0 bytes abstract-factory/etc/presentation.html | 190 ------------------- command/README.md | 4 - command/etc/diagram.png | Bin 57571 -> 0 bytes command/etc/presentation.html | 243 ------------------------- factory-method/README.md | 4 - factory-method/etc/diagram1.png | Bin 59865 -> 0 bytes factory-method/etc/presentation.html | 185 ------------------- hexagonal/README.md | 3 - hexagonal/etc/layers.png | Bin 15887 -> 0 bytes hexagonal/etc/ports_and_adapters.png | Bin 34860 -> 0 bytes hexagonal/etc/ports_and_adapters.xml | 25 --- hexagonal/etc/presentation.html | 127 ------------- proxy/README.md | 3 - proxy/etc/presentation.html | 92 ---------- proxy/etc/proxy-concept.png | Bin 24957 -> 0 bytes proxy/etc/proxy-concept.xml | 25 --- 19 files changed, 905 deletions(-) delete mode 100644 abstract-factory/etc/diagram1.png delete mode 100644 abstract-factory/etc/diagram2.png delete mode 100644 abstract-factory/etc/presentation.html delete mode 100644 command/etc/diagram.png delete mode 100644 command/etc/presentation.html delete mode 100644 factory-method/etc/diagram1.png delete mode 100644 factory-method/etc/presentation.html delete mode 100644 hexagonal/etc/layers.png delete mode 100644 hexagonal/etc/ports_and_adapters.png delete mode 100644 hexagonal/etc/ports_and_adapters.xml delete mode 100644 hexagonal/etc/presentation.html delete mode 100644 proxy/etc/presentation.html delete mode 100644 proxy/etc/proxy-concept.png delete mode 100644 proxy/etc/proxy-concept.xml diff --git a/abstract-factory/README.md b/abstract-factory/README.md index 0084030b6..aefedb07f 100644 --- a/abstract-factory/README.md +++ b/abstract-factory/README.md @@ -188,10 +188,6 @@ Use the Abstract Factory pattern when ## Tutorial * [Abstract Factory Pattern Tutorial](https://www.journaldev.com/1418/abstract-factory-design-pattern-in-java) -## Presentations - -* [Abstract Factory Pattern](etc/presentation.html) - ## Real world examples diff --git a/abstract-factory/etc/diagram1.png b/abstract-factory/etc/diagram1.png deleted file mode 100644 index e9c3c84c212d84c26f73ea24a2668dc7a3b7bf21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58018 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 diff --git a/abstract-factory/etc/presentation.html b/abstract-factory/etc/presentation.html deleted file mode 100644 index 823245870..000000000 --- a/abstract-factory/etc/presentation.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - Design Patterns - Abstract Factory Presentation - - - - - - - - - \ No newline at end of file diff --git a/command/README.md b/command/README.md index cb9bd48a9..41e8b78e1 100644 --- a/command/README.md +++ b/command/README.md @@ -36,10 +36,6 @@ Use the Command pattern when you want to * implement callback functionality * implement the undo functionality -## Presentations - -* [Command Pattern](etc/presentation.html) - ## Real world examples * [java.lang.Runnable](http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html) diff --git a/command/etc/diagram.png b/command/etc/diagram.png deleted file mode 100644 index 1d3494292b82a5c7cbde7d5dc26c238ab5661bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57571 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

_*pGf#8 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 - - - - Design Patterns - Command Presentation - - - - - - - - - \ No newline at end of file diff --git a/factory-method/README.md b/factory-method/README.md index 31e2ab98b..be5ead3e7 100644 --- a/factory-method/README.md +++ b/factory-method/README.md @@ -69,10 +69,6 @@ Use the Factory Method pattern when * a class wants its subclasses to specify the objects it creates * classes delegate responsibility to one of several helper subclasses, and you want to localize the knowledge of which helper subclass is the delegate -## Presentations - -* [Factory Method Pattern](etc/presentation.html) - ## Real world examples * [java.util.Calendar](http://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html#getInstance--) diff --git a/factory-method/etc/diagram1.png b/factory-method/etc/diagram1.png deleted file mode 100644 index fa325edf002a702f3c94e46f488c293df80d1ceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59865 zcmZ^L1yGw^*DWnYin|kBic4`TP@qLiaW7Wf-QBG~vEowPCAdqlV!<7P2Y2VD?|Z-b z{<-ttnPiejPtG~}?7j9{`$@zXMHzGy5)?Q%IP}k-K7NIRdz}vl_bLe)5w>So^;Qb@ z@yh9|j09Ze7}-8-Pk~-qz3yU#9MykP6642Pj~RU!eZ~E~|Iq8;LIk`EHX9Sz4JU?=)Ov#r zPc4g)uyJmaRaI)XW7}I0By!AufaKE(*3$v6@TjOHw)j}7Tad76h&&g&YU-*!Pc3l27U^?ieR0>)+wL?R!dvQqiM)kZ=f3p+Zu#?o-)O2cd^H}rD5c`r&CDWw8QyD=9bY-XTjHr^ghKmg;OQ3&r%56_3FWa%t) zPHj#*|AmF?nDrS|^}X!7kk}bXeli(ACJ z3@Q|U3aoPSf<~y^X{T;AQW8ckMp0XRI6BR&x<;p?#_FzeAUW<|o;v*m3P?3lU~%h7 zXDprf&{ovNTBMHF-I{x&X3l%NC@x_zJgt7Jqf7PPpz zg#vXd$)4{)tdSxyLM81Zun1>m`G#F1h4arA&^nscTTM;5F?o zP1SVo@Mz1K8NK;|Pl|<4)_PJT>(pSqsM4uyKY@jbb~c0iZ=ng$?xS{12B8o1Hzk`3Z3oxi7F<()a^q1ji2)LS=?u$>^)qn>sVn@CD zE$jrh4++pb3J3A2sy-P zT2ZXFjyxFI*2*_m`lvbu_pc>@%z)v^a}UW+j*z zk_G~K^sgLh0OYL|DZlb+qN7A*O~jN=TlCW9T2x7Ow=@S%+zdG7OiEAiU|rMvYu71} ztO;kOaZ&vQL+(dHA@kJe$=Euyy|AvEv>iY;S^p3KyNj#$-FdPmPQzJ$VHiaf2F>T~ zQv%He!&!O7aQ-vnF`@t88AlB8&ss+Q@nfwwtGA_X2tk+P_Pa>=czVV~dNdkza|;pn z4lNlsZIIPaPj>UMg>{S*w)hUr<#kS5R;;Ozb%cPDLYzE2oLf6BLa98=0lehqMNSKl z(lTR4M*CH;ho=7(^pk`&FpSnduU5j1 z4IxB26kS+1@OVDs%0?3tFQGC+7j_P8SkvmIgaQ4FJPvpbr(n+*dD6gcqM@ewKtUtc zg*=|C%tSH@vIPPUk1-_uV+gvHi;u0Ni=+!tTFDpR;?SiHQB|4urSEk3(VcprhB_Pw zQnKx=8`XvPG|VHPQ5aWpmej13!{(_o3vHt!9S

nEm})(v>`pZJ%UfS7zU9=-lRE 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 diff --git a/factory-method/etc/presentation.html b/factory-method/etc/presentation.html deleted file mode 100644 index df520605a..000000000 --- a/factory-method/etc/presentation.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - Design Patterns - Factory Method Presentation - - - - - - - - - \ No newline at end of file diff --git a/hexagonal/README.md b/hexagonal/README.md index 7d27f4b62..1e6f897d0 100644 --- a/hexagonal/README.md +++ b/hexagonal/README.md @@ -29,9 +29,6 @@ Use Hexagonal Architecture pattern when ## Tutorials * [Build Maintainable Systems With Hexagonal Architecture](http://java-design-patterns.com/blog/build-maintainable-systems-with-hexagonal-architecture/) -## Presentations -* [Hexagonal Architecture](https://github.com/iluwatar/java-design-patterns/tree/master/hexagonal/etc/presentation.html) - ## Real world examples * [Apache Isis](https://isis.apache.org/) builds generic UI and REST API directly from the underlying domain objects diff --git a/hexagonal/etc/layers.png b/hexagonal/etc/layers.png deleted file mode 100644 index cb5a9c90bbe953ff87197bfb1834c34fac450f3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15887 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 Kh}Vc32LC_vUU`lH diff --git a/hexagonal/etc/ports_and_adapters.png b/hexagonal/etc/ports_and_adapters.png deleted file mode 100644 index d285045dea68721c586bbfae5d303265f738eea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34860 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 diff --git a/hexagonal/etc/ports_and_adapters.xml b/hexagonal/etc/ports_and_adapters.xml deleted file mode 100644 index 83edb95e0..000000000 --- a/hexagonal/etc/ports_and_adapters.xml +++ /dev/null @@ -1,25 +0,0 @@ - -7Zpdk6I4FIZ/jbdbJAHEyx7nY/diqrqqd2tnLiOJSDUSK6ZHe3/9BkmUfFiDDqBM2TcNBwLxOe85nBOYoPl6/4XjzeorI7SYwIDsJ+jjBEKA4kj+qyzvtWUag9qQ8Zyok06Gl/w/qoyBsr7lhG6NEwVjhcg3pjFlZUlTYdgw52xnnrZkhXnXDc6oY3hJceFa/82JWNXWJApO9j9pnq30nUGgjixw+ppx9laq+00gWh7+6sNrrK+lzt+uMGG7hgl9mqA5Z0zUW+v9nBYVW42tHvf5zNHjvDktRZsBqB7wAxdvVM/4MC/xrlnIKW6qzRXd44yVE/RhQ3m+poLyk/X5ZPqwW+WCvmxwWo3aSYFI20qsC7kH5Ka6I+WC7s/OGhxZSI1RJi/N3+UpagBMFD4lL6D3dydnIa2lVcNRMFZGrASSHa99giQ3FCc/MzhKZmgaGcyOKBrMAPQwO2r7V5iFDrM549ThJgfJEKc/B7LMi2LOCsYP46oYg2kq7VvB2SttHCHxIo7ibhCGATARJshBqDNfk2AXoot+Lrpr4RFMk6UXXpwmdLHsCF5s6W/qwkMe+aEO4MW/GzwEPQmvJ3jT0cMDMxNeGA0GLxk7PDQ1H7VDKm82fnh2zoODwdPlz3jphdCUHoyGkx5oUeRdTS+iCQl99BK4QHFHxUoUWfQ89V5v9Fq0FXdOz9ZeMCC9Nk/ckjxVfa7cK1lJTWJ0n4tvje3vcjuotks5k2/Nne/6rJJ8zqsJHQ7Vd6PE6ZEtenJG7I2n1KhQBeYZFU0duJAbECMPRG3jtMAi/2HOwkdW3eGZ5XJ+Z7vECFjOqWevRjWbZOtCCJkXCu2Cvv7NzoUOjj7+7Ha+b1MwXOz7P6IefQwfPr7Qx33WNYNkR5s60nXuANkR9lnXDEIPWc8WNBvu2aJn+8v5JfDkF/V0Ac2nS3e5J/Hkntkj91yWe7S7O/U/OO/9/nzfWC5/+L6d70dfldsrOSEcbiXHs4R9ZeTUGdEXO41E2mX0TD3Rc1+Vue2gq6Mn6S963BX4Z8bF1hGBlLcwPW/GhFJGM4CUCRd5VsrdVDrz8FaoCpY8xcWTOrDOCSnOBWcH8YVmoYHzGDgNWYS+12pdxJe7SP/PVlKQZ1Q0ltVvtVEfXrRSojD3/w4NALvudd9hAN97x7ALQO6ywN90WwUDzqiS903h2CvFiZucZ32xcdvmv6RqMi6zFCtvjuZY4et851lN6g2N221+xAIv8Pb28RQHJhcwG04yOrU1uHxl6au0kLvBYz3dYOTi6S3doPF2irpKNAqe2I96mIIHWJ6Mr20XgF059dcuoD5axWEEoOsRQwDThwAuFECbfvE+Ox5dlxkCSB4CuFAAXbW8vpcRvldRHT4CfAK46WrhKAXQ5quzOxUAdAWAbrpkOEoBuE35E8Eb2Y//XuseVh+CPP1ZR+secvf0dXftkdMn9OjT/w== \ No newline at end of file diff --git a/hexagonal/etc/presentation.html b/hexagonal/etc/presentation.html deleted file mode 100644 index 35aca2bd3..000000000 --- a/hexagonal/etc/presentation.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Title - - - - - - - - - - diff --git a/proxy/README.md b/proxy/README.md index e0628344a..71eba2280 100644 --- a/proxy/README.md +++ b/proxy/README.md @@ -129,9 +129,6 @@ are several common situations in which the Proxy pattern is applicable ## Tutorials * [Controlling Access With Proxy Pattern](http://java-design-patterns.com/blog/controlling-access-with-proxy-pattern/) -## Presentations -* [Proxy](https://github.com/iluwatar/java-design-patterns/tree/master/proxy/etc/presentation.html) - ## Real world examples * [java.lang.reflect.Proxy](http://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Proxy.html) diff --git a/proxy/etc/presentation.html b/proxy/etc/presentation.html deleted file mode 100644 index 20061c2c7..000000000 --- a/proxy/etc/presentation.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - Title - - - - - - - - - diff --git a/proxy/etc/proxy-concept.png b/proxy/etc/proxy-concept.png deleted file mode 100644 index dac5d954bc58e9c59ded9f3963618d75a95d1b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24957 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 diff --git a/proxy/etc/proxy-concept.xml b/proxy/etc/proxy-concept.xml deleted file mode 100644 index 14ade9c09..000000000 --- a/proxy/etc/proxy-concept.xml +++ /dev/null @@ -1,25 +0,0 @@ - -7Vhtb5swEP41kbYPnQJuaPexeVv3YVK1aur60YEL8WowM05K+utnYxswkC6p2rSbmkoNfnx3vpfnLsAATZLiC8fZ6huLgA78YVQM0HTg+x4KPPmlkK1GziwQcxIZoRq4Jg9gwKFB1ySC3BEUjFFBMhcMWZpCKBwMc87uXbElo+6pGY6hA1yHmHbRGxKJlUbPR8MavwQSr+zJ3tDsLHB4F3O2Ts15Ax8ty4/eTrC1ZeTzFY7YfQNCswGacMaEvkqKCVCVW5s2rTffsVv5zSEV+yica4UNpmuwHgdUqo4z5Z3YmowEv9fKpXGCeUzSAbqQu8OskP8lWAam8BPBMr132tgTUIgTTEls9ELpG/DapryKzXd5MmkAOJEGx7S7+qpsLHEIFeyqOBZl/KR9yoJ3EAtcrxe/FKtq7UVbVmJZG1txlTLLZRudtzvQJ6WYwlI0crzLdje8PpdfxgMlW9b4ww15wDz6qKU3TLJuT/d8xzF/A1wQ2Z4XmkXTkmdjw6mpdmjMpNSSlt20JJLlaLxkqTDDxfPNeo4TQtVYugS6AWVVlU4kVAkpGak6YZTx8mTbvWicC87uoLEzLD+KahxHRMbb2Juezrz5qIpEuQ/Fzhb1qsaXAxVYAoJvpYhR8M/NrDCz1A6h+3owVeNk5Q4lMxDNMIwr0/VAkBdmJvTPB+vumxoQVTd+B0yP1awR2fQGbFOuHPcf68g8w+lBPSLddnUquPTl9VvlhYmPfJf4fcz3TnuYHzwH8f23TPwrzortO+X/O8oHnkv5s9ERGY/eIuN336VNqCrE/k3wj99SzAL19zw0G70iy7pPHLNCQBrlnQpJ8EI9y8nVgrLwTsYuIZv8QC/nZVmmQzfjMg98+1Phn0Z2eWv3CiIaW3J1awxoDyDqPBu28iq9ZGsegnuLJCTtQTQeq7rpbybYJpMDxYJs3CP7MmzMXTGiWL+jlAi1aqQ9NUrNB8GWHd/7iyEdXsdQWe8qxP0o8PmoFPCaBKiL/tOoVAQodw5v1SeSxn8nzUGkQd37sR85PEYYlkHq8kXN6wjnK4gMLZp0MZTwOpSoZ0mXSE8sPnov/mHF77s12V35lKVQ9izmomd8NOZFKWLWbULs8RPSJcvz/YToEI/CiKD1hqF643AsSsgi4W1DLFMC+eEO1wzTFvfkm1zWb1y1eP1aG83+AA== \ No newline at end of file From 3b1a28149bba38e25de8f2df1a4ffa949865cf12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=C3=B3ra=20D=C3=A9r?= <6597652+leonorader@users.noreply.github.com> Date: Thu, 31 Oct 2019 18:54:13 +0100 Subject: [PATCH 44/53] decrease number of checkstyle errors in singleton, strategy and visitor patterns #1021 (#1054) * fix checkstlye errors - visitor pattern * fix checkstlye errors - strategy pattern * fix checkstlye errors - singleton pattern --- .../main/java/com/iluwatar/singleton/App.java | 52 +++++++++---------- .../iluwatar/singleton/EnumIvoryTower.java | 6 +-- .../InitializingOnDemandHolderIdiom.java | 22 ++++---- .../ThreadSafeDoubleCheckLocking.java | 28 +++++----- .../ThreadSafeLazyLoadedIvoryTower.java | 8 +-- .../java/com/iluwatar/singleton/AppTest.java | 4 +- .../singleton/EnumIvoryTowerTest.java | 4 +- .../InitializingOnDemandHolderIdiomTest.java | 7 +-- .../iluwatar/singleton/IvoryTowerTest.java | 4 +- .../com/iluwatar/singleton/SingletonTest.java | 30 +++++------ .../ThreadSafeDoubleCheckLockingTest.java | 13 ++--- .../ThreadSafeLazyLoadedIvoryTowerTest.java | 7 +-- .../main/java/com/iluwatar/strategy/App.java | 18 +++---- .../com/iluwatar/strategy/DragonSlayer.java | 2 - .../strategy/DragonSlayingStrategy.java | 2 - .../com/iluwatar/strategy/MeleeStrategy.java | 2 - .../iluwatar/strategy/ProjectileStrategy.java | 2 - .../com/iluwatar/strategy/SpellStrategy.java | 2 - .../java/com/iluwatar/strategy/AppTest.java | 4 +- .../iluwatar/strategy/DragonSlayerTest.java | 10 ++-- .../strategy/DragonSlayingStrategyTest.java | 45 ++++++++-------- .../main/java/com/iluwatar/visitor/App.java | 13 +++-- .../java/com/iluwatar/visitor/Commander.java | 4 +- .../iluwatar/visitor/CommanderVisitor.java | 4 +- .../java/com/iluwatar/visitor/Sergeant.java | 4 +- .../com/iluwatar/visitor/SergeantVisitor.java | 4 +- .../java/com/iluwatar/visitor/Soldier.java | 4 +- .../com/iluwatar/visitor/SoldierVisitor.java | 4 +- .../main/java/com/iluwatar/visitor/Unit.java | 4 +- .../com/iluwatar/visitor/UnitVisitor.java | 2 - .../java/com/iluwatar/visitor/AppTest.java | 4 +- .../com/iluwatar/visitor/CommanderTest.java | 4 +- .../visitor/CommanderVisitorTest.java | 4 +- .../com/iluwatar/visitor/SergeantTest.java | 4 +- .../iluwatar/visitor/SergeantVisitorTest.java | 4 +- .../com/iluwatar/visitor/SoldierTest.java | 4 +- .../iluwatar/visitor/SoldierVisitorTest.java | 4 +- .../java/com/iluwatar/visitor/UnitTest.java | 18 +++---- .../com/iluwatar/visitor/VisitorTest.java | 22 ++++---- 39 files changed, 182 insertions(+), 201 deletions(-) diff --git a/singleton/src/main/java/com/iluwatar/singleton/App.java b/singleton/src/main/java/com/iluwatar/singleton/App.java index b085bc8af..604b81184 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/App.java +++ b/singleton/src/main/java/com/iluwatar/singleton/App.java @@ -27,40 +27,40 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Singleton pattern ensures that the class can have only one existing instance per Java classloader - * instance and provides global access to it. - *

- * One of the risks of this pattern is that bugs resulting from setting a singleton up in a + *

Singleton pattern ensures that the class can have only one existing instance per Java + * classloader instance and provides global access to it.

+ * + *

One of the risks of this pattern is that bugs resulting from setting a singleton up in a * distributed environment can be tricky to debug, since it will work fine if you debug with a * single classloader. Additionally, these problems can crop up a while after the implementation of * a singleton, since they may start out synchronous and only become async with time, so you it may - * not be clear why you are seeing certain changes in behaviour. - *

- * There are many ways to implement the Singleton. The first one is the eagerly initialized instance - * in {@link IvoryTower}. Eager initialization implies that the implementation is thread safe. If - * you can afford giving up control of the instantiation moment, then this implementation will suit - * you fine. - *

- * The other option to implement eagerly initialized Singleton is enum based Singleton. The example - * is found in {@link EnumIvoryTower}. At first glance the code looks short and simple. However, you - * should be aware of the downsides including committing to implementation strategy, extending the - * enum class, serializability and restrictions to coding. These are extensively discussed in Stack - * Overflow: + * not be clear why you are seeing certain changes in behaviour.

+ * + *

There are many ways to implement the Singleton. The first one is the eagerly initialized + * instance in {@link IvoryTower}. Eager initialization implies that the implementation is thread + * safe. If you can afford giving up control of the instantiation moment, then this implementation + * will suit you fine.

+ * + *

The other option to implement eagerly initialized Singleton is enum based Singleton. The + * example is found in {@link EnumIvoryTower}. At first glance the code looks short and simple. + * However, you should be aware of the downsides including committing to implementation strategy, + * extending the enum class, serializability and restrictions to coding. These are extensively + * discussed in Stack Overflow: * http://programmers.stackexchange.com/questions/179386/what-are-the-downsides-of-implementing - * -a-singleton-with-javas-enum - *

- * {@link ThreadSafeLazyLoadedIvoryTower} is a Singleton implementation that is initialized on + * -a-singleton-with-javas-enum

+ * + *

{@link ThreadSafeLazyLoadedIvoryTower} is a Singleton implementation that is initialized on * demand. The downside is that it is very slow to access since the whole access method is - * synchronized. - *

- * Another Singleton implementation that is initialized on demand is found in + * synchronized.

+ * + *

Another Singleton implementation that is initialized on demand is found in * {@link ThreadSafeDoubleCheckLocking}. It is somewhat faster than * {@link ThreadSafeLazyLoadedIvoryTower} since it doesn't synchronize the whole access method but - * only the method internals on specific conditions. - *

- * Yet another way to implement thread safe lazily initialized Singleton can be found in + * only the method internals on specific conditions.

+ * + *

Yet another way to implement thread safe lazily initialized Singleton can be found in * {@link InitializingOnDemandHolderIdiom}. However, this implementation requires at least Java 8 - * API level to work. + * API level to work.

*/ public class App { diff --git a/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java index 2028b7d76..753201dba 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/EnumIvoryTower.java @@ -24,10 +24,10 @@ package com.iluwatar.singleton; /** - * Enum based singleton implementation. Effective Java 2nd Edition (Joshua Bloch) p. 18 + *

Enum based singleton implementation. Effective Java 2nd Edition (Joshua Bloch) p. 18

* - * This implementation is thread safe, however adding any other method and its thread safety - * is developers responsibility. + *

This implementation is thread safe, however adding any other method and its thread safety + * is developers responsibility.

*/ public enum EnumIvoryTower { diff --git a/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java b/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java index dfd4951f7..faf53a63e 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java +++ b/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java @@ -24,16 +24,16 @@ package com.iluwatar.singleton; /** - * The Initialize-on-demand-holder idiom is a secure way of creating a lazy initialized singleton - * object in Java. - *

- * The technique is as lazy as possible and works in all known versions of Java. It takes advantage - * of language guarantees about class initialization, and will therefore work correctly in all - * Java-compliant compilers and virtual machines. - *

- * The inner class is referenced no earlier (and therefore loaded no earlier by the class loader) than - * the moment that getInstance() is called. Thus, this solution is thread-safe without requiring special - * language constructs (i.e. volatile or synchronized). + *

The Initialize-on-demand-holder idiom is a secure way of creating a lazy initialized singleton + * object in Java.

+ * + *

The technique is as lazy as possible and works in all known versions of Java. It takes + * advantage of language guarantees about class initialization, and will therefore work correctly + * in all Java-compliant compilers and virtual machines.

+ * + *

The inner class is referenced no earlier (and therefore loaded no earlier by the class loader) + * than the moment that getInstance() is called. Thus, this solution is thread-safe without + * requiring special language constructs (i.e. volatile or synchronized).

* */ public final class InitializingOnDemandHolderIdiom { @@ -44,6 +44,8 @@ public final class InitializingOnDemandHolderIdiom { private InitializingOnDemandHolderIdiom() {} /** + * Sigleton instance. + * * @return Singleton instance */ public static InitializingOnDemandHolderIdiom getInstance() { diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java index a1ae935a3..f5d47380f 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java @@ -24,11 +24,11 @@ package com.iluwatar.singleton; /** - * Double check locking - *

- * http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html - *

- * Broken under Java 1.4. + *

Double check locking.

+ * + *

http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

+ * + *

Broken under Java 1.4.

* * @author mortezaadi@gmail.com */ @@ -60,17 +60,21 @@ public final class ThreadSafeDoubleCheckLocking { // 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. + // Check if singleton instance is initialized. + // If it is initialized then we can return the instance. if (result == null) { - // It is not initialized but we cannot be sure because some other thread might have initialized it - // in the meanwhile. So to make sure we need to lock on an object to get mutual exclusion. + // It is not initialized but we cannot be sure because some other thread might have + // initialized it in the meanwhile. + // So to make sure we need to lock on an object to get mutual exclusion. synchronized (ThreadSafeDoubleCheckLocking.class) { - // Again assign the instance to local variable to check if it was initialized by some other thread - // while current thread was blocked to enter the locked zone. If it was initialized then we can - // return the previously created instance just like the previous null check. + // Again assign the instance to local variable to check if it was initialized by some + // other thread while current thread was blocked to enter the locked zone. + // If it was initialized then we can return the previously created instance + // just like the previous null check. result = instance; if (result == null) { - // The instance is still not initialized so we can safely (no other thread can enter this zone) + // The instance is still not initialized so we can safely + // (no other thread can enter this zone) // create an instance and make it our singleton instance. instance = result = new ThreadSafeDoubleCheckLocking(); } diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java index 82580acf6..dd6d05fea 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java @@ -24,11 +24,11 @@ package com.iluwatar.singleton; /** - * Thread-safe Singleton class. The instance is lazily initialized and thus needs synchronization - * mechanism. + *

Thread-safe Singleton class. The instance is lazily initialized and thus needs synchronization + * mechanism.

* - * Note: if created by reflection then a singleton will not be created but multiple options in the - * same classloader + *

Note: if created by reflection then a singleton will not be created but multiple options + * in the same classloader

*/ public final class ThreadSafeLazyLoadedIvoryTower { diff --git a/singleton/src/test/java/com/iluwatar/singleton/AppTest.java b/singleton/src/test/java/com/iluwatar/singleton/AppTest.java index 66974e472..75043eae0 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/AppTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/AppTest.java @@ -26,9 +26,7 @@ package com.iluwatar.singleton; import org.junit.jupiter.api.Test; /** - * - * Application test - * + * Application test. */ public class AppTest { diff --git a/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java b/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java index 49dfae6b0..6a19ca752 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/EnumIvoryTowerTest.java @@ -24,14 +24,14 @@ package com.iluwatar.singleton; /** - * Date: 12/29/15 - 19:20 PM + * Date: 12/29/15 - 19:20 PM. * * @author Jeroen Meulemeester */ public class EnumIvoryTowerTest extends SingletonTest { /** - * Create a new singleton test instance using the given 'getInstance' method + * Create a new singleton test instance using the given 'getInstance' method. */ public EnumIvoryTowerTest() { super(() -> EnumIvoryTower.INSTANCE); diff --git a/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java b/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java index d7021dac7..e85555012 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiomTest.java @@ -24,14 +24,15 @@ package com.iluwatar.singleton; /** - * Date: 12/29/15 - 19:22 PM + * Date: 12/29/15 - 19:22 PM. * * @author Jeroen Meulemeester */ -public class InitializingOnDemandHolderIdiomTest extends SingletonTest { +public class InitializingOnDemandHolderIdiomTest + extends SingletonTest { /** - * Create a new singleton test instance using the given 'getInstance' method + * Create a new singleton test instance using the given 'getInstance' method. */ public InitializingOnDemandHolderIdiomTest() { super(InitializingOnDemandHolderIdiom::getInstance); diff --git a/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java b/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java index ac5a145cb..de4dc3a18 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/IvoryTowerTest.java @@ -24,14 +24,14 @@ package com.iluwatar.singleton; /** - * Date: 12/29/15 - 19:23 PM + * Date: 12/29/15 - 19:23 PM. * * @author Jeroen Meulemeester */ public class IvoryTowerTest extends SingletonTest { /** - * Create a new singleton test instance using the given 'getInstance' method + * Create a new singleton test instance using the given 'getInstance' method. */ public IvoryTowerTest() { super(IvoryTower::getInstance); diff --git a/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java b/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java index e98796aef..4dc1ecdff 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/SingletonTest.java @@ -23,8 +23,10 @@ package com.iluwatar.singleton; -import org.junit.jupiter.api.Disabled; -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.assertSame; +import static org.junit.jupiter.api.Assertions.assertTimeout; import java.util.ArrayList; import java.util.List; @@ -34,19 +36,17 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.function.Supplier; -import static java.time.Duration.ofMillis; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.assertTimeout; +import org.junit.jupiter.api.Test; /** - * This class provides several test case that test singleton construction. + *

This class provides several test case that test singleton construction.

* - * The first proves that multiple calls to the singleton getInstance object are the same when called - * in the SAME thread. The second proves that multiple calls to the singleton getInstance object are - * the same when called in the DIFFERENT thread. + *

The first proves that multiple calls to the singleton getInstance object are the same when + * called in the SAME thread. The second proves that multiple calls to the singleton getInstance + * object are the same when called in the DIFFERENT thread.

+ * + *

Date: 12/29/15 - 19:25 PM

* - * Date: 12/29/15 - 19:25 PM * @param Supplier method generating singletons * @author Jeroen Meulemeester * @author Richard Jones @@ -54,12 +54,12 @@ import static org.junit.jupiter.api.Assertions.assertTimeout; public abstract class SingletonTest { /** - * The singleton's getInstance method + * The singleton's getInstance method. */ private final Supplier singletonInstanceMethod; /** - * Create a new singleton test instance using the given 'getInstance' method + * Create a new singleton test instance using the given 'getInstance' method. * * @param singletonInstanceMethod The singleton's getInstance method */ @@ -68,7 +68,7 @@ public abstract class SingletonTest { } /** - * Test the singleton in a non-concurrent setting + * Test the singleton in a non-concurrent setting. */ @Test public void testMultipleCallsReturnTheSameObjectInSameThread() { @@ -83,7 +83,7 @@ public abstract class SingletonTest { } /** - * Test singleton instance in a concurrent setting + * Test singleton instance in a concurrent setting. */ @Test public void testMultipleCallsReturnTheSameObjectInDifferentThreads() throws Exception { diff --git a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java index fff516ad3..8babb081e 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLockingTest.java @@ -23,34 +23,35 @@ package com.iluwatar.singleton; -import org.junit.Test; - import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; +import org.junit.Test; + /** - * Date: 12/29/15 - 19:26 PM + * Date: 12/29/15 - 19:26 PM. * * @author Jeroen Meulemeester */ public class ThreadSafeDoubleCheckLockingTest extends SingletonTest { /** - * Create a new singleton test instance using the given 'getInstance' method + * Create a new singleton test instance using the given 'getInstance' method. */ public ThreadSafeDoubleCheckLockingTest() { super(ThreadSafeDoubleCheckLocking::getInstance); } /** - * Test creating new instance by refection + * Test creating new instance by refection. */ @Test(expected = InvocationTargetException.class) public void testCreatingNewInstanceByRefection() throws Exception { ThreadSafeDoubleCheckLocking instance1 = ThreadSafeDoubleCheckLocking.getInstance(); Constructor constructor = ThreadSafeDoubleCheckLocking.class.getDeclaredConstructor(); constructor.setAccessible(true); - ThreadSafeDoubleCheckLocking instance2 = (ThreadSafeDoubleCheckLocking) constructor.newInstance(null); + ThreadSafeDoubleCheckLocking instance2 = + (ThreadSafeDoubleCheckLocking) constructor.newInstance(null); } } \ No newline at end of file diff --git a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java index 7ca1caf3d..da04722fc 100644 --- a/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java +++ b/singleton/src/test/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTowerTest.java @@ -24,14 +24,15 @@ package com.iluwatar.singleton; /** - * Date: 12/29/15 - 19:26 PM + * Date: 12/29/15 - 19:26 PM. * * @author Jeroen Meulemeester */ -public class ThreadSafeLazyLoadedIvoryTowerTest extends SingletonTest { +public class ThreadSafeLazyLoadedIvoryTowerTest + extends SingletonTest { /** - * Create a new singleton test instance using the given 'getInstance' method + * Create a new singleton test instance using the given 'getInstance' method. */ public ThreadSafeLazyLoadedIvoryTowerTest() { super(ThreadSafeLazyLoadedIvoryTower::getInstance); diff --git a/strategy/src/main/java/com/iluwatar/strategy/App.java b/strategy/src/main/java/com/iluwatar/strategy/App.java index c6bd3aa3b..c526c7917 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/App.java +++ b/strategy/src/main/java/com/iluwatar/strategy/App.java @@ -28,15 +28,15 @@ import org.slf4j.LoggerFactory; /** * - * 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. - *

- * Before Java 8 the Strategies needed to be separate classes forcing the developer + *

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.

+ * + *

Before Java 8 the Strategies needed to be separate classes forcing the developer * to write lots of boilerplate code. With modern Java it is easy to pass behavior - * with method references and lambdas making the code shorter and more readable. - *

- * In this example ({@link DragonSlayingStrategy}) encapsulates an algorithm. The containing object - * ({@link DragonSlayer}) can alter its behavior by changing its strategy. + * with method references and lambdas making the code shorter and more readable.

+ * + *

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

* */ public class App { @@ -44,7 +44,7 @@ public class App { private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** - * Program entry point + * Program entry point. * * @param args command line args */ diff --git a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java index 0455edaca..f6b91d967 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java +++ b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayer.java @@ -24,9 +24,7 @@ package com.iluwatar.strategy; /** - * * DragonSlayer uses different strategies to slay the dragon. - * */ public class DragonSlayer { diff --git a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java index eb89523ad..537b521f4 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/DragonSlayingStrategy.java @@ -24,9 +24,7 @@ package com.iluwatar.strategy; /** - * * Strategy interface. - * */ @FunctionalInterface public interface DragonSlayingStrategy { diff --git a/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java index 8cb2f24c1..12f467b07 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/MeleeStrategy.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * * Melee strategy. - * */ public class MeleeStrategy implements DragonSlayingStrategy { diff --git a/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java index 4b6031ddf..769b0d7d9 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/ProjectileStrategy.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * * Projectile strategy. - * */ public class ProjectileStrategy implements DragonSlayingStrategy { diff --git a/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java index ffe85c7a2..dfa47f72b 100644 --- a/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java +++ b/strategy/src/main/java/com/iluwatar/strategy/SpellStrategy.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * * Spell strategy. - * */ public class SpellStrategy implements DragonSlayingStrategy { diff --git a/strategy/src/test/java/com/iluwatar/strategy/AppTest.java b/strategy/src/test/java/com/iluwatar/strategy/AppTest.java index 598085ce4..713eecf43 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/AppTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/AppTest.java @@ -26,9 +26,7 @@ package com.iluwatar.strategy; import org.junit.jupiter.api.Test; /** - * - * Application test - * + * Application test. */ public class AppTest { diff --git a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java index 52dfb3ff1..c95612683 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayerTest.java @@ -23,21 +23,21 @@ package com.iluwatar.strategy; -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 org.junit.jupiter.api.Test; + /** - * Date: 12/29/15 - 10:50 PM + * Date: 12/29/15 - 10:50 PM. * * @author Jeroen Meulemeester */ public class DragonSlayerTest { /** - * Verify if the dragon slayer uses the strategy during battle + * Verify if the dragon slayer uses the strategy during battle. */ @Test public void testGoToBattle() { @@ -50,7 +50,7 @@ public class DragonSlayerTest { } /** - * Verify if the dragon slayer uses the new strategy during battle after a change of strategy + * Verify if the dragon slayer uses the new strategy during battle after a change of strategy. */ @Test public void testChangeStrategy() { diff --git a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java index 67e4b92cc..15106cdd9 100644 --- a/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java +++ b/strategy/src/test/java/com/iluwatar/strategy/DragonSlayingStrategyTest.java @@ -23,45 +23,48 @@ package com.iluwatar.strategy; +import static org.junit.jupiter.api.Assertions.assertEquals; + import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.AppenderBase; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.LoggerFactory; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; - /** - * Date: 12/29/15 - 10:58 PM + * Date: 12/29/15 - 10:58 PM. * * @author Jeroen Meulemeester */ public class DragonSlayingStrategyTest { /** + * Assembles test parameters. + * * @return The test parameters for each cycle */ static Collection dataProvider() { - return List.of( - new Object[]{ - new MeleeStrategy(), - "With your Excalibur you sever the dragon's head!" - }, - new Object[]{ - new ProjectileStrategy(), - "You shoot the dragon with the magical crossbow and it falls dead on the ground!" - }, - new Object[]{ - new SpellStrategy(), - "You cast the spell of disintegration and the dragon vaporizes in a pile of dust!" - } + return List.of( + new Object[]{ + new MeleeStrategy(), + "With your Excalibur you sever the dragon's head!" + }, + new Object[]{ + new ProjectileStrategy(), + "You shoot the dragon with the magical crossbow and it falls dead on the ground!" + }, + new Object[]{ + new SpellStrategy(), + "You cast the spell of disintegration and the dragon vaporizes in a pile of dust!" + } ); } @@ -79,7 +82,7 @@ public class DragonSlayingStrategyTest { /** - * Test if executing the strategy gives the correct response + * Test if executing the strategy gives the correct response. */ @ParameterizedTest @MethodSource("dataProvider") diff --git a/visitor/src/main/java/com/iluwatar/visitor/App.java b/visitor/src/main/java/com/iluwatar/visitor/App.java index 7b33f7e4d..7f0abb0f0 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/App.java +++ b/visitor/src/main/java/com/iluwatar/visitor/App.java @@ -24,19 +24,18 @@ package com.iluwatar.visitor; /** - * - * Visitor pattern defines mechanism to apply operations on nodes in hierarchy. New operations can - * be added without altering the node interface. - *

- * In this example there is a unit hierarchy beginning from {@link Commander}. This hierarchy is + *

Visitor pattern defines mechanism to apply operations on nodes in hierarchy. New operations + * can be added without altering the node interface.

+ * + *

In this example there is a unit hierarchy beginning from {@link Commander}. This hierarchy is * traversed by visitors. {@link SoldierVisitor} applies its operation on {@link Soldier}s, - * {@link SergeantVisitor} on {@link Sergeant}s and so on. + * {@link SergeantVisitor} on {@link Sergeant}s and so on.

* */ public class App { /** - * Program entry point + * Program entry point. * * @param args command line args */ diff --git a/visitor/src/main/java/com/iluwatar/visitor/Commander.java b/visitor/src/main/java/com/iluwatar/visitor/Commander.java index 938c42f8d..782d0116c 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/Commander.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Commander.java @@ -24,9 +24,7 @@ package com.iluwatar.visitor; /** - * - * Commander - * + * Commander. */ public class Commander extends Unit { diff --git a/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java index 19ea5846e..c34c8ed9e 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/CommanderVisitor.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * - * CommanderVisitor - * + * CommanderVisitor. */ public class CommanderVisitor implements UnitVisitor { diff --git a/visitor/src/main/java/com/iluwatar/visitor/Sergeant.java b/visitor/src/main/java/com/iluwatar/visitor/Sergeant.java index 95de25772..bdc96892a 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/Sergeant.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Sergeant.java @@ -24,9 +24,7 @@ package com.iluwatar.visitor; /** - * - * Sergeant - * + * Sergeant. */ public class Sergeant extends Unit { diff --git a/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java index fdcdce5ca..59fb405e5 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/SergeantVisitor.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * - * SergeantVisitor - * + * SergeantVisitor. */ public class SergeantVisitor implements UnitVisitor { diff --git a/visitor/src/main/java/com/iluwatar/visitor/Soldier.java b/visitor/src/main/java/com/iluwatar/visitor/Soldier.java index 7ab4a26b9..a2a812416 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/Soldier.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Soldier.java @@ -24,9 +24,7 @@ package com.iluwatar.visitor; /** - * - * Soldier - * + * Soldier. */ public class Soldier extends Unit { diff --git a/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java index 6585246a0..1f19a6458 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/SoldierVisitor.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * - * SoldierVisitor - * + * SoldierVisitor. */ public class SoldierVisitor implements UnitVisitor { diff --git a/visitor/src/main/java/com/iluwatar/visitor/Unit.java b/visitor/src/main/java/com/iluwatar/visitor/Unit.java index 49ddb8a89..318e84262 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/Unit.java +++ b/visitor/src/main/java/com/iluwatar/visitor/Unit.java @@ -24,9 +24,7 @@ package com.iluwatar.visitor; /** - * * Interface for the nodes in hierarchy. - * */ public abstract class Unit { @@ -37,7 +35,7 @@ public abstract class Unit { } /** - * Accept visitor + * Accept visitor. */ public void accept(UnitVisitor visitor) { for (var child : children) { diff --git a/visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java b/visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java index 086075e5e..8300fd1fe 100644 --- a/visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java +++ b/visitor/src/main/java/com/iluwatar/visitor/UnitVisitor.java @@ -24,9 +24,7 @@ package com.iluwatar.visitor; /** - * * Visitor interface. - * */ public interface UnitVisitor { diff --git a/visitor/src/test/java/com/iluwatar/visitor/AppTest.java b/visitor/src/test/java/com/iluwatar/visitor/AppTest.java index fb2fdd123..45804a9c6 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/AppTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/AppTest.java @@ -26,9 +26,7 @@ package com.iluwatar.visitor; import org.junit.jupiter.api.Test; /** - * - * Application test - * + * Application test. */ public class AppTest { diff --git a/visitor/src/test/java/com/iluwatar/visitor/CommanderTest.java b/visitor/src/test/java/com/iluwatar/visitor/CommanderTest.java index f3cf823fc..256a0cdbd 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/CommanderTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/CommanderTest.java @@ -27,14 +27,14 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; /** - * Date: 12/30/15 - 19:45 PM + * Date: 12/30/15 - 19:45 PM. * * @author Jeroen Meulemeester */ public class CommanderTest extends UnitTest { /** - * Create a new test instance for the given {@link Commander} + * Create a new test instance for the given {@link Commander}. */ public CommanderTest() { super(Commander::new); diff --git a/visitor/src/test/java/com/iluwatar/visitor/CommanderVisitorTest.java b/visitor/src/test/java/com/iluwatar/visitor/CommanderVisitorTest.java index ed46ac90a..935baa58d 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/CommanderVisitorTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/CommanderVisitorTest.java @@ -26,14 +26,14 @@ package com.iluwatar.visitor; import java.util.Optional; /** - * Date: 12/30/15 - 18:43 PM + * Date: 12/30/15 - 18:43 PM. * * @author Jeroen Meulemeester */ public class CommanderVisitorTest extends VisitorTest { /** - * Create a new test instance for the given visitor + * Create a new test instance for the given visitor. */ public CommanderVisitorTest() { super( diff --git a/visitor/src/test/java/com/iluwatar/visitor/SergeantTest.java b/visitor/src/test/java/com/iluwatar/visitor/SergeantTest.java index b2e3d5baf..fd977f2bc 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/SergeantTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/SergeantTest.java @@ -27,14 +27,14 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; /** - * Date: 12/30/15 - 19:45 PM + * Date: 12/30/15 - 19:45 PM. * * @author Jeroen Meulemeester */ public class SergeantTest extends UnitTest { /** - * Create a new test instance for the given {@link Sergeant} + * Create a new test instance for the given {@link Sergeant}. */ public SergeantTest() { super(Sergeant::new); diff --git a/visitor/src/test/java/com/iluwatar/visitor/SergeantVisitorTest.java b/visitor/src/test/java/com/iluwatar/visitor/SergeantVisitorTest.java index f7595b429..05eae49f2 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/SergeantVisitorTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/SergeantVisitorTest.java @@ -26,14 +26,14 @@ package com.iluwatar.visitor; import java.util.Optional; /** - * Date: 12/30/15 - 18:36 PM + * Date: 12/30/15 - 18:36 PM. * * @author Jeroen Meulemeester */ public class SergeantVisitorTest extends VisitorTest { /** - * Create a new test instance for the given visitor + * Create a new test instance for the given visitor. */ public SergeantVisitorTest() { super( diff --git a/visitor/src/test/java/com/iluwatar/visitor/SoldierTest.java b/visitor/src/test/java/com/iluwatar/visitor/SoldierTest.java index 713b190e2..3d2c7698f 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/SoldierTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/SoldierTest.java @@ -27,14 +27,14 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; /** - * Date: 12/30/15 - 19:45 PM + * Date: 12/30/15 - 19:45 PM. * * @author Jeroen Meulemeester */ public class SoldierTest extends UnitTest { /** - * Create a new test instance for the given {@link Soldier} + * Create a new test instance for the given {@link Soldier}. */ public SoldierTest() { super(Soldier::new); diff --git a/visitor/src/test/java/com/iluwatar/visitor/SoldierVisitorTest.java b/visitor/src/test/java/com/iluwatar/visitor/SoldierVisitorTest.java index e5572f1ee..653d814c5 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/SoldierVisitorTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/SoldierVisitorTest.java @@ -26,14 +26,14 @@ package com.iluwatar.visitor; import java.util.Optional; /** - * Date: 12/30/15 - 18:59 PM + * Date: 12/30/15 - 18:59 PM. * * @author Jeroen Meulemeester */ public class SoldierVisitorTest extends VisitorTest { /** - * Create a new test instance for the given visitor + * Create a new test instance for the given visitor. */ public SoldierVisitorTest() { super( diff --git a/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java b/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java index 4441570d4..7385ea5a7 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/UnitTest.java @@ -23,18 +23,18 @@ package com.iluwatar.visitor; -import org.junit.jupiter.api.Test; - -import java.util.Arrays; -import java.util.function.Function; - import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; +import java.util.Arrays; +import java.util.function.Function; + +import org.junit.jupiter.api.Test; + /** - * Date: 12/30/15 - 18:59 PM + * Date: 12/30/15 - 18:59 PM. * Test related to Units * @param Type of Unit * @author Jeroen Meulemeester @@ -42,12 +42,12 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; public abstract class UnitTest { /** - * Factory to create new instances of the tested unit + * Factory to create new instances of the tested unit. */ private final Function factory; /** - * Create a new test instance for the given unit type {@link U} + * Create a new test instance for the given unit type {@link U}. * * @param factory Factory to create new instances of the tested unit */ @@ -74,7 +74,7 @@ public abstract class UnitTest { } /** - * Verify if the correct visit method is called on the mock, depending on the tested instance + * Verify if the correct visit method is called on the mock, depending on the tested instance. * * @param unit The tested unit instance * @param mockedVisitor The mocked {@link UnitVisitor} who should have gotten a visit by the unit diff --git a/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java b/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java index c50c3822d..3c458f6f4 100644 --- a/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java +++ b/visitor/src/test/java/com/iluwatar/visitor/VisitorTest.java @@ -23,6 +23,8 @@ package com.iluwatar.visitor; +import static org.junit.jupiter.api.Assertions.assertEquals; + import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.AppenderBase; @@ -35,10 +37,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.LoggerFactory; -import static org.junit.jupiter.api.Assertions.assertEquals; - /** - * Date: 12/30/15 - 18:59 PM + * Date: 12/30/15 - 18:59 PM. * Test case for Visitor Pattern * @param Type of UnitVisitor * @author Jeroen Meulemeester @@ -58,34 +58,36 @@ public abstract class VisitorTest { } /** - * The tested visitor instance + * The tested visitor instance. */ private final V visitor; /** - * The optional expected response when being visited by a commander + * The optional expected response when being visited by a commander. */ private final Optional commanderResponse; /** - * The optional expected response when being visited by a sergeant + * The optional expected response when being visited by a sergeant. */ private final Optional sergeantResponse; /** - * The optional expected response when being visited by a soldier + * The optional expected response when being visited by a soldier. */ private final Optional soldierResponse; /** - * Create a new test instance for the given visitor + * Create a new test instance for the given visitor. * * @param commanderResponse The optional expected response when being visited by a commander * @param sergeantResponse The optional expected response when being visited by a sergeant * @param soldierResponse The optional expected response when being visited by a soldier */ - public VisitorTest(final V visitor, final Optional commanderResponse, - final Optional sergeantResponse, final Optional soldierResponse) { + public VisitorTest(final V visitor, + final Optional commanderResponse, + final Optional sergeantResponse, + final Optional soldierResponse) { this.visitor = visitor; this.commanderResponse = commanderResponse; From 55b0341c8dc28ab84412d535bee9ecbb461fa081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Thu, 31 Oct 2019 20:01:39 +0200 Subject: [PATCH 45/53] Fix remaining Checkstyle errors for Singleton --- .../iluwatar/singleton/InitializingOnDemandHolderIdiom.java | 3 ++- singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java b/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java index faf53a63e..205a7bd80 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java +++ b/singleton/src/main/java/com/iluwatar/singleton/InitializingOnDemandHolderIdiom.java @@ -41,7 +41,8 @@ public final class InitializingOnDemandHolderIdiom { /** * Private constructor. */ - private InitializingOnDemandHolderIdiom() {} + private InitializingOnDemandHolderIdiom() { + } /** * Sigleton instance. diff --git a/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java index c8d551404..0bc3af28b 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/IvoryTower.java @@ -31,7 +31,8 @@ public final class IvoryTower { /** * Private constructor so nobody can instantiate the class. */ - private IvoryTower() {} + private IvoryTower() { + } /** * Static to class instance of the class. From 1d4a7681e2d8699457c557fbab3d69d5f8aa105b Mon Sep 17 00:00:00 2001 From: Arpit Jain Date: Fri, 1 Nov 2019 23:31:30 +0530 Subject: [PATCH 46/53] Fix for Issue #549 : Add Fallbacks in Aggregator Service (#971) * Fix for Issue##549 Catch ClientProtocolException and Update Error Logs * Fix indentation, checkstyle errors * Fix for Issue #549 Add fallbacks in Aggregator service when other microservices fail * Make ProductInventoryClientImpl return null instead of zero in case of failure --- .../aggregator/microservices/Aggregator.java | 18 ++++++++++++++++-- .../microservices/ProductInventoryClient.java | 2 +- .../ProductInventoryClientImpl.java | 10 +++++++--- 3 files changed, 24 insertions(+), 6 deletions(-) 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 e96ac9d43..dbed50fc6 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 @@ -51,9 +51,23 @@ public class Aggregator { */ @RequestMapping(path = "/product", method = RequestMethod.GET) public Product getProduct() { + var product = new Product(); - product.setTitle(informationClient.getProductTitle()); - product.setProductInventories(inventoryClient.getProductInventories()); + String productTitle = informationClient.getProductTitle(); + Integer productInventory = inventoryClient.getProductInventories(); + + if (productTitle != null) { + product.setTitle(productTitle); + } else { + product.setTitle("Error: Fetching Product Title Failed"); //Fallback to error message + } + + if (productInventory != null) { + product.setProductInventories(productInventory); + } else { + product.setProductInventories(-1); //Fallback to default error inventory + } + return product; } diff --git a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java index ed325be00..22369350a 100644 --- a/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java +++ b/aggregator-microservices/aggregator-service/src/main/java/com/iluwatar/aggregator/microservices/ProductInventoryClient.java @@ -28,5 +28,5 @@ package com.iluwatar.aggregator.microservices; */ public interface ProductInventoryClient { - int getProductInventories(); + Integer getProductInventories(); } 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 c43fe84c6..fcd824de7 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 @@ -42,8 +42,8 @@ public class ProductInventoryClientImpl implements ProductInventoryClient { private static final Logger LOGGER = LoggerFactory.getLogger(ProductInventoryClientImpl.class); @Override - public int getProductInventories() { - var response = "0"; + public Integer getProductInventories() { + var response = ""; var request = HttpRequest.newBuilder().GET().uri(URI.create("http://localhost:51516/inventories")).build(); var client = HttpClient.newHttpClient(); @@ -55,6 +55,10 @@ public class ProductInventoryClientImpl implements ProductInventoryClient { } catch (InterruptedException ie) { LOGGER.error("InterruptedException Occurred", ie); } - return Integer.parseInt(response); + if("".equalsIgnoreCase(response)) { + return null; + } else { + return Integer.parseInt(response); + } } } From a8c77717842bf0b0cf3006caacf3308e1ceb7866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Fri, 1 Nov 2019 20:23:01 +0200 Subject: [PATCH 47/53] #1021 style changes for Specification --- .../com/iluwatar/specification/app/App.java | 35 ++++++++++--------- .../creature/AbstractCreature.java | 4 +-- .../specification/creature/Creature.java | 2 -- .../specification/creature/Dragon.java | 2 -- .../specification/creature/Goblin.java | 2 -- .../specification/creature/KillerBee.java | 2 -- .../specification/creature/Octopus.java | 2 -- .../specification/creature/Shark.java | 2 -- .../specification/creature/Troll.java | 2 -- .../specification/property/Color.java | 4 +-- .../specification/property/Movement.java | 2 -- .../iluwatar/specification/property/Size.java | 2 -- .../specification/selector/ColorSelector.java | 11 +++--- .../selector/MovementSelector.java | 11 +++--- .../specification/selector/SizeSelector.java | 11 +++--- 15 files changed, 33 insertions(+), 61 deletions(-) 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 00b371814..8ca7283c9 100644 --- a/specification/src/main/java/com/iluwatar/specification/app/App.java +++ b/specification/src/main/java/com/iluwatar/specification/app/App.java @@ -23,41 +23,44 @@ package com.iluwatar.specification.app; -import com.iluwatar.specification.creature.*; +import com.iluwatar.specification.creature.Creature; +import com.iluwatar.specification.creature.Dragon; +import com.iluwatar.specification.creature.Goblin; +import com.iluwatar.specification.creature.KillerBee; +import com.iluwatar.specification.creature.Octopus; +import com.iluwatar.specification.creature.Shark; +import com.iluwatar.specification.creature.Troll; import com.iluwatar.specification.property.Color; import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.selector.ColorSelector; import com.iluwatar.specification.selector.MovementSelector; +import java.util.List; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.stream.Collectors; - /** - * - * The central idea of the Specification pattern is to separate the statement of how to match a + *

The central idea of the Specification pattern is to separate the statement of how to match a * candidate, from the candidate object that it is matched against. As well as its usefulness in - * selection, it is also valuable for validation and for building to order. - *

- * In this example we have a pool of creatures with different properties. We then have defined - * separate selection rules (Specifications) that we apply to the collection and as output receive - * only the creatures that match the selection criteria. - *

- * http://martinfowler.com/apsupp/spec.pdf + * selection, it is also valuable for validation and for building to order.

* + *

In this example we have a pool of creatures with different properties. We then have defined + * separate selection rules (Specifications) that we apply to the collection and as output receive + * only the creatures that match the selection criteria.

+ * + *

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

*/ public class App { private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** - * Program entry point + * Program entry point. */ public static void main(String[] args) { // initialize creatures list - List creatures = - List.of(new Goblin(), new Octopus(), new Dragon(), new Shark(), new Troll(), new KillerBee()); + List creatures = List.of(new Goblin(), new Octopus(), new Dragon(), new Shark(), + new Troll(), new KillerBee()); // find all walking creatures LOGGER.info("Find all walking creatures"); List walkingCreatures = diff --git a/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java b/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java index 566885560..de7a41417 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/AbstractCreature.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Base class for concrete creatures. - * */ public abstract class AbstractCreature implements Creature { @@ -40,7 +38,7 @@ public abstract class AbstractCreature implements Creature { private Color color; /** - * Constructor + * Constructor. */ public AbstractCreature(String name, Size size, Movement movement, Color color) { this.name = name; diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Creature.java b/specification/src/main/java/com/iluwatar/specification/creature/Creature.java index c999f546d..3f8ccdfdb 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Creature.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Creature.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Creature interface. - * */ public interface Creature { diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java b/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java index 833b8522b..d4f5a7f23 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Dragon.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Dragon creature. - * */ public class Dragon extends AbstractCreature { diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java b/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java index 0153e21fe..0b145b737 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Goblin.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Goblin creature. - * */ public class Goblin extends AbstractCreature { diff --git a/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java b/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java index 04c416b7a..77f32c9f4 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/KillerBee.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * KillerBee creature. - * */ public class KillerBee extends AbstractCreature { diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java b/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java index bb2c5718b..6958f7fbd 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Octopus.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Octopus creature. - * */ public class Octopus extends AbstractCreature { diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Shark.java b/specification/src/main/java/com/iluwatar/specification/creature/Shark.java index 56ec1651a..b9e161da4 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Shark.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Shark.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Shark creature. - * */ public class Shark extends AbstractCreature { diff --git a/specification/src/main/java/com/iluwatar/specification/creature/Troll.java b/specification/src/main/java/com/iluwatar/specification/creature/Troll.java index 1d6a79bb8..3f416bdd1 100644 --- a/specification/src/main/java/com/iluwatar/specification/creature/Troll.java +++ b/specification/src/main/java/com/iluwatar/specification/creature/Troll.java @@ -28,9 +28,7 @@ import com.iluwatar.specification.property.Movement; import com.iluwatar.specification.property.Size; /** - * * Troll creature. - * */ public class Troll extends AbstractCreature { diff --git a/specification/src/main/java/com/iluwatar/specification/property/Color.java b/specification/src/main/java/com/iluwatar/specification/property/Color.java index 9f64e1b77..00f7007ff 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Color.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Color.java @@ -24,9 +24,7 @@ package com.iluwatar.specification.property; /** - * - * Color property. - * + *

Color property.

*/ public enum Color { diff --git a/specification/src/main/java/com/iluwatar/specification/property/Movement.java b/specification/src/main/java/com/iluwatar/specification/property/Movement.java index 5bf0863e4..f76b0584f 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Movement.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Movement.java @@ -24,9 +24,7 @@ package com.iluwatar.specification.property; /** - * * Movement property. - * */ public enum Movement { diff --git a/specification/src/main/java/com/iluwatar/specification/property/Size.java b/specification/src/main/java/com/iluwatar/specification/property/Size.java index a4a09e96c..27bc48024 100644 --- a/specification/src/main/java/com/iluwatar/specification/property/Size.java +++ b/specification/src/main/java/com/iluwatar/specification/property/Size.java @@ -24,9 +24,7 @@ package com.iluwatar.specification.property; /** - * * Size property. - * */ public enum Size { diff --git a/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java b/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java index 75e922bff..93caf612f 100644 --- a/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java +++ b/specification/src/main/java/com/iluwatar/specification/selector/ColorSelector.java @@ -23,26 +23,23 @@ package com.iluwatar.specification.selector; -import java.util.function.Predicate; - import com.iluwatar.specification.creature.Creature; import com.iluwatar.specification.property.Color; +import java.util.function.Predicate; /** - * * Color selector. - * */ public class ColorSelector implements Predicate { - private final Color c; + private final Color color; public ColorSelector(Color c) { - this.c = c; + this.color = c; } @Override public boolean test(Creature t) { - return t.getColor().equals(c); + return t.getColor().equals(color); } } diff --git a/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java b/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java index 19613dfed..1818058c1 100644 --- a/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java +++ b/specification/src/main/java/com/iluwatar/specification/selector/MovementSelector.java @@ -23,26 +23,23 @@ package com.iluwatar.specification.selector; -import java.util.function.Predicate; - import com.iluwatar.specification.creature.Creature; import com.iluwatar.specification.property.Movement; +import java.util.function.Predicate; /** - * * Movement selector. - * */ public class MovementSelector implements Predicate { - private final Movement m; + private final Movement movement; public MovementSelector(Movement m) { - this.m = m; + this.movement = m; } @Override public boolean test(Creature t) { - return t.getMovement().equals(m); + return t.getMovement().equals(movement); } } diff --git a/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java b/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java index 1d561e95c..a997c0342 100644 --- a/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java +++ b/specification/src/main/java/com/iluwatar/specification/selector/SizeSelector.java @@ -23,26 +23,23 @@ package com.iluwatar.specification.selector; -import java.util.function.Predicate; - import com.iluwatar.specification.creature.Creature; import com.iluwatar.specification.property.Size; +import java.util.function.Predicate; /** - * * Size selector. - * */ public class SizeSelector implements Predicate { - private final Size s; + private final Size size; public SizeSelector(Size s) { - this.s = s; + this.size = s; } @Override public boolean test(Creature t) { - return t.getSize().equals(s); + return t.getSize().equals(size); } } From 0b17abdf11aeb50172c5c52c3596a825f9508bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 2 Nov 2019 14:45:50 +0200 Subject: [PATCH 48/53] #590 Add explanation for Specification pattern --- specification/README.md | 70 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 3 deletions(-) diff --git a/specification/README.md b/specification/README.md index 564830653..a72e253d7 100644 --- a/specification/README.md +++ b/specification/README.md @@ -7,6 +7,7 @@ categories: Behavioral tags: - Java - Difficulty-Beginner + - Searching --- ## Also known as @@ -16,15 +17,78 @@ Filter, Criteria Specification pattern separates the statement of how to match a candidate, from the candidate object that it is matched against. As well as its usefulness in selection, it is also valuable for validation and for building to -order +order. ![alt text](./etc/specification.png "Specification") ## Applicability Use the Specification pattern when -* you need to select a subset of objects based on some criteria, and to refresh the selection at various times -* you need to check that only suitable objects are used for a certain role (validation) +* You need to select a subset of objects based on some criteria, and to refresh the selection at various times. +* You need to check that only suitable objects are used for a certain role (validation). + +## Explanation + +Real world example + +> There is a pool of different creatures and we often need to select some subset of them. We can write our search specification such as "creatures that can fly" and give it to the party that will perform the filtering. + +In Plain Words + +> Specification pattern allows us to separate the search criteria from the object that performs the search. + +Wikipedia says + +> In computer programming, the specification pattern is a particular software design pattern, whereby business rules can be recombined by chaining the business rules together using boolean logic. + +**Programmatic Example** + +If we look at our creature pool example from above, we have a set of creatures with certain properties. + +```java +public interface Creature { + String getName(); + Size getSize(); + Movement getMovement(); + Color getColor(); +} +``` + +And dragon implementation looks like this. + +```java +public class Dragon extends AbstractCreature { + + public Dragon() { + super("Dragon", Size.LARGE, Movement.FLYING, Color.RED); + } +} +``` + +Now that we want to select some subset of them, we use selectors. To select creatures that fly, we should use MovementSelector. + +```java +public class MovementSelector implements Predicate { + + private final Movement movement; + + public MovementSelector(Movement m) { + this.movement = m; + } + + @Override + public boolean test(Creature t) { + return t.getMovement().equals(movement); + } +} +``` + +With these building blocks in place, we can perform a search for red and flying creatures like this. + +```java + List redAndFlyingCreatures = creatures.stream() + .filter(new ColorSelector(Color.RED).and(new MovementSelector(Movement.FLYING))).collect(Collectors.toList()); +``` ## Related patterns From 7dc47da131a423f8a4f601d7f4db4fb8e01aef17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 5 Nov 2019 17:22:53 +0200 Subject: [PATCH 49/53] #1021 Checkstyle fixes for Composite pattern --- .../src/main/java/com/iluwatar/composite/App.java | 8 ++++---- .../src/main/java/com/iluwatar/composite/Letter.java | 10 ++++------ .../java/com/iluwatar/composite/LetterComposite.java | 10 +++++----- .../main/java/com/iluwatar/composite/Messenger.java | 4 +--- .../src/main/java/com/iluwatar/composite/Sentence.java | 6 ++---- .../src/main/java/com/iluwatar/composite/Word.java | 6 ++---- 6 files changed, 18 insertions(+), 26 deletions(-) diff --git a/composite/src/main/java/com/iluwatar/composite/App.java b/composite/src/main/java/com/iluwatar/composite/App.java index eb55b7762..7389c7a96 100644 --- a/composite/src/main/java/com/iluwatar/composite/App.java +++ b/composite/src/main/java/com/iluwatar/composite/App.java @@ -32,9 +32,9 @@ import org.slf4j.LoggerFactory; * of a composite is to "compose" objects into tree structures to represent part-whole hierarchies. * Implementing the Composite pattern lets clients treat individual objects and compositions * uniformly. - *

- * 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}). + * + *

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}). * */ public class App { @@ -42,7 +42,7 @@ public class App { private static final Logger LOGGER = LoggerFactory.getLogger(App.class); /** - * Program entry point + * Program entry point. * * @param args command line args */ diff --git a/composite/src/main/java/com/iluwatar/composite/Letter.java b/composite/src/main/java/com/iluwatar/composite/Letter.java index 4583f9089..ab2d496ea 100644 --- a/composite/src/main/java/com/iluwatar/composite/Letter.java +++ b/composite/src/main/java/com/iluwatar/composite/Letter.java @@ -24,20 +24,18 @@ package com.iluwatar.composite; /** - * - * Letter - * + * Letter. */ public class Letter extends LetterComposite { - private char c; + private char character; public Letter(char c) { - this.c = c; + this.character = c; } @Override protected void printThisBefore() { - System.out.print(c); + System.out.print(character); } } diff --git a/composite/src/main/java/com/iluwatar/composite/LetterComposite.java b/composite/src/main/java/com/iluwatar/composite/LetterComposite.java index 673e28f79..5d8af5435 100644 --- a/composite/src/main/java/com/iluwatar/composite/LetterComposite.java +++ b/composite/src/main/java/com/iluwatar/composite/LetterComposite.java @@ -27,9 +27,7 @@ import java.util.ArrayList; import java.util.List; /** - * * Composite interface. - * */ public abstract class LetterComposite { @@ -43,12 +41,14 @@ public abstract class LetterComposite { return children.size(); } - protected void printThisBefore() {} + protected void printThisBefore() { + } - protected void printThisAfter() {} + protected void printThisAfter() { + } /** - * Print + * Print. */ public void print() { printThisBefore(); diff --git a/composite/src/main/java/com/iluwatar/composite/Messenger.java b/composite/src/main/java/com/iluwatar/composite/Messenger.java index ba6a08161..55929e7ee 100644 --- a/composite/src/main/java/com/iluwatar/composite/Messenger.java +++ b/composite/src/main/java/com/iluwatar/composite/Messenger.java @@ -26,9 +26,7 @@ package com.iluwatar.composite; import java.util.List; /** - * - * Messenger - * + * Messenger. */ public class Messenger { diff --git a/composite/src/main/java/com/iluwatar/composite/Sentence.java b/composite/src/main/java/com/iluwatar/composite/Sentence.java index 08e12f152..c94ce84aa 100644 --- a/composite/src/main/java/com/iluwatar/composite/Sentence.java +++ b/composite/src/main/java/com/iluwatar/composite/Sentence.java @@ -26,14 +26,12 @@ package com.iluwatar.composite; import java.util.List; /** - * - * Sentence - * + * Sentence. */ public class Sentence extends LetterComposite { /** - * Constructor + * Constructor. */ public Sentence(List words) { for (Word w : words) { diff --git a/composite/src/main/java/com/iluwatar/composite/Word.java b/composite/src/main/java/com/iluwatar/composite/Word.java index 7c71a7fdd..353c363a2 100644 --- a/composite/src/main/java/com/iluwatar/composite/Word.java +++ b/composite/src/main/java/com/iluwatar/composite/Word.java @@ -26,14 +26,12 @@ package com.iluwatar.composite; import java.util.List; /** - * - * Word - * + * Word. */ public class Word extends LetterComposite { /** - * Constructor + * Constructor. */ public Word(List letters) { for (Letter l : letters) { From 47ae477a566830f5e0baa4ad73a669128ef3f727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 5 Nov 2019 17:28:08 +0200 Subject: [PATCH 50/53] #1021 Checkstyle changes for Factory Method --- .../main/java/com/iluwatar/factory/method/App.java | 7 +++---- .../java/com/iluwatar/factory/method/Blacksmith.java | 2 -- .../com/iluwatar/factory/method/ElfBlacksmith.java | 11 +++++------ .../com/iluwatar/factory/method/OrcBlacksmith.java | 11 +++++------ .../java/com/iluwatar/factory/method/WeaponType.java | 4 +--- 5 files changed, 14 insertions(+), 21 deletions(-) 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 8c66b70d2..8ebf54b03 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 @@ -27,14 +27,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * * The Factory Method is a creational design pattern which uses factory methods to deal with the * problem of creating objects without specifying the exact class of object that will be created. * This is done by creating objects via calling a factory method either specified in an interface * and implemented by child classes, or implemented in a base class and optionally overridden by * derived classes—rather than by calling a constructor. - *

- * In this Factory Method example we have an interface ({@link Blacksmith}) with a method for + * + *

In this Factory Method example we have an interface ({@link Blacksmith}) with a method for * creating objects ({@link Blacksmith#manufactureWeapon}). The concrete subclasses ( * {@link OrcBlacksmith}, {@link ElfBlacksmith}) then override the method to produce objects of * their liking. @@ -59,7 +58,7 @@ public class App { } /** - * Program entry point + * Program entry point. * * @param args command line args */ diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java index 9d3a2cb0b..7f3eafd60 100644 --- a/factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java +++ b/factory-method/src/main/java/com/iluwatar/factory/method/Blacksmith.java @@ -24,9 +24,7 @@ package com.iluwatar.factory.method; /** - * * The interface containing method for producing objects. - * */ public interface Blacksmith { 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 eccff10d9..0da783a34 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 @@ -27,18 +27,17 @@ import java.util.HashMap; import java.util.Map; /** - * * Concrete subclass for creating new objects. - * */ public class ElfBlacksmith implements Blacksmith { private static Map ELFARSENAL; + static { - ELFARSENAL= new HashMap<>(WeaponType.values().length); - for (WeaponType type : WeaponType.values()) { - ELFARSENAL.put(type, new ElfWeapon(type)); - } + ELFARSENAL = new HashMap<>(WeaponType.values().length); + for (WeaponType type : WeaponType.values()) { + ELFARSENAL.put(type, new ElfWeapon(type)); + } } @Override 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 673663049..376b2ec34 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 @@ -27,18 +27,17 @@ import java.util.HashMap; import java.util.Map; /** - * * Concrete subclass for creating new objects. - * */ public class OrcBlacksmith implements Blacksmith { private static Map ORCARSENAL; + static { - ORCARSENAL= new HashMap<>(WeaponType.values().length); - for (WeaponType type : WeaponType.values()) { - ORCARSENAL.put(type, new OrcWeapon(type)); - } + ORCARSENAL = new HashMap<>(WeaponType.values().length); + for (WeaponType type : WeaponType.values()) { + ORCARSENAL.put(type, new OrcWeapon(type)); + } } @Override 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 4cf38ee26..73ab10dd6 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 @@ -24,9 +24,7 @@ package com.iluwatar.factory.method; /** - * - * WeaponType enumeration - * + * WeaponType enumeration. */ public enum WeaponType { From 8ecdee44c81793d31dff68fe97de05b7489b9778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 5 Nov 2019 17:38:05 +0200 Subject: [PATCH 51/53] #1021 Checkstyle fixes for Layers --- .../main/java/com/iluwatar/layers/App.java | 64 +++++++++---------- .../main/java/com/iluwatar/layers/Cake.java | 4 +- .../iluwatar/layers/CakeBakingException.java | 7 +- .../iluwatar/layers/CakeBakingService.java | 16 ++--- .../layers/CakeBakingServiceImpl.java | 7 +- .../java/com/iluwatar/layers/CakeDao.java | 4 +- .../java/com/iluwatar/layers/CakeInfo.java | 10 ++- .../java/com/iluwatar/layers/CakeLayer.java | 7 +- .../com/iluwatar/layers/CakeLayerDao.java | 4 +- .../com/iluwatar/layers/CakeLayerInfo.java | 8 +-- .../java/com/iluwatar/layers/CakeTopping.java | 7 +- .../com/iluwatar/layers/CakeToppingDao.java | 4 +- .../com/iluwatar/layers/CakeToppingInfo.java | 11 ++-- .../com/iluwatar/layers/CakeViewImpl.java | 4 +- .../main/java/com/iluwatar/layers/View.java | 4 +- 15 files changed, 69 insertions(+), 92 deletions(-) diff --git a/layers/src/main/java/com/iluwatar/layers/App.java b/layers/src/main/java/com/iluwatar/layers/App.java index a4e0a4ab2..1c5da2d9d 100644 --- a/layers/src/main/java/com/iluwatar/layers/App.java +++ b/layers/src/main/java/com/iluwatar/layers/App.java @@ -26,32 +26,32 @@ package com.iluwatar.layers; import java.util.List; /** - * - * Layers is an architectural style where software responsibilities are divided among the different layers of the - * application. - *

- * This example demonstrates a traditional 3-layer architecture consisting of data access layer, business layer and - * presentation layer. - *

- * The data access layer is formed of Spring Data repositories CakeDao, CakeToppingDao and - * CakeLayerDao. The repositories can be used for CRUD operations on cakes, cake toppings and cake layers - * respectively. - *

- * The business layer is built on top of the data access layer. CakeBakingService offers methods to - * retrieve available cake toppings and cake layers and baked cakes. Also the service is used to create new cakes out of - * cake toppings and cake layers. - *

- * The presentation layer is built on the business layer and in this example it simply lists the cakes that have been - * baked. - *

- * We have applied so called strict layering which means that the layers can only access the classes directly beneath - * them. This leads the solution to create an additional set of DTOs ( CakeInfo, - * CakeToppingInfo, CakeLayerInfo) to translate data between layers. In other words, - * CakeBakingService cannot return entities ( Cake, CakeTopping, - * CakeLayer) directly since these reside on data access layer but instead translates these into business - * layer DTOs (CakeInfo, CakeToppingInfo, CakeLayerInfo) and returns them - * instead. This way the presentation layer does not have any knowledge of other layers than the business layer and thus - * is not affected by changes to them. + * Layers is an architectural style where software responsibilities are divided among the + * different layers of the application. + * + *

This example demonstrates a traditional 3-layer architecture consisting of data access + * layer, business layer and presentation layer. + * + *

The data access layer is formed of Spring Data repositories CakeDao, + * CakeToppingDao and CakeLayerDao. The repositories can be used + * for CRUD operations on cakes, cake toppings and cake layers respectively. + * + *

The business layer is built on top of the data access layer. CakeBakingService + * offers methods to retrieve available cake toppings and cake layers and baked cakes. Also the + * service is used to create new cakes out of cake toppings and cake layers. + * + *

The presentation layer is built on the business layer and in this example it simply lists + * the cakes that have been baked. + * + *

We have applied so called strict layering which means that the layers can only access the + * classes directly beneath them. This leads the solution to create an additional set of DTOs + * ( CakeInfo, CakeToppingInfo, CakeLayerInfo) to translate + * data between layers. In other words, CakeBakingService cannot return entities + * ( Cake, CakeTopping, CakeLayer) directly since these + * reside on data access layer but instead translates these into business layer DTOs + * (CakeInfo, CakeToppingInfo, CakeLayerInfo) and returns + * them instead. This way the presentation layer does not have any knowledge of other layers than + * the business layer and thus is not affected by changes to them. * * @see Cake * @see CakeTopping @@ -70,7 +70,7 @@ public class App { private static CakeBakingService cakeBakingService = new CakeBakingServiceImpl(); /** - * Application entry point + * Application entry point. * * @param args Command line parameters */ @@ -85,7 +85,7 @@ public class App { } /** - * Initializes the example data + * Initializes the example data. */ private static void initializeData(CakeBakingService cakeBakingService) { cakeBakingService.saveNewLayer(new CakeLayerInfo("chocolate", 1200)); @@ -108,10 +108,10 @@ public class App { } catch (CakeBakingException e) { e.printStackTrace(); } - CakeInfo cake2 = - new CakeInfo(new CakeToppingInfo("cherry", 0), List.of( - new CakeLayerInfo("vanilla", 0), new CakeLayerInfo("lemon", 0), new CakeLayerInfo( - "strawberry", 0))); + CakeInfo cake2 = new CakeInfo(new CakeToppingInfo("cherry", 0), List.of( + new CakeLayerInfo("vanilla", 0), + new CakeLayerInfo("lemon", 0), + new CakeLayerInfo("strawberry", 0))); try { cakeBakingService.bakeNewCake(cake2); } catch (CakeBakingException e) { diff --git a/layers/src/main/java/com/iluwatar/layers/Cake.java b/layers/src/main/java/com/iluwatar/layers/Cake.java index 3f866974c..ee1139a23 100644 --- a/layers/src/main/java/com/iluwatar/layers/Cake.java +++ b/layers/src/main/java/com/iluwatar/layers/Cake.java @@ -35,9 +35,7 @@ import javax.persistence.OneToMany; import javax.persistence.OneToOne; /** - * - * Cake entity - * + * Cake entity. */ @Entity public class Cake { diff --git a/layers/src/main/java/com/iluwatar/layers/CakeBakingException.java b/layers/src/main/java/com/iluwatar/layers/CakeBakingException.java index 0c6607b05..32ff30701 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeBakingException.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeBakingException.java @@ -24,15 +24,14 @@ package com.iluwatar.layers; /** - * - * Custom exception used in cake baking - * + * Custom exception used in cake baking. */ public class CakeBakingException extends Exception { private static final long serialVersionUID = 1L; - public CakeBakingException() {} + public CakeBakingException() { + } public CakeBakingException(String message) { super(message); diff --git a/layers/src/main/java/com/iluwatar/layers/CakeBakingService.java b/layers/src/main/java/com/iluwatar/layers/CakeBakingService.java index 2bface968..31eaef83b 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeBakingService.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeBakingService.java @@ -26,39 +26,37 @@ package com.iluwatar.layers; import java.util.List; /** - * - * Service for cake baking operations - * + * Service for cake baking operations. */ public interface CakeBakingService { /** - * Bakes new cake according to parameters + * Bakes new cake according to parameters. */ void bakeNewCake(CakeInfo cakeInfo) throws CakeBakingException; /** - * Get all cakes + * Get all cakes. */ List getAllCakes(); /** - * Store new cake topping + * Store new cake topping. */ void saveNewTopping(CakeToppingInfo toppingInfo); /** - * Get available cake toppings + * Get available cake toppings. */ List getAvailableToppings(); /** - * Add new cake layer + * Add new cake layer. */ void saveNewLayer(CakeLayerInfo layerInfo); /** - * Get available cake layers + * Get available cake layers. */ List getAvailableLayers(); } diff --git a/layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java b/layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java index 4b48b7345..ac4c11c06 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java @@ -37,9 +37,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** - * - * Implementation of CakeBakingService - * + * Implementation of CakeBakingService. */ @Service @Transactional @@ -73,7 +71,8 @@ public class CakeBakingServiceImpl implements CakeBakingService { } } CakeToppingDao toppingBean = context.getBean(CakeToppingDao.class); - Optional topping = toppingBean.findById(matchingToppings.iterator().next().getId()); + Optional topping = toppingBean.findById( + matchingToppings.iterator().next().getId()); CakeDao cakeBean = context.getBean(CakeDao.class); if (topping.isPresent()) { Cake cake = new Cake(); diff --git a/layers/src/main/java/com/iluwatar/layers/CakeDao.java b/layers/src/main/java/com/iluwatar/layers/CakeDao.java index 3128fe973..70071a21c 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeDao.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeDao.java @@ -27,9 +27,7 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; /** - * - * CRUD repository for cakes - * + * CRUD repository for cakes. */ @Repository public interface CakeDao extends CrudRepository { diff --git a/layers/src/main/java/com/iluwatar/layers/CakeInfo.java b/layers/src/main/java/com/iluwatar/layers/CakeInfo.java index 3957dbeda..6d8f1c83d 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeInfo.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeInfo.java @@ -27,9 +27,7 @@ import java.util.List; import java.util.Optional; /** - * - * DTO for cakes - * + * DTO for cakes. */ public class CakeInfo { @@ -38,7 +36,7 @@ public class CakeInfo { public final List cakeLayerInfos; /** - * Constructor + * Constructor. */ public CakeInfo(Long id, CakeToppingInfo cakeToppingInfo, List cakeLayerInfos) { this.id = Optional.of(id); @@ -47,7 +45,7 @@ public class CakeInfo { } /** - * Constructor + * Constructor. */ public CakeInfo(CakeToppingInfo cakeToppingInfo, List cakeLayerInfos) { this.id = Optional.empty(); @@ -56,7 +54,7 @@ public class CakeInfo { } /** - * Calculate calories + * Calculate calories. */ public int calculateTotalCalories() { int total = cakeToppingInfo != null ? cakeToppingInfo.calories : 0; diff --git a/layers/src/main/java/com/iluwatar/layers/CakeLayer.java b/layers/src/main/java/com/iluwatar/layers/CakeLayer.java index 5fed0db22..3f09c8d77 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeLayer.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeLayer.java @@ -30,9 +30,7 @@ import javax.persistence.Id; import javax.persistence.ManyToOne; /** - * - * CakeLayer entity - * + * CakeLayer entity. */ @Entity public class CakeLayer { @@ -48,7 +46,8 @@ public class CakeLayer { @ManyToOne(cascade = CascadeType.ALL) private Cake cake; - public CakeLayer() {} + public CakeLayer() { + } public CakeLayer(String name, int calories) { this.setName(name); diff --git a/layers/src/main/java/com/iluwatar/layers/CakeLayerDao.java b/layers/src/main/java/com/iluwatar/layers/CakeLayerDao.java index 15d35c0df..d8ea05ab0 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeLayerDao.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeLayerDao.java @@ -27,9 +27,7 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; /** - * - * CRUD repository for cake layers - * + * CRUD repository for cake layers. */ @Repository public interface CakeLayerDao extends CrudRepository { diff --git a/layers/src/main/java/com/iluwatar/layers/CakeLayerInfo.java b/layers/src/main/java/com/iluwatar/layers/CakeLayerInfo.java index 692cf6c44..60f70aa76 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeLayerInfo.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeLayerInfo.java @@ -26,9 +26,7 @@ package com.iluwatar.layers; import java.util.Optional; /** - * - * DTO for cake layers - * + * DTO for cake layers. */ public class CakeLayerInfo { @@ -37,7 +35,7 @@ public class CakeLayerInfo { public final int calories; /** - * Constructor + * Constructor. */ public CakeLayerInfo(Long id, String name, int calories) { this.id = Optional.of(id); @@ -46,7 +44,7 @@ public class CakeLayerInfo { } /** - * Constructor + * Constructor. */ public CakeLayerInfo(String name, int calories) { this.id = Optional.empty(); diff --git a/layers/src/main/java/com/iluwatar/layers/CakeTopping.java b/layers/src/main/java/com/iluwatar/layers/CakeTopping.java index d49fd5072..b4b057dd0 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeTopping.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeTopping.java @@ -30,9 +30,7 @@ import javax.persistence.Id; import javax.persistence.OneToOne; /** - * - * CakeTopping entity - * + * CakeTopping entity. */ @Entity public class CakeTopping { @@ -48,7 +46,8 @@ public class CakeTopping { @OneToOne(cascade = CascadeType.ALL) private Cake cake; - public CakeTopping() {} + public CakeTopping() { + } public CakeTopping(String name, int calories) { this.setName(name); diff --git a/layers/src/main/java/com/iluwatar/layers/CakeToppingDao.java b/layers/src/main/java/com/iluwatar/layers/CakeToppingDao.java index 5ae63e345..e9931785e 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeToppingDao.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeToppingDao.java @@ -27,9 +27,7 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; /** - * - * CRUD repository cake toppings - * + * CRUD repository cake toppings. */ @Repository public interface CakeToppingDao extends CrudRepository { diff --git a/layers/src/main/java/com/iluwatar/layers/CakeToppingInfo.java b/layers/src/main/java/com/iluwatar/layers/CakeToppingInfo.java index dc138778a..eee28601c 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeToppingInfo.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeToppingInfo.java @@ -26,9 +26,7 @@ package com.iluwatar.layers; import java.util.Optional; /** - * - * DTO for cake toppings - * + * DTO for cake toppings. */ public class CakeToppingInfo { @@ -37,7 +35,7 @@ public class CakeToppingInfo { public final int calories; /** - * Constructor + * Constructor. */ public CakeToppingInfo(Long id, String name, int calories) { this.id = Optional.of(id); @@ -46,7 +44,7 @@ public class CakeToppingInfo { } /** - * Constructor + * Constructor. */ public CakeToppingInfo(String name, int calories) { this.id = Optional.empty(); @@ -56,6 +54,7 @@ public class CakeToppingInfo { @Override public String toString() { - return String.format("CakeToppingInfo id=%d name=%s calories=%d", id.orElse(-1L), name, calories); + return String.format("CakeToppingInfo id=%d name=%s calories=%d", + id.orElse(-1L), name, calories); } } diff --git a/layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java b/layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java index 67c409793..934096673 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java +++ b/layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java @@ -27,9 +27,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * - * View implementation for displaying cakes - * + * View implementation for displaying cakes. */ public class CakeViewImpl implements View { diff --git a/layers/src/main/java/com/iluwatar/layers/View.java b/layers/src/main/java/com/iluwatar/layers/View.java index e2456d524..14ab91f03 100644 --- a/layers/src/main/java/com/iluwatar/layers/View.java +++ b/layers/src/main/java/com/iluwatar/layers/View.java @@ -24,9 +24,7 @@ package com.iluwatar.layers; /** - * - * View interface - * + * View interface. */ public interface View { From 50986fa15b312d95e86717259bafca7aeaddf1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 5 Nov 2019 20:07:50 +0200 Subject: [PATCH 52/53] #590 arrange Layers into packages and add explanation --- layers/README.md | 80 ++++++++++++++++++- layers/etc/layers.ucls | 28 +++---- .../com/iluwatar/layers/{ => app}/App.java | 15 +++- .../iluwatar/layers/{ => dao}/CakeDao.java | 3 +- .../layers/{ => dao}/CakeLayerDao.java | 3 +- .../layers/{ => dao}/CakeToppingDao.java | 3 +- .../iluwatar/layers/{ => dto}/CakeInfo.java | 2 +- .../layers/{ => dto}/CakeLayerInfo.java | 2 +- .../layers/{ => dto}/CakeToppingInfo.java | 2 +- .../iluwatar/layers/{ => entity}/Cake.java | 4 +- .../layers/{ => entity}/CakeLayer.java | 6 +- .../layers/{ => entity}/CakeTopping.java | 6 +- .../{ => exception}/CakeBakingException.java | 2 +- .../{ => service}/CakeBakingService.java | 6 +- .../{ => service}/CakeBakingServiceImpl.java | 12 ++- .../layers/{ => view}/CakeViewImpl.java | 3 +- .../com/iluwatar/layers/{ => view}/View.java | 2 +- .../iluwatar/layers/{ => app}/AppTest.java | 3 +- .../layers/{ => entity}/CakeTest.java | 5 +- .../CakeBakingExceptionTest.java | 3 +- .../CakeBakingServiceImplTest.java | 7 +- .../layers/{ => view}/CakeViewImplTest.java | 7 +- 22 files changed, 164 insertions(+), 40 deletions(-) rename layers/src/main/java/com/iluwatar/layers/{ => app}/App.java (88%) rename layers/src/main/java/com/iluwatar/layers/{ => dao}/CakeDao.java (94%) rename layers/src/main/java/com/iluwatar/layers/{ => dao}/CakeLayerDao.java (94%) rename layers/src/main/java/com/iluwatar/layers/{ => dao}/CakeToppingDao.java (94%) rename layers/src/main/java/com/iluwatar/layers/{ => dto}/CakeInfo.java (98%) rename layers/src/main/java/com/iluwatar/layers/{ => dto}/CakeLayerInfo.java (98%) rename layers/src/main/java/com/iluwatar/layers/{ => dto}/CakeToppingInfo.java (98%) rename layers/src/main/java/com/iluwatar/layers/{ => entity}/Cake.java (96%) rename layers/src/main/java/com/iluwatar/layers/{ => entity}/CakeLayer.java (94%) rename layers/src/main/java/com/iluwatar/layers/{ => entity}/CakeTopping.java (95%) rename layers/src/main/java/com/iluwatar/layers/{ => exception}/CakeBakingException.java (97%) rename layers/src/main/java/com/iluwatar/layers/{ => service}/CakeBakingService.java (88%) rename layers/src/main/java/com/iluwatar/layers/{ => service}/CakeBakingServiceImpl.java (93%) rename layers/src/main/java/com/iluwatar/layers/{ => view}/CakeViewImpl.java (94%) rename layers/src/main/java/com/iluwatar/layers/{ => view}/View.java (97%) rename layers/src/test/java/com/iluwatar/layers/{ => app}/AppTest.java (95%) rename layers/src/test/java/com/iluwatar/layers/{ => entity}/CakeTest.java (95%) rename layers/src/test/java/com/iluwatar/layers/{ => exception}/CakeBakingExceptionTest.java (95%) rename layers/src/test/java/com/iluwatar/layers/{ => service}/CakeBakingServiceImplTest.java (95%) rename layers/src/test/java/com/iluwatar/layers/{ => view}/CakeViewImplTest.java (92%) diff --git a/layers/README.md b/layers/README.md index 49b74c175..3214a9e61 100644 --- a/layers/README.md +++ b/layers/README.md @@ -12,7 +12,7 @@ tags: --- ## Intent -Layers is an architectural style where software responsibilities are +Layers is an architectural pattern where software responsibilities are divided among the different layers of the application. ![alt text](./etc/layers.png "Layers") @@ -24,6 +24,84 @@ Use the Layers architecture when * you want to prevent a change from propagating throughout the application * you want to make your application more maintainable and testable +## Explanation + +Real world example + +> Consider a web site displaying decorated cakes for weddings and such. Instead of the web page directly reaching into the database, it relies on a service to deliver this information. The service then queries the data layer to assimilate the needed information. + +In Plain Words + +> With Layers architectural pattern different concerns reside on separate layers. View layer is interested only in rendering, service layer assembles the requested data from various sources, and data layer gets the bits from the data storage. + +Wikipedia says + +> In software engineering, multitier architecture (often referred to as n-tier architecture) or multilayered architecture is a client–server architecture in which presentation, application processing, and data management functions are physically separated. + +**Programmatic Example** + +On the data layer, we keep our cake building blocks. Cakes consist of layers and topping. + +```java +@Entity +public class Cake { + + @Id + @GeneratedValue + private Long id; + + @OneToOne(cascade = CascadeType.REMOVE) + private CakeTopping topping; + + @OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER) + private Set layers; +} +``` + +The service layer offers CakeBakingService for easy access to different aspects of cakes. + +```java +public interface CakeBakingService { + + void bakeNewCake(CakeInfo cakeInfo) throws CakeBakingException; + + List getAllCakes(); + + void saveNewTopping(CakeToppingInfo toppingInfo); + + List getAvailableToppings(); + + void saveNewLayer(CakeLayerInfo layerInfo); + + List getAvailableLayers(); +} +``` + +On the top we have our view responsible of rendering the cakes. + +```java +public interface View { + + void render(); + +} + +public class CakeViewImpl implements View { + + private static final Logger LOGGER = LoggerFactory.getLogger(CakeViewImpl.class); + + private CakeBakingService cakeBakingService; + + public CakeViewImpl(CakeBakingService cakeBakingService) { + this.cakeBakingService = cakeBakingService; + } + + public void render() { + cakeBakingService.getAllCakes().forEach(cake -> LOGGER.info(cake.toString())); + } +} +``` + ## Credits * [Pattern Oriented Software Architecture Vol I-V](http://www.amazon.com/Pattern-Oriented-Software-Architecture-Volume-Patterns/dp/0471958697) diff --git a/layers/etc/layers.ucls b/layers/etc/layers.ucls index 060b391c0..a3cac547a 100644 --- a/layers/etc/layers.ucls +++ b/layers/etc/layers.ucls @@ -1,7 +1,7 @@ - - - - - - - - - - - - - - layers) { + public void setLayers(Set layers) { this.layers = layers; } diff --git a/layers/src/main/java/com/iluwatar/layers/CakeLayer.java b/layers/src/main/java/com/iluwatar/layers/entity/CakeLayer.java similarity index 94% rename from layers/src/main/java/com/iluwatar/layers/CakeLayer.java rename to layers/src/main/java/com/iluwatar/layers/entity/CakeLayer.java index 3f09c8d77..3e3ab8a0e 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeLayer.java +++ b/layers/src/main/java/com/iluwatar/layers/entity/CakeLayer.java @@ -21,7 +21,7 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.entity; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -66,7 +66,7 @@ public class CakeLayer { return name; } - public final void setName(String name) { + public void setName(String name) { this.name = name; } @@ -74,7 +74,7 @@ public class CakeLayer { return calories; } - public final void setCalories(int calories) { + public void setCalories(int calories) { this.calories = calories; } diff --git a/layers/src/main/java/com/iluwatar/layers/CakeTopping.java b/layers/src/main/java/com/iluwatar/layers/entity/CakeTopping.java similarity index 95% rename from layers/src/main/java/com/iluwatar/layers/CakeTopping.java rename to layers/src/main/java/com/iluwatar/layers/entity/CakeTopping.java index b4b057dd0..ae5277499 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeTopping.java +++ b/layers/src/main/java/com/iluwatar/layers/entity/CakeTopping.java @@ -21,7 +21,7 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.entity; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -66,11 +66,11 @@ public class CakeTopping { return name; } - public final void setName(String name) { + public void setName(String name) { this.name = name; } - public final int getCalories() { + public int getCalories() { return calories; } diff --git a/layers/src/main/java/com/iluwatar/layers/CakeBakingException.java b/layers/src/main/java/com/iluwatar/layers/exception/CakeBakingException.java similarity index 97% rename from layers/src/main/java/com/iluwatar/layers/CakeBakingException.java rename to layers/src/main/java/com/iluwatar/layers/exception/CakeBakingException.java index 32ff30701..a027fee98 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeBakingException.java +++ b/layers/src/main/java/com/iluwatar/layers/exception/CakeBakingException.java @@ -21,7 +21,7 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.exception; /** * Custom exception used in cake baking. diff --git a/layers/src/main/java/com/iluwatar/layers/CakeBakingService.java b/layers/src/main/java/com/iluwatar/layers/service/CakeBakingService.java similarity index 88% rename from layers/src/main/java/com/iluwatar/layers/CakeBakingService.java rename to layers/src/main/java/com/iluwatar/layers/service/CakeBakingService.java index 31eaef83b..1ccfa5cf8 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeBakingService.java +++ b/layers/src/main/java/com/iluwatar/layers/service/CakeBakingService.java @@ -21,8 +21,12 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.service; +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 java.util.List; /** diff --git a/layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java b/layers/src/main/java/com/iluwatar/layers/service/CakeBakingServiceImpl.java similarity index 93% rename from layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java rename to layers/src/main/java/com/iluwatar/layers/service/CakeBakingServiceImpl.java index ac4c11c06..403816421 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeBakingServiceImpl.java +++ b/layers/src/main/java/com/iluwatar/layers/service/CakeBakingServiceImpl.java @@ -21,8 +21,18 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.service; +import com.iluwatar.layers.dto.CakeInfo; +import com.iluwatar.layers.dto.CakeLayerInfo; +import com.iluwatar.layers.dto.CakeToppingInfo; +import com.iluwatar.layers.dao.CakeDao; +import com.iluwatar.layers.dao.CakeLayerDao; +import com.iluwatar.layers.dao.CakeToppingDao; +import com.iluwatar.layers.entity.Cake; +import com.iluwatar.layers.entity.CakeLayer; +import com.iluwatar.layers.entity.CakeTopping; +import com.iluwatar.layers.exception.CakeBakingException; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; diff --git a/layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java b/layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java similarity index 94% rename from layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java rename to layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java index 934096673..5fcaac776 100644 --- a/layers/src/main/java/com/iluwatar/layers/CakeViewImpl.java +++ b/layers/src/main/java/com/iluwatar/layers/view/CakeViewImpl.java @@ -21,8 +21,9 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.view; +import com.iluwatar.layers.service.CakeBakingService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/layers/src/main/java/com/iluwatar/layers/View.java b/layers/src/main/java/com/iluwatar/layers/view/View.java similarity index 97% rename from layers/src/main/java/com/iluwatar/layers/View.java rename to layers/src/main/java/com/iluwatar/layers/view/View.java index 14ab91f03..0002b23f6 100644 --- a/layers/src/main/java/com/iluwatar/layers/View.java +++ b/layers/src/main/java/com/iluwatar/layers/view/View.java @@ -21,7 +21,7 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.view; /** * View interface. diff --git a/layers/src/test/java/com/iluwatar/layers/AppTest.java b/layers/src/test/java/com/iluwatar/layers/app/AppTest.java similarity index 95% rename from layers/src/test/java/com/iluwatar/layers/AppTest.java rename to layers/src/test/java/com/iluwatar/layers/app/AppTest.java index b95e899d7..10d224a8e 100644 --- a/layers/src/test/java/com/iluwatar/layers/AppTest.java +++ b/layers/src/test/java/com/iluwatar/layers/app/AppTest.java @@ -21,8 +21,9 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.app; +import com.iluwatar.layers.app.App; import org.junit.jupiter.api.Test; /** diff --git a/layers/src/test/java/com/iluwatar/layers/CakeTest.java b/layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java similarity index 95% rename from layers/src/test/java/com/iluwatar/layers/CakeTest.java rename to layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java index 81bb6d1de..3c0051bbc 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeTest.java +++ b/layers/src/test/java/com/iluwatar/layers/entity/CakeTest.java @@ -21,8 +21,11 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +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; diff --git a/layers/src/test/java/com/iluwatar/layers/CakeBakingExceptionTest.java b/layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java similarity index 95% rename from layers/src/test/java/com/iluwatar/layers/CakeBakingExceptionTest.java rename to layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java index 4535be678..8c96b7d8e 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeBakingExceptionTest.java +++ b/layers/src/test/java/com/iluwatar/layers/exception/CakeBakingExceptionTest.java @@ -21,8 +21,9 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +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; diff --git a/layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java b/layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java similarity index 95% rename from layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java rename to layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java index 21f362329..41c8b1753 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeBakingServiceImplTest.java +++ b/layers/src/test/java/com/iluwatar/layers/service/CakeBakingServiceImplTest.java @@ -21,8 +21,13 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.service; +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; diff --git a/layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java b/layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java similarity index 92% rename from layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java rename to layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java index ec19b115c..c396208b7 100644 --- a/layers/src/test/java/com/iluwatar/layers/CakeViewImplTest.java +++ b/layers/src/test/java/com/iluwatar/layers/view/CakeViewImplTest.java @@ -21,11 +21,16 @@ * THE SOFTWARE. */ -package com.iluwatar.layers; +package com.iluwatar.layers.view; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.AppenderBase; +import com.iluwatar.layers.dto.CakeInfo; +import com.iluwatar.layers.dto.CakeLayerInfo; +import com.iluwatar.layers.dto.CakeToppingInfo; +import com.iluwatar.layers.service.CakeBakingService; +import com.iluwatar.layers.view.CakeViewImpl; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; From 1fa8a604eb9fa5b2ca3866fd1fe0ca7bcee8fd1e Mon Sep 17 00:00:00 2001 From: Azureyjt Date: Fri, 8 Nov 2019 14:20:32 +0800 Subject: [PATCH 53/53] Sharding Pattern (#1056) * Create sharding module * Add Unit Tests * Fix readme hyperlink * Fix check-style issue --- pom.xml | 1 + sharding/README.md | 27 +++++ sharding/pom.xml | 45 ++++++++ .../main/java/com/iluwatar/sharding/App.java | 88 +++++++++++++++ .../main/java/com/iluwatar/sharding/Data.java | 84 ++++++++++++++ .../iluwatar/sharding/HashShardManager.java | 55 +++++++++ .../iluwatar/sharding/LookupShardManager.java | 66 +++++++++++ .../iluwatar/sharding/RangeShardManager.java | 66 +++++++++++ .../java/com/iluwatar/sharding/Shard.java | 59 ++++++++++ .../com/iluwatar/sharding/ShardManager.java | 103 +++++++++++++++++ .../java/com/iluwatar/sharding/AppTest.java | 39 +++++++ .../sharding/HashShardManagerTest.java | 64 +++++++++++ .../sharding/LookupShardManagerTest.java | 68 ++++++++++++ .../sharding/RangeShardManagerTest.java | 58 ++++++++++ .../iluwatar/sharding/ShardManagerTest.java | 104 ++++++++++++++++++ .../java/com/iluwatar/sharding/ShardTest.java | 83 ++++++++++++++ 16 files changed, 1010 insertions(+) create mode 100644 sharding/README.md create mode 100644 sharding/pom.xml create mode 100644 sharding/src/main/java/com/iluwatar/sharding/App.java create mode 100644 sharding/src/main/java/com/iluwatar/sharding/Data.java create mode 100644 sharding/src/main/java/com/iluwatar/sharding/HashShardManager.java create mode 100644 sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java create mode 100644 sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java create mode 100644 sharding/src/main/java/com/iluwatar/sharding/Shard.java create mode 100644 sharding/src/main/java/com/iluwatar/sharding/ShardManager.java create mode 100644 sharding/src/test/java/com/iluwatar/sharding/AppTest.java create mode 100644 sharding/src/test/java/com/iluwatar/sharding/HashShardManagerTest.java create mode 100644 sharding/src/test/java/com/iluwatar/sharding/LookupShardManagerTest.java create mode 100644 sharding/src/test/java/com/iluwatar/sharding/RangeShardManagerTest.java create mode 100644 sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java create mode 100644 sharding/src/test/java/com/iluwatar/sharding/ShardTest.java diff --git a/pom.xml b/pom.xml index 8b8139f79..6a666caab 100644 --- a/pom.xml +++ b/pom.xml @@ -184,6 +184,7 @@ subclass-sandbox circuit-breaker double-buffer + sharding diff --git a/sharding/README.md b/sharding/README.md new file mode 100644 index 000000000..b40f08cfc --- /dev/null +++ b/sharding/README.md @@ -0,0 +1,27 @@ + +--- +layout: pattern +title: Sharding +folder: sharding +permalink: /patterns/sharding/ +categories: Other +tags: + - Java + - Difficulty-Beginner +--- + +## Intent +Sharding pattern means divide the data store into horizontal partitions or shards. Each shard has the same schema, but holds its own distinct subset of the data. +A shard is a data store in its own right (it can contain the data for many entities of different types), running on a server acting as a storage node. + +## Applicability +This pattern offers the following benefits: + +- You can scale the system out by adding further shards running on additional storage nodes. +- A system can use off the shelf commodity hardware rather than specialized (and expensive) computers for each storage node. +- You can reduce contention and improved performance by balancing the workload across shards. +- In the cloud, shards can be located physically close to the users that will access the data. + +## Credits + +* [Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications - Sharding Pattern](https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn589797(v=pandp.10)?redirectedfrom=MSDN) \ No newline at end of file diff --git a/sharding/pom.xml b/sharding/pom.xml new file mode 100644 index 000000000..f0dd01a7c --- /dev/null +++ b/sharding/pom.xml @@ -0,0 +1,45 @@ + + + + + java-design-patterns + com.iluwatar + 1.22.0-SNAPSHOT + + 4.0.0 + + sharding + + + + junit + junit + + + + \ No newline at end of file diff --git a/sharding/src/main/java/com/iluwatar/sharding/App.java b/sharding/src/main/java/com/iluwatar/sharding/App.java new file mode 100644 index 000000000..482b056b1 --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/App.java @@ -0,0 +1,88 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +/** + * Sharding pattern means dividing a data store into a set of horizontal partitions + * or shards. This pattern can improve scalability when storing and accessing large + * volumes of data. + */ +public class App { + + /** + * Program main entry point. + * @param args program runtime arguments + */ + public static void main(String[] args) { + + var data1 = new Data(1, "data1", Data.DataType.type1); + var data2 = new Data(2, "data2", Data.DataType.type2); + var data3 = new Data(3, "data3", Data.DataType.type3); + var data4 = new Data(4, "data4", Data.DataType.type1); + + var shard1 = new Shard(1); + var shard2 = new Shard(2); + var shard3 = new Shard(3); + + ShardManager manager = new LookupShardManager(); + manager.addNewShard(shard1); + manager.addNewShard(shard2); + manager.addNewShard(shard3); + manager.storeData(data1); + manager.storeData(data2); + manager.storeData(data3); + manager.storeData(data4); + + shard1.clearData(); + shard2.clearData(); + shard3.clearData(); + + manager = new RangeShardManager(); + manager.addNewShard(shard1); + manager.addNewShard(shard2); + manager.addNewShard(shard3); + manager.storeData(data1); + manager.storeData(data2); + manager.storeData(data3); + manager.storeData(data4); + + shard1.clearData(); + shard2.clearData(); + shard3.clearData(); + + manager = new HashShardManager(); + manager.addNewShard(shard1); + manager.addNewShard(shard2); + manager.addNewShard(shard3); + manager.storeData(data1); + manager.storeData(data2); + manager.storeData(data3); + manager.storeData(data4); + + shard1.clearData(); + shard2.clearData(); + shard3.clearData(); + } + +} diff --git a/sharding/src/main/java/com/iluwatar/sharding/Data.java b/sharding/src/main/java/com/iluwatar/sharding/Data.java new file mode 100644 index 000000000..92e84e93a --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/Data.java @@ -0,0 +1,84 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +/** + * Basic data structure for each tuple stored in data shards. + */ +public class Data { + + private int key; + + private String value; + + private DataType type; + + /** + * Constructor of Data class. + * @param key data key + * @param value data vlue + * @param type data type + */ + public Data(final int key, final String value, final DataType type) { + this.key = key; + this.value = value; + this.type = type; + } + + public int getKey() { + return key; + } + + public void setKey(final int key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(final String value) { + this.value = value; + } + + public DataType getType() { + return type; + } + + public void setType(DataType type) { + this.type = type; + } + + enum DataType { + type1, type2, type3 + } + + @Override + public String toString() { + return "Data {" + "key=" + + 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 new file mode 100644 index 000000000..11ada60d7 --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/HashShardManager.java @@ -0,0 +1,55 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * ShardManager with hash strategy. The purpose of this strategy is to reduce the + * chance of hot-spots in the data. It aims to distribute the data across the shards + * in a way that achieves a balance between the size of each shard and the average + * load that each shard will encounter. + */ +public class HashShardManager extends ShardManager { + + private static final Logger LOGGER = LoggerFactory.getLogger(HashShardManager.class); + + @Override + public int storeData(Data data) { + var shardId = allocateShard(data); + var shard = shardMap.get(shardId); + shard.storeData(data); + LOGGER.info(data.toString() + " is stored in Shard " + shardId); + return shardId; + } + + @Override + protected int allocateShard(Data data) { + var shardCount = shardMap.size(); + var hash = data.getKey() % shardCount; + return hash == 0 ? hash + shardCount : hash; + } + +} diff --git a/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java new file mode 100644 index 000000000..f282afd28 --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/LookupShardManager.java @@ -0,0 +1,66 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 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. + */ +public class LookupShardManager extends ShardManager { + + private static final Logger LOGGER = LoggerFactory.getLogger(LookupShardManager.class); + + private Map lookupMap = new HashMap<>(); + + @Override + public int storeData(Data data) { + var shardId = allocateShard(data); + lookupMap.put(data.getKey(), shardId); + var shard = shardMap.get(shardId); + shard.storeData(data); + LOGGER.info(data.toString() + " is stored in Shard " + shardId); + return shardId; + } + + @Override + protected int allocateShard(Data data) { + var key = data.getKey(); + if (lookupMap.containsKey(key)) { + return lookupMap.get(key); + } else { + var shardCount = shardMap.size(); + var allocatedShardId = new Random().nextInt(shardCount - 1) + 1; + return allocatedShardId; + } + } + +} diff --git a/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java new file mode 100644 index 000000000..f7a8a90af --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/RangeShardManager.java @@ -0,0 +1,66 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * ShardManager with range strategy. This strategy groups related items together + * in the same shard, and orders them by shard key. + */ +public class RangeShardManager extends ShardManager { + + private static final Logger LOGGER = LoggerFactory.getLogger(RangeShardManager.class); + + @Override + public int storeData(Data data) { + var shardId = allocateShard(data); + var shard = shardMap.get(shardId); + shard.storeData(data); + LOGGER.info(data.toString() + " is stored in Shard " + shardId); + return shardId; + } + + @Override + protected int allocateShard(Data data) { + var type = data.getType(); + var shardId = -1; + switch (type) { + case type1: + shardId = 1; + break; + case type2: + shardId = 2; + break; + case type3: + shardId = 3; + break; + default: + break; + } + return shardId; + } + +} diff --git a/sharding/src/main/java/com/iluwatar/sharding/Shard.java b/sharding/src/main/java/com/iluwatar/sharding/Shard.java new file mode 100644 index 000000000..eb0814258 --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/Shard.java @@ -0,0 +1,59 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import java.util.HashMap; +import java.util.Map; + +/** + * The Shard class stored data in a HashMap. + */ +public class Shard { + + private final int id; + + private Map dataStore; + + public Shard(final int id) { + this.id = id; + this.dataStore = new HashMap<>(); + } + + public void storeData(Data data) { + dataStore.put(data.getKey(), data); + } + + public void clearData() { + dataStore.clear(); + } + + public Data getDataById(final int id) { + return dataStore.get(id); + } + + public int getId() { + return id; + } + +} diff --git a/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java b/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java new file mode 100644 index 000000000..f244509d5 --- /dev/null +++ b/sharding/src/main/java/com/iluwatar/sharding/ShardManager.java @@ -0,0 +1,103 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import java.util.HashMap; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Abstract class for ShardManager. + */ +public abstract class ShardManager { + + private static final Logger LOGGER = LoggerFactory.getLogger(ShardManager.class); + + protected Map shardMap; + + public ShardManager() { + shardMap = new HashMap<>(); + } + + /** + * Add a provided shard instance to shardMap. + * + * @param shard new shard instance. + * @return {@code true} if succeed to add the new instance. + * {@code false} if the shardId is already existed. + */ + public boolean addNewShard(final Shard shard) { + var shardId = shard.getId(); + if (!shardMap.containsKey(shardId)) { + shardMap.put(shardId, shard); + return true; + } else { + return false; + } + } + + /** + * Remove a shard instance by provided Id. + * + * @param shardId Id of shard instance to remove. + * @return {@code true} if removed. {@code false} if the shardId is not existed. + */ + public boolean removeShardById(final int shardId) { + if (shardMap.containsKey(shardId)) { + shardMap.remove(shardId); + return true; + } else { + return false; + } + } + + /** + * Get shard instance by provided shardId. + * + * @param shardId id of shard instance to get + * @return required shard instance + */ + public Shard getShardById(final int shardId) { + return shardMap.get(shardId); + } + + /** + * Store data in proper shard instance. + * + * @param data new data + * @return id of shard that the data is stored in + */ + public abstract int storeData(final Data data); + + /** + * Allocate proper shard to provided data. + * + * @param data new data + * @return id of shard that the data should be stored + */ + protected abstract int allocateShard(final Data data); + +} diff --git a/sharding/src/test/java/com/iluwatar/sharding/AppTest.java b/sharding/src/test/java/com/iluwatar/sharding/AppTest.java new file mode 100644 index 000000000..fce8d89a3 --- /dev/null +++ b/sharding/src/test/java/com/iluwatar/sharding/AppTest.java @@ -0,0 +1,39 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import org.junit.Test; + +/** + * Unit tests for App class. + */ +public class AppTest { + + @Test + public void testMain() { + String[] args = {}; + App.main(args); + } + +} diff --git a/sharding/src/test/java/com/iluwatar/sharding/HashShardManagerTest.java b/sharding/src/test/java/com/iluwatar/sharding/HashShardManagerTest.java new file mode 100644 index 000000000..6418cf0c4 --- /dev/null +++ b/sharding/src/test/java/com/iluwatar/sharding/HashShardManagerTest.java @@ -0,0 +1,64 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit tests for HashShardManager class. + */ +public class HashShardManagerTest { + + private HashShardManager hashShardManager; + + /** + * Initialize hashShardManager instance. + */ + @Before + public void setup() { + hashShardManager = new HashShardManager(); + var shard1 = new Shard(1); + var shard2 = new Shard(2); + var shard3 = new Shard(3); + hashShardManager.addNewShard(shard1); + hashShardManager.addNewShard(shard2); + hashShardManager.addNewShard(shard3); + } + + @After + public void tearDown() { + + } + + @Test + public void testStoreData() { + var data = new Data(1, "test", Data.DataType.type1); + hashShardManager.storeData(data); + Assert.assertEquals(data, hashShardManager.getShardById(1).getDataById(1)); + } + +} diff --git a/sharding/src/test/java/com/iluwatar/sharding/LookupShardManagerTest.java b/sharding/src/test/java/com/iluwatar/sharding/LookupShardManagerTest.java new file mode 100644 index 000000000..7379859b8 --- /dev/null +++ b/sharding/src/test/java/com/iluwatar/sharding/LookupShardManagerTest.java @@ -0,0 +1,68 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import java.util.Map; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit tests for LookupShardManager class. + */ +public class LookupShardManagerTest { + + private LookupShardManager lookupShardManager; + + /** + * Initialize lookupShardManager instance. + */ + @Before + public void setup() { + lookupShardManager = new LookupShardManager(); + var shard1 = new Shard(1); + var shard2 = new Shard(2); + var shard3 = new Shard(3); + lookupShardManager.addNewShard(shard1); + lookupShardManager.addNewShard(shard2); + lookupShardManager.addNewShard(shard3); + } + + @Test + public void testStoreData() { + try { + var data = new Data(1, "test", Data.DataType.type1); + lookupShardManager.storeData(data); + var field = LookupShardManager.class.getDeclaredField("lookupMap"); + field.setAccessible(true); + Map lookupMap = (Map) field.get(lookupShardManager); + var shardId = lookupMap.get(1); + var shard = lookupShardManager.getShardById(shardId); + Assert.assertEquals(data, shard.getDataById(1)); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + } +} diff --git a/sharding/src/test/java/com/iluwatar/sharding/RangeShardManagerTest.java b/sharding/src/test/java/com/iluwatar/sharding/RangeShardManagerTest.java new file mode 100644 index 000000000..997687dfc --- /dev/null +++ b/sharding/src/test/java/com/iluwatar/sharding/RangeShardManagerTest.java @@ -0,0 +1,58 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit tests for RangeShardManager class. + */ +public class RangeShardManagerTest { + + private RangeShardManager rangeShardManager; + + /** + * Initialize rangeShardManager instance. + */ + @Before + public void setup() { + rangeShardManager = new RangeShardManager(); + var shard1 = new Shard(1); + var shard2 = new Shard(2); + var shard3 = new Shard(3); + rangeShardManager.addNewShard(shard1); + rangeShardManager.addNewShard(shard2); + rangeShardManager.addNewShard(shard3); + } + + @Test + public void testStoreData() { + var data = new Data(1, "test", Data.DataType.type1); + rangeShardManager.storeData(data); + Assert.assertEquals(data, rangeShardManager.getShardById(1).getDataById(1)); + } + +} diff --git a/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java b/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java new file mode 100644 index 000000000..ff4544973 --- /dev/null +++ b/sharding/src/test/java/com/iluwatar/sharding/ShardManagerTest.java @@ -0,0 +1,104 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import java.util.Map; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit tests for ShardManager class. + */ +public class ShardManagerTest { + + private ShardManager shardManager; + + /** + * Initialize shardManager instance. + */ + @Before + public void setup() { + shardManager = new TestShardManager(); + } + + @After + public void tearDown() { + + } + + @Test + public void testAddNewShard() { + try { + var shard = new Shard(1); + shardManager.addNewShard(shard); + var field = ShardManager.class.getDeclaredField("shardMap"); + field.setAccessible(true); + Map map = (Map) field.get(shardManager); + Assert.assertEquals(1, map.size()); + Assert.assertEquals(shard, map.get(1)); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + } + + @Test + public void testRemoveShardById() { + try { + var shard = new Shard(1); + shardManager.addNewShard(shard); + boolean flag = shardManager.removeShardById(1); + var field = ShardManager.class.getDeclaredField("shardMap"); + field.setAccessible(true); + Map map = (Map) field.get(shardManager); + Assert.assertEquals(true, flag); + Assert.assertEquals(0, map.size()); + } catch (IllegalAccessException | NoSuchFieldException e) { + Assert.fail("Fail to modify field access."); + } + } + + @Test + public void testGetShardById() { + Shard shard = new Shard(1); + shardManager.addNewShard(shard); + Shard tmpShard = shardManager.getShardById(1); + Assert.assertEquals(shard, tmpShard); + } + + class TestShardManager extends ShardManager { + + @Override + public int storeData(Data data) { + return 0; + } + + @Override + protected int allocateShard(Data data) { + return 0; + } + } +} diff --git a/sharding/src/test/java/com/iluwatar/sharding/ShardTest.java b/sharding/src/test/java/com/iluwatar/sharding/ShardTest.java new file mode 100644 index 000000000..4c0f74fa2 --- /dev/null +++ b/sharding/src/test/java/com/iluwatar/sharding/ShardTest.java @@ -0,0 +1,83 @@ +/* + * The MIT License + * Copyright © 2014-2019 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.sharding; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + + +/** + * Unit tests for Shard class. + */ +public class ShardTest { + + private Data data; + + private Shard shard; + + @Before + public void setup() { + data = new Data(1, "test", Data.DataType.type1); + shard = new Shard(1); + } + + @After + public void tearDown() {} + + @Test + public void testStoreData() { + try { + shard.storeData(data); + var field = Shard.class.getDeclaredField("dataStore"); + field.setAccessible(true); + Map dataMap = (Map) field.get(shard); + Assert.assertEquals(1, dataMap.size()); + Assert.assertEquals(data, dataMap.get(1)); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + + } + + @Test + public void testClearData() { + try { + Map dataMap = new HashMap<>(); + dataMap.put(1, data); + var field = Shard.class.getDeclaredField("dataStore"); + field.setAccessible(true); + field.set(shard, dataMap); + shard.clearData(); + dataMap = (Map) field.get(shard); + Assert.assertEquals(0, dataMap.size()); + } catch (NoSuchFieldException | IllegalAccessException e) { + Assert.fail("Fail to modify field access."); + } + } +}