workers,
DwarvenMineWorker.Action... actions
) {
- for (DwarvenMineWorker worker : workers) {
- worker.action(actions);
- }
+ workers.forEach(worker -> worker.action(actions));
}
}
diff --git a/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java b/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java
index 8263d71f241b..d52291ad434a 100644
--- a/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java
+++ b/facade/src/main/java/com/iluwatar/facade/DwarvenMineWorker.java
@@ -23,6 +23,7 @@
package com.iluwatar.facade;
+import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -76,9 +77,7 @@ private void action(Action action) {
* Perform actions.
*/
public void action(Action... actions) {
- for (Action action : actions) {
- action(action);
- }
+ Arrays.stream(actions).forEach(this::action);
}
public abstract void work();
diff --git a/facade/src/test/java/com/iluwatar/facade/AppTest.java b/facade/src/test/java/com/iluwatar/facade/AppTest.java
index 828c01ebf61c..b6287b02b174 100644
--- a/facade/src/test/java/com/iluwatar/facade/AppTest.java
+++ b/facade/src/test/java/com/iluwatar/facade/AppTest.java
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java b/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java
index 33e157b771d2..3b67f37547c6 100644
--- a/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java
+++ b/facade/src/test/java/com/iluwatar/facade/DwarvenGoldmineFacadeTest.java
@@ -23,20 +23,19 @@
package com.iluwatar.facade;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
+import java.util.LinkedList;
+import java.util.List;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.slf4j.LoggerFactory;
-import java.util.LinkedList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Date: 12/9/15 - 9:40 PM
*
@@ -56,16 +55,16 @@ public void tearDown() {
appender.stop();
}
- /**
+ /**
* Test a complete day cycle in the gold mine by executing all three different steps: {@link
* DwarvenGoldmineFacade#startNewDay()}, {@link DwarvenGoldmineFacade#digOutGold()} and {@link
* DwarvenGoldmineFacade#endDay()}.
- *
+ *
* See if the workers are doing what's expected from them on each step.
*/
@Test
public void testFullWorkDay() {
- final DwarvenGoldmineFacade goldMine = new DwarvenGoldmineFacade();
+ final var goldMine = new DwarvenGoldmineFacade();
goldMine.startNewDay();
// On the start of a day, all workers should wake up ...
@@ -128,7 +127,9 @@ public int getLogSize() {
}
public boolean logContains(String message) {
- return log.stream().anyMatch(event -> event.getFormattedMessage().equals(message));
+ return log.stream()
+ .map(ILoggingEvent::getFormattedMessage)
+ .anyMatch(message::equals);
}
}
diff --git a/factory-kit/pom.xml b/factory-kit/pom.xml
index 194f94d5d926..87f27b341bc4 100644
--- a/factory-kit/pom.xml
+++ b/factory-kit/pom.xml
@@ -40,4 +40,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.factorykit.App
+
+
+
+
+
+
+
+
diff --git a/factory-kit/src/main/java/com/iluwatar/factorykit/App.java b/factory-kit/src/main/java/com/iluwatar/factorykit/App.java
index f767fb689359..a47ee38226cc 100644
--- a/factory-kit/src/main/java/com/iluwatar/factorykit/App.java
+++ b/factory-kit/src/main/java/com/iluwatar/factorykit/App.java
@@ -48,13 +48,13 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- WeaponFactory factory = WeaponFactory.factory(builder -> {
+ var factory = WeaponFactory.factory(builder -> {
builder.add(WeaponType.SWORD, Sword::new);
builder.add(WeaponType.AXE, Axe::new);
builder.add(WeaponType.SPEAR, Spear::new);
builder.add(WeaponType.BOW, Bow::new);
});
- Weapon axe = factory.create(WeaponType.AXE);
+ var axe = factory.create(WeaponType.AXE);
LOGGER.info(axe.toString());
}
}
diff --git a/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponFactory.java b/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponFactory.java
index 2bdde87f7545..cf520dc0563b 100644
--- a/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponFactory.java
+++ b/factory-kit/src/main/java/com/iluwatar/factorykit/WeaponFactory.java
@@ -24,7 +24,6 @@
package com.iluwatar.factorykit;
import java.util.HashMap;
-import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -52,7 +51,7 @@ public interface WeaponFactory {
* @return factory with specified {@link Builder}s
*/
static WeaponFactory factory(Consumer consumer) {
- Map> map = new HashMap<>();
+ var map = new HashMap>();
consumer.accept(map::put);
return name -> map.get(name).get();
}
diff --git a/factory-kit/src/test/java/com/iluwatar/factorykit/app/AppTest.java b/factory-kit/src/test/java/com/iluwatar/factorykit/app/AppTest.java
index 2d3481c4884d..f1d3c65a2f52 100644
--- a/factory-kit/src/test/java/com/iluwatar/factorykit/app/AppTest.java
+++ b/factory-kit/src/test/java/com/iluwatar/factorykit/app/AppTest.java
@@ -33,8 +33,7 @@ public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java b/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java
index 9892e8497409..fd8241efe262 100644
--- a/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java
+++ b/factory-kit/src/test/java/com/iluwatar/factorykit/factorykit/FactoryKitTest.java
@@ -23,6 +23,8 @@
package com.iluwatar.factorykit.factorykit;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.iluwatar.factorykit.Axe;
import com.iluwatar.factorykit.Spear;
import com.iluwatar.factorykit.Sword;
@@ -32,10 +34,8 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
- /**
- * Test Factory Kit Pattern
+/**
+ * Test Factory Kit Pattern
*/
public class FactoryKitTest {
@@ -51,30 +51,33 @@ public void init() {
}
/**
- * Testing {@link WeaponFactory} to produce a SPEAR asserting that the Weapon is an instance of {@link Spear}
+ * Testing {@link WeaponFactory} to produce a SPEAR asserting that the Weapon is an instance of
+ * {@link Spear}
*/
@Test
public void testSpearWeapon() {
- Weapon weapon = factory.create(WeaponType.SPEAR);
+ var weapon = factory.create(WeaponType.SPEAR);
verifyWeapon(weapon, Spear.class);
}
/**
- * Testing {@link WeaponFactory} to produce a AXE asserting that the Weapon is an instance of {@link Axe}
+ * Testing {@link WeaponFactory} to produce a AXE asserting that the Weapon is an instance of
+ * {@link Axe}
*/
@Test
public void testAxeWeapon() {
- Weapon weapon = factory.create(WeaponType.AXE);
+ var weapon = factory.create(WeaponType.AXE);
verifyWeapon(weapon, Axe.class);
}
/**
- * Testing {@link WeaponFactory} to produce a SWORD asserting that the Weapon is an instance of {@link Sword}
+ * Testing {@link WeaponFactory} to produce a SWORD asserting that the Weapon is an instance of
+ * {@link Sword}
*/
@Test
public void testWeapon() {
- Weapon weapon = factory.create(WeaponType.SWORD);
+ var weapon = factory.create(WeaponType.SWORD);
verifyWeapon(weapon, Sword.class);
}
diff --git a/factory-method/README.md b/factory-method/README.md
index 18cbba2e4a35..48ba6649cbcd 100644
--- a/factory-method/README.md
+++ b/factory-method/README.md
@@ -55,7 +55,7 @@ public class OrcBlacksmith implements Blacksmith {
Now as the customers come the correct type of blacksmith is summoned and requested weapons are manufactured
```java
-Blacksmith blacksmith = new ElfBlacksmith();
+var blacksmith = new ElfBlacksmith();
blacksmith.manufactureWeapon(WeaponType.SPEAR);
blacksmith.manufactureWeapon(WeaponType.AXE);
// Elvish weapons are created
diff --git a/factory-method/pom.xml b/factory-method/pom.xml
index 5b3b6c9cc5b1..5f0358d4dcc1 100644
--- a/factory-method/pom.xml
+++ b/factory-method/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.factory.method.App
+
+
+
+
+
+
+
+
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 8ebf54b03965..1bfd824578eb 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
@@ -64,7 +64,7 @@ public App(Blacksmith blacksmith) {
*/
public static void main(String[] args) {
// Lets go to war with Orc weapons
- App app = new App(new OrcBlacksmith());
+ var app = new App(new OrcBlacksmith());
app.manufactureWeapons();
// Lets go to war with Elf weapons
@@ -73,8 +73,7 @@ public static void main(String[] args) {
}
private void manufactureWeapons() {
- Weapon weapon;
- weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR);
+ var weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR);
LOGGER.info(weapon.toString());
weapon = blacksmith.manufactureWeapon(WeaponType.AXE);
LOGGER.info(weapon.toString());
diff --git a/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java b/factory-method/src/main/java/com/iluwatar/factory/method/ElfBlacksmith.java
index 0da783a34352..b6f29e43a937 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,7 @@
package com.iluwatar.factory.method;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -35,14 +36,12 @@ public class ElfBlacksmith implements Blacksmith {
static {
ELFARSENAL = new HashMap<>(WeaponType.values().length);
- for (WeaponType type : WeaponType.values()) {
- ELFARSENAL.put(type, new ElfWeapon(type));
- }
+ Arrays.stream(WeaponType.values()).forEach(type -> ELFARSENAL.put(type, new ElfWeapon(type)));
}
-
+
@Override
public Weapon manufactureWeapon(WeaponType 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 376b2ec34283..b048300855df 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,7 @@
package com.iluwatar.factory.method;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -35,9 +36,7 @@ public class OrcBlacksmith implements Blacksmith {
static {
ORCARSENAL = new HashMap<>(WeaponType.values().length);
- for (WeaponType type : WeaponType.values()) {
- ORCARSENAL.put(type, new OrcWeapon(type));
- }
+ Arrays.stream(WeaponType.values()).forEach(type -> ORCARSENAL.put(type, new OrcWeapon(type)));
}
@Override
diff --git a/factory-method/src/test/java/com/iluwatar/factory/method/AppTest.java b/factory-method/src/test/java/com/iluwatar/factory/method/AppTest.java
index eb71fb167249..c23295d9a0ff 100644
--- a/factory-method/src/test/java/com/iluwatar/factory/method/AppTest.java
+++ b/factory-method/src/test/java/com/iluwatar/factory/method/AppTest.java
@@ -25,15 +25,12 @@
import org.junit.jupiter.api.Test;
-import java.io.IOException;
-
/**
* Tests that Factory Method example runs without errors.
*/
public class AppTest {
@Test
- public void test() throws IOException {
- String[] args = {};
- App.main(args);
+ public void test() {
+ App.main(new String[]{});
}
}
diff --git a/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java b/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java
index eab890002f24..68960204a2b3 100644
--- a/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java
+++ b/factory-method/src/test/java/com/iluwatar/factory/method/FactoryMethodTest.java
@@ -23,79 +23,80 @@
package com.iluwatar.factory.method;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
/**
* 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.
- *
- * Factory produces the object of its liking.
- * The weapon {@link Weapon} manufactured by the
- * blacksmith depends on the kind of factory implementation it is referring to.
+ *
+ *
Factory produces the object of its liking.
+ * The weapon {@link Weapon} manufactured by the blacksmith depends on the kind of factory
+ * implementation it is referring to.
*
*/
public class FactoryMethodTest {
/**
- * Testing {@link OrcBlacksmith} to produce a SPEAR asserting that the Weapon is an instance
- * of {@link OrcWeapon}.
+ * Testing {@link OrcBlacksmith} to produce a SPEAR asserting that the Weapon is an instance of
+ * {@link OrcWeapon}.
*/
@Test
public void testOrcBlacksmithWithSpear() {
- Blacksmith blacksmith = new OrcBlacksmith();
- Weapon weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR);
+ var blacksmith = new OrcBlacksmith();
+ var weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR);
verifyWeapon(weapon, WeaponType.SPEAR, OrcWeapon.class);
}
/**
- * Testing {@link OrcBlacksmith} to produce an AXE asserting that the Weapon is an instance
- * of {@link OrcWeapon}.
+ * Testing {@link OrcBlacksmith} to produce an AXE asserting that the Weapon is an instance of
+ * {@link OrcWeapon}.
*/
@Test
public void testOrcBlacksmithWithAxe() {
- Blacksmith blacksmith = new OrcBlacksmith();
- Weapon weapon = blacksmith.manufactureWeapon(WeaponType.AXE);
+ var blacksmith = new OrcBlacksmith();
+ var weapon = blacksmith.manufactureWeapon(WeaponType.AXE);
verifyWeapon(weapon, WeaponType.AXE, OrcWeapon.class);
}
/**
- * Testing {@link ElfBlacksmith} to produce a SHORT_SWORD asserting that the Weapon is an
- * instance of {@link ElfWeapon}.
+ * Testing {@link ElfBlacksmith} to produce a SHORT_SWORD asserting that the Weapon is an instance
+ * of {@link ElfWeapon}.
*/
@Test
public void testElfBlacksmithWithShortSword() {
- Blacksmith blacksmith = new ElfBlacksmith();
- Weapon weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD);
+ var blacksmith = new ElfBlacksmith();
+ var weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD);
verifyWeapon(weapon, WeaponType.SHORT_SWORD, ElfWeapon.class);
}
/**
- * Testing {@link ElfBlacksmith} to produce a SPEAR asserting that the Weapon is an instance
- * of {@link ElfWeapon}.
+ * Testing {@link ElfBlacksmith} to produce a SPEAR asserting that the Weapon is an instance of
+ * {@link ElfWeapon}.
*/
@Test
public void testElfBlacksmithWithSpear() {
- Blacksmith blacksmith = new ElfBlacksmith();
- Weapon weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR);
+ var blacksmith = new ElfBlacksmith();
+ var weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR);
verifyWeapon(weapon, WeaponType.SPEAR, ElfWeapon.class);
}
/**
* This method asserts that the weapon object that is passed is an instance of the clazz and the
* weapon is of type expectedWeaponType.
- *
- * @param weapon weapon object which is to be verified
+ *
+ * @param weapon weapon object which is to be verified
* @param expectedWeaponType expected WeaponType of the weapon
- * @param clazz expected class of the weapon
+ * @param clazz expected class of the weapon
*/
private void verifyWeapon(Weapon weapon, WeaponType expectedWeaponType, Class> clazz) {
assertTrue(clazz.isInstance(weapon), "Weapon must be an object of: " + clazz.getName());
- assertEquals(expectedWeaponType, weapon.getWeaponType(), "Weapon must be of weaponType: " + expectedWeaponType);
+ assertEquals(expectedWeaponType, weapon
+ .getWeaponType(), "Weapon must be of weaponType: " + expectedWeaponType);
}
}
diff --git a/feature-toggle/pom.xml b/feature-toggle/pom.xml
index 4ecd5f59df29..13f646b801a5 100644
--- a/feature-toggle/pom.xml
+++ b/feature-toggle/pom.xml
@@ -43,4 +43,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.featuretoggle.App
+
+
+
+
+
+
+
+
diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java
index af8e731c8a98..ceb926b63f68 100644
--- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java
+++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/App.java
@@ -72,33 +72,33 @@ public class App {
*/
public static void main(String[] args) {
- final Properties properties = new Properties();
+ final var properties = new Properties();
properties.put("enhancedWelcome", true);
- Service service = new PropertiesFeatureToggleVersion(properties);
- final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
+ var service = new PropertiesFeatureToggleVersion(properties);
+ final var welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
LOGGER.info(welcomeMessage);
// ---------------------------------------------
- final Properties turnedOff = new Properties();
+ final var turnedOff = new Properties();
turnedOff.put("enhancedWelcome", false);
- Service turnedOffService = new PropertiesFeatureToggleVersion(turnedOff);
- final String welcomeMessageturnedOff =
+ var turnedOffService = new PropertiesFeatureToggleVersion(turnedOff);
+ final var welcomeMessageturnedOff =
turnedOffService.getWelcomeMessage(new User("Jamie No Code"));
LOGGER.info(welcomeMessageturnedOff);
// --------------------------------------------
- Service service2 = new TieredFeatureToggleVersion();
+ var service2 = new TieredFeatureToggleVersion();
- final User paidUser = new User("Jamie Coder");
- final User freeUser = new User("Alan Defect");
+ final var paidUser = new User("Jamie Coder");
+ final var freeUser = new User("Alan Defect");
UserGroup.addUserToPaidGroup(paidUser);
UserGroup.addUserToFreeGroup(freeUser);
- final String welcomeMessagePaidUser = service2.getWelcomeMessage(paidUser);
- final String welcomeMessageFreeUser = service2.getWelcomeMessage(freeUser);
+ final var welcomeMessagePaidUser = service2.getWelcomeMessage(paidUser);
+ final var welcomeMessageFreeUser = service2.getWelcomeMessage(freeUser);
LOGGER.info(welcomeMessageFreeUser);
LOGGER.info(welcomeMessagePaidUser);
}
diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java
index 0bab8bca4ba2..69641a7ada37 100644
--- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java
+++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java
@@ -23,17 +23,15 @@
package com.iluwatar.featuretoggle.pattern.propertiesversion;
-import com.iluwatar.featuretoggle.pattern.Service;
-import com.iluwatar.featuretoggle.user.User;
-import org.junit.jupiter.api.Test;
-
-import java.util.Properties;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import com.iluwatar.featuretoggle.user.User;
+import java.util.Properties;
+import org.junit.jupiter.api.Test;
+
/**
* Test Properties Toggle
*/
@@ -49,7 +47,7 @@ public void testNullPropertiesPassed() {
@Test
public void testNonBooleanProperty() {
assertThrows(IllegalArgumentException.class, () -> {
- final Properties properties = new Properties();
+ final var properties = new Properties();
properties.setProperty("enhancedWelcome", "Something");
new PropertiesFeatureToggleVersion(properties);
});
@@ -57,21 +55,21 @@ public void testNonBooleanProperty() {
@Test
public void testFeatureTurnedOn() {
- final Properties properties = new Properties();
+ final var properties = new Properties();
properties.put("enhancedWelcome", true);
- Service service = new PropertiesFeatureToggleVersion(properties);
+ var service = new PropertiesFeatureToggleVersion(properties);
assertTrue(service.isEnhanced());
- final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
+ final var welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
assertEquals("Welcome Jamie No Code. You're using the enhanced welcome message.", welcomeMessage);
}
@Test
public void testFeatureTurnedOff() {
- final Properties properties = new Properties();
+ final var properties = new Properties();
properties.put("enhancedWelcome", false);
- Service service = new PropertiesFeatureToggleVersion(properties);
+ var service = new PropertiesFeatureToggleVersion(properties);
assertFalse(service.isEnhanced());
- final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
+ final var welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
assertEquals("Welcome to the application.", welcomeMessage);
}
}
diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java
index 1d161c741a74..bb7195b7d2e6 100644
--- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java
+++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java
@@ -23,15 +23,15 @@
package com.iluwatar.featuretoggle.pattern.tieredversion;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.iluwatar.featuretoggle.pattern.Service;
import com.iluwatar.featuretoggle.user.User;
import com.iluwatar.featuretoggle.user.UserGroup;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Test Tiered Feature Toggle
*/
@@ -49,15 +49,15 @@ public void setUp() {
@Test
public void testGetWelcomeMessageForPaidUser() {
- final String welcomeMessage = service.getWelcomeMessage(paidUser);
- final String expected = "You're amazing Jamie Coder. Thanks for paying for this awesome software.";
+ final var welcomeMessage = service.getWelcomeMessage(paidUser);
+ final var expected = "You're amazing Jamie Coder. Thanks for paying for this awesome software.";
assertEquals(expected, welcomeMessage);
}
@Test
public void testGetWelcomeMessageForFreeUser() {
- final String welcomeMessage = service.getWelcomeMessage(freeUser);
- final String expected = "I suppose you can use this software.";
+ final var welcomeMessage = service.getWelcomeMessage(freeUser);
+ final var expected = "I suppose you can use this software.";
assertEquals(expected, welcomeMessage);
}
diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java
index 9490b59a5967..9bc29fabfcf7 100644
--- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java
+++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/user/UserGroupTest.java
@@ -23,34 +23,34 @@
package com.iluwatar.featuretoggle.user;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
/**
* Test User Group specific feature
*/
public class UserGroupTest {
@Test
- public void testAddUserToFreeGroup() throws Exception {
- User user = new User("Free User");
+ public void testAddUserToFreeGroup() {
+ var user = new User("Free User");
UserGroup.addUserToFreeGroup(user);
assertFalse(UserGroup.isPaid(user));
}
@Test
- public void testAddUserToPaidGroup() throws Exception {
- User user = new User("Paid User");
+ public void testAddUserToPaidGroup() {
+ var user = new User("Paid User");
UserGroup.addUserToPaidGroup(user);
assertTrue(UserGroup.isPaid(user));
}
@Test
- public void testAddUserToPaidWhenOnFree() throws Exception {
- User user = new User("Paid User");
+ public void testAddUserToPaidWhenOnFree() {
+ var user = new User("Paid User");
UserGroup.addUserToFreeGroup(user);
assertThrows(IllegalArgumentException.class, () -> {
UserGroup.addUserToPaidGroup(user);
@@ -58,8 +58,8 @@ public void testAddUserToPaidWhenOnFree() throws Exception {
}
@Test
- public void testAddUserToFreeWhenOnPaid() throws Exception {
- User user = new User("Free User");
+ public void testAddUserToFreeWhenOnPaid() {
+ var user = new User("Free User");
UserGroup.addUserToPaidGroup(user);
assertThrows(IllegalArgumentException.class, () -> {
UserGroup.addUserToFreeGroup(user);
diff --git a/fluentinterface/pom.xml b/fluentinterface/pom.xml
index a40541fc4e2b..9eb063c132c5 100644
--- a/fluentinterface/pom.xml
+++ b/fluentinterface/pom.xml
@@ -46,4 +46,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.fluentinterface.app.App
+
+
+
+
+
+
+
+
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 b3f8fc0b6a32..547c657e4c53 100644
--- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java
+++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/app/App.java
@@ -28,8 +28,6 @@
import com.iluwatar.fluentinterface.fluentiterable.FluentIterable;
import com.iluwatar.fluentinterface.fluentiterable.lazy.LazyFluentIterable;
import com.iluwatar.fluentinterface.fluentiterable.simple.SimpleFluentIterable;
-import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.StringJoiner;
import java.util.function.Function;
@@ -57,19 +55,23 @@ public class App {
*/
public static void main(String[] args) {
- List integerList = new ArrayList<>();
- integerList.addAll(List.of(1, -61, 14, -22, 18, -87, 6, 64, -82, 26, -98, 97, 45, 23, 2,
- -68, 45));
+ var integerList = List.of(1, -61, 14, -22, 18, -87, 6, 64, -82, 26, -98, 97, 45, 23, 2, -68);
prettyPrint("The initial list contains: ", integerList);
- List firstFiveNegatives =
- SimpleFluentIterable.fromCopyOf(integerList).filter(negatives()).first(3).asList();
+ var firstFiveNegatives = SimpleFluentIterable
+ .fromCopyOf(integerList)
+ .filter(negatives())
+ .first(3)
+ .asList();
prettyPrint("The first three negative values are: ", firstFiveNegatives);
- List lastTwoPositives =
- SimpleFluentIterable.fromCopyOf(integerList).filter(positives()).last(2).asList();
+ var lastTwoPositives = SimpleFluentIterable
+ .fromCopyOf(integerList)
+ .filter(positives())
+ .last(2)
+ .asList();
prettyPrint("The last two positive values are: ", lastTwoPositives);
SimpleFluentIterable
@@ -79,15 +81,21 @@ public static void main(String[] args) {
.ifPresent(evenNumber -> LOGGER.info("The first even number is: {}", evenNumber));
- List transformedList =
- SimpleFluentIterable.fromCopyOf(integerList).filter(negatives()).map(transformToString())
- .asList();
+ var transformedList = SimpleFluentIterable
+ .fromCopyOf(integerList)
+ .filter(negatives())
+ .map(transformToString())
+ .asList();
prettyPrint("A string-mapped list of negative numbers contains: ", transformedList);
- List lastTwoOfFirstFourStringMapped =
- LazyFluentIterable.from(integerList).filter(positives()).first(4).last(2)
- .map(number -> "String[" + valueOf(number) + "]").asList();
+ var lastTwoOfFirstFourStringMapped = LazyFluentIterable
+ .from(integerList)
+ .filter(positives())
+ .first(4)
+ .last(2)
+ .map(number -> "String[" + valueOf(number) + "]")
+ .asList();
prettyPrint("The lazy list contains the last two of the first four positive numbers "
+ "mapped to Strings: ", lastTwoOfFirstFourStringMapped);
@@ -96,12 +104,11 @@ public static void main(String[] args) {
.filter(negatives())
.first(2)
.last()
- .ifPresent(lastOfFirstTwo -> LOGGER
- .info("The last of the first two negatives is: {}", lastOfFirstTwo));
+ .ifPresent(number -> LOGGER.info("Last amongst first two negatives: {}", number));
}
private static Function transformToString() {
- return integer -> "String[" + valueOf(integer) + "]";
+ return integer -> "String[" + integer + "]";
}
private static Predicate super Integer> negatives() {
@@ -116,14 +123,12 @@ private static void prettyPrint(String prefix, Iterable iterable) {
prettyPrint(", ", prefix, iterable);
}
- private static void prettyPrint(String delimiter, String prefix,
- Iterable iterable) {
- StringJoiner joiner = new StringJoiner(delimiter, prefix, ".");
- Iterator iterator = iterable.iterator();
- while (iterator.hasNext()) {
- joiner.add(iterator.next().toString());
- }
-
+ private static void prettyPrint(
+ String delimiter, String prefix,
+ Iterable iterable
+ ) {
+ var joiner = new StringJoiner(delimiter, prefix, ".");
+ iterable.forEach(e -> joiner.add(e.toString()));
LOGGER.info(joiner.toString());
}
}
diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterable.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterable.java
index ea8d7c9bf1fb..2ffa4d3dd355 100644
--- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterable.java
+++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterable.java
@@ -24,7 +24,6 @@
package com.iluwatar.fluentinterface.fluentiterable;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.function.Function;
@@ -102,11 +101,8 @@ public interface FluentIterable extends Iterable {
* @return a list with all objects of the given iterator
*/
static List copyToList(Iterable iterable) {
- List copy = new ArrayList<>();
- Iterator iterator = iterable.iterator();
- while (iterator.hasNext()) {
- copy.add(iterator.next());
- }
+ var copy = new ArrayList();
+ iterable.forEach(copy::add);
return copy;
}
}
diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/DecoratingIterator.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/DecoratingIterator.java
index 711b54fc9c1a..c0b52cec7e03 100644
--- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/DecoratingIterator.java
+++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/DecoratingIterator.java
@@ -65,7 +65,7 @@ public final E next() {
if (next == null) {
return fromIterator.next();
} else {
- final E result = next;
+ final var result = next;
next = null;
return result;
}
diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java
index 82173c513189..f001c532f2c0 100644
--- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java
+++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/lazy/LazyFluentIterable.java
@@ -67,14 +67,14 @@ protected LazyFluentIterable() {
*/
@Override
public FluentIterable filter(Predicate super E> predicate) {
- return new LazyFluentIterable() {
+ return new LazyFluentIterable<>() {
@Override
public Iterator iterator() {
return new DecoratingIterator(iterable.iterator()) {
@Override
public E computeNext() {
while (fromIterator.hasNext()) {
- E candidate = fromIterator.next();
+ var candidate = fromIterator.next();
if (predicate.test(candidate)) {
return candidate;
}
@@ -94,7 +94,7 @@ public E computeNext() {
*/
@Override
public Optional first() {
- Iterator resultIterator = first(1).iterator();
+ var resultIterator = first(1).iterator();
return resultIterator.hasNext() ? Optional.of(resultIterator.next()) : Optional.empty();
}
@@ -116,7 +116,7 @@ public Iterator iterator() {
@Override
public E computeNext() {
if (currentIndex < count && fromIterator.hasNext()) {
- E candidate = fromIterator.next();
+ var candidate = fromIterator.next();
currentIndex++;
return candidate;
}
@@ -134,7 +134,7 @@ public E computeNext() {
*/
@Override
public Optional last() {
- Iterator resultIterator = last(1).iterator();
+ var resultIterator = last(1).iterator();
return resultIterator.hasNext() ? Optional.of(resultIterator.next()) : Optional.empty();
}
@@ -162,25 +162,20 @@ public Iterator iterator() {
public E computeNext() {
initialize();
- E candidate = null;
while (currentIndex < stopIndex && fromIterator.hasNext()) {
currentIndex++;
fromIterator.next();
}
if (currentIndex >= stopIndex && fromIterator.hasNext()) {
- candidate = fromIterator.next();
+ return fromIterator.next();
}
- return candidate;
+ return null;
}
private void initialize() {
if (list == null) {
list = new ArrayList<>();
- Iterator newIterator = iterable.iterator();
- while (newIterator.hasNext()) {
- list.add(newIterator.next());
- }
-
+ iterable.forEach(list::add);
totalElementsCount = list.size();
stopIndex = totalElementsCount - count;
}
diff --git a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java
index 5165ca765e37..b6a0686532ec 100644
--- a/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java
+++ b/fluentinterface/src/main/java/com/iluwatar/fluentinterface/fluentiterable/simple/SimpleFluentIterable.java
@@ -62,9 +62,9 @@ protected SimpleFluentIterable(Iterable iterable) {
*/
@Override
public final FluentIterable filter(Predicate super E> predicate) {
- Iterator iterator = iterator();
+ var iterator = iterator();
while (iterator.hasNext()) {
- E nextElement = iterator.next();
+ var nextElement = iterator.next();
if (!predicate.test(nextElement)) {
iterator.remove();
}
@@ -79,7 +79,7 @@ public final FluentIterable filter(Predicate super E> predicate) {
*/
@Override
public final Optional first() {
- Iterator resultIterator = first(1).iterator();
+ var resultIterator = first(1).iterator();
return resultIterator.hasNext() ? Optional.of(resultIterator.next()) : Optional.empty();
}
@@ -92,8 +92,8 @@ public final Optional first() {
*/
@Override
public final FluentIterable first(int count) {
- Iterator iterator = iterator();
- int currentCount = 0;
+ var iterator = iterator();
+ var currentCount = 0;
while (iterator.hasNext()) {
iterator.next();
if (currentCount >= count) {
@@ -111,7 +111,7 @@ public final FluentIterable first(int count) {
*/
@Override
public final Optional last() {
- List list = last(1).asList();
+ var list = last(1).asList();
if (list.isEmpty()) {
return Optional.empty();
}
@@ -127,9 +127,9 @@ public final Optional last() {
*/
@Override
public final FluentIterable last(int count) {
- int remainingElementsCount = getRemainingElementsCount();
- Iterator iterator = iterator();
- int currentIndex = 0;
+ var remainingElementsCount = getRemainingElementsCount();
+ var iterator = iterator();
+ var currentIndex = 0;
while (iterator.hasNext()) {
iterator.next();
if (currentIndex < remainingElementsCount - count) {
@@ -150,11 +150,8 @@ public final FluentIterable last(int count) {
*/
@Override
public final FluentIterable map(Function super E, T> function) {
- List temporaryList = new ArrayList<>();
- Iterator iterator = iterator();
- while (iterator.hasNext()) {
- temporaryList.add(function.apply(iterator.next()));
- }
+ var temporaryList = new ArrayList();
+ this.forEach(e -> temporaryList.add(function.apply(e)));
return from(temporaryList);
}
@@ -178,7 +175,7 @@ public static FluentIterable from(Iterable iterable) {
}
public static FluentIterable fromCopyOf(Iterable iterable) {
- List copy = FluentIterable.copyToList(iterable);
+ var copy = FluentIterable.copyToList(iterable);
return new SimpleFluentIterable<>(copy);
}
@@ -204,10 +201,8 @@ public Spliterator spliterator() {
* @return the count of remaining objects of the current Iterable
*/
public final int getRemainingElementsCount() {
- int counter = 0;
- Iterator iterator = iterator();
- while (iterator.hasNext()) {
- iterator.next();
+ var counter = 0;
+ for (var ignored : this) {
counter++;
}
return counter;
@@ -219,10 +214,8 @@ public final int getRemainingElementsCount() {
* @return a new List with the remaining objects.
*/
public static List toList(Iterator iterator) {
- List copy = new ArrayList<>();
- while (iterator.hasNext()) {
- copy.add(iterator.next());
- }
+ var copy = new ArrayList();
+ iterator.forEachRemaining(copy::add);
return copy;
}
}
diff --git a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/app/AppTest.java b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/app/AppTest.java
index f6543f46b3e5..6f25d841691d 100644
--- a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/app/AppTest.java
+++ b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/app/AppTest.java
@@ -32,7 +32,6 @@ public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
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 4ee30d3e5734..2ae69eaf84d3 100644
--- a/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java
+++ b/fluentinterface/src/test/java/com/iluwatar/fluentinterface/fluentiterable/FluentIterableTest.java
@@ -23,16 +23,19 @@
package com.iluwatar.fluentinterface.fluentiterable;
-import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.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 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.*;
-import static org.mockito.Mockito.*;
+import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 7:00 PM
@@ -50,28 +53,28 @@ public abstract class FluentIterableTest {
protected abstract FluentIterable createFluentIterable(final Iterable integers);
@Test
- public void testFirst() throws Exception {
- final List integers = List.of(1, 2, 3, 10, 9, 8);
- final Optional first = createFluentIterable(integers).first();
+ public void testFirst() {
+ final var integers = List.of(1, 2, 3, 10, 9, 8);
+ final var first = createFluentIterable(integers).first();
assertNotNull(first);
assertTrue(first.isPresent());
assertEquals(integers.get(0), first.get());
}
@Test
- public void testFirstEmptyCollection() throws Exception {
- final List integers = Collections.emptyList();
- final Optional first = createFluentIterable(integers).first();
+ public void testFirstEmptyCollection() {
+ final var integers = Collections.emptyList();
+ final var first = createFluentIterable(integers).first();
assertNotNull(first);
assertFalse(first.isPresent());
}
@Test
- public void testFirstCount() throws Exception {
- final List integers = List.of(1, 2, 3, 10, 9, 8);
- final List first4 = createFluentIterable(integers)
- .first(4)
- .asList();
+ public void testFirstCount() {
+ final var integers = List.of(1, 2, 3, 10, 9, 8);
+ final var first4 = createFluentIterable(integers)
+ .first(4)
+ .asList();
assertNotNull(first4);
assertEquals(4, first4.size());
@@ -83,11 +86,11 @@ public void testFirstCount() throws Exception {
}
@Test
- public void testFirstCountLessItems() throws Exception {
- final List integers = List.of(1, 2, 3);
- final List first4 = createFluentIterable(integers)
- .first(4)
- .asList();
+ public void testFirstCountLessItems() {
+ final var integers = List.of(1, 2, 3);
+ final var first4 = createFluentIterable(integers)
+ .first(4)
+ .asList();
assertNotNull(first4);
assertEquals(3, first4.size());
@@ -98,28 +101,28 @@ public void testFirstCountLessItems() throws Exception {
}
@Test
- public void testLast() throws Exception {
- final List integers = List.of(1, 2, 3, 10, 9, 8);
- final Optional last = createFluentIterable(integers).last();
+ public void testLast() {
+ final var integers = List.of(1, 2, 3, 10, 9, 8);
+ final var last = createFluentIterable(integers).last();
assertNotNull(last);
assertTrue(last.isPresent());
assertEquals(integers.get(integers.size() - 1), last.get());
}
@Test
- public void testLastEmptyCollection() throws Exception {
- final List integers = Collections.emptyList();
- final Optional last = createFluentIterable(integers).last();
+ public void testLastEmptyCollection() {
+ final var integers = Collections.emptyList();
+ final var last = createFluentIterable(integers).last();
assertNotNull(last);
assertFalse(last.isPresent());
}
@Test
- public void testLastCount() throws Exception {
- final List integers = List.of(1, 2, 3, 10, 9, 8);
- final List last4 = createFluentIterable(integers)
- .last(4)
- .asList();
+ public void testLastCount() {
+ final var integers = List.of(1, 2, 3, 10, 9, 8);
+ final var last4 = createFluentIterable(integers)
+ .last(4)
+ .asList();
assertNotNull(last4);
assertEquals(4, last4.size());
@@ -130,11 +133,11 @@ public void testLastCount() throws Exception {
}
@Test
- public void testLastCountLessItems() throws Exception {
- final List integers = List.of(1, 2, 3);
- final List last4 = createFluentIterable(integers)
- .last(4)
- .asList();
+ public void testLastCountLessItems() {
+ final var integers = List.of(1, 2, 3);
+ final var last4 = createFluentIterable(integers)
+ .last(4)
+ .asList();
assertNotNull(last4);
assertEquals(3, last4.size());
@@ -145,11 +148,11 @@ public void testLastCountLessItems() throws Exception {
}
@Test
- public void testFilter() throws Exception {
- final List integers = List.of(1, 2, 3, 10, 9, 8);
- final List evenItems = createFluentIterable(integers)
- .filter(i -> i % 2 == 0)
- .asList();
+ public void testFilter() {
+ final var integers = List.of(1, 2, 3, 10, 9, 8);
+ final var evenItems = createFluentIterable(integers)
+ .filter(i -> i % 2 == 0)
+ .asList();
assertNotNull(evenItems);
assertEquals(3, evenItems.size());
@@ -159,11 +162,11 @@ public void testFilter() throws Exception {
}
@Test
- public void testMap() throws Exception {
- final List integers = List.of(1, 2, 3);
- final List longs = createFluentIterable(integers)
- .map(Integer::longValue)
- .asList();
+ public void testMap() {
+ final var integers = List.of(1, 2, 3);
+ final var longs = createFluentIterable(integers)
+ .map(Integer::longValue)
+ .asList();
assertNotNull(longs);
assertEquals(integers.size(), longs.size());
@@ -174,7 +177,7 @@ public void testMap() throws Exception {
@Test
public void testForEach() {
- final List integers = List.of(1, 2, 3);
+ final var integers = List.of(1, 2, 3);
final Consumer consumer = mock(Consumer.class);
createFluentIterable(integers).forEach(consumer);
@@ -188,8 +191,8 @@ public void testForEach() {
@Test
public void testSpliterator() throws Exception {
- final List integers = List.of(1, 2, 3);
- final Spliterator split = createFluentIterable(integers).spliterator();
+ final var integers = List.of(1, 2, 3);
+ final var split = createFluentIterable(integers).spliterator();
assertNotNull(split);
}
diff --git a/flux/pom.xml b/flux/pom.xml
index 1c44d80574ec..8effd0fc941b 100644
--- a/flux/pom.xml
+++ b/flux/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.flux.app.App
+
+
+
+
+
+
+
+
diff --git a/flux/src/main/java/com/iluwatar/flux/app/App.java b/flux/src/main/java/com/iluwatar/flux/app/App.java
index 13a16c977437..1344d9eaa101 100644
--- a/flux/src/main/java/com/iluwatar/flux/app/App.java
+++ b/flux/src/main/java/com/iluwatar/flux/app/App.java
@@ -54,13 +54,13 @@ public class App {
public static void main(String[] args) {
// initialize and wire the system
- MenuStore menuStore = new MenuStore();
+ var menuStore = new MenuStore();
Dispatcher.getInstance().registerStore(menuStore);
- ContentStore contentStore = new ContentStore();
+ var contentStore = new ContentStore();
Dispatcher.getInstance().registerStore(contentStore);
- MenuView menuView = new MenuView();
+ var menuView = new MenuView();
menuStore.registerView(menuView);
- ContentView contentView = new ContentView();
+ var contentView = new ContentView();
contentStore.registerView(contentView);
// render initial view
diff --git a/flux/src/main/java/com/iluwatar/flux/dispatcher/Dispatcher.java b/flux/src/main/java/com/iluwatar/flux/dispatcher/Dispatcher.java
index 206ef8b3fdd0..cf09ecf6866e 100644
--- a/flux/src/main/java/com/iluwatar/flux/dispatcher/Dispatcher.java
+++ b/flux/src/main/java/com/iluwatar/flux/dispatcher/Dispatcher.java
@@ -70,6 +70,6 @@ public void menuItemSelected(MenuItem menuItem) {
}
private void dispatchAction(Action action) {
- stores.stream().forEach(store -> store.onAction(action));
+ stores.forEach(store -> store.onAction(action));
}
}
diff --git a/flux/src/main/java/com/iluwatar/flux/store/ContentStore.java b/flux/src/main/java/com/iluwatar/flux/store/ContentStore.java
index be2a5e419bdb..60d3faea0e2e 100644
--- a/flux/src/main/java/com/iluwatar/flux/store/ContentStore.java
+++ b/flux/src/main/java/com/iluwatar/flux/store/ContentStore.java
@@ -38,7 +38,7 @@ public class ContentStore extends Store {
@Override
public void onAction(Action action) {
if (action.getType().equals(ActionType.CONTENT_CHANGED)) {
- ContentAction contentAction = (ContentAction) action;
+ var contentAction = (ContentAction) action;
content = contentAction.getContent();
notifyChange();
}
diff --git a/flux/src/main/java/com/iluwatar/flux/store/MenuStore.java b/flux/src/main/java/com/iluwatar/flux/store/MenuStore.java
index 4757a563e63f..819500c8a360 100644
--- a/flux/src/main/java/com/iluwatar/flux/store/MenuStore.java
+++ b/flux/src/main/java/com/iluwatar/flux/store/MenuStore.java
@@ -38,7 +38,7 @@ public class MenuStore extends Store {
@Override
public void onAction(Action action) {
if (action.getType().equals(ActionType.MENU_ITEM_SELECTED)) {
- MenuAction menuAction = (MenuAction) action;
+ var menuAction = (MenuAction) action;
selected = menuAction.getMenuItem();
notifyChange();
}
diff --git a/flux/src/main/java/com/iluwatar/flux/store/Store.java b/flux/src/main/java/com/iluwatar/flux/store/Store.java
index b0fc8bac0d23..cfbdf4af54ef 100644
--- a/flux/src/main/java/com/iluwatar/flux/store/Store.java
+++ b/flux/src/main/java/com/iluwatar/flux/store/Store.java
@@ -42,6 +42,6 @@ public void registerView(View view) {
}
protected void notifyChange() {
- views.stream().forEach(view -> view.storeChanged(this));
+ views.forEach(view -> view.storeChanged(this));
}
}
diff --git a/flux/src/main/java/com/iluwatar/flux/view/ContentView.java b/flux/src/main/java/com/iluwatar/flux/view/ContentView.java
index fc794d8dc6bf..b71a2c53ba38 100644
--- a/flux/src/main/java/com/iluwatar/flux/view/ContentView.java
+++ b/flux/src/main/java/com/iluwatar/flux/view/ContentView.java
@@ -40,7 +40,7 @@ public class ContentView implements View {
@Override
public void storeChanged(Store store) {
- ContentStore contentStore = (ContentStore) store;
+ var contentStore = (ContentStore) store;
content = contentStore.getContent();
render();
}
diff --git a/flux/src/main/java/com/iluwatar/flux/view/MenuView.java b/flux/src/main/java/com/iluwatar/flux/view/MenuView.java
index c09d146a9298..f4cdf7a4d7de 100644
--- a/flux/src/main/java/com/iluwatar/flux/view/MenuView.java
+++ b/flux/src/main/java/com/iluwatar/flux/view/MenuView.java
@@ -41,14 +41,14 @@ public class MenuView implements View {
@Override
public void storeChanged(Store store) {
- MenuStore menuStore = (MenuStore) store;
+ var menuStore = (MenuStore) store;
selected = menuStore.getSelected();
render();
}
@Override
public void render() {
- for (MenuItem item : MenuItem.values()) {
+ for (var item : MenuItem.values()) {
if (selected.equals(item)) {
LOGGER.info("* {}", item);
} else {
diff --git a/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java b/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java
index 3e047db216ca..f0f41f8ce0f7 100644
--- a/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/action/ContentTest.java
@@ -23,11 +23,11 @@
package com.iluwatar.flux.action;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/12/15 - 10:11 PM
*
@@ -36,9 +36,9 @@
public class ContentTest {
@Test
- public void testToString() throws Exception {
- for (final Content content : Content.values()) {
- final String toString = content.toString();
+ public void testToString() {
+ for (final var content : Content.values()) {
+ final var toString = content.toString();
assertNotNull(toString);
assertFalse(toString.trim().isEmpty());
}
diff --git a/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java b/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java
index 272c3a31b7c0..374f27daaa4c 100644
--- a/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/action/MenuItemTest.java
@@ -23,11 +23,11 @@
package com.iluwatar.flux.action;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/12/15 - 10:15 PM
*
@@ -36,9 +36,9 @@
public class MenuItemTest {
@Test
- public void testToString() throws Exception {
- for (final MenuItem menuItem : MenuItem.values()) {
- final String toString = menuItem.toString();
+ public void testToString() {
+ for (final var menuItem : MenuItem.values()) {
+ final var toString = menuItem.toString();
assertNotNull(toString);
assertFalse(toString.trim().isEmpty());
}
diff --git a/flux/src/test/java/com/iluwatar/flux/app/AppTest.java b/flux/src/test/java/com/iluwatar/flux/app/AppTest.java
index f4b58a9b11cb..8916ad4de856 100644
--- a/flux/src/test/java/com/iluwatar/flux/app/AppTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/app/AppTest.java
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java b/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java
index 33ee1b69d5c5..5212a57d8396 100644
--- a/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/dispatcher/DispatcherTest.java
@@ -23,6 +23,14 @@
package com.iluwatar.flux.dispatcher;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
import com.iluwatar.flux.action.Action;
import com.iluwatar.flux.action.ActionType;
import com.iluwatar.flux.action.Content;
@@ -30,23 +38,12 @@
import com.iluwatar.flux.action.MenuAction;
import com.iluwatar.flux.action.MenuItem;
import com.iluwatar.flux.store.Store;
+import java.util.List;
+import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-
/**
* Date: 12/12/15 - 8:22 PM
*
@@ -61,53 +58,56 @@ public class DispatcherTest {
*/
@BeforeEach
public void setUp() throws Exception {
- final Constructor constructor;
- constructor = Dispatcher.class.getDeclaredConstructor();
+ final var constructor = Dispatcher.class.getDeclaredConstructor();
constructor.setAccessible(true);
- final Field field = Dispatcher.class.getDeclaredField("instance");
+ final var field = Dispatcher.class.getDeclaredField("instance");
field.setAccessible(true);
field.set(Dispatcher.getInstance(), constructor.newInstance());
}
@Test
- public void testGetInstance() throws Exception {
+ public void testGetInstance() {
assertNotNull(Dispatcher.getInstance());
assertSame(Dispatcher.getInstance(), Dispatcher.getInstance());
}
@Test
- public void testMenuItemSelected() throws Exception {
- final Dispatcher dispatcher = Dispatcher.getInstance();
+ public void testMenuItemSelected() {
+ final var dispatcher = Dispatcher.getInstance();
- final Store store = mock(Store.class);
+ final var store = mock(Store.class);
dispatcher.registerStore(store);
dispatcher.menuItemSelected(MenuItem.HOME);
dispatcher.menuItemSelected(MenuItem.COMPANY);
// We expect 4 events, 2 menu selections and 2 content change actions
- final ArgumentCaptor actionCaptor = ArgumentCaptor.forClass(Action.class);
+ final var actionCaptor = ArgumentCaptor.forClass(Action.class);
verify(store, times(4)).onAction(actionCaptor.capture());
verifyNoMoreInteractions(store);
- final List actions = actionCaptor.getAllValues();
- final List menuActions = actions.stream()
- .filter(a -> a.getType().equals(ActionType.MENU_ITEM_SELECTED))
- .map(a -> (MenuAction) a)
- .collect(Collectors.toList());
+ final var actions = actionCaptor.getAllValues();
+ final var menuActions = actions.stream()
+ .filter(a -> a.getType().equals(ActionType.MENU_ITEM_SELECTED))
+ .map(a -> (MenuAction) a)
+ .collect(Collectors.toList());
- final List contentActions = actions.stream()
- .filter(a -> a.getType().equals(ActionType.CONTENT_CHANGED))
- .map(a -> (ContentAction) a)
- .collect(Collectors.toList());
+ final var contentActions = actions.stream()
+ .filter(a -> a.getType().equals(ActionType.CONTENT_CHANGED))
+ .map(a -> (ContentAction) a)
+ .collect(Collectors.toList());
assertEquals(2, menuActions.size());
- assertEquals(1, menuActions.stream().map(MenuAction::getMenuItem).filter(MenuItem.HOME::equals).count());
- assertEquals(1, menuActions.stream().map(MenuAction::getMenuItem).filter(MenuItem.COMPANY::equals).count());
+ assertEquals(1, menuActions.stream().map(MenuAction::getMenuItem).filter(MenuItem.HOME::equals)
+ .count());
+ assertEquals(1, menuActions.stream().map(MenuAction::getMenuItem)
+ .filter(MenuItem.COMPANY::equals).count());
assertEquals(2, contentActions.size());
- assertEquals(1, contentActions.stream().map(ContentAction::getContent).filter(Content.PRODUCTS::equals).count());
- assertEquals(1, contentActions.stream().map(ContentAction::getContent).filter(Content.COMPANY::equals).count());
+ assertEquals(1, contentActions.stream().map(ContentAction::getContent)
+ .filter(Content.PRODUCTS::equals).count());
+ assertEquals(1, contentActions.stream().map(ContentAction::getContent)
+ .filter(Content.COMPANY::equals).count());
}
diff --git a/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java b/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java
index 5bb35a2f258c..cca59a5ab008 100644
--- a/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/store/ContentStoreTest.java
@@ -23,20 +23,20 @@
package com.iluwatar.flux.store;
-import com.iluwatar.flux.action.Content;
-import com.iluwatar.flux.action.ContentAction;
-import com.iluwatar.flux.action.MenuAction;
-import com.iluwatar.flux.action.MenuItem;
-import com.iluwatar.flux.view.View;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import com.iluwatar.flux.action.Content;
+import com.iluwatar.flux.action.ContentAction;
+import com.iluwatar.flux.action.MenuAction;
+import com.iluwatar.flux.action.MenuItem;
+import com.iluwatar.flux.view.View;
+import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:18 PM
@@ -46,10 +46,10 @@
public class ContentStoreTest {
@Test
- public void testOnAction() throws Exception {
- final ContentStore contentStore = new ContentStore();
+ public void testOnAction() {
+ final var contentStore = new ContentStore();
- final View view = mock(View.class);
+ final var view = mock(View.class);
contentStore.registerView(view);
verifyZeroInteractions(view);
diff --git a/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java b/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java
index 8085326c86a9..24a05f48659a 100644
--- a/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/store/MenuStoreTest.java
@@ -23,20 +23,20 @@
package com.iluwatar.flux.store;
-import com.iluwatar.flux.action.Content;
-import com.iluwatar.flux.action.ContentAction;
-import com.iluwatar.flux.action.MenuAction;
-import com.iluwatar.flux.action.MenuItem;
-import com.iluwatar.flux.view.View;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import com.iluwatar.flux.action.Content;
+import com.iluwatar.flux.action.ContentAction;
+import com.iluwatar.flux.action.MenuAction;
+import com.iluwatar.flux.action.MenuItem;
+import com.iluwatar.flux.view.View;
+import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:18 PM
@@ -46,10 +46,10 @@
public class MenuStoreTest {
@Test
- public void testOnAction() throws Exception {
- final MenuStore menuStore = new MenuStore();
+ public void testOnAction() {
+ final var menuStore = new MenuStore();
- final View view = mock(View.class);
+ final var view = mock(View.class);
menuStore.registerView(view);
verifyZeroInteractions(view);
diff --git a/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java b/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java
index fe6b46618a6d..15ffc48d0bbd 100644
--- a/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/view/ContentViewTest.java
@@ -23,15 +23,15 @@
package com.iluwatar.flux.view;
-import com.iluwatar.flux.action.Content;
-import com.iluwatar.flux.store.ContentStore;
-import org.junit.jupiter.api.Test;
-
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import com.iluwatar.flux.action.Content;
+import com.iluwatar.flux.store.ContentStore;
+import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:31 PM
@@ -41,11 +41,11 @@
public class ContentViewTest {
@Test
- public void testStoreChanged() throws Exception {
- final ContentStore store = mock(ContentStore.class);
+ public void testStoreChanged() {
+ final var store = mock(ContentStore.class);
when(store.getContent()).thenReturn(Content.PRODUCTS);
- final ContentView view = new ContentView();
+ final var view = new ContentView();
view.storeChanged(store);
verify(store, times(1)).getContent();
diff --git a/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java b/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java
index 4383c0063fb6..2efe0ba025ae 100644
--- a/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java
+++ b/flux/src/test/java/com/iluwatar/flux/view/MenuViewTest.java
@@ -23,13 +23,6 @@
package com.iluwatar.flux.view;
-import com.iluwatar.flux.action.Action;
-import com.iluwatar.flux.action.MenuItem;
-import com.iluwatar.flux.dispatcher.Dispatcher;
-import com.iluwatar.flux.store.MenuStore;
-import com.iluwatar.flux.store.Store;
-import org.junit.jupiter.api.Test;
-
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@@ -37,6 +30,13 @@
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import com.iluwatar.flux.action.Action;
+import com.iluwatar.flux.action.MenuItem;
+import com.iluwatar.flux.dispatcher.Dispatcher;
+import com.iluwatar.flux.store.MenuStore;
+import com.iluwatar.flux.store.Store;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/12/15 - 10:31 PM
*
@@ -45,11 +45,11 @@
public class MenuViewTest {
@Test
- public void testStoreChanged() throws Exception {
- final MenuStore store = mock(MenuStore.class);
+ public void testStoreChanged() {
+ final var store = mock(MenuStore.class);
when(store.getSelected()).thenReturn(MenuItem.HOME);
- final MenuView view = new MenuView();
+ final var view = new MenuView();
view.storeChanged(store);
verify(store, times(1)).getSelected();
@@ -57,11 +57,11 @@ public void testStoreChanged() throws Exception {
}
@Test
- public void testItemClicked() throws Exception {
- final Store store = mock(Store.class);
+ public void testItemClicked() {
+ final var store = mock(Store.class);
Dispatcher.getInstance().registerStore(store);
- final MenuView view = new MenuView();
+ final var view = new MenuView();
view.itemClicked(MenuItem.PRODUCTS);
// We should receive a menu click action and a content changed action
diff --git a/flyweight/README.md b/flyweight/README.md
index 4847b828505b..a263cc438a7e 100644
--- a/flyweight/README.md
+++ b/flyweight/README.md
@@ -72,7 +72,7 @@ public class PotionFactory {
}
Potion createPotion(PotionType type) {
- Potion potion = potions.get(type);
+ var potion = potions.get(type);
if (potion == null) {
switch (type) {
case HEALING:
@@ -99,7 +99,7 @@ public class PotionFactory {
And it can be used as below
```java
-PotionFactory factory = new PotionFactory();
+var factory = new PotionFactory();
factory.createPotion(PotionType.INVISIBILITY).drink(); // You become invisible. (Potion=6566818)
factory.createPotion(PotionType.HEALING).drink(); // You feel healed. (Potion=648129364)
factory.createPotion(PotionType.INVISIBILITY).drink(); // You become invisible. (Potion=6566818)
diff --git a/flyweight/pom.xml b/flyweight/pom.xml
index a17b43dcd572..f3a8082b5afb 100644
--- a/flyweight/pom.xml
+++ b/flyweight/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.flyweight.App
+
+
+
+
+
+
+
+
diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java
index e99cfc8078a8..4fa7312e56c1 100644
--- a/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java
+++ b/flyweight/src/main/java/com/iluwatar/flyweight/AlchemistShop.java
@@ -23,7 +23,6 @@
package com.iluwatar.flyweight;
-import java.util.Collections;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +41,7 @@ public class AlchemistShop {
* Constructor.
*/
public AlchemistShop() {
- PotionFactory factory = new PotionFactory();
+ var factory = new PotionFactory();
topShelf = List.of(
factory.createPotion(PotionType.INVISIBILITY),
factory.createPotion(PotionType.INVISIBILITY),
@@ -68,7 +67,7 @@ public AlchemistShop() {
* @return The top shelf potions
*/
public final List getTopShelf() {
- return Collections.unmodifiableList(this.topShelf);
+ return List.copyOf(this.topShelf);
}
/**
@@ -77,24 +76,16 @@ public final List getTopShelf() {
* @return The bottom shelf potions
*/
public final List getBottomShelf() {
- return Collections.unmodifiableList(this.bottomShelf);
+ return List.copyOf(this.bottomShelf);
}
/**
* Enumerate potions.
*/
public void enumerate() {
-
LOGGER.info("Enumerating top shelf potions\n");
-
- for (Potion p : topShelf) {
- p.drink();
- }
-
+ topShelf.forEach(Potion::drink);
LOGGER.info("Enumerating bottom shelf potions\n");
-
- for (Potion p : bottomShelf) {
- p.drink();
- }
+ bottomShelf.forEach(Potion::drink);
}
}
diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/App.java b/flyweight/src/main/java/com/iluwatar/flyweight/App.java
index cbea6b9cc97b..8f5ff8742030 100644
--- a/flyweight/src/main/java/com/iluwatar/flyweight/App.java
+++ b/flyweight/src/main/java/com/iluwatar/flyweight/App.java
@@ -43,7 +43,7 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- AlchemistShop alchemistShop = new AlchemistShop();
+ var alchemistShop = new AlchemistShop();
alchemistShop.enumerate();
}
}
diff --git a/flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java b/flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java
index 19edf0e21502..a731c03590fb 100644
--- a/flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java
+++ b/flyweight/src/main/java/com/iluwatar/flyweight/PotionFactory.java
@@ -40,7 +40,7 @@ public PotionFactory() {
}
Potion createPotion(PotionType type) {
- Potion potion = potions.get(type);
+ var potion = potions.get(type);
if (potion == null) {
switch (type) {
case HEALING:
diff --git a/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java b/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java
index 16374efb2f95..50053dddf65c 100644
--- a/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java
+++ b/flyweight/src/test/java/com/iluwatar/flyweight/AlchemistShopTest.java
@@ -23,14 +23,12 @@
package com.iluwatar.flyweight;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import java.util.ArrayList;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/12/15 - 10:54 PM
*
@@ -39,18 +37,18 @@
public class AlchemistShopTest {
@Test
- public void testShop() throws Exception {
- final AlchemistShop shop = new AlchemistShop();
+ public void testShop() {
+ final var shop = new AlchemistShop();
- final List bottomShelf = shop.getBottomShelf();
+ final var bottomShelf = shop.getBottomShelf();
assertNotNull(bottomShelf);
assertEquals(5, bottomShelf.size());
- final List topShelf = shop.getTopShelf();
+ final var topShelf = shop.getTopShelf();
assertNotNull(topShelf);
assertEquals(8, topShelf.size());
- final List allPotions = new ArrayList<>();
+ final var allPotions = new ArrayList();
allPotions.addAll(topShelf);
allPotions.addAll(bottomShelf);
diff --git a/flyweight/src/test/java/com/iluwatar/flyweight/AppTest.java b/flyweight/src/test/java/com/iluwatar/flyweight/AppTest.java
index 8beff17235b5..3d81a6db2e7b 100644
--- a/flyweight/src/test/java/com/iluwatar/flyweight/AppTest.java
+++ b/flyweight/src/test/java/com/iluwatar/flyweight/AppTest.java
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/front-controller/pom.xml b/front-controller/pom.xml
index de0f084a9aa2..34dabc18200f 100644
--- a/front-controller/pom.xml
+++ b/front-controller/pom.xml
@@ -50,4 +50,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.front.controller.App
+
+
+
+
+
+
+
+
diff --git a/front-controller/src/main/java/com/iluwatar/front/controller/App.java b/front-controller/src/main/java/com/iluwatar/front/controller/App.java
index 7388a06f80d1..d1a77887f7f2 100644
--- a/front-controller/src/main/java/com/iluwatar/front/controller/App.java
+++ b/front-controller/src/main/java/com/iluwatar/front/controller/App.java
@@ -47,7 +47,7 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- FrontController controller = new FrontController();
+ var controller = new FrontController();
controller.handleRequest("Archer");
controller.handleRequest("Catapult");
controller.handleRequest("foobar");
diff --git a/front-controller/src/main/java/com/iluwatar/front/controller/FrontController.java b/front-controller/src/main/java/com/iluwatar/front/controller/FrontController.java
index 91535f9e04d6..acdb7b1c8f35 100644
--- a/front-controller/src/main/java/com/iluwatar/front/controller/FrontController.java
+++ b/front-controller/src/main/java/com/iluwatar/front/controller/FrontController.java
@@ -30,12 +30,12 @@
public class FrontController {
public void handleRequest(String request) {
- Command command = getCommand(request);
+ var command = getCommand(request);
command.process();
}
private Command getCommand(String request) {
- Class> commandClass = getCommandClass(request);
+ var commandClass = getCommandClass(request);
try {
return (Command) commandClass.newInstance();
} catch (Exception e) {
@@ -44,12 +44,10 @@ private Command getCommand(String request) {
}
private static Class> getCommandClass(String request) {
- Class> result;
try {
- result = Class.forName("com.iluwatar.front.controller." + request + "Command");
+ return Class.forName("com.iluwatar.front.controller." + request + "Command");
} catch (ClassNotFoundException e) {
- result = UnknownCommand.class;
+ return UnknownCommand.class;
}
- return result;
}
}
diff --git a/front-controller/src/test/java/com/iluwatar/front/controller/AppTest.java b/front-controller/src/test/java/com/iluwatar/front/controller/AppTest.java
index c77da640dbd7..2ea58c6a6da2 100644
--- a/front-controller/src/test/java/com/iluwatar/front/controller/AppTest.java
+++ b/front-controller/src/test/java/com/iluwatar/front/controller/AppTest.java
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java b/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java
index 085c317555a4..165d13f44f0d 100644
--- a/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java
+++ b/front-controller/src/test/java/com/iluwatar/front/controller/ApplicationExceptionTest.java
@@ -36,7 +36,7 @@ public class ApplicationExceptionTest {
@Test
public void testCause() {
- final Exception cause = new Exception();
+ final var cause = new Exception();
assertSame(cause, new ApplicationException(cause).getCause());
}
diff --git a/front-controller/src/test/java/com/iluwatar/front/controller/CommandTest.java b/front-controller/src/test/java/com/iluwatar/front/controller/CommandTest.java
index 82cd4c0da699..46a3ae94b5a1 100644
--- a/front-controller/src/test/java/com/iluwatar/front/controller/CommandTest.java
+++ b/front-controller/src/test/java/com/iluwatar/front/controller/CommandTest.java
@@ -23,17 +23,15 @@
package com.iluwatar.front.controller;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.front.controller.utils.InMemoryAppender;
+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 java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Date: 12/13/15 - 1:39 PM
*
@@ -54,11 +52,11 @@ public void tearDown() {
}
static List dataProvider() {
- final List parameters = new ArrayList<>();
- parameters.add(new Object[]{"Archer", "Displaying archers"});
- parameters.add(new Object[]{"Catapult", "Displaying catapults"});
- parameters.add(new Object[]{"NonExistentCommand", "Error 500"});
- return parameters;
+ return List.of(
+ new Object[]{"Archer", "Displaying archers"},
+ new Object[]{"Catapult", "Displaying catapults"},
+ new Object[]{"NonExistentCommand", "Error 500"}
+ );
}
/**
@@ -68,7 +66,7 @@ static List dataProvider() {
@ParameterizedTest
@MethodSource("dataProvider")
public void testDisplay(String request, String displayMessage) {
- final FrontController frontController = new FrontController();
+ final var frontController = new FrontController();
assertEquals(0, appender.getLogSize());
frontController.handleRequest(request);
assertEquals(displayMessage, appender.getLastMessage());
diff --git a/front-controller/src/test/java/com/iluwatar/front/controller/FrontControllerTest.java b/front-controller/src/test/java/com/iluwatar/front/controller/FrontControllerTest.java
index e1701892b24c..eac3ae3bc845 100644
--- a/front-controller/src/test/java/com/iluwatar/front/controller/FrontControllerTest.java
+++ b/front-controller/src/test/java/com/iluwatar/front/controller/FrontControllerTest.java
@@ -23,17 +23,15 @@
package com.iluwatar.front.controller;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.front.controller.utils.InMemoryAppender;
+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 java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Date: 12/13/15 - 1:39 PM
*
@@ -54,11 +52,11 @@ public void tearDown() {
}
static List dataProvider() {
- final List parameters = new ArrayList<>();
- parameters.add(new Object[]{new ArcherCommand(), "Displaying archers"});
- parameters.add(new Object[]{new CatapultCommand(), "Displaying catapults"});
- parameters.add(new Object[]{new UnknownCommand(), "Error 500"});
- return parameters;
+ return List.of(
+ new Object[]{new ArcherCommand(), "Displaying archers"},
+ new Object[]{new CatapultCommand(), "Displaying catapults"},
+ new Object[]{new UnknownCommand(), "Error 500"}
+ );
}
/**
diff --git a/front-controller/src/test/java/com/iluwatar/front/controller/ViewTest.java b/front-controller/src/test/java/com/iluwatar/front/controller/ViewTest.java
index 3d954a129f1c..6839d4ad0096 100644
--- a/front-controller/src/test/java/com/iluwatar/front/controller/ViewTest.java
+++ b/front-controller/src/test/java/com/iluwatar/front/controller/ViewTest.java
@@ -23,17 +23,15 @@
package com.iluwatar.front.controller;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.front.controller.utils.InMemoryAppender;
+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 java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Date: 12/13/15 - 1:39 PM
*
@@ -54,11 +52,11 @@ public void tearDown() {
}
static List dataProvider() {
- final List parameters = new ArrayList<>();
- parameters.add(new Object[]{new ArcherView(), "Displaying archers"});
- parameters.add(new Object[]{new CatapultView(), "Displaying catapults"});
- parameters.add(new Object[]{new ErrorView(), "Error 500"});
- return parameters;
+ return List.of(
+ new Object[]{new ArcherView(), "Displaying archers"},
+ new Object[]{new CatapultView(), "Displaying catapults"},
+ new Object[]{new ErrorView(), "Error 500"}
+ );
}
/**
diff --git a/game-loop/pom.xml b/game-loop/pom.xml
index da5c2bb09bc0..2c290827141c 100644
--- a/game-loop/pom.xml
+++ b/game-loop/pom.xml
@@ -40,6 +40,24 @@
junit
-
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.gameloop.App
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game-loop/src/main/java/com/iluwatar/gameloop/GameLoop.java b/game-loop/src/main/java/com/iluwatar/gameloop/GameLoop.java
index 47410382203e..cbb456ccf5d5 100644
--- a/game-loop/src/main/java/com/iluwatar/gameloop/GameLoop.java
+++ b/game-loop/src/main/java/com/iluwatar/gameloop/GameLoop.java
@@ -70,7 +70,7 @@ public void stop() {
* @return {@code true} if the game is running.
*/
public boolean isGameRunning() {
- return status == GameStatus.RUNNING ? true : false;
+ return status == GameStatus.RUNNING;
}
/**
@@ -80,7 +80,7 @@ public boolean isGameRunning() {
*/
protected void processInput() {
try {
- int lag = new Random().nextInt(200) + 50;
+ var lag = new Random().nextInt(200) + 50;
Thread.sleep(lag);
} catch (InterruptedException e) {
logger.error(e.getMessage());
diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java
index 187fe1537c97..447e4f411faa 100644
--- a/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java
+++ b/game-loop/src/test/java/com/iluwatar/gameloop/AppTest.java
@@ -32,8 +32,7 @@ public class AppTest {
@Test
public void testMain() {
- String[] args = {};
- new App().main(args);
+ new App().main(new String[]{});
}
}
diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java
index 61e2a3bb6ce0..4873cfd47ff0 100644
--- a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java
+++ b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java
@@ -65,7 +65,7 @@ public void testStop() {
@Test
public void testIsGameRunning() {
- Assert.assertEquals(false, gameLoop.isGameRunning());
+ Assert.assertFalse(gameLoop.isGameRunning());
}
}
diff --git a/guarded-suspension/pom.xml b/guarded-suspension/pom.xml
index bc1dec09eedc..791c696c158a 100644
--- a/guarded-suspension/pom.xml
+++ b/guarded-suspension/pom.xml
@@ -41,4 +41,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.guarded.suspension.App
+
+
+
+
+
+
+
+
diff --git a/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/App.java b/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/App.java
index 7c9bc1429c4b..7e300575d2f3 100644
--- a/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/App.java
+++ b/guarded-suspension/src/main/java/com/iluwatar/guarded/suspension/App.java
@@ -23,7 +23,6 @@
package com.iluwatar.guarded.suspension;
-import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -45,14 +44,11 @@ public class App {
* @param args - command line args
*/
public static void main(String[] args) {
- GuardedQueue guardedQueue = new GuardedQueue();
- ExecutorService executorService = Executors.newFixedThreadPool(3);
+ var guardedQueue = new GuardedQueue();
+ var executorService = Executors.newFixedThreadPool(3);
//here we create first thread which is supposed to get from guardedQueue
- executorService.execute(() -> {
- guardedQueue.get();
- }
- );
+ executorService.execute(guardedQueue::get);
// here we wait two seconds to show that the thread which is trying
// to get from guardedQueue will be waiting
@@ -63,10 +59,7 @@ public static void main(String[] args) {
}
// now we execute second thread which will put number to guardedQueue
// and notify first thread that it could get
- executorService.execute(() -> {
- guardedQueue.put(20);
- }
- );
+ executorService.execute(() -> guardedQueue.put(20));
executorService.shutdown();
try {
executorService.awaitTermination(30, TimeUnit.SECONDS);
diff --git a/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java b/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java
index 0cd3588222ba..38d451ced9e3 100644
--- a/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java
+++ b/guarded-suspension/src/test/java/com/iluwatar/guarded/suspension/GuardedQueueTest.java
@@ -23,13 +23,11 @@
package com.iluwatar.guarded.suspension;
-import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
/**
* Test for Guarded Queue
@@ -39,8 +37,8 @@ public class GuardedQueueTest {
@Test
public void testGet() {
- GuardedQueue g = new GuardedQueue();
- ExecutorService executorService = Executors.newFixedThreadPool(2);
+ var g = new GuardedQueue();
+ var executorService = Executors.newFixedThreadPool(2);
executorService.submit(() -> value = g.get());
executorService.submit(() -> g.put(10));
executorService.shutdown();
@@ -54,7 +52,7 @@ public void testGet() {
@Test
public void testPut() {
- GuardedQueue g = new GuardedQueue();
+ var g = new GuardedQueue();
g.put(12);
assertEquals(Integer.valueOf(12), g.get());
}
diff --git a/half-sync-half-async/pom.xml b/half-sync-half-async/pom.xml
index 3e86d3a173b2..fdb37edb0106 100644
--- a/half-sync-half-async/pom.xml
+++ b/half-sync-half-async/pom.xml
@@ -49,4 +49,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.halfsynchalfasync.App
+
+
+
+
+
+
+
+
diff --git a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java
index c559fca59411..7df2264ab135 100644
--- a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java
+++ b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/App.java
@@ -70,7 +70,7 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- AsynchronousService service = new AsynchronousService(new LinkedBlockingQueue<>());
+ var service = new AsynchronousService(new LinkedBlockingQueue<>());
/*
* A new task to calculate sum is received but as this is main thread, it should not block. So
* it passes it to the asynchronous task layer to compute and proceeds with handling other
diff --git a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AppTest.java b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AppTest.java
index d0526085afb6..b3cf4839b14f 100644
--- a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AppTest.java
+++ b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AppTest.java
@@ -25,12 +25,8 @@
import org.junit.jupiter.api.Test;
-import java.util.concurrent.ExecutionException;
-
/**
- *
* Application test
- *
*/
public class AppTest {
diff --git a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java
index f8974bf1c327..91f9f9e2d44a 100644
--- a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java
+++ b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java
@@ -57,13 +57,13 @@ public void setUp() {
@Test
public void testPerfectExecution() throws Exception {
- final Object result = new Object();
+ final var result = new Object();
when(task.call()).thenReturn(result);
service.execute(task);
verify(task, timeout(2000)).onPostCall(eq(result));
- final InOrder inOrder = inOrder(task);
+ final var inOrder = inOrder(task);
inOrder.verify(task, times(1)).onPreCall();
inOrder.verify(task, times(1)).call();
inOrder.verify(task, times(1)).onPostCall(eq(result));
@@ -73,13 +73,13 @@ public void testPerfectExecution() throws Exception {
@Test
public void testCallException() throws Exception {
- final IOException exception = new IOException();
+ final var exception = new IOException();
when(task.call()).thenThrow(exception);
service.execute(task);
verify(task, timeout(2000)).onError(eq(exception));
- final InOrder inOrder = inOrder(task);
+ final var inOrder = inOrder(task);
inOrder.verify(task, times(1)).onPreCall();
inOrder.verify(task, times(1)).call();
inOrder.verify(task, times(1)).onError(exception);
@@ -89,13 +89,13 @@ public void testCallException() throws Exception {
@Test
public void testPreCallException() {
- final IllegalStateException exception = new IllegalStateException();
+ final var exception = new IllegalStateException();
doThrow(exception).when(task).onPreCall();
service.execute(task);
verify(task, timeout(2000)).onError(eq(exception));
- final InOrder inOrder = inOrder(task);
+ final var inOrder = inOrder(task);
inOrder.verify(task, times(1)).onPreCall();
inOrder.verify(task, times(1)).onError(exception);
diff --git a/hexagonal/pom.xml b/hexagonal/pom.xml
index 324b9c8b8bf6..4873d0ddb238 100644
--- a/hexagonal/pom.xml
+++ b/hexagonal/pom.xml
@@ -48,4 +48,23 @@
mongo-java-driver
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.hexagonal.App
+
+
+
+
+
+
+
+
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java
index 4255b3359283..1733ea2ea9f6 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java
@@ -24,7 +24,6 @@
package com.iluwatar.hexagonal;
import com.google.inject.Guice;
-import com.google.inject.Injector;
import com.iluwatar.hexagonal.domain.LotteryAdministration;
import com.iluwatar.hexagonal.domain.LotteryService;
import com.iluwatar.hexagonal.module.LotteryTestingModule;
@@ -63,14 +62,14 @@ public class App {
*/
public static void main(String[] args) {
- Injector injector = Guice.createInjector(new LotteryTestingModule());
+ var injector = Guice.createInjector(new LotteryTestingModule());
// start new lottery round
- LotteryAdministration administration = injector.getInstance(LotteryAdministration.class);
+ var administration = injector.getInstance(LotteryAdministration.class);
administration.resetLottery();
// submit some lottery tickets
- LotteryService service = injector.getInstance(LotteryService.class);
+ var service = injector.getInstance(LotteryService.class);
SampleData.submitTickets(service, 20);
// perform lottery
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java
index ca61b7649c5b..4a62d2d906d9 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministration.java
@@ -24,7 +24,6 @@
package com.iluwatar.hexagonal.administration;
import com.google.inject.Guice;
-import com.google.inject.Injector;
import com.iluwatar.hexagonal.domain.LotteryAdministration;
import com.iluwatar.hexagonal.domain.LotteryService;
import com.iluwatar.hexagonal.module.LotteryModule;
@@ -46,17 +45,16 @@ public class ConsoleAdministration {
*/
public static void main(String[] args) {
MongoConnectionPropertiesLoader.load();
- Injector injector = Guice.createInjector(new LotteryModule());
- LotteryAdministration administration = injector.getInstance(LotteryAdministration.class);
- LotteryService service = injector.getInstance(LotteryService.class);
+ var injector = Guice.createInjector(new LotteryModule());
+ var administration = injector.getInstance(LotteryAdministration.class);
+ var service = injector.getInstance(LotteryService.class);
SampleData.submitTickets(service, 20);
- ConsoleAdministrationSrv consoleAdministration =
- new ConsoleAdministrationSrvImpl(administration, LOGGER);
- try (Scanner scanner = new Scanner(System.in)) {
- boolean exit = false;
+ var consoleAdministration = new ConsoleAdministrationSrvImpl(administration, LOGGER);
+ try (var scanner = new Scanner(System.in)) {
+ var exit = false;
while (!exit) {
printMainMenu();
- String cmd = readString(scanner);
+ var cmd = readString(scanner);
if ("1".equals(cmd)) {
consoleAdministration.getAllSubmittedTickets();
} else if ("2".equals(cmd)) {
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministrationSrvImpl.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministrationSrvImpl.java
index fbd00aa1f829..7de34ca15217 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministrationSrvImpl.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/ConsoleAdministrationSrvImpl.java
@@ -50,7 +50,7 @@ public void getAllSubmittedTickets() {
@Override
public void performLottery() {
- LotteryNumbers numbers = administration.performLottery();
+ var numbers = administration.performLottery();
logger.info("The winning numbers: {}", numbers.getNumbersAsString());
logger.info("Time to reset the database for next round, eh?");
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java
index e1c720c115e5..b34da3e17bd5 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java
@@ -28,7 +28,6 @@
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.UpdateOptions;
import java.util.ArrayList;
-import java.util.List;
import org.bson.Document;
/**
@@ -107,30 +106,31 @@ public MongoCollection getAccountsCollection() {
@Override
public void setFunds(String bankAccount, int amount) {
- Document search = new Document("_id", bankAccount);
- Document update = new Document("_id", bankAccount).append("funds", amount);
- accountsCollection
- .updateOne(search, new Document("$set", update), new UpdateOptions().upsert(true));
+ var search = new Document("_id", bankAccount);
+ var update = new Document("_id", bankAccount).append("funds", amount);
+ var updateOptions = new UpdateOptions().upsert(true);
+ accountsCollection.updateOne(search, new Document("$set", update), updateOptions);
}
@Override
public int getFunds(String bankAccount) {
- Document search = new Document("_id", bankAccount);
- List results = accountsCollection.find(search).limit(1).into(new ArrayList<>());
- if (results.size() > 0) {
- return results.get(0).getInteger("funds");
- } else {
- return 0;
- }
+ return accountsCollection
+ .find(new Document("_id", bankAccount))
+ .limit(1)
+ .into(new ArrayList<>())
+ .stream()
+ .findFirst()
+ .map(x -> x.getInteger("funds"))
+ .orElse(0);
}
@Override
public boolean transferFunds(int amount, String sourceAccount, String destinationAccount) {
- int sourceFunds = getFunds(sourceAccount);
+ var sourceFunds = getFunds(sourceAccount);
if (sourceFunds < amount) {
return false;
} else {
- int destFunds = getFunds(destinationAccount);
+ var destFunds = getFunds(destinationAccount);
setFunds(sourceAccount, sourceFunds - amount);
setFunds(destinationAccount, destFunds + amount);
return true;
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/InMemoryTicketRepository.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/InMemoryTicketRepository.java
index a580a7cf51bb..973747acc7fa 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/InMemoryTicketRepository.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/InMemoryTicketRepository.java
@@ -38,17 +38,12 @@ public class InMemoryTicketRepository implements LotteryTicketRepository {
@Override
public Optional findById(LotteryTicketId id) {
- LotteryTicket ticket = tickets.get(id);
- if (ticket == null) {
- return Optional.empty();
- } else {
- return Optional.of(ticket);
- }
+ return Optional.ofNullable(tickets.get(id));
}
@Override
public Optional save(LotteryTicket ticket) {
- LotteryTicketId id = new LotteryTicketId();
+ var id = new LotteryTicketId();
tickets.put(id, ticket);
return Optional.of(id);
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java
index 794cd363fdb6..96ab74ba36bf 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java
@@ -32,11 +32,9 @@
import com.mongodb.client.MongoDatabase;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.Set;
+import java.util.function.Function;
import java.util.stream.Collectors;
import org.bson.Document;
@@ -95,7 +93,7 @@ public void connect(String dbName, String ticketsCollectionName,
}
private void initCounters() {
- Document doc = new Document("_id", "ticketId").append("seq", 1);
+ var doc = new Document("_id", "ticketId").append("seq", 1);
countersCollection.insertOne(doc);
}
@@ -105,10 +103,10 @@ private void initCounters() {
* @return next ticket id
*/
public int getNextId() {
- Document find = new Document("_id", "ticketId");
- Document increase = new Document("seq", 1);
- Document update = new Document("$inc", increase);
- Document result = countersCollection.findOneAndUpdate(find, update);
+ var find = new Document("_id", "ticketId");
+ var increase = new Document("seq", 1);
+ var update = new Document("$inc", increase);
+ var result = countersCollection.findOneAndUpdate(find, update);
return result.getInteger("seq");
}
@@ -132,20 +130,19 @@ public MongoCollection getCountersCollection() {
@Override
public Optional findById(LotteryTicketId id) {
- Document find = new Document("ticketId", id.getId());
- List results = ticketsCollection.find(find).limit(1).into(new ArrayList<>());
- if (results.size() > 0) {
- LotteryTicket lotteryTicket = docToTicket(results.get(0));
- return Optional.of(lotteryTicket);
- } else {
- return Optional.empty();
- }
+ return ticketsCollection
+ .find(new Document("ticketId", id.getId()))
+ .limit(1)
+ .into(new ArrayList<>())
+ .stream()
+ .findFirst()
+ .map(this::docToTicket);
}
@Override
public Optional save(LotteryTicket ticket) {
- int ticketId = getNextId();
- Document doc = new Document("ticketId", ticketId);
+ var ticketId = getNextId();
+ var doc = new Document("ticketId", ticketId);
doc.put("email", ticket.getPlayerDetails().getEmail());
doc.put("bank", ticket.getPlayerDetails().getBankAccount());
doc.put("phone", ticket.getPlayerDetails().getPhoneNumber());
@@ -156,13 +153,12 @@ public Optional save(LotteryTicket ticket) {
@Override
public Map findAll() {
- Map map = new HashMap<>();
- List docs = ticketsCollection.find(new Document()).into(new ArrayList<>());
- for (Document doc : docs) {
- LotteryTicket lotteryTicket = docToTicket(doc);
- map.put(lotteryTicket.getId(), lotteryTicket);
- }
- return map;
+ return ticketsCollection
+ .find(new Document())
+ .into(new ArrayList<>())
+ .stream()
+ .map(this::docToTicket)
+ .collect(Collectors.toMap(LotteryTicket::getId, Function.identity()));
}
@Override
@@ -171,13 +167,13 @@ public void deleteAll() {
}
private LotteryTicket docToTicket(Document doc) {
- PlayerDetails playerDetails = new PlayerDetails(doc.getString("email"), doc.getString("bank"),
+ var playerDetails = new PlayerDetails(doc.getString("email"), doc.getString("bank"),
doc.getString("phone"));
- Set numbers = Arrays.stream(doc.getString("numbers").split(","))
+ var numbers = Arrays.stream(doc.getString("numbers").split(","))
.map(Integer::parseInt)
.collect(Collectors.toSet());
- LotteryNumbers lotteryNumbers = LotteryNumbers.create(numbers);
- return new LotteryTicket(new LotteryTicketId(doc
- .getInteger("ticketId")), playerDetails, lotteryNumbers);
+ var lotteryNumbers = LotteryNumbers.create(numbers);
+ var ticketId = new LotteryTicketId(doc.getInteger("ticketId"));
+ return new LotteryTicket(ticketId, playerDetails, lotteryNumbers);
}
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java
index b9ebff446899..b174a4372433 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java
@@ -23,6 +23,9 @@
package com.iluwatar.hexagonal.domain;
+import static com.iluwatar.hexagonal.domain.LotteryConstants.PRIZE_AMOUNT;
+import static com.iluwatar.hexagonal.domain.LotteryConstants.SERVICE_BANK_ACCOUNT;
+
import com.google.inject.Inject;
import com.iluwatar.hexagonal.banking.WireTransfers;
import com.iluwatar.hexagonal.database.LotteryTicketRepository;
@@ -60,23 +63,21 @@ public Map getAllSubmittedTickets() {
* Draw lottery numbers.
*/
public LotteryNumbers performLottery() {
- LotteryNumbers numbers = LotteryNumbers.createRandom();
- Map tickets = getAllSubmittedTickets();
- for (LotteryTicketId id : tickets.keySet()) {
- LotteryTicketCheckResult result = LotteryUtils.checkTicketForPrize(repository, id, numbers);
- if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) {
- boolean transferred = wireTransfers.transferFunds(LotteryConstants.PRIZE_AMOUNT,
- LotteryConstants.SERVICE_BANK_ACCOUNT, tickets.get(id).getPlayerDetails()
- .getBankAccount());
- if (transferred) {
- notifications
- .ticketWon(tickets.get(id).getPlayerDetails(), LotteryConstants.PRIZE_AMOUNT);
+ var numbers = LotteryNumbers.createRandom();
+ var tickets = getAllSubmittedTickets();
+ for (var id : tickets.keySet()) {
+ var lotteryTicket = tickets.get(id);
+ var playerDetails = lotteryTicket.getPlayerDetails();
+ var playerAccount = playerDetails.getBankAccount();
+ var result = LotteryUtils.checkTicketForPrize(repository, id, numbers).getResult();
+ if (result == LotteryTicketCheckResult.CheckResult.WIN_PRIZE) {
+ if (wireTransfers.transferFunds(PRIZE_AMOUNT, SERVICE_BANK_ACCOUNT, playerAccount)) {
+ notifications.ticketWon(playerDetails, PRIZE_AMOUNT);
} else {
- notifications
- .prizeError(tickets.get(id).getPlayerDetails(), LotteryConstants.PRIZE_AMOUNT);
+ notifications.prizeError(playerDetails, PRIZE_AMOUNT);
}
- } else if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.NO_PRIZE)) {
- notifications.ticketDidNotWin(tickets.get(id).getPlayerDetails());
+ } else if (result == LotteryTicketCheckResult.CheckResult.NO_PRIZE) {
+ notifications.ticketDidNotWin(playerDetails);
}
}
return numbers;
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java
index 9dc00ec7695b..8988bba88add 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java
@@ -99,9 +99,9 @@ public String getNumbersAsString() {
*/
private void generateRandomNumbers() {
numbers.clear();
- RandomNumberGenerator generator = new RandomNumberGenerator(MIN_NUMBER, MAX_NUMBER);
+ var generator = new RandomNumberGenerator(MIN_NUMBER, MAX_NUMBER);
while (numbers.size() < NUM_NUMBERS) {
- int num = generator.nextInt();
+ var num = generator.nextInt();
numbers.add(num);
}
}
@@ -141,8 +141,8 @@ public int nextInt() {
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final var prime = 31;
+ var result = 1;
result = prime * result + ((numbers == null) ? 0 : numbers.hashCode());
return result;
}
@@ -158,14 +158,11 @@ public boolean equals(Object obj) {
if (getClass() != obj.getClass()) {
return false;
}
- LotteryNumbers other = (LotteryNumbers) obj;
+ var other = (LotteryNumbers) obj;
if (numbers == null) {
- if (other.numbers != null) {
- return false;
- }
- } else if (!numbers.equals(other.numbers)) {
- return false;
+ return other.numbers == null;
+ } else {
+ return numbers.equals(other.numbers);
}
- return true;
}
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java
index 212671d77740..cfd04c45f228 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java
@@ -23,6 +23,9 @@
package com.iluwatar.hexagonal.domain;
+import static com.iluwatar.hexagonal.domain.LotteryConstants.SERVICE_BANK_ACCOUNT;
+import static com.iluwatar.hexagonal.domain.LotteryConstants.TICKET_PRIZE;
+
import com.google.inject.Inject;
import com.iluwatar.hexagonal.banking.WireTransfers;
import com.iluwatar.hexagonal.database.LotteryTicketRepository;
@@ -53,15 +56,16 @@ public LotteryService(LotteryTicketRepository repository, LotteryEventLog notifi
* Submit lottery ticket to participate in the lottery.
*/
public Optional submitTicket(LotteryTicket ticket) {
- boolean result = wireTransfers.transferFunds(LotteryConstants.TICKET_PRIZE,
- ticket.getPlayerDetails().getBankAccount(), LotteryConstants.SERVICE_BANK_ACCOUNT);
+ var playerDetails = ticket.getPlayerDetails();
+ var playerAccount = playerDetails.getBankAccount();
+ var result = wireTransfers.transferFunds(TICKET_PRIZE, playerAccount, SERVICE_BANK_ACCOUNT);
if (!result) {
- notifications.ticketSubmitError(ticket.getPlayerDetails());
+ notifications.ticketSubmitError(playerDetails);
return Optional.empty();
}
- Optional optional = repository.save(ticket);
+ var optional = repository.save(ticket);
if (optional.isPresent()) {
- notifications.ticketSubmitted(ticket.getPlayerDetails());
+ notifications.ticketSubmitted(playerDetails);
}
return optional;
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java
index 91c041273fbf..86a5a54878b4 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicket.java
@@ -82,8 +82,8 @@ public String toString() {
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final var prime = 31;
+ var result = 1;
result = prime * result + ((lotteryNumbers == null) ? 0 : lotteryNumbers.hashCode());
result = prime * result + ((playerDetails == null) ? 0 : playerDetails.hashCode());
return result;
@@ -100,7 +100,7 @@ public boolean equals(Object obj) {
if (getClass() != obj.getClass()) {
return false;
}
- LotteryTicket other = (LotteryTicket) obj;
+ var other = (LotteryTicket) obj;
if (lotteryNumbers == null) {
if (other.lotteryNumbers != null) {
return false;
@@ -109,12 +109,9 @@ public boolean equals(Object obj) {
return false;
}
if (playerDetails == null) {
- if (other.playerDetails != null) {
- return false;
- }
- } else if (!playerDetails.equals(other.playerDetails)) {
- return false;
+ return other.playerDetails == null;
+ } else {
+ return playerDetails.equals(other.playerDetails);
}
- return true;
}
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java
index c7f07c1df960..640300b62de0 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java
@@ -76,8 +76,8 @@ public int getPrizeAmount() {
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final var prime = 31;
+ var result = 1;
result = prime * result + ((checkResult == null) ? 0 : checkResult.hashCode());
result = prime * result + prizeAmount;
return result;
@@ -94,7 +94,7 @@ public boolean equals(Object obj) {
if (getClass() != obj.getClass()) {
return false;
}
- LotteryTicketCheckResult other = (LotteryTicketCheckResult) obj;
+ var other = (LotteryTicketCheckResult) obj;
return checkResult == other.checkResult && prizeAmount == other.prizeAmount;
}
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java
index d4c036ece127..dfa3244498f8 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java
@@ -59,10 +59,9 @@ public boolean equals(Object o) {
return false;
}
- LotteryTicketId that = (LotteryTicketId) o;
+ var that = (LotteryTicketId) o;
return id == that.id;
-
}
@Override
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java
index 84f9af9e8b3c..ce7cc8aefead 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryUtils.java
@@ -25,7 +25,6 @@
import com.iluwatar.hexagonal.database.LotteryTicketRepository;
import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
-import java.util.Optional;
/**
* Lottery utilities.
@@ -43,7 +42,7 @@ public static LotteryTicketCheckResult checkTicketForPrize(
LotteryTicketId id,
LotteryNumbers winningNumbers
) {
- Optional optional = repository.findById(id);
+ var optional = repository.findById(id);
if (optional.isPresent()) {
if (optional.get().getNumbers().equals(winningNumbers)) {
return new LotteryTicketCheckResult(CheckResult.WIN_PRIZE, 1000);
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java
index f2c09744c178..70a2aa452176 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/PlayerDetails.java
@@ -77,8 +77,8 @@ public String toString() {
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final var prime = 31;
+ var result = 1;
result = prime * result + ((bankAccountNumber == null) ? 0 : bankAccountNumber.hashCode());
result = prime * result + ((emailAddress == null) ? 0 : emailAddress.hashCode());
result = prime * result + ((phoneNumber == null) ? 0 : phoneNumber.hashCode());
@@ -96,7 +96,7 @@ public boolean equals(Object obj) {
if (getClass() != obj.getClass()) {
return false;
}
- PlayerDetails other = (PlayerDetails) obj;
+ var other = (PlayerDetails) obj;
if (bankAccountNumber == null) {
if (other.bankAccountNumber != null) {
return false;
@@ -112,12 +112,9 @@ public boolean equals(Object obj) {
return false;
}
if (phoneNumber == null) {
- if (other.phoneNumber != null) {
- return false;
- }
- } else if (!phoneNumber.equals(other.phoneNumber)) {
- return false;
+ return other.phoneNumber == null;
+ } else {
+ return phoneNumber.equals(other.phoneNumber);
}
- return true;
}
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/MongoEventLog.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/MongoEventLog.java
index f979506e4e3f..ba46f2d9745d 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/MongoEventLog.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/MongoEventLog.java
@@ -107,7 +107,7 @@ public MongoCollection getEventsCollection() {
@Override
public void ticketSubmitted(PlayerDetails details) {
- Document document = new Document("email", details.getEmail());
+ var document = new Document("email", details.getEmail());
document.put("phone", details.getPhoneNumber());
document.put("bank", details.getBankAccount());
document
@@ -118,7 +118,7 @@ public void ticketSubmitted(PlayerDetails details) {
@Override
public void ticketSubmitError(PlayerDetails details) {
- Document document = new Document("email", details.getEmail());
+ var document = new Document("email", details.getEmail());
document.put("phone", details.getPhoneNumber());
document.put("bank", details.getBankAccount());
document.put("message", "Lottery ticket could not be submitted because lack of funds.");
@@ -128,7 +128,7 @@ public void ticketSubmitError(PlayerDetails details) {
@Override
public void ticketDidNotWin(PlayerDetails details) {
- Document document = new Document("email", details.getEmail());
+ var document = new Document("email", details.getEmail());
document.put("phone", details.getPhoneNumber());
document.put("bank", details.getBankAccount());
document.put("message", "Lottery ticket was checked and unfortunately did not win this time.");
@@ -138,7 +138,7 @@ public void ticketDidNotWin(PlayerDetails details) {
@Override
public void ticketWon(PlayerDetails details, int prizeAmount) {
- Document document = new Document("email", details.getEmail());
+ var document = new Document("email", details.getEmail());
document.put("phone", details.getPhoneNumber());
document.put("bank", details.getBankAccount());
document.put("message", String
@@ -150,7 +150,7 @@ public void ticketWon(PlayerDetails details, int prizeAmount) {
@Override
public void prizeError(PlayerDetails details, int prizeAmount) {
- Document document = new Document("email", details.getEmail());
+ var document = new Document("email", details.getEmail());
document.put("phone", details.getPhoneNumber());
document.put("bank", details.getBankAccount());
document.put("message", String
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java
index 284fc4d1cccd..474ab980e9b8 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/eventlog/StdOutEventLog.java
@@ -42,9 +42,8 @@ public void ticketSubmitted(PlayerDetails details) {
@Override
public void ticketDidNotWin(PlayerDetails details) {
- LOGGER
- .info("Lottery ticket for {} was checked and unfortunately did not win this time.", details
- .getEmail());
+ LOGGER.info("Lottery ticket for {} was checked and unfortunately did not win this time.",
+ details.getEmail());
}
@Override
@@ -55,9 +54,8 @@ public void ticketWon(PlayerDetails details, int prizeAmount) {
@Override
public void prizeError(PlayerDetails details, int prizeAmount) {
- LOGGER
- .error("Lottery ticket for {} has won! Unfortunately the bank credit transfer of"
- + " {} failed.", details.getEmail(), prizeAmount);
+ LOGGER.error("Lottery ticket for {} has won! Unfortunately the bank credit transfer of"
+ + " {} failed.", details.getEmail(), prizeAmount);
}
@Override
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/mongo/MongoConnectionPropertiesLoader.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/mongo/MongoConnectionPropertiesLoader.java
index 2d8463f7f50f..c5888cd8fbe7 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/mongo/MongoConnectionPropertiesLoader.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/mongo/MongoConnectionPropertiesLoader.java
@@ -38,12 +38,12 @@ public class MongoConnectionPropertiesLoader {
* Try to load connection properties from file. Fall back to default connection properties.
*/
public static void load() {
- String host = DEFAULT_HOST;
- int port = DEFAULT_PORT;
- String path = System.getProperty("hexagonal.properties.path");
- Properties properties = new Properties();
+ var host = DEFAULT_HOST;
+ var port = DEFAULT_PORT;
+ var path = System.getProperty("hexagonal.properties.path");
+ var properties = new Properties();
if (path != null) {
- try (FileInputStream fin = new FileInputStream(path)) {
+ try (var fin = new FileInputStream(path)) {
properties.load(fin);
host = properties.getProperty("mongo-host");
port = Integer.parseInt(properties.getProperty("mongo-port"));
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 ccda4a2086c0..42e49713d497 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java
@@ -30,8 +30,10 @@
import com.iluwatar.hexagonal.domain.LotteryTicket;
import com.iluwatar.hexagonal.domain.LotteryTicketId;
import com.iluwatar.hexagonal.domain.PlayerDetails;
+import java.util.AbstractMap.SimpleEntry;
import java.util.List;
import java.util.Random;
+import java.util.stream.Collectors;
/**
* Utilities for creating sample lottery tickets.
@@ -83,26 +85,28 @@ public class SampleData {
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(),
- RANDOM.nextInt(LotteryConstants.PLAYER_MAX_BALANCE));
- }
+ var wireTransfers = new InMemoryBank();
+ PLAYERS.stream()
+ .map(PlayerDetails::getBankAccount)
+ .map(e -> new SimpleEntry<>(e, RANDOM.nextInt(LotteryConstants.PLAYER_MAX_BALANCE)))
+ .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue))
+ .forEach(wireTransfers::setFunds);
}
/**
* Inserts lottery tickets into the database based on the sample data.
*/
public static void submitTickets(LotteryService lotteryService, int numTickets) {
- for (int i = 0; i < numTickets; i++) {
- LotteryTicket ticket = new LotteryTicket(new LotteryTicketId(),
- getRandomPlayerDetails(), LotteryNumbers.createRandom());
+ for (var i = 0; i < numTickets; i++) {
+ var randomPlayerDetails = getRandomPlayerDetails();
+ var lotteryNumbers = LotteryNumbers.createRandom();
+ var lotteryTicketId = new LotteryTicketId();
+ var ticket = new LotteryTicket(lotteryTicketId, randomPlayerDetails, lotteryNumbers);
lotteryService.submitTicket(ticket);
}
}
private static PlayerDetails getRandomPlayerDetails() {
- int idx = RANDOM.nextInt(PLAYERS.size());
- return PLAYERS.get(idx);
+ return PLAYERS.get(RANDOM.nextInt(PLAYERS.size()));
}
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java
index dccbf68ebf4b..d77204b92bd0 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/ConsoleLottery.java
@@ -24,7 +24,6 @@
package com.iluwatar.hexagonal.service;
import com.google.inject.Guice;
-import com.google.inject.Injector;
import com.iluwatar.hexagonal.banking.WireTransfers;
import com.iluwatar.hexagonal.domain.LotteryService;
import com.iluwatar.hexagonal.module.LotteryModule;
@@ -45,15 +44,15 @@ public class ConsoleLottery {
*/
public static void main(String[] args) {
MongoConnectionPropertiesLoader.load();
- Injector injector = Guice.createInjector(new LotteryModule());
- LotteryService service = injector.getInstance(LotteryService.class);
- WireTransfers bank = injector.getInstance(WireTransfers.class);
+ var injector = Guice.createInjector(new LotteryModule());
+ var service = injector.getInstance(LotteryService.class);
+ var bank = injector.getInstance(WireTransfers.class);
try (Scanner scanner = new Scanner(System.in)) {
- boolean exit = false;
+ var exit = false;
while (!exit) {
printMainMenu();
- String cmd = readString(scanner);
- LotteryConsoleService lotteryConsoleService = new LotteryConsoleServiceImpl(LOGGER);
+ var cmd = readString(scanner);
+ var lotteryConsoleService = new LotteryConsoleServiceImpl(LOGGER);
if ("1".equals(cmd)) {
lotteryConsoleService.queryLotteryAccountFunds(bank, scanner);
} else if ("2".equals(cmd)) {
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 d100dba03c83..c32ede62e371 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryConsoleServiceImpl.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryConsoleServiceImpl.java
@@ -31,10 +31,7 @@
import com.iluwatar.hexagonal.domain.LotteryTicketId;
import com.iluwatar.hexagonal.domain.PlayerDetails;
import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Optional;
import java.util.Scanner;
-import java.util.Set;
import java.util.stream.Collectors;
import org.slf4j.Logger;
@@ -55,20 +52,18 @@ public LotteryConsoleServiceImpl(Logger logger) {
@Override
public void checkTicket(LotteryService service, Scanner scanner) {
logger.info("What is the ID of the lottery ticket?");
- String id = readString(scanner);
+ var id = readString(scanner);
logger.info("Give the 4 comma separated winning numbers?");
- String numbers = readString(scanner);
+ var numbers = readString(scanner);
try {
- String[] parts = numbers.split(",");
- Set winningNumbers = new HashSet<>();
- for (int i = 0; i < 4; i++) {
- winningNumbers.add(Integer.parseInt(parts[i]));
- }
+ var winningNumbers = Arrays.stream(numbers.split(","))
+ .map(Integer::parseInt)
+ .limit(4)
+ .collect(Collectors.toSet());
- final LotteryTicketId lotteryTicketId = new LotteryTicketId(Integer.parseInt(id));
- final LotteryNumbers lotteryNumbers = LotteryNumbers.create(winningNumbers);
- LotteryTicketCheckResult result =
- service.checkTicketForPrize(lotteryTicketId, lotteryNumbers);
+ final var lotteryTicketId = new LotteryTicketId(Integer.parseInt(id));
+ final var lotteryNumbers = LotteryNumbers.create(winningNumbers);
+ var result = service.checkTicketForPrize(lotteryTicketId, lotteryNumbers);
if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) {
logger.info("Congratulations! The lottery ticket has won!");
@@ -85,26 +80,24 @@ public void checkTicket(LotteryService service, Scanner scanner) {
@Override
public void submitTicket(LotteryService service, Scanner scanner) {
logger.info("What is your email address?");
- String email = readString(scanner);
+ var email = readString(scanner);
logger.info("What is your bank account number?");
- String account = readString(scanner);
+ var account = readString(scanner);
logger.info("What is your phone number?");
- String phone = readString(scanner);
- PlayerDetails details = new PlayerDetails(email, account, phone);
+ var phone = readString(scanner);
+ var details = new PlayerDetails(email, account, phone);
logger.info("Give 4 comma separated lottery numbers?");
- String numbers = readString(scanner);
+ var numbers = readString(scanner);
try {
- String[] parts = numbers.split(",");
- 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);
- if (id.isPresent()) {
- logger.info("Submitted lottery ticket with id: {}", id.get());
- } else {
- logger.info("Failed submitting lottery ticket - please try again.");
- }
+ var chosen = Arrays.stream(numbers.split(","))
+ .map(Integer::parseInt)
+ .collect(Collectors.toSet());
+ var lotteryNumbers = LotteryNumbers.create(chosen);
+ var lotteryTicket = new LotteryTicket(new LotteryTicketId(), details, lotteryNumbers);
+ service.submitTicket(lotteryTicket).ifPresentOrElse(
+ (id) -> logger.info("Submitted lottery ticket with id: {}", id),
+ () -> logger.info("Failed submitting lottery ticket - please try again.")
+ );
} catch (Exception e) {
logger.info("Failed submitting lottery ticket - please try again.");
}
@@ -113,9 +106,9 @@ public void submitTicket(LotteryService service, Scanner scanner) {
@Override
public void addFundsToLotteryAccount(WireTransfers bank, Scanner scanner) {
logger.info("What is the account number?");
- String account = readString(scanner);
+ var account = readString(scanner);
logger.info("How many credits do you want to deposit?");
- String amount = readString(scanner);
+ var amount = readString(scanner);
bank.setFunds(account, Integer.parseInt(amount));
logger.info("The account {} now has {} credits.", account, bank.getFunds(account));
}
@@ -123,7 +116,7 @@ public void addFundsToLotteryAccount(WireTransfers bank, Scanner scanner) {
@Override
public void queryLotteryAccountFunds(WireTransfers bank, Scanner scanner) {
logger.info("What is the account number?");
- String account = readString(scanner);
+ var account = readString(scanner);
logger.info("The account {} has {} credits.", account, bank.getFunds(account));
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/AppTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/AppTest.java
index c3fd915bd62b..05d51a283a2e 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/AppTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/AppTest.java
@@ -32,7 +32,6 @@ class AppTest {
@Test
void testApp() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/InMemoryBankTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/InMemoryBankTest.java
index d7c511357644..5c8ca44e4569 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/InMemoryBankTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/InMemoryBankTest.java
@@ -23,20 +23,18 @@
package com.iluwatar.hexagonal.banking;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
/**
- *
* Tests for banking
- *
*/
class InMemoryBankTest {
private final WireTransfers bank = new InMemoryBank();
-
+
@Test
void testInit() {
assertEquals(0, bank.getFunds("foo"));
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/MongoBankTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/MongoBankTest.java
index 3815a7899a79..b6a7e2a37d85 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/MongoBankTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/banking/MongoBankTest.java
@@ -23,14 +23,14 @@
package com.iluwatar.hexagonal.banking;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.hexagonal.mongo.MongoConnectionPropertiesLoader;
import com.mongodb.MongoClient;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Tests for Mongo banking adapter
*/
@@ -45,7 +45,7 @@ class MongoBankTest {
@BeforeEach
void init() {
MongoConnectionPropertiesLoader.load();
- MongoClient mongoClient = new MongoClient(System.getProperty("mongo-host"),
+ var mongoClient = new MongoClient(System.getProperty("mongo-host"),
Integer.parseInt(System.getProperty("mongo-port")));
mongoClient.dropDatabase(TEST_DB);
mongoClient.close();
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/database/InMemoryTicketRepositoryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/database/InMemoryTicketRepositoryTest.java
index 065425dee8f9..d016b096633b 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/database/InMemoryTicketRepositoryTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/database/InMemoryTicketRepositoryTest.java
@@ -23,40 +23,34 @@
package com.iluwatar.hexagonal.database;
-import java.util.Optional;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-import com.iluwatar.hexagonal.domain.LotteryTicket;
-import com.iluwatar.hexagonal.domain.LotteryTicketId;
import com.iluwatar.hexagonal.test.LotteryTestUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
- *
* Tests for {@link LotteryTicketRepository}
- *
*/
class InMemoryTicketRepositoryTest {
private final LotteryTicketRepository repository = new InMemoryTicketRepository();
-
+
@BeforeEach
void clear() {
repository.deleteAll();
}
-
+
@Test
void testCrudOperations() {
- LotteryTicketRepository repository = new InMemoryTicketRepository();
+ var repository = new InMemoryTicketRepository();
assertTrue(repository.findAll().isEmpty());
- LotteryTicket ticket = LotteryTestUtils.createLotteryTicket();
- Optional id = repository.save(ticket);
+ var ticket = LotteryTestUtils.createLotteryTicket();
+ var id = repository.save(ticket);
assertTrue(id.isPresent());
assertEquals(1, repository.findAll().size());
- Optional optionalTicket = repository.findById(id.get());
+ var optionalTicket = repository.findById(id.get());
assertTrue(optionalTicket.isPresent());
}
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java
index fb3d0c4253d2..e926e1afb2bb 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/database/MongoTicketRepositoryTest.java
@@ -23,6 +23,9 @@
package com.iluwatar.hexagonal.database;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.iluwatar.hexagonal.domain.LotteryNumbers;
import com.iluwatar.hexagonal.domain.LotteryTicket;
import com.iluwatar.hexagonal.domain.LotteryTicketId;
@@ -33,11 +36,6 @@
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import java.util.Optional;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Tests for Mongo based ticket repository
*/
@@ -53,7 +51,7 @@ class MongoTicketRepositoryTest {
@BeforeEach
void init() {
MongoConnectionPropertiesLoader.load();
- MongoClient mongoClient = new MongoClient(System.getProperty("mongo-host"),
+ var mongoClient = new MongoClient(System.getProperty("mongo-host"),
Integer.parseInt(System.getProperty("mongo-port")));
mongoClient.dropDatabase(TEST_DB);
mongoClient.close();
@@ -77,16 +75,16 @@ void testNextId() {
@Test
void testCrudOperations() {
// create new lottery ticket and save it
- PlayerDetails details = new PlayerDetails("foo@bar.com", "123-123", "07001234");
- LotteryNumbers random = LotteryNumbers.createRandom();
- LotteryTicket original = new LotteryTicket(new LotteryTicketId(), details, random);
- Optional saved = repository.save(original);
+ var details = new PlayerDetails("foo@bar.com", "123-123", "07001234");
+ var random = LotteryNumbers.createRandom();
+ var original = new LotteryTicket(new LotteryTicketId(), details, random);
+ var saved = repository.save(original);
assertEquals(1, repository.getTicketsCollection().count());
assertTrue(saved.isPresent());
// fetch the saved lottery ticket from database and check its contents
- Optional found = repository.findById(saved.get());
+ var found = repository.findById(saved.get());
assertTrue(found.isPresent());
- LotteryTicket ticket = found.get();
+ var ticket = found.get();
assertEquals("foo@bar.com", ticket.getPlayerDetails().getEmail());
assertEquals("123-123", ticket.getPlayerDetails().getBankAccount());
assertEquals("07001234", ticket.getPlayerDetails().getPhoneNumber());
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 c17c5c1fdc39..696fd0f98770 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java
@@ -23,47 +23,47 @@
package com.iluwatar.hexagonal.domain;
-import org.junit.jupiter.api.Test;
+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 java.util.Set;
-
-import static org.junit.jupiter.api.Assertions.*;
+import org.junit.jupiter.api.Test;
/**
- *
* Unit tests for {@link LotteryNumbers}
- *
*/
class LotteryNumbersTest {
-
+
@Test
void testGivenNumbers() {
- LotteryNumbers numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
+ var numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
assertEquals(numbers.getNumbers().size(), 4);
assertTrue(numbers.getNumbers().contains(1));
assertTrue(numbers.getNumbers().contains(2));
assertTrue(numbers.getNumbers().contains(3));
assertTrue(numbers.getNumbers().contains(4));
}
-
+
@Test
void testNumbersCantBeModified() {
- LotteryNumbers numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
+ var numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
assertThrows(UnsupportedOperationException.class, () -> numbers.getNumbers().add(5));
}
-
+
@Test
void testRandomNumbers() {
- LotteryNumbers numbers = LotteryNumbers.createRandom();
+ var numbers = LotteryNumbers.createRandom();
assertEquals(numbers.getNumbers().size(), LotteryNumbers.NUM_NUMBERS);
}
-
+
@Test
void testEquals() {
- LotteryNumbers numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
- LotteryNumbers numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
+ var numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
+ var numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
assertEquals(numbers1, numbers2);
- LotteryNumbers numbers3 = LotteryNumbers.create(Set.of(11, 12, 13, 14));
+ var 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 927e2fcd19a9..6d3ba8bc579e 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java
@@ -23,6 +23,10 @@
package com.iluwatar.hexagonal.domain;
+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 com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
@@ -30,17 +34,12 @@
import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
import com.iluwatar.hexagonal.module.LotteryTestingModule;
import com.iluwatar.hexagonal.test.LotteryTestUtils;
+import java.util.Set;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import java.util.*;
-
-import static org.junit.jupiter.api.Assertions.*;
-
/**
- *
* Test the lottery system
- *
*/
class LotteryTest {
@@ -62,38 +61,38 @@ void setup() {
// add funds to the test player's bank account
wireTransfers.setFunds("123-12312", 100);
}
-
+
@Test
void testLottery() {
// admin resets the lottery
administration.resetLottery();
assertEquals(0, administration.getAllSubmittedTickets().size());
-
+
// players submit the lottery tickets
- Optional ticket1 = service.submitTicket(LotteryTestUtils.createLotteryTicket("cvt@bbb.com",
+ var ticket1 = service.submitTicket(LotteryTestUtils.createLotteryTicket("cvt@bbb.com",
"123-12312", "+32425255", Set.of(1, 2, 3, 4)));
assertTrue(ticket1.isPresent());
- Optional ticket2 = service.submitTicket(LotteryTestUtils.createLotteryTicket("ant@bac.com",
+ var ticket2 = service.submitTicket(LotteryTestUtils.createLotteryTicket("ant@bac.com",
"123-12312", "+32423455", Set.of(11, 12, 13, 14)));
assertTrue(ticket2.isPresent());
- Optional ticket3 = service.submitTicket(LotteryTestUtils.createLotteryTicket("arg@boo.com",
+ var ticket3 = service.submitTicket(LotteryTestUtils.createLotteryTicket("arg@boo.com",
"123-12312", "+32421255", Set.of(6, 8, 13, 19)));
assertTrue(ticket3.isPresent());
assertEquals(3, administration.getAllSubmittedTickets().size());
-
+
// perform lottery
- LotteryNumbers winningNumbers = administration.performLottery();
+ var winningNumbers = administration.performLottery();
// cheat a bit for testing sake, use winning numbers to submit another ticket
- Optional ticket4 = service.submitTicket(LotteryTestUtils.createLotteryTicket("lucky@orb.com",
+ var ticket4 = service.submitTicket(LotteryTestUtils.createLotteryTicket("lucky@orb.com",
"123-12312", "+12421255", winningNumbers.getNumbers()));
assertTrue(ticket4.isPresent());
assertEquals(4, administration.getAllSubmittedTickets().size());
-
+
// check winners
- Map tickets = administration.getAllSubmittedTickets();
- for (LotteryTicketId id: tickets.keySet()) {
- LotteryTicketCheckResult checkResult = service.checkTicketForPrize(id, winningNumbers);
+ var tickets = administration.getAllSubmittedTickets();
+ for (var id : tickets.keySet()) {
+ var checkResult = service.checkTicketForPrize(id, winningNumbers);
assertNotEquals(CheckResult.TICKET_NOT_SUBMITTED, checkResult.getResult());
if (checkResult.getResult().equals(CheckResult.WIN_PRIZE)) {
assertTrue(checkResult.getPrizeAmount() > 0);
@@ -101,9 +100,9 @@ void testLottery() {
assertEquals(0, checkResult.getPrizeAmount());
}
}
-
+
// check another ticket that has not been submitted
- LotteryTicketCheckResult checkResult = service.checkTicketForPrize(new LotteryTicketId(), winningNumbers);
+ var checkResult = service.checkTicketForPrize(new LotteryTicketId(), winningNumbers);
assertEquals(CheckResult.TICKET_NOT_SUBMITTED, checkResult.getResult());
assertEquals(0, checkResult.getPrizeAmount());
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResultTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResultTest.java
index 06de817263d0..4ad872f69003 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResultTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResultTest.java
@@ -23,25 +23,23 @@
package com.iluwatar.hexagonal.domain;
-import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
+import org.junit.jupiter.api.Test;
+
/**
- *
* Unit tests for {@link LotteryTicketCheckResult}
- *
*/
class LotteryTicketCheckResultTest {
@Test
void testEquals() {
- LotteryTicketCheckResult result1 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
- LotteryTicketCheckResult result2 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
+ var result1 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
+ var result2 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
assertEquals(result1, result2);
- LotteryTicketCheckResult result3 = new LotteryTicketCheckResult(CheckResult.WIN_PRIZE, 300000);
+ var result3 = new LotteryTicketCheckResult(CheckResult.WIN_PRIZE, 300000);
assertNotEquals(result1, result3);
- }
+ }
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketIdTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketIdTest.java
index b60e550d23e5..e6815ea08e06 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketIdTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketIdTest.java
@@ -23,11 +23,11 @@
package com.iluwatar.hexagonal.domain;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import org.junit.jupiter.api.Test;
+
/**
* Tests for lottery ticket id
*/
@@ -35,12 +35,12 @@ class LotteryTicketIdTest {
@Test
void testEquals() {
- LotteryTicketId ticketId1 = new LotteryTicketId();
- LotteryTicketId ticketId2 = new LotteryTicketId();
- LotteryTicketId ticketId3 = new LotteryTicketId();
+ var ticketId1 = new LotteryTicketId();
+ var ticketId2 = new LotteryTicketId();
+ var ticketId3 = new LotteryTicketId();
assertNotEquals(ticketId1, ticketId2);
assertNotEquals(ticketId2, ticketId3);
- LotteryTicketId ticketId4 = new LotteryTicketId(ticketId1.getId());
+ var ticketId4 = new LotteryTicketId(ticketId1.getId());
assertEquals(ticketId1, ticketId4);
}
}
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 6d2e371c4bd0..445bdd27c498 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java
@@ -23,13 +23,12 @@
package com.iluwatar.hexagonal.domain;
-import org.junit.jupiter.api.Test;
-
-import java.util.Set;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import java.util.Set;
+import org.junit.jupiter.api.Test;
+
/**
* Test Lottery Tickets for equality
*/
@@ -37,16 +36,16 @@ class LotteryTicketTest {
@Test
void testEquals() {
- PlayerDetails details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
- 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(Set.of(1, 2, 3, 4));
- LotteryTicket ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2);
+ var details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
+ var numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
+ var ticket1 = new LotteryTicket(new LotteryTicketId(), details1, numbers1);
+ var details2 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
+ var numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
+ var ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2);
assertEquals(ticket1, ticket2);
- PlayerDetails details3 = new PlayerDetails("elsa@foo.bar", "1223-121212", "+49332322");
- LotteryNumbers numbers3 = LotteryNumbers.create(Set.of(1, 2, 3, 8));
- LotteryTicket ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3);
+ var details3 = new PlayerDetails("elsa@foo.bar", "1223-121212", "+49332322");
+ var numbers3 = LotteryNumbers.create(Set.of(1, 2, 3, 8));
+ var ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3);
assertNotEquals(ticket1, ticket3);
}
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/PlayerDetailsTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/PlayerDetailsTest.java
index 2ecc0ab03d98..ba6b5f5579d6 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/PlayerDetailsTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/PlayerDetailsTest.java
@@ -23,24 +23,22 @@
package com.iluwatar.hexagonal.domain;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import org.junit.jupiter.api.Test;
+
/**
- *
* Unit tests for {@link PlayerDetails}
- *
*/
class PlayerDetailsTest {
@Test
void testEquals() {
- PlayerDetails details1 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
- PlayerDetails details2 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
+ var details1 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
+ var details2 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
assertEquals(details1, details2);
- PlayerDetails details3 = new PlayerDetails("john@foo.bar", "16412-123439", "+34323432");
+ var details3 = new PlayerDetails("john@foo.bar", "16412-123439", "+34323432");
assertNotEquals(details1, details3);
- }
+ }
}
diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/eventlog/MongoEventLogTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/eventlog/MongoEventLogTest.java
index 63222095828c..b0c4e13832c7 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/eventlog/MongoEventLogTest.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/eventlog/MongoEventLogTest.java
@@ -23,6 +23,8 @@
package com.iluwatar.hexagonal.eventlog;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.hexagonal.domain.PlayerDetails;
import com.iluwatar.hexagonal.mongo.MongoConnectionPropertiesLoader;
import com.mongodb.MongoClient;
@@ -30,8 +32,6 @@
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Tests for Mongo event log
*/
@@ -46,7 +46,7 @@ class MongoEventLogTest {
@BeforeEach
void init() {
MongoConnectionPropertiesLoader.load();
- MongoClient mongoClient = new MongoClient(System.getProperty("mongo-host"),
+ var mongoClient = new MongoClient(System.getProperty("mongo-host"),
Integer.parseInt(System.getProperty("mongo-port")));
mongoClient.dropDatabase(TEST_DB);
mongoClient.close();
@@ -60,7 +60,7 @@ void testSetup() {
@Test
void testFundTransfers() {
- PlayerDetails playerDetails = new PlayerDetails("john@wayne.com", "000-000", "03432534543");
+ var playerDetails = new PlayerDetails("john@wayne.com", "000-000", "03432534543");
mongoEventLog.prizeError(playerDetails, 1000);
assertEquals(1, mongoEventLog.getEventsCollection().count());
mongoEventLog.prizeError(playerDetails, 1000);
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 2f02ca34e9f2..4686478d3892 100644
--- a/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java
+++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/test/LotteryTestUtils.java
@@ -27,13 +27,10 @@
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
- *
*/
public class LotteryTestUtils {
@@ -43,14 +40,14 @@ public class LotteryTestUtils {
public static LotteryTicket createLotteryTicket() {
return createLotteryTicket("foo@bar.com", "12231-213132", "+99324554", Set.of(1, 2, 3, 4));
}
-
+
/**
* @return lottery ticket
*/
public static LotteryTicket createLotteryTicket(String email, String account, String phone,
- Set givenNumbers) {
- PlayerDetails details = new PlayerDetails(email, account, phone);
- LotteryNumbers numbers = LotteryNumbers.create(givenNumbers);
+ Set givenNumbers) {
+ var details = new PlayerDetails(email, account, phone);
+ var numbers = LotteryNumbers.create(givenNumbers);
return new LotteryTicket(new LotteryTicketId(), details, numbers);
}
}
diff --git a/intercepting-filter/pom.xml b/intercepting-filter/pom.xml
index acc9f2268cfb..ea8597374576 100644
--- a/intercepting-filter/pom.xml
+++ b/intercepting-filter/pom.xml
@@ -49,4 +49,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.intercepting.filter.App
+
+
+
+
+
+
+
+
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/AddressFilter.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/AddressFilter.java
index 6b9a15382b8e..5f13aa7d7f53 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/AddressFilter.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/AddressFilter.java
@@ -33,7 +33,7 @@ public class AddressFilter extends AbstractFilter {
@Override
public String execute(Order order) {
- String result = super.execute(order);
+ var result = super.execute(order);
if (order.getAddress() == null || order.getAddress().isEmpty()) {
return result + "Invalid address! ";
} else {
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/App.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/App.java
index b81f1e229284..db1c4830f596 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/App.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/App.java
@@ -54,14 +54,14 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- FilterManager filterManager = new FilterManager();
+ var filterManager = new FilterManager();
filterManager.addFilter(new NameFilter());
filterManager.addFilter(new ContactFilter());
filterManager.addFilter(new AddressFilter());
filterManager.addFilter(new DepositFilter());
filterManager.addFilter(new OrderFilter());
- Client client = new Client();
+ var client = new Client();
client.setFilterManager(filterManager);
}
}
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Client.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Client.java
index 865dbbb381da..656008c10363 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Client.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Client.java
@@ -25,7 +25,8 @@
import java.awt.BorderLayout;
import java.awt.GridLayout;
-
+import java.awt.event.ActionEvent;
+import java.util.Arrays;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
@@ -65,11 +66,11 @@ public Client() {
setSize(300, 300);
jl = new JLabel("RUNNING...");
jtFields = new JTextField[3];
- for (int i = 0; i < 3; i++) {
+ for (var i = 0; i < 3; i++) {
jtFields[i] = new JTextField();
}
jtAreas = new JTextArea[2];
- for (int i = 0; i < 2; i++) {
+ for (var i = 0; i < 2; i++) {
jtAreas[i] = new JTextArea();
}
clearButton = new JButton("Clear");
@@ -80,7 +81,7 @@ public Client() {
private void setup() {
setLayout(new BorderLayout());
- JPanel panel = new JPanel();
+ var panel = new JPanel();
add(jl, BorderLayout.SOUTH);
add(panel, BorderLayout.CENTER);
panel.setLayout(new GridLayout(6, 2));
@@ -98,21 +99,11 @@ private void setup() {
panel.add(processButton);
clearButton.addActionListener(e -> {
- for (JTextArea i : jtAreas) {
- i.setText("");
- }
- for (JTextField i : jtFields) {
- i.setText("");
- }
+ Arrays.stream(jtAreas).forEach(i -> i.setText(""));
+ Arrays.stream(jtFields).forEach(i -> i.setText(""));
});
- processButton.addActionListener(e -> {
- Order order =
- new Order(jtFields[0].getText(), jtFields[1].getText(), jtAreas[0].getText(), jtFields[2]
- .getText(),
- jtAreas[1].getText());
- jl.setText(sendRequest(order));
- });
+ processButton.addActionListener(this::actionPerformed);
JRootPane rootPane = SwingUtilities.getRootPane(processButton);
rootPane.setDefaultButton(processButton);
@@ -126,4 +117,14 @@ public void setFilterManager(FilterManager filterManager) {
public String sendRequest(Order order) {
return filterManager.filterRequest(order);
}
+
+ private void actionPerformed(ActionEvent e) {
+ var fieldText1 = jtFields[0].getText();
+ var fieldText2 = jtFields[1].getText();
+ var areaText1 = jtAreas[0].getText();
+ var fieldText3 = jtFields[2].getText();
+ var areaText2 = jtAreas[1].getText();
+ var order = new Order(fieldText1, fieldText2, areaText1, fieldText3, areaText2);
+ jl.setText(sendRequest(order));
+ }
}
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/ContactFilter.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/ContactFilter.java
index 9acdec31966b..0e76ac1c009b 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/ContactFilter.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/ContactFilter.java
@@ -34,10 +34,11 @@ public class ContactFilter extends AbstractFilter {
@Override
public String execute(Order order) {
- String result = super.execute(order);
- if (order.getContactNumber() == null || order.getContactNumber().isEmpty()
- || order.getContactNumber().matches(".*[^\\d]+.*")
- || order.getContactNumber().length() != 11) {
+ var result = super.execute(order);
+ var contactNumber = order.getContactNumber();
+ if (contactNumber == null || contactNumber.isEmpty()
+ || contactNumber.matches(".*[^\\d]+.*")
+ || contactNumber.length() != 11) {
return result + "Invalid contact number! ";
} else {
return result;
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/DepositFilter.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/DepositFilter.java
index e7457c9bec5b..da802616d5f0 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/DepositFilter.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/DepositFilter.java
@@ -32,8 +32,9 @@ public class DepositFilter extends AbstractFilter {
@Override
public String execute(Order order) {
- String result = super.execute(order);
- if (order.getDepositNumber() == null || order.getDepositNumber().isEmpty()) {
+ var result = super.execute(order);
+ var depositNumber = order.getDepositNumber();
+ if (depositNumber == null || depositNumber.isEmpty()) {
return result + "Invalid deposit number! ";
} else {
return result;
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java
index 95ef54fe1d82..358c9fd8501d 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/NameFilter.java
@@ -33,9 +33,9 @@ public class NameFilter extends AbstractFilter {
@Override
public String execute(Order order) {
- String result = super.execute(order);
- if (order.getName() == null || order.getName().isEmpty()
- || order.getName().matches(".*[^\\w|\\s]+.*")) {
+ var result = super.execute(order);
+ var name = order.getName();
+ if (name == null || name.isEmpty() || name.matches(".*[^\\w|\\s]+.*")) {
return result + "Invalid name! ";
} else {
return result;
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/OrderFilter.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/OrderFilter.java
index de91386f3f57..c555322f7288 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/OrderFilter.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/OrderFilter.java
@@ -32,8 +32,9 @@ public class OrderFilter extends AbstractFilter {
@Override
public String execute(Order order) {
- String result = super.execute(order);
- if (order.getOrderItem() == null || order.getOrderItem().isEmpty()) {
+ var result = super.execute(order);
+ var orderItem = order.getOrderItem();
+ if (orderItem == null || orderItem.isEmpty()) {
return result + "Invalid order! ";
} else {
return result;
diff --git a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Target.java b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Target.java
index 9ded355c757a..08ed715b1aa2 100644
--- a/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Target.java
+++ b/intercepting-filter/src/main/java/com/iluwatar/intercepting/filter/Target.java
@@ -27,11 +27,10 @@
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-
+import java.util.stream.IntStream;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
-import javax.swing.JRootPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
@@ -58,9 +57,8 @@ public Target() {
super("Order System");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(640, 480);
- dtm =
- new DefaultTableModel(new Object[]{"Name", "Contact Number", "Address", "Deposit Number",
- "Order"}, 0);
+ dtm = new DefaultTableModel(
+ new Object[]{"Name", "Contact Number", "Address", "Deposit Number", "Order"}, 0);
jt = new JTable(dtm);
del = new JButton("Delete");
setup();
@@ -68,18 +66,18 @@ public Target() {
private void setup() {
setLayout(new BorderLayout());
- JPanel bot = new JPanel();
+ var bot = new JPanel();
add(jt.getTableHeader(), BorderLayout.NORTH);
bot.setLayout(new BorderLayout());
bot.add(del, BorderLayout.EAST);
add(bot, BorderLayout.SOUTH);
- JScrollPane jsp = new JScrollPane(jt);
+ var jsp = new JScrollPane(jt);
jsp.setPreferredSize(new Dimension(500, 250));
add(jsp, BorderLayout.CENTER);
del.addActionListener(new DListener());
- JRootPane rootPane = SwingUtilities.getRootPane(del);
+ var rootPane = SwingUtilities.getRootPane(del);
rootPane.setDefaultButton(del);
setVisible(true);
}
@@ -91,14 +89,12 @@ public void execute(String[] request) {
class DListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
- int temp = jt.getSelectedRow();
+ var temp = jt.getSelectedRow();
if (temp == -1) {
return;
}
- int temp2 = jt.getSelectedRowCount();
- for (int i = 0; i < temp2; i++) {
- dtm.removeRow(temp);
- }
+ var temp2 = jt.getSelectedRowCount();
+ IntStream.range(0, temp2).forEach(i -> dtm.removeRow(temp));
}
}
}
diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/AppTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/AppTest.java
index 4ee7897ed111..8fbe9f1d20c1 100644
--- a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/AppTest.java
+++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/AppTest.java
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test.
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java
index feffbd7bef52..605db4de295b 100644
--- a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java
+++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterManagerTest.java
@@ -23,8 +23,6 @@
package com.iluwatar.intercepting.filter;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
@@ -33,6 +31,8 @@
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/13/15 - 3:01 PM
*
@@ -42,20 +42,20 @@ public class FilterManagerTest {
@Test
public void testFilterRequest() {
- final Target target = mock(Target.class);
- final FilterManager filterManager = new FilterManager();
+ final var target = mock(Target.class);
+ final var filterManager = new FilterManager();
assertEquals("RUNNING...", filterManager.filterRequest(mock(Order.class)));
verifyZeroInteractions(target);
}
@Test
public void testAddFilter() {
- final Target target = mock(Target.class);
- final FilterManager filterManager = new FilterManager();
+ final var target = mock(Target.class);
+ final var filterManager = new FilterManager();
verifyZeroInteractions(target);
- final Filter filter = mock(Filter.class);
+ final var filter = mock(Filter.class);
when(filter.execute(any(Order.class))).thenReturn("filter");
filterManager.addFilter(filter);
diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java
index 2e9a9641f165..7a0ce915019c 100644
--- a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java
+++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/FilterTest.java
@@ -23,17 +23,15 @@
package com.iluwatar.intercepting.filter;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import java.util.ArrayList;
-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.assertNull;
import static org.junit.jupiter.api.Assertions.assertSame;
+import java.util.List;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
/**
* Date: 12/13/15 - 2:17 PM
*
@@ -41,7 +39,8 @@
*/
public class FilterTest {
- private static final Order PERFECT_ORDER = new Order("name", "12345678901", "addr", "dep", "order");
+ private static final Order PERFECT_ORDER =
+ new Order("name", "12345678901", "addr", "dep", "order");
private static final Order WRONG_ORDER = new Order("name", "12345678901", "addr", "dep", "");
private static final Order WRONG_DEPOSIT = new Order("name", "12345678901", "addr", "", "order");
private static final Order WRONG_ADDRESS = new Order("name", "12345678901", "", "dep", "order");
@@ -49,49 +48,48 @@ public class FilterTest {
private static final Order WRONG_NAME = new Order("", "12345678901", "addr", "dep", "order");
static List getTestData() {
- final List testData = new ArrayList<>();
- testData.add(new Object[]{new NameFilter(), PERFECT_ORDER, ""});
- testData.add(new Object[]{new NameFilter(), WRONG_NAME, "Invalid name!"});
- testData.add(new Object[]{new NameFilter(), WRONG_CONTACT, ""});
- testData.add(new Object[]{new NameFilter(), WRONG_ADDRESS, ""});
- testData.add(new Object[]{new NameFilter(), WRONG_DEPOSIT, ""});
- testData.add(new Object[]{new NameFilter(), WRONG_ORDER, ""});
-
- testData.add(new Object[]{new ContactFilter(), PERFECT_ORDER, ""});
- testData.add(new Object[]{new ContactFilter(), WRONG_NAME, ""});
- testData.add(new Object[]{new ContactFilter(), WRONG_CONTACT, "Invalid contact number!"});
- testData.add(new Object[]{new ContactFilter(), WRONG_ADDRESS, ""});
- testData.add(new Object[]{new ContactFilter(), WRONG_DEPOSIT, ""});
- testData.add(new Object[]{new ContactFilter(), WRONG_ORDER, ""});
+ return List.of(
+ new Object[]{new NameFilter(), PERFECT_ORDER, ""},
+ new Object[]{new NameFilter(), WRONG_NAME, "Invalid name!"},
+ new Object[]{new NameFilter(), WRONG_CONTACT, ""},
+ new Object[]{new NameFilter(), WRONG_ADDRESS, ""},
+ new Object[]{new NameFilter(), WRONG_DEPOSIT, ""},
+ new Object[]{new NameFilter(), WRONG_ORDER, ""},
- testData.add(new Object[]{new AddressFilter(), PERFECT_ORDER, ""});
- testData.add(new Object[]{new AddressFilter(), WRONG_NAME, ""});
- testData.add(new Object[]{new AddressFilter(), WRONG_CONTACT, ""});
- testData.add(new Object[]{new AddressFilter(), WRONG_ADDRESS, "Invalid address!"});
- testData.add(new Object[]{new AddressFilter(), WRONG_DEPOSIT, ""});
- testData.add(new Object[]{new AddressFilter(), WRONG_ORDER, ""});
+ new Object[]{new ContactFilter(), PERFECT_ORDER, ""},
+ new Object[]{new ContactFilter(), WRONG_NAME, ""},
+ new Object[]{new ContactFilter(), WRONG_CONTACT, "Invalid contact number!"},
+ new Object[]{new ContactFilter(), WRONG_ADDRESS, ""},
+ new Object[]{new ContactFilter(), WRONG_DEPOSIT, ""},
+ new Object[]{new ContactFilter(), WRONG_ORDER, ""},
- testData.add(new Object[]{new DepositFilter(), PERFECT_ORDER, ""});
- testData.add(new Object[]{new DepositFilter(), WRONG_NAME, ""});
- testData.add(new Object[]{new DepositFilter(), WRONG_CONTACT, ""});
- testData.add(new Object[]{new DepositFilter(), WRONG_ADDRESS, ""});
- testData.add(new Object[]{new DepositFilter(), WRONG_DEPOSIT, "Invalid deposit number!"});
- testData.add(new Object[]{new DepositFilter(), WRONG_ORDER, ""});
+ new Object[]{new AddressFilter(), PERFECT_ORDER, ""},
+ new Object[]{new AddressFilter(), WRONG_NAME, ""},
+ new Object[]{new AddressFilter(), WRONG_CONTACT, ""},
+ new Object[]{new AddressFilter(), WRONG_ADDRESS, "Invalid address!"},
+ new Object[]{new AddressFilter(), WRONG_DEPOSIT, ""},
+ new Object[]{new AddressFilter(), WRONG_ORDER, ""},
- testData.add(new Object[]{new OrderFilter(), PERFECT_ORDER, ""});
- testData.add(new Object[]{new OrderFilter(), WRONG_NAME, ""});
- testData.add(new Object[]{new OrderFilter(), WRONG_CONTACT, ""});
- testData.add(new Object[]{new OrderFilter(), WRONG_ADDRESS, ""});
- testData.add(new Object[]{new OrderFilter(), WRONG_DEPOSIT, ""});
- testData.add(new Object[]{new OrderFilter(), WRONG_ORDER, "Invalid order!"});
+ new Object[]{new DepositFilter(), PERFECT_ORDER, ""},
+ new Object[]{new DepositFilter(), WRONG_NAME, ""},
+ new Object[]{new DepositFilter(), WRONG_CONTACT, ""},
+ new Object[]{new DepositFilter(), WRONG_ADDRESS, ""},
+ new Object[]{new DepositFilter(), WRONG_DEPOSIT, "Invalid deposit number!"},
+ new Object[]{new DepositFilter(), WRONG_ORDER, ""},
- return testData;
+ new Object[]{new OrderFilter(), PERFECT_ORDER, ""},
+ new Object[]{new OrderFilter(), WRONG_NAME, ""},
+ new Object[]{new OrderFilter(), WRONG_CONTACT, ""},
+ new Object[]{new OrderFilter(), WRONG_ADDRESS, ""},
+ new Object[]{new OrderFilter(), WRONG_DEPOSIT, ""},
+ new Object[]{new OrderFilter(), WRONG_ORDER, "Invalid order!"}
+ );
}
@ParameterizedTest
@MethodSource("getTestData")
public void testExecute(Filter filter, Order order, String expectedResult) {
- final String result = filter.execute(order);
+ final var result = filter.execute(order);
assertNotNull(result);
assertEquals(expectedResult, result.trim());
}
diff --git a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java
index a4862c4a828d..21643986e1ac 100644
--- a/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java
+++ b/intercepting-filter/src/test/java/com/iluwatar/intercepting/filter/OrderTest.java
@@ -23,10 +23,10 @@
package com.iluwatar.intercepting.filter;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/13/15 - 2:57 PM
*
@@ -38,35 +38,35 @@ public class OrderTest {
@Test
public void testSetName() {
- final Order order = new Order();
+ final var order = new Order();
order.setName(EXPECTED_VALUE);
assertEquals(EXPECTED_VALUE, order.getName());
}
@Test
public void testSetContactNumber() {
- final Order order = new Order();
+ final var order = new Order();
order.setContactNumber(EXPECTED_VALUE);
assertEquals(EXPECTED_VALUE, order.getContactNumber());
}
@Test
public void testSetAddress() {
- final Order order = new Order();
+ final var order = new Order();
order.setAddress(EXPECTED_VALUE);
assertEquals(EXPECTED_VALUE, order.getAddress());
}
@Test
public void testSetDepositNumber() {
- final Order order = new Order();
+ final var order = new Order();
order.setDepositNumber(EXPECTED_VALUE);
assertEquals(EXPECTED_VALUE, order.getDepositNumber());
}
@Test
public void testSetOrder() {
- final Order order = new Order();
+ final var order = new Order();
order.setOrderItem(EXPECTED_VALUE);
assertEquals(EXPECTED_VALUE, order.getOrderItem());
}
diff --git a/interpreter/pom.xml b/interpreter/pom.xml
index 1789069f757a..118cfcdf645e 100644
--- a/interpreter/pom.xml
+++ b/interpreter/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.interpreter.App
+
+
+
+
+
+
+
+
diff --git a/interpreter/src/main/java/com/iluwatar/interpreter/App.java b/interpreter/src/main/java/com/iluwatar/interpreter/App.java
index d63c78506014..909c333451ae 100644
--- a/interpreter/src/main/java/com/iluwatar/interpreter/App.java
+++ b/interpreter/src/main/java/com/iluwatar/interpreter/App.java
@@ -49,24 +49,24 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- String tokenString = "4 3 2 - 1 + *";
- Stack stack = new Stack<>();
+ var tokenString = "4 3 2 - 1 + *";
+ var stack = new Stack();
- String[] tokenList = tokenString.split(" ");
- for (String s : tokenList) {
+ var tokenList = tokenString.split(" ");
+ for (var s : tokenList) {
if (isOperator(s)) {
- Expression rightExpression = stack.pop();
- Expression leftExpression = stack.pop();
+ var rightExpression = stack.pop();
+ var leftExpression = stack.pop();
LOGGER.info("popped from stack left: {} right: {}",
leftExpression.interpret(), rightExpression.interpret());
- Expression operator = getOperatorInstance(s, leftExpression, rightExpression);
+ var operator = getOperatorInstance(s, leftExpression, rightExpression);
LOGGER.info("operator: {}", operator);
- int result = operator.interpret();
- NumberExpression resultExpression = new NumberExpression(result);
+ var result = operator.interpret();
+ var resultExpression = new NumberExpression(result);
stack.push(resultExpression);
LOGGER.info("push result to stack: {}", resultExpression.interpret());
} else {
- Expression i = new NumberExpression(s);
+ var i = new NumberExpression(s);
stack.push(i);
LOGGER.info("push to stack: {}", i.interpret());
}
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/AppTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/AppTest.java
index 1bc978735354..505dc559c6ca 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/AppTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/AppTest.java
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java
index be12e00b5d8c..85f836dabe5f 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/ExpressionTest.java
@@ -23,25 +23,23 @@
package com.iluwatar.interpreter;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.TestInstance;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.util.ArrayList;
-import java.util.List;
import java.util.function.BiFunction;
import java.util.function.IntBinaryOperator;
import java.util.stream.Stream;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Date: 12/14/15 - 11:48 AM
- *
+ *
* Test Case for Expressions
+ *
* @param Type of Expression
* @author Jeroen Meulemeester
*/
@@ -55,13 +53,13 @@ public abstract class ExpressionTest {
* @return A stream with test entries
*/
static Stream prepareParameters(final IntBinaryOperator resultCalc) {
- final List testData = new ArrayList<>();
- for (int i = -10; i < 10; i++) {
- for (int j = -10; j < 10; j++) {
+ final var testData = new ArrayList();
+ for (var i = -10; i < 10; i++) {
+ for (var j = -10; j < 10; j++) {
testData.add(Arguments.of(
- new NumberExpression(i),
- new NumberExpression(j),
- resultCalc.applyAsInt(i, j)
+ new NumberExpression(i),
+ new NumberExpression(j),
+ resultCalc.applyAsInt(i, j)
));
}
}
@@ -104,7 +102,7 @@ static Stream prepareParameters(final IntBinaryOperator resultCalc) {
@ParameterizedTest
@MethodSource("expressionProvider")
public void testInterpret(NumberExpression first, NumberExpression second, int result) {
- final E expression = factory.apply(first, second);
+ final var expression = factory.apply(first, second);
assertNotNull(expression);
assertEquals(result, expression.interpret());
}
@@ -115,7 +113,7 @@ public void testInterpret(NumberExpression first, NumberExpression second, int r
@ParameterizedTest
@MethodSource("expressionProvider")
public void testToString(NumberExpression first, NumberExpression second) {
- final E expression = factory.apply(first, second);
+ final var expression = factory.apply(first, second);
assertNotNull(expression);
assertEquals(expectedToString, expression.toString());
}
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java
index f5c51f72323d..19f74171bee4 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/MinusExpressionTest.java
@@ -23,9 +23,8 @@
package com.iluwatar.interpreter;
-import org.junit.jupiter.params.provider.Arguments;
-
import java.util.stream.Stream;
+import org.junit.jupiter.params.provider.Arguments;
/**
* Date: 12/14/15 - 12:08 PM
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java
index 5c956beb25d2..678048e1c2bf 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/MultiplyExpressionTest.java
@@ -23,9 +23,8 @@
package com.iluwatar.interpreter;
-import org.junit.jupiter.params.provider.Arguments;
-
import java.util.stream.Stream;
+import org.junit.jupiter.params.provider.Arguments;
/**
* Date: 12/14/15 - 12:08 PM
@@ -46,7 +45,6 @@ public Stream expressionProvider() {
/**
* Create a new test instance using the given test parameters and expected result
- *
*/
public MultiplyExpressionTest() {
super("*", MultiplyExpression::new);
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java
index 593c08a9bbca..16fc0a429926 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/NumberExpressionTest.java
@@ -23,14 +23,13 @@
package com.iluwatar.interpreter;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
-import java.util.stream.Stream;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Date: 12/14/15 - 12:08 PM
*
@@ -61,9 +60,9 @@ public NumberExpressionTest() {
@ParameterizedTest
@MethodSource("expressionProvider")
public void testFromString(NumberExpression first) throws Exception {
- final int expectedValue = first.interpret();
- final String testStringValue = String.valueOf(expectedValue);
- final NumberExpression numberExpression = new NumberExpression(testStringValue);
+ final var expectedValue = first.interpret();
+ final var testStringValue = String.valueOf(expectedValue);
+ final var numberExpression = new NumberExpression(testStringValue);
assertEquals(expectedValue, numberExpression.interpret());
}
diff --git a/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java b/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java
index 7fc5efa12d77..1f53f3606b14 100644
--- a/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java
+++ b/interpreter/src/test/java/com/iluwatar/interpreter/PlusExpressionTest.java
@@ -23,9 +23,8 @@
package com.iluwatar.interpreter;
-import org.junit.jupiter.params.provider.Arguments;
-
import java.util.stream.Stream;
+import org.junit.jupiter.params.provider.Arguments;
/**
* Date: 12/14/15 - 12:08 PM
@@ -41,7 +40,7 @@ public class PlusExpressionTest extends ExpressionTest {
*/
@Override
public Stream expressionProvider() {
- return prepareParameters((f, s) -> f + s);
+ return prepareParameters(Integer::sum);
}
/**
diff --git a/iterator/pom.xml b/iterator/pom.xml
index a1f1b29100ec..514cedbea90e 100644
--- a/iterator/pom.xml
+++ b/iterator/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.iterator.App
+
+
+
+
+
+
+
+
diff --git a/iterator/src/main/java/com/iluwatar/iterator/App.java b/iterator/src/main/java/com/iluwatar/iterator/App.java
index 6e72b4ae991d..b81e765beb4a 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/App.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/App.java
@@ -30,7 +30,6 @@
import com.iluwatar.iterator.bst.BstIterator;
import com.iluwatar.iterator.bst.TreeNode;
-import com.iluwatar.iterator.list.Item;
import com.iluwatar.iterator.list.ItemType;
import com.iluwatar.iterator.list.TreasureChest;
import org.slf4j.Logger;
@@ -53,7 +52,7 @@ public class App {
private static void demonstrateTreasureChestIteratorForType(ItemType itemType) {
LOGGER.info("------------------------");
LOGGER.info("Item Iterator for ItemType " + itemType + ": ");
- Iterator- itemIterator = TREASURE_CHEST.iterator(itemType);
+ var itemIterator = TREASURE_CHEST.iterator(itemType);
while (itemIterator.hasNext()) {
LOGGER.info(itemIterator.next().toString());
}
@@ -62,15 +61,15 @@ private static void demonstrateTreasureChestIteratorForType(ItemType itemType) {
private static void demonstrateBstIterator() {
LOGGER.info("------------------------");
LOGGER.info("BST Iterator: ");
- TreeNode
root = buildIntegerBst();
- BstIterator bstIterator = new BstIterator<>(root);
+ var root = buildIntegerBst();
+ var bstIterator = new BstIterator(root);
while (bstIterator.hasNext()) {
LOGGER.info("Next node: " + bstIterator.next().getVal());
}
}
private static TreeNode buildIntegerBst() {
- TreeNode root = new TreeNode<>(8);
+ var root = new TreeNode<>(8);
root.insert(3);
root.insert(10);
diff --git a/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java b/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java
index 87511c7eaad3..b3e0dc3d649b 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java
@@ -78,7 +78,7 @@ public TreeNode next() throws NoSuchElementException {
if (pathStack.isEmpty()) {
throw new NoSuchElementException();
}
- TreeNode next = pathStack.pop();
+ var next = pathStack.pop();
pushPathToNextSmallest(next.getRight());
return next;
}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/bst/README.md b/iterator/src/main/java/com/iluwatar/iterator/bst/README.md
index 02e8eefcb25b..816d1a4fe291 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/bst/README.md
+++ b/iterator/src/main/java/com/iluwatar/iterator/bst/README.md
@@ -63,7 +63,7 @@ public TreeNode next() throws IllegalStateException {
if (pathStack.isEmpty()) {
throw new IllegalStateException();
}
- TreeNode next = pathStack.pop();
+ var next = pathStack.pop();
// follow right child to next smallest node
pushPathToNextSmallest(next.getRight());
return next;
diff --git a/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java b/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java
index 9d03fdf86743..87f16e96cc16 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java
@@ -72,7 +72,7 @@ private void setRight(TreeNode right) {
* @param valToInsert The value to insert as a new TreeNode
*/
public void insert(T valToInsert) {
- TreeNode parent = getParentNodeOfValueToBeInserted(valToInsert);
+ var parent = getParentNodeOfValueToBeInserted(valToInsert);
parent.insertNewChild(valToInsert);
}
@@ -84,7 +84,7 @@ public void insert(T valToInsert) {
*/
private TreeNode getParentNodeOfValueToBeInserted(T valToInsert) {
TreeNode parent = null;
- TreeNode curr = this;
+ var curr = this;
while (curr != null) {
parent = curr;
diff --git a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java
index 43dbc82fa3b0..90461c420ffb 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java
@@ -24,7 +24,6 @@
package com.iluwatar.iterator.list;
import com.iluwatar.iterator.Iterator;
-import java.util.List;
/**
* TreasureChestItemIterator.
@@ -59,10 +58,9 @@ public Item next() {
}
private int findNextIdx() {
- List- items = chest.getItems();
- boolean found = false;
- int tempIdx = idx;
- while (!found) {
+ var items = chest.getItems();
+ var tempIdx = idx;
+ while (true) {
tempIdx++;
if (tempIdx >= items.size()) {
tempIdx = -1;
diff --git a/iterator/src/test/java/com/iluwatar/iterator/AppTest.java b/iterator/src/test/java/com/iluwatar/iterator/AppTest.java
index 9076c5174c5e..ccb33307c9c1 100644
--- a/iterator/src/test/java/com/iluwatar/iterator/AppTest.java
+++ b/iterator/src/test/java/com/iluwatar/iterator/AppTest.java
@@ -32,7 +32,6 @@ class AppTest {
@Test
void testApp() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
\ No newline at end of file
diff --git a/iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java b/iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java
index e7f81e0d3f86..fba9ae8e3bbb 100644
--- a/iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java
+++ b/iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java
@@ -28,13 +28,12 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import java.util.NoSuchElementException;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
-import java.util.NoSuchElementException;
-
@TestInstance(Lifecycle.PER_CLASS)
class BstIteratorTest {
@@ -55,14 +54,14 @@ void createTrees() {
@Test
void nextForEmptyTree() {
- BstIterator
iter = new BstIterator<>(emptyRoot);
+ var iter = new BstIterator<>(emptyRoot);
assertThrows(NoSuchElementException.class, iter::next,
"next() should throw an IllegalStateException if hasNext() is false.");
}
@Test
void nextOverEntirePopulatedTree() {
- BstIterator iter = new BstIterator<>(nonEmptyRoot);
+ var iter = new BstIterator<>(nonEmptyRoot);
assertEquals(Integer.valueOf(1), iter.next().getVal(), "First Node is 1.");
assertEquals(Integer.valueOf(3), iter.next().getVal(), "Second Node is 3.");
assertEquals(Integer.valueOf(4), iter.next().getVal(), "Third Node is 4.");
@@ -73,19 +72,19 @@ void nextOverEntirePopulatedTree() {
@Test
void hasNextForEmptyTree() {
- BstIterator iter = new BstIterator<>(emptyRoot);
+ var iter = new BstIterator<>(emptyRoot);
assertFalse(iter.hasNext(), "hasNext() should return false for empty tree.");
}
@Test
void hasNextForPopulatedTree() {
- BstIterator iter = new BstIterator<>(nonEmptyRoot);
+ var iter = new BstIterator<>(nonEmptyRoot);
assertTrue(iter.hasNext(), "hasNext() should return true for populated tree.");
}
@Test
void nextAndHasNextOverEntirePopulatedTree() {
- BstIterator iter = new BstIterator<>(nonEmptyRoot);
+ var iter = new BstIterator<>(nonEmptyRoot);
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
assertEquals(Integer.valueOf(1), iter.next().getVal(), "First Node is 1.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
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 350934590e51..5e4f85e6b6f0 100644
--- a/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java
+++ b/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java
@@ -27,7 +27,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.List;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
@@ -46,16 +45,16 @@ public class TreasureChestTest {
*/
public static List dataProvider() {
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")}
+ 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")}
);
}
@@ -66,16 +65,16 @@ public static List dataProvider() {
@ParameterizedTest
@MethodSource("dataProvider")
public void testIterator(Item expectedItem) {
- final TreasureChest chest = new TreasureChest();
- final Iterator- iterator = chest.iterator(expectedItem.getType());
+ final var chest = new TreasureChest();
+ final var iterator = chest.iterator(expectedItem.getType());
assertNotNull(iterator);
while (iterator.hasNext()) {
- final Item item = iterator.next();
+ final var item = iterator.next();
assertNotNull(item);
assertEquals(expectedItem.getType(), item.getType());
- final String name = item.toString();
+ final var name = item.toString();
assertNotNull(name);
if (expectedItem.toString().equals(name)) {
return;
@@ -93,17 +92,17 @@ public void testIterator(Item expectedItem) {
@ParameterizedTest
@MethodSource("dataProvider")
public void testGetItems(Item expectedItem) throws Exception {
- final TreasureChest chest = new TreasureChest();
- final List
- items = chest.getItems();
+ final var chest = new TreasureChest();
+ final var items = chest.getItems();
assertNotNull(items);
- for (final Item item : items) {
+ for (final var item : items) {
assertNotNull(item);
assertNotNull(item.getType());
assertNotNull(item.toString());
- final boolean sameType = expectedItem.getType() == item.getType();
- final boolean sameName = expectedItem.toString().equals(item.toString());
+ final var sameType = expectedItem.getType() == item.getType();
+ final var sameName = expectedItem.toString().equals(item.toString());
if (sameType && sameName) {
return;
}
diff --git a/layers/pom.xml b/layers/pom.xml
index 0627fdf9b103..2ebace18b4f1 100644
--- a/layers/pom.xml
+++ b/layers/pom.xml
@@ -66,4 +66,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.layers.app.App
+
+
+
+
+
+
+
+
diff --git a/lazy-loading/pom.xml b/lazy-loading/pom.xml
index c0245aac018a..a6a5d3a4510a 100644
--- a/lazy-loading/pom.xml
+++ b/lazy-loading/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.lazy.loading.App
+
+
+
+
+
+
+
+
diff --git a/leader-election/pom.xml b/leader-election/pom.xml
index 9e94ce32f241..8fc833f18072 100644
--- a/leader-election/pom.xml
+++ b/leader-election/pom.xml
@@ -40,4 +40,36 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ bully
+
+
+
+ com.iluwatar.leaderelection.bully.BullyApp
+
+
+ ${project.artifactId}-Bully
+
+
+
+ ring
+
+
+
+ com.iluwatar.leaderelection.ring.RingApp
+
+
+ ${project.artifactId}-Ring
+
+
+
+
+
+
\ No newline at end of file
diff --git a/marker/pom.xml b/marker/pom.xml
index fa794b5959da..5212832d8476 100644
--- a/marker/pom.xml
+++ b/marker/pom.xml
@@ -47,6 +47,23 @@
test
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ App
+
+
+
+
+
+
+
+
diff --git a/master-worker-pattern/pom.xml b/master-worker-pattern/pom.xml
index 7ace130d8a9e..9924d6a5a5f0 100644
--- a/master-worker-pattern/pom.xml
+++ b/master-worker-pattern/pom.xml
@@ -37,4 +37,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.masterworker.App
+
+
+
+
+
+
+
+
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 b8036b91199a..547636066a49 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
@@ -24,6 +24,11 @@
package com.iluwatar.masterworker;
import com.iluwatar.masterworker.system.ArrayTransposeMasterWorker;
+import com.iluwatar.masterworker.system.MasterWorker;
+import com.iluwatar.masterworker.system.systemmaster.ArrayTransposeMaster;
+import com.iluwatar.masterworker.system.systemmaster.Master;
+import com.iluwatar.masterworker.system.systemworkers.ArrayTransposeWorker;
+import com.iluwatar.masterworker.system.systemworkers.Worker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/mediator/pom.xml b/mediator/pom.xml
index 2c0bfd4135b6..23d28726bdc5 100644
--- a/mediator/pom.xml
+++ b/mediator/pom.xml
@@ -49,4 +49,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.mediator.App
+
+
+
+
+
+
+
+
diff --git a/memento/pom.xml b/memento/pom.xml
index 07e4f0b839e5..70121cea3e56 100644
--- a/memento/pom.xml
+++ b/memento/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.memento.App
+
+
+
+
+
+
+
+
diff --git a/model-view-controller/pom.xml b/model-view-controller/pom.xml
index 4759bf2d3158..a8ef230e85d6 100644
--- a/model-view-controller/pom.xml
+++ b/model-view-controller/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.model.view.controller.App
+
+
+
+
+
+
+
+
diff --git a/model-view-presenter/pom.xml b/model-view-presenter/pom.xml
index 21ba3f14c56d..97b47f82c361 100644
--- a/model-view-presenter/pom.xml
+++ b/model-view-presenter/pom.xml
@@ -46,4 +46,23 @@
1.0.2
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.model.view.presenter.App
+
+
+
+
+
+
+
+
diff --git a/module/pom.xml b/module/pom.xml
index d30353070a15..25ad707ebc20 100644
--- a/module/pom.xml
+++ b/module/pom.xml
@@ -38,4 +38,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.module.App
+
+
+
+
+
+
+
+
diff --git a/monad/pom.xml b/monad/pom.xml
index 868cc871059b..f553c3079767 100644
--- a/monad/pom.xml
+++ b/monad/pom.xml
@@ -39,5 +39,24 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.monostate.App
+
+
+
+
+
+
+
+
diff --git a/multiton/pom.xml b/multiton/pom.xml
index 39deb9e4dcbe..ef1e9c8921a9 100644
--- a/multiton/pom.xml
+++ b/multiton/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.multiton.App
+
+
+
+
+
+
+
+
diff --git a/mute-idiom/pom.xml b/mute-idiom/pom.xml
index 91f5063a7a0e..a32f6a3ea2fa 100644
--- a/mute-idiom/pom.xml
+++ b/mute-idiom/pom.xml
@@ -40,4 +40,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.mute.App
+
+
+
+
+
+
+
+
diff --git a/mutex/README.md b/mutex/README.md
index 43ed8d94732d..997c37a35eb0 100644
--- a/mutex/README.md
+++ b/mutex/README.md
@@ -27,5 +27,5 @@ Use a Mutex when
## Credits
-* [Lock (computer science)] (http://en.wikipedia.org/wiki/Lock_(computer_science))
-* [Semaphores] (http://tutorials.jenkov.com/java-concurrency/semaphores.html)
+* [Lock (computer science)](http://en.wikipedia.org/wiki/Lock_(computer_science))
+* [Semaphores](http://tutorials.jenkov.com/java-concurrency/semaphores.html)
diff --git a/mutex/pom.xml b/mutex/pom.xml
index c1cad3d8aae4..9cdff25e42e2 100644
--- a/mutex/pom.xml
+++ b/mutex/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.mutex.App
+
+
+
+
+
+
+
+
diff --git a/null-object/pom.xml b/null-object/pom.xml
index d80b97d95734..7b88fca790a5 100644
--- a/null-object/pom.xml
+++ b/null-object/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.nullobject.App
+
+
+
+
+
+
+
+
diff --git a/object-pool/pom.xml b/object-pool/pom.xml
index fdd247476d12..2adad8942c92 100644
--- a/object-pool/pom.xml
+++ b/object-pool/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.object.pool.App
+
+
+
+
+
+
+
+
diff --git a/observer/pom.xml b/observer/pom.xml
index fc8a53eae564..1e48268d885d 100644
--- a/observer/pom.xml
+++ b/observer/pom.xml
@@ -49,4 +49,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.observer.App
+
+
+
+
+
+
+
+
diff --git a/page-object/pom.xml b/page-object/pom.xml
index 99c67dbc5f38..4bf31d72eaa8 100644
--- a/page-object/pom.xml
+++ b/page-object/pom.xml
@@ -26,6 +26,23 @@
4.0.0
+
+ 11
+ 11
+
+
+
+ net.sourceforge.htmlunit
+ htmlunit
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter
+ RELEASE
+ test
+
+
com.iluwatar
java-design-patterns
@@ -37,4 +54,23 @@
sample-application
test-automation
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.pageobject.App
+
+
+
+
+
+
+
+
\ No newline at end of file
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 e3a86599c3fb..edf7e12581b9 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
@@ -71,8 +71,8 @@ private App() {
public static void main(String[] args) {
try {
- File applicationFile =
- new File(App.class.getClassLoader().getResource("sample-ui/login.html").getPath());
+ var classLoader = App.class.getClassLoader();
+ var applicationFile = new File(classLoader.getResource("sample-ui/login.html").getPath());
// should work for unix like OS (mac, unix etc...)
if (Desktop.isDesktopSupported()) {
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 ee9f58504a0b..1acc63419f53 100644
--- a/page-object/src/main/java/com/iluwatar/pageobject/App.java
+++ b/page-object/src/main/java/com/iluwatar/pageobject/App.java
@@ -67,8 +67,8 @@ private App() {
public static void main(String[] args) {
try {
- File applicationFile =
- new File(App.class.getClassLoader().getResource("sample-ui/login.html").getPath());
+ var classLoader = App.class.getClassLoader();
+ var applicationFile = new File(classLoader.getResource("sample-ui/login.html").getPath());
// Should work for unix like OS (mac, unix etc...)
if (Desktop.isDesktopSupported()) {
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 29704fe387cc..779458e059a0 100644
--- a/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java
+++ b/page-object/src/test/java/com/iluwatar/pageobject/AlbumListPageTest.java
@@ -23,14 +23,14 @@
package com.iluwatar.pageobject;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.gargoylesoftware.htmlunit.WebClient;
import com.iluwatar.pageobject.pages.AlbumListPage;
import com.iluwatar.pageobject.pages.AlbumPage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Test Album Selection and Album Listing
*/
@@ -45,7 +45,7 @@ public void setUp() {
@Test
public void testSelectAlbum() {
- AlbumPage albumPage = albumListPage.selectAlbum("21");
+ var albumPage = albumListPage.selectAlbum("21");
albumPage.navigateToPage();
assertTrue(albumPage.isAt());
}
diff --git a/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java b/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java
index 488dcc0bb878..601093343374 100644
--- a/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java
+++ b/page-object/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java
@@ -23,14 +23,14 @@
package com.iluwatar.pageobject;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.gargoylesoftware.htmlunit.WebClient;
import com.iluwatar.pageobject.pages.AlbumListPage;
import com.iluwatar.pageobject.pages.AlbumPage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Test Album Page Operations
*/
@@ -46,7 +46,7 @@ public void setUp() {
@Test
public void testSaveAlbum() {
- AlbumPage albumPageAfterChanges = albumPage
+ var albumPageAfterChanges = albumPage
.changeAlbumTitle("25")
.changeArtist("Adele Laurie Blue Adkins")
.changeAlbumYear(2015)
@@ -60,7 +60,7 @@ public void testSaveAlbum() {
@Test
public void testCancelChanges() {
- AlbumListPage albumListPage = albumPage.cancelChanges();
+ var albumListPage = albumPage.cancelChanges();
albumListPage.navigateToPage();
assertTrue(albumListPage.isAt());
}
diff --git a/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java b/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java
index 70458eb643e5..022f736cacae 100644
--- a/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java
+++ b/page-object/src/test/java/com/iluwatar/pageobject/LoginPageTest.java
@@ -23,14 +23,14 @@
package com.iluwatar.pageobject;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.gargoylesoftware.htmlunit.WebClient;
import com.iluwatar.pageobject.pages.AlbumListPage;
import com.iluwatar.pageobject.pages.LoginPage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Test Login Page Object
*/
@@ -45,7 +45,7 @@ public void setUp() {
@Test
public void testLogin() {
- AlbumListPage albumListPage = loginPage
+ var albumListPage = loginPage
.enterUsername("admin")
.enterPassword("password")
.login();
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 f64c7cec2803..6d68960b4d8e 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
@@ -26,7 +26,6 @@
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
-
import java.io.IOException;
import java.util.List;
@@ -79,8 +78,8 @@ public boolean isAt() {
*/
public AlbumPage selectAlbum(String albumTitle) {
// uses XPath to find list of html anchor tags with the class album in it
- List albumLinks = (List) page.getByXPath("//tr[@class='album']//a");
- for (HtmlAnchor anchor : albumLinks) {
+ var albumLinks = (List) page.getByXPath("//tr[@class='album']//a");
+ for (var anchor : albumLinks) {
if (anchor.getTextContent().equals(albumTitle)) {
try {
anchor.click();
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 9115603147f7..e9e2605ab04a 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
@@ -30,7 +30,6 @@
import com.gargoylesoftware.htmlunit.html.HtmlSelect;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
-
import java.io.IOException;
/**
@@ -83,7 +82,7 @@ public boolean isAt() {
* @return {@link AlbumPage}
*/
public AlbumPage changeAlbumTitle(String albumTitle) {
- HtmlTextInput albumTitleInputTextField = (HtmlTextInput) page.getElementById("albumTitle");
+ var albumTitleInputTextField = (HtmlTextInput) page.getElementById("albumTitle");
albumTitleInputTextField.setText(albumTitle);
return this;
}
@@ -96,7 +95,7 @@ public AlbumPage changeAlbumTitle(String albumTitle) {
* @return {@link AlbumPage}
*/
public AlbumPage changeArtist(String artist) {
- HtmlTextInput artistInputTextField = (HtmlTextInput) page.getElementById("albumArtist");
+ var artistInputTextField = (HtmlTextInput) page.getElementById("albumArtist");
artistInputTextField.setText(artist);
return this;
}
@@ -109,8 +108,8 @@ public AlbumPage changeArtist(String artist) {
* @return {@link AlbumPage}
*/
public AlbumPage changeAlbumYear(int year) {
- HtmlSelect albumYearSelectOption = (HtmlSelect) page.getElementById("albumYear");
- HtmlOption yearOption = albumYearSelectOption.getOptionByValue(Integer.toString(year));
+ var albumYearSelectOption = (HtmlSelect) page.getElementById("albumYear");
+ var yearOption = albumYearSelectOption.getOptionByValue(Integer.toString(year));
albumYearSelectOption.setSelectedAttribute(yearOption, true);
return this;
}
@@ -123,7 +122,7 @@ public AlbumPage changeAlbumYear(int year) {
* @return {@link AlbumPage}
*/
public AlbumPage changeAlbumRating(String albumRating) {
- HtmlTextInput albumRatingInputTextField = (HtmlTextInput) page.getElementById("albumRating");
+ var albumRatingInputTextField = (HtmlTextInput) page.getElementById("albumRating");
albumRatingInputTextField.setText(albumRating);
return this;
}
@@ -135,7 +134,7 @@ public AlbumPage changeAlbumRating(String albumRating) {
* @return {@link AlbumPage}
*/
public AlbumPage changeNumberOfSongs(int numberOfSongs) {
- HtmlNumberInput numberOfSongsNumberField = (HtmlNumberInput) page.getElementById("numberOfSongs");
+ var numberOfSongsNumberField = (HtmlNumberInput) page.getElementById("numberOfSongs");
numberOfSongsNumberField.setText(Integer.toString(numberOfSongs));
return this;
}
@@ -147,7 +146,7 @@ public AlbumPage changeNumberOfSongs(int numberOfSongs) {
* @return {@link AlbumListPage}
*/
public AlbumListPage cancelChanges() {
- HtmlSubmitInput cancelButton = (HtmlSubmitInput) page.getElementById("cancelButton");
+ var cancelButton = (HtmlSubmitInput) page.getElementById("cancelButton");
try {
cancelButton.click();
} catch (IOException e) {
@@ -163,7 +162,7 @@ public AlbumListPage cancelChanges() {
* @return {@link AlbumPage}
*/
public AlbumPage saveChanges() {
- HtmlSubmitInput saveButton = (HtmlSubmitInput) page.getElementById("saveButton");
+ var saveButton = (HtmlSubmitInput) page.getElementById("saveButton");
try {
saveButton.click();
} catch (IOException e) {
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 81debb5fb681..e245f4b23622 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
@@ -79,7 +79,7 @@ public boolean isAt() {
* @return {@link LoginPage}
*/
public LoginPage enterUsername(String username) {
- HtmlTextInput usernameInputTextField = (HtmlTextInput) page.getElementById("username");
+ var usernameInputTextField = (HtmlTextInput) page.getElementById("username");
usernameInputTextField.setText(username);
return this;
}
@@ -92,7 +92,7 @@ public LoginPage enterUsername(String username) {
* @return {@link LoginPage}
*/
public LoginPage enterPassword(String password) {
- HtmlPasswordInput passwordInputPasswordField = (HtmlPasswordInput) page.getElementById("password");
+ var passwordInputPasswordField = (HtmlPasswordInput) page.getElementById("password");
passwordInputPasswordField.setText(password);
return this;
}
@@ -101,11 +101,11 @@ public LoginPage enterPassword(String password) {
/**
* Clicking on the login button to 'login'
*
- * @return {@link AlbumListPage}
- * - this is the page that user gets navigated to once successfully logged in
+ * @return {@link AlbumListPage} - this is the page that user gets navigated to once successfully
+ * logged in
*/
public AlbumListPage login() {
- HtmlSubmitInput loginButton = (HtmlSubmitInput) page.getElementById("loginButton");
+ var loginButton = (HtmlSubmitInput) page.getElementById("loginButton");
try {
loginButton.click();
} catch (IOException e) {
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 3cebd94e94e4..81d148dd3f16 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
@@ -31,8 +31,7 @@
public abstract class Page {
/**
- * Application Under Test path
- * This directory location is where html web pages are located
+ * Application Under Test path This directory location is where html web pages are located
*/
public static final String AUT_PATH = "src/main/resources/sample-ui/";
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 2851d24d54c1..807582cb78be 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
@@ -81,8 +81,8 @@ public boolean isAt() {
*/
public AlbumPage selectAlbum(String albumTitle) {
// uses XPath to find list of html anchor tags with the class album in it
- List albumLinks = (List) page.getByXPath("//tr[@class='album']//a");
- for (HtmlAnchor anchor : albumLinks) {
+ var albumLinks = (List) page.getByXPath("//tr[@class='album']//a");
+ for (var anchor : albumLinks) {
if (anchor.getTextContent().equals(albumTitle)) {
try {
anchor.click();
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 953a47ba2e39..837cb630720b 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
@@ -25,7 +25,6 @@
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlNumberInput;
-import com.gargoylesoftware.htmlunit.html.HtmlOption;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSelect;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
@@ -85,7 +84,7 @@ public boolean isAt() {
* @return {@link AlbumPage}
*/
public AlbumPage changeAlbumTitle(String albumTitle) {
- HtmlTextInput albumTitleInputTextField = (HtmlTextInput) page.getElementById("albumTitle");
+ var albumTitleInputTextField = (HtmlTextInput) page.getElementById("albumTitle");
albumTitleInputTextField.setText(albumTitle);
return this;
}
@@ -98,7 +97,7 @@ public AlbumPage changeAlbumTitle(String albumTitle) {
* @return {@link AlbumPage}
*/
public AlbumPage changeArtist(String artist) {
- HtmlTextInput artistInputTextField = (HtmlTextInput) page.getElementById("albumArtist");
+ var artistInputTextField = (HtmlTextInput) page.getElementById("albumArtist");
artistInputTextField.setText(artist);
return this;
}
@@ -111,8 +110,8 @@ public AlbumPage changeArtist(String artist) {
* @return {@link AlbumPage}
*/
public AlbumPage changeAlbumYear(int year) {
- HtmlSelect albumYearSelectOption = (HtmlSelect) page.getElementById("albumYear");
- HtmlOption yearOption = albumYearSelectOption.getOptionByValue(Integer.toString(year));
+ var albumYearSelectOption = (HtmlSelect) page.getElementById("albumYear");
+ var yearOption = albumYearSelectOption.getOptionByValue(Integer.toString(year));
albumYearSelectOption.setSelectedAttribute(yearOption, true);
return this;
}
@@ -125,7 +124,7 @@ public AlbumPage changeAlbumYear(int year) {
* @return {@link AlbumPage}
*/
public AlbumPage changeAlbumRating(String albumRating) {
- HtmlTextInput albumRatingInputTextField = (HtmlTextInput) page.getElementById("albumRating");
+ var albumRatingInputTextField = (HtmlTextInput) page.getElementById("albumRating");
albumRatingInputTextField.setText(albumRating);
return this;
}
@@ -137,8 +136,7 @@ public AlbumPage changeAlbumRating(String albumRating) {
* @return {@link AlbumPage}
*/
public AlbumPage changeNumberOfSongs(int numberOfSongs) {
- HtmlNumberInput numberOfSongsNumberField =
- (HtmlNumberInput) page.getElementById("numberOfSongs");
+ var numberOfSongsNumberField = (HtmlNumberInput) page.getElementById("numberOfSongs");
numberOfSongsNumberField.setText(Integer.toString(numberOfSongs));
return this;
}
@@ -150,7 +148,7 @@ public AlbumPage changeNumberOfSongs(int numberOfSongs) {
* @return {@link AlbumListPage}
*/
public AlbumListPage cancelChanges() {
- HtmlSubmitInput cancelButton = (HtmlSubmitInput) page.getElementById("cancelButton");
+ var cancelButton = (HtmlSubmitInput) page.getElementById("cancelButton");
try {
cancelButton.click();
} catch (IOException e) {
@@ -166,7 +164,7 @@ public AlbumListPage cancelChanges() {
* @return {@link AlbumPage}
*/
public AlbumPage saveChanges() {
- HtmlSubmitInput saveButton = (HtmlSubmitInput) page.getElementById("saveButton");
+ var saveButton = (HtmlSubmitInput) page.getElementById("saveButton");
try {
saveButton.click();
} catch (IOException e) {
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 78d3fa329ab5..b9ec57ff964c 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
@@ -82,7 +82,7 @@ public boolean isAt() {
* @return {@link LoginPage}
*/
public LoginPage enterUsername(String username) {
- HtmlTextInput usernameInputTextField = (HtmlTextInput) page.getElementById("username");
+ var usernameInputTextField = (HtmlTextInput) page.getElementById("username");
usernameInputTextField.setText(username);
return this;
}
@@ -95,8 +95,7 @@ public LoginPage enterUsername(String username) {
* @return {@link LoginPage}
*/
public LoginPage enterPassword(String password) {
- HtmlPasswordInput passwordInputPasswordField =
- (HtmlPasswordInput) page.getElementById("password");
+ var passwordInputPasswordField = (HtmlPasswordInput) page.getElementById("password");
passwordInputPasswordField.setText(password);
return this;
}
@@ -109,7 +108,7 @@ public LoginPage enterPassword(String password) {
* logged in
*/
public AlbumListPage login() {
- HtmlSubmitInput loginButton = (HtmlSubmitInput) page.getElementById("loginButton");
+ var loginButton = (HtmlSubmitInput) page.getElementById("loginButton");
try {
loginButton.click();
} catch (IOException e) {
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 8e8173c04ea5..d1b450a24474 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
@@ -23,14 +23,12 @@
package com.iluwatar.pageobject;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.gargoylesoftware.htmlunit.WebClient;
-import com.iluwatar.pageobject.AlbumListPage;
-import com.iluwatar.pageobject.AlbumPage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Test Album Selection and Album Listing
*/
@@ -45,7 +43,7 @@ public void setUp() {
@Test
public void testSelectAlbum() {
- AlbumPage albumPage = albumListPage.selectAlbum("21");
+ var albumPage = albumListPage.selectAlbum("21");
albumPage.navigateToPage();
assertTrue(albumPage.isAt());
}
diff --git a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/AlbumPageTest.java
index f3fea0ee6b1c..8e694a592cbd 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
@@ -25,11 +25,10 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
+import com.gargoylesoftware.htmlunit.WebClient;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import com.gargoylesoftware.htmlunit.WebClient;
-
/**
* Test Album Page Operations
*/
@@ -45,7 +44,7 @@ public void setUp() {
@Test
public void testSaveAlbum() {
- AlbumPage albumPageAfterChanges = albumPage
+ var albumPageAfterChanges = albumPage
.changeAlbumTitle("25")
.changeArtist("Adele Laurie Blue Adkins")
.changeAlbumYear(2015)
@@ -59,7 +58,7 @@ public void testSaveAlbum() {
@Test
public void testCancelChanges() {
- AlbumListPage albumListPage = albumPage.cancelChanges();
+ var albumListPage = albumPage.cancelChanges();
albumListPage.navigateToPage();
assertTrue(albumListPage.isAt());
}
diff --git a/page-object/test-automation/src/test/java/com/iluwatar/pageobject/LoginPageTest.java b/page-object/test-automation/src/test/java/com/iluwatar/pageobject/LoginPageTest.java
index f6ec3978f706..89668882d668 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
@@ -25,11 +25,10 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
+import com.gargoylesoftware.htmlunit.WebClient;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import com.gargoylesoftware.htmlunit.WebClient;
-
/**
* Test Login Page Object
*/
@@ -44,7 +43,7 @@ public void setUp() {
@Test
public void testLogin() {
- AlbumListPage albumListPage = loginPage
+ var albumListPage = loginPage
.enterUsername("admin")
.enterPassword("password")
.login();
diff --git a/partial-response/pom.xml b/partial-response/pom.xml
index 6bca7007329d..83d81bf828f1 100644
--- a/partial-response/pom.xml
+++ b/partial-response/pom.xml
@@ -49,6 +49,23 @@
mockito-core
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.partialresponse.App
+
+
+
+
+
+
+
+
\ No newline at end of file
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 5a3e7d950e0d..18c3461428ea 100644
--- a/partial-response/src/main/java/com/iluwatar/partialresponse/App.java
+++ b/partial-response/src/main/java/com/iluwatar/partialresponse/App.java
@@ -44,30 +44,31 @@ public class App {
* @param args program argument.
*/
public static void main(String[] args) throws Exception {
- Map videos = Map.of(
+ var 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);
+ "Christopher Nolan", "English")
+ );
+ var videoResource = new VideoResource(new FieldJsonMapper(), videos);
LOGGER.info("Retrieving full response from server:-");
LOGGER.info("Get all video information:");
- String videoDetails = videoResource.getDetails(1);
+ var videoDetails = videoResource.getDetails(1);
LOGGER.info(videoDetails);
LOGGER.info("----------------------------------------------------------");
LOGGER.info("Retrieving partial response from server:-");
LOGGER.info("Get video @id, @title, @director:");
- String specificFieldsDetails = videoResource.getDetails(3, "id", "title", "director");
+ var specificFieldsDetails = videoResource.getDetails(3, "id", "title", "director");
LOGGER.info(specificFieldsDetails);
LOGGER.info("Get video @id, @length:");
- String videoLength = videoResource.getDetails(3, "id", "length");
+ var videoLength = videoResource.getDetails(3, "id", "length");
LOGGER.info(videoLength);
}
}
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 f735b4d2b847..92180b9d0b21 100644
--- a/partial-response/src/main/java/com/iluwatar/partialresponse/FieldJsonMapper.java
+++ b/partial-response/src/main/java/com/iluwatar/partialresponse/FieldJsonMapper.java
@@ -38,13 +38,16 @@ public class FieldJsonMapper {
* @return json of required fields from video
*/
public String toJson(Video video, String[] fields) throws Exception {
- StringBuilder json = new StringBuilder().append("{");
+ var json = new StringBuilder().append("{");
- for (int i = 0, fieldsLength = fields.length; i < fieldsLength; i++) {
+ var i = 0;
+ var fieldsLength = fields.length;
+ while (i < fieldsLength) {
json.append(getString(video, Video.class.getDeclaredField(fields[i])));
if (i != fieldsLength - 1) {
json.append(",");
}
+ i++;
}
json.append("}");
return json.toString();
@@ -52,7 +55,7 @@ public String toJson(Video video, String[] fields) throws Exception {
private String getString(Video video, Field declaredField) throws IllegalAccessException {
declaredField.setAccessible(true);
- Object value = declaredField.get(video);
+ var value = declaredField.get(video);
if (declaredField.get(video) instanceof Integer) {
return "\"" + declaredField.getName() + "\"" + ": " + value;
}
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 afd2c70e253b..d50084a36846 100644
--- a/partial-response/src/test/java/com/iluwatar/partialresponse/AppTest.java
+++ b/partial-response/src/test/java/com/iluwatar/partialresponse/AppTest.java
@@ -32,8 +32,7 @@ public class AppTest {
@Test
public void main() throws Exception {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
\ No newline at end of file
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 c71cc21f4e58..57741c1d7260 100644
--- a/partial-response/src/test/java/com/iluwatar/partialresponse/FieldJsonMapperTest.java
+++ b/partial-response/src/test/java/com/iluwatar/partialresponse/FieldJsonMapperTest.java
@@ -23,11 +23,11 @@
package com.iluwatar.partialresponse;
+import static org.junit.Assert.assertEquals;
+
import org.junit.Before;
import org.junit.Test;
-import static org.junit.Assert.assertEquals;
-
/**
* tests {@link FieldJsonMapper}.
*/
@@ -41,12 +41,15 @@ public void setUp() {
@Test
public void shouldReturnJsonForSpecifiedFieldsInVideo() throws Exception {
- String[] fields = new String[]{"id", "title", "length"};
- Video video = new Video(2, "Godzilla Resurgence", 120, "Action & drama movie|", "Hideaki Anno", "Japanese");
+ var fields = new String[]{"id", "title", "length"};
+ var video = new Video(
+ 2, "Godzilla Resurgence", 120,
+ "Action & drama movie|", "Hideaki Anno", "Japanese"
+ );
- String jsonFieldResponse = mapper.toJson(video, fields);
+ var jsonFieldResponse = mapper.toJson(video, fields);
- String expectedDetails = "{\"id\": 2,\"title\": \"Godzilla Resurgence\",\"length\": 120}";
+ var expectedDetails = "{\"id\": 2,\"title\": \"Godzilla Resurgence\",\"length\": 120}";
assertEquals(expectedDetails, jsonFieldResponse);
}
}
\ No newline at end of file
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 85f240fa03db..2524998039a3 100644
--- a/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java
+++ b/partial-response/src/test/java/com/iluwatar/partialresponse/VideoResourceTest.java
@@ -23,19 +23,18 @@
package com.iluwatar.partialresponse;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+
+import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.when;
-
/**
* tests {@link VideoResource}.
*/
@@ -48,33 +47,33 @@ public class VideoResourceTest {
@Before
public void setUp() {
- 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"));
+ var 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);
}
@Test
public void shouldGiveVideoDetailsById() throws Exception {
- String actualDetails = resource.getDetails(1);
+ var actualDetails = resource.getDetails(1);
- String expectedDetails = "{\"id\": 1,\"title\": \"Avatar\",\"length\": 178,\"description\": "
+ var expectedDetails = "{\"id\": 1,\"title\": \"Avatar\",\"length\": 178,\"description\": "
+ "\"epic science fiction film\",\"director\": \"James Cameron\",\"language\": \"English\",}";
assertEquals(expectedDetails, actualDetails);
}
@Test
public void shouldGiveSpecifiedFieldsInformationOfVideo() throws Exception {
- String[] fields = new String[]{"id", "title", "length"};
+ var fields = new String[]{"id", "title", "length"};
- String expectedDetails = "{\"id\": 1,\"title\": \"Avatar\",\"length\": 178}";
+ var expectedDetails = "{\"id\": 1,\"title\": \"Avatar\",\"length\": 178}";
when(fieldJsonMapper.toJson(any(Video.class), eq(fields))).thenReturn(expectedDetails);
- String actualFieldsDetails = resource.getDetails(2, fields);
+ var actualFieldsDetails = resource.getDetails(2, fields);
assertEquals(expectedDetails, actualFieldsDetails);
}
diff --git a/pipeline/pom.xml b/pipeline/pom.xml
index e7d879d4a5ce..8c511cd8aff5 100644
--- a/pipeline/pom.xml
+++ b/pipeline/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.pipeline.App
+
+
+
+
+
+
+
+
diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java b/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java
index 365fc1cdc2e4..f57a815118bb 100644
--- a/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java
+++ b/pipeline/src/main/java/com/iluwatar/pipeline/ConvertToCharArrayHandler.java
@@ -36,11 +36,12 @@ class ConvertToCharArrayHandler implements Handler {
@Override
public char[] process(String input) {
- char[] characters = input.toCharArray();
- LOGGER
- .info(String.format("Current handler: %s, input is %s of type %s, output is %s, of type %s",
- ConvertToCharArrayHandler.class, input, String.class, Arrays
- .toString(characters), Character[].class));
+ var characters = input.toCharArray();
+ var string = Arrays.toString(characters);
+ LOGGER.info(
+ String.format("Current handler: %s, input is %s of type %s, output is %s, of type %s",
+ ConvertToCharArrayHandler.class, input, String.class, string, Character[].class)
+ );
return characters;
}
diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java
index b2ed938cf100..50c158fc4317 100644
--- a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java
+++ b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveAlphabetsHandler.java
@@ -23,6 +23,7 @@
package com.iluwatar.pipeline;
+import java.util.function.IntPredicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,18 +37,14 @@ class RemoveAlphabetsHandler implements Handler {
@Override
public String process(String input) {
- StringBuilder inputWithoutAlphabets = new StringBuilder();
-
- for (int index = 0; index < input.length(); index++) {
- char currentCharacter = input.charAt(index);
- if (Character.isAlphabetic(currentCharacter)) {
- continue;
- }
-
- inputWithoutAlphabets.append(currentCharacter);
- }
-
- String inputWithoutAlphabetsStr = inputWithoutAlphabets.toString();
+ var inputWithoutAlphabets = new StringBuilder();
+ var isAlphabetic = (IntPredicate) Character::isAlphabetic;
+ input.chars()
+ .filter(isAlphabetic.negate())
+ .mapToObj(x -> (char) x)
+ .forEachOrdered(inputWithoutAlphabets::append);
+
+ var inputWithoutAlphabetsStr = inputWithoutAlphabets.toString();
LOGGER.info(
String.format(
"Current handler: %s, input is %s of type %s, output is %s, of type %s",
diff --git a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java
index 450bef7177ea..dba50bbb3fff 100644
--- a/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java
+++ b/pipeline/src/main/java/com/iluwatar/pipeline/RemoveDigitsHandler.java
@@ -23,6 +23,7 @@
package com.iluwatar.pipeline;
+import java.util.function.IntPredicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,21 +37,20 @@ class RemoveDigitsHandler implements Handler {
@Override
public String process(String input) {
- StringBuilder inputWithoutDigits = new StringBuilder();
-
- for (int index = 0; index < input.length(); index++) {
- char currentCharacter = input.charAt(index);
- if (Character.isDigit(currentCharacter)) {
- continue;
- }
-
- inputWithoutDigits.append(currentCharacter);
- }
-
- String inputWithoutDigitsStr = inputWithoutDigits.toString();
- LOGGER
- .info(String.format("Current handler: %s, input is %s of type %s, output is %s, of type %s",
- RemoveDigitsHandler.class, input, String.class, inputWithoutDigitsStr, String.class));
+ var inputWithoutDigits = new StringBuilder();
+ var isDigit = (IntPredicate) Character::isDigit;
+ input.chars()
+ .filter(isDigit.negate())
+ .mapToObj(x -> (char) x)
+ .forEachOrdered(inputWithoutDigits::append);
+
+ var inputWithoutDigitsStr = inputWithoutDigits.toString();
+ LOGGER.info(
+ String.format(
+ "Current handler: %s, input is %s of type %s, output is %s, of type %s",
+ RemoveDigitsHandler.class, input, String.class, inputWithoutDigitsStr, String.class
+ )
+ );
return inputWithoutDigitsStr;
}
diff --git a/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java b/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java
index d5a892d91809..8ea6a4c60f45 100644
--- a/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java
+++ b/pipeline/src/test/java/com/iluwatar/pipeline/AppTest.java
@@ -32,7 +32,6 @@ public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
diff --git a/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java b/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java
index 1de692222dbe..062d796b1a59 100644
--- a/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java
+++ b/pipeline/src/test/java/com/iluwatar/pipeline/PipelineTest.java
@@ -23,10 +23,10 @@
package com.iluwatar.pipeline;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import org.junit.jupiter.api.Test;
+
/**
* Test for {@link Pipeline}
*/
@@ -34,12 +34,12 @@ public class PipelineTest {
@Test
public void testAddHandlersToPipeline() {
- Pipeline filters = new Pipeline<>(new RemoveAlphabetsHandler())
+ var filters = new Pipeline<>(new RemoveAlphabetsHandler())
.addHandler(new RemoveDigitsHandler())
.addHandler(new ConvertToCharArrayHandler());
assertArrayEquals(
- new char[] {'#', '!', '(', '&', '%', '#', '!'},
+ new char[]{'#', '!', '(', '&', '%', '#', '!'},
filters.execute("#H!E(L&L0O%THE3R#34E!")
);
}
diff --git a/poison-pill/pom.xml b/poison-pill/pom.xml
index b751fad04837..4989581d7b97 100644
--- a/poison-pill/pom.xml
+++ b/poison-pill/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.poison.pill.App
+
+
+
+
+
+
+
+
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 7fdf71a09b3b..841745b7591c 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
@@ -42,26 +42,18 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
- MessageQueue queue = new SimpleMessageQueue(10000);
+ var queue = new SimpleMessageQueue(10000);
- final Producer producer = new Producer("PRODUCER_1", queue);
- final Consumer consumer = new Consumer("CONSUMER_1", queue);
+ final var producer = new Producer("PRODUCER_1", queue);
+ final var consumer = new Consumer("CONSUMER_1", queue);
- new Thread() {
- @Override
- public void run() {
- consumer.consume();
- }
- }.start();
+ new Thread(consumer::consume).start();
- new Thread() {
- @Override
- public void run() {
- producer.send("hand shake");
- producer.send("some very important information");
- producer.send("bye!");
- producer.stop();
- }
- }.start();
+ new Thread(() -> {
+ producer.send("hand shake");
+ producer.send("some very important information");
+ producer.send("bye!");
+ producer.stop();
+ }).start();
}
}
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 25d2338e1226..ac0e5782993d 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
@@ -47,22 +47,20 @@ public Consumer(String name, MqSubscribePoint queue) {
*/
public void consume() {
while (true) {
- Message msg;
try {
- msg = queue.take();
+ var msg = queue.take();
if (Message.POISON_PILL.equals(msg)) {
LOGGER.info("Consumer {} receive request to terminate.", name);
break;
}
+ var sender = msg.getHeader(Headers.SENDER);
+ var body = msg.getBody();
+ LOGGER.info("Message [{}] from [{}] received by [{}]", body, sender, name);
} catch (InterruptedException e) {
// allow thread to exit
LOGGER.error("Exception caught.", e);
return;
}
-
- String sender = msg.getHeader(Headers.SENDER);
- String body = msg.getBody();
- LOGGER.info("Message [{}] from [{}] received by [{}]", body, sender, name);
}
}
}
diff --git a/poison-pill/src/main/java/com/iluwatar/poison/pill/Producer.java b/poison-pill/src/main/java/com/iluwatar/poison/pill/Producer.java
index 679500e43317..8cc4466972ce 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
@@ -57,7 +57,7 @@ public void send(String body) {
throw new IllegalStateException(String.format(
"Producer %s was stopped and fail to deliver requested message [%s].", body, name));
}
- Message msg = new SimpleMessage();
+ var msg = new SimpleMessage();
msg.addHeader(Headers.DATE, new Date().toString());
msg.addHeader(Headers.SENDER, name);
msg.setBody(body);
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 b921f6bc7c7f..c23fe556378e 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
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
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 c874d36293fb..100565fbcd76 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
@@ -23,20 +23,19 @@
package com.iluwatar.poison.pill;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
+import java.time.LocalDateTime;
+import java.util.LinkedList;
+import java.util.List;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.slf4j.LoggerFactory;
-import java.time.LocalDateTime;
-import java.util.LinkedList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
/**
* Date: 12/27/15 - 9:45 PM
*
@@ -58,15 +57,15 @@ public void tearDown() {
@Test
public void testConsume() throws Exception {
- final Message[] messages = new Message[]{
+ final var messages = List.of(
createMessage("you", "Hello!"),
createMessage("me", "Hi!"),
Message.POISON_PILL,
- createMessage("late_for_the_party", "Hello? Anyone here?"),
- };
+ createMessage("late_for_the_party", "Hello? Anyone here?")
+ );
- final MessageQueue queue = new SimpleMessageQueue(messages.length);
- for (final Message message : messages) {
+ final var queue = new SimpleMessageQueue(messages.size());
+ for (final var message : messages) {
queue.put(message);
}
@@ -85,7 +84,7 @@ public void testConsume() throws Exception {
* @return The message instance
*/
private static Message createMessage(final String sender, final String message) {
- final SimpleMessage msg = new SimpleMessage();
+ final var msg = new SimpleMessage();
msg.addHeader(Message.Headers.SENDER, sender);
msg.addHeader(Message.Headers.DATE, LocalDateTime.now().toString());
msg.setBody(message);
@@ -106,7 +105,7 @@ protected void append(ILoggingEvent eventObject) {
}
public boolean logContains(String message) {
- return log.stream().anyMatch(event -> event.getFormattedMessage().equals(message));
+ return log.stream().map(ILoggingEvent::getFormattedMessage).anyMatch(message::equals);
}
}
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 6b310d431116..159b9658ea5e 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
@@ -23,12 +23,12 @@
package com.iluwatar.poison.pill;
-import org.junit.jupiter.api.Test;
-
import static com.iluwatar.poison.pill.Message.Headers;
import static com.iluwatar.poison.pill.Message.POISON_PILL;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/27/15 - 10:30 PM
*
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 76f2373da017..e1781f9e497a 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
@@ -23,9 +23,6 @@
package com.iluwatar.poison.pill;
-import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentCaptor;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.fail;
@@ -35,6 +32,9 @@
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyZeroInteractions;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+
/**
* Date: 12/27/15 - 10:32 PM
*
@@ -44,16 +44,16 @@ public class ProducerTest {
@Test
public void testSend() throws Exception {
- final MqPublishPoint publishPoint = mock(MqPublishPoint.class);
- final Producer producer = new Producer("producer", publishPoint);
+ final var publishPoint = mock(MqPublishPoint.class);
+ final var producer = new Producer("producer", publishPoint);
verifyZeroInteractions(publishPoint);
producer.send("Hello!");
- final ArgumentCaptor messageCaptor = ArgumentCaptor.forClass(Message.class);
+ final var messageCaptor = ArgumentCaptor.forClass(Message.class);
verify(publishPoint).put(messageCaptor.capture());
- final Message message = messageCaptor.getValue();
+ final var message = messageCaptor.getValue();
assertNotNull(message);
assertEquals("producer", message.getHeader(Message.Headers.SENDER));
assertNotNull(message.getHeader(Message.Headers.DATE));
@@ -64,8 +64,8 @@ public void testSend() throws Exception {
@Test
public void testStop() throws Exception {
- final MqPublishPoint publishPoint = mock(MqPublishPoint.class);
- final Producer producer = new Producer("producer", publishPoint);
+ final var publishPoint = mock(MqPublishPoint.class);
+ final var producer = new Producer("producer", publishPoint);
verifyZeroInteractions(publishPoint);
producer.stop();
@@ -78,7 +78,7 @@ public void testStop() throws Exception {
assertNotNull(e);
assertNotNull(e.getMessage());
assertEquals("Producer Hello! was stopped and fail to deliver requested message [producer].",
- e.getMessage());
+ e.getMessage());
}
verifyNoMoreInteractions(publishPoint);
diff --git a/poison-pill/src/test/java/com/iluwatar/poison/pill/SimpleMessageTest.java b/poison-pill/src/test/java/com/iluwatar/poison/pill/SimpleMessageTest.java
index 3eebecb01845..d5486ddd2b37 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
@@ -23,16 +23,14 @@
package com.iluwatar.poison.pill;
-import org.junit.jupiter.api.Test;
-
-import java.util.Map;
-
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 org.junit.jupiter.api.Test;
+
/**
* Date: 12/27/15 - 10:25 PM
*
@@ -42,11 +40,11 @@ public class SimpleMessageTest {
@Test
public void testGetHeaders() {
- final SimpleMessage message = new SimpleMessage();
+ final var message = new SimpleMessage();
assertNotNull(message.getHeaders());
assertTrue(message.getHeaders().isEmpty());
- final String senderName = "test";
+ final var senderName = "test";
message.addHeader(Message.Headers.SENDER, senderName);
assertNotNull(message.getHeaders());
assertFalse(message.getHeaders().isEmpty());
@@ -55,8 +53,8 @@ public void testGetHeaders() {
@Test
public void testUnModifiableHeaders() {
- final SimpleMessage message = new SimpleMessage();
- final Map headers = message.getHeaders();
+ final var message = new SimpleMessage();
+ final var headers = message.getHeaders();
assertThrows(UnsupportedOperationException.class, () -> {
headers.put(Message.Headers.SENDER, "test");
});
diff --git a/pom.xml b/pom.xml
index 7c2789da5346..d035cfe405b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,13 +42,13 @@
1.10.19
2.22
4.0
- 3.3.0
- 1.7.28
+ 3.12.1
+ 1.7.30
1.2.3
1.1.0
1.11.289
2.0.1
- 2.8.5
+ 2.10.2
2.3.1
2.3.2
1.3.2
@@ -322,7 +322,7 @@
org.javassist
javassist
- 3.25.0-GA
+ 3.26.0-GA
com.github.stefanbirkner
diff --git a/priority-queue/pom.xml b/priority-queue/pom.xml
index 3ba564b55583..7f435f489883 100644
--- a/priority-queue/pom.xml
+++ b/priority-queue/pom.xml
@@ -41,5 +41,23 @@
test
-
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.priority.queue.Application
+
+
+
+
+
+
+
+
\ No newline at end of file
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 e803489b28d2..433a72d74c98 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
@@ -37,22 +37,22 @@ public class Application {
*/
public static void main(String[] args) throws Exception {
- QueueManager queueManager = new QueueManager(100);
+ var queueManager = new QueueManager(100);
// push some message to queue
// Low Priority message
- for (int i = 0; i < 100; i++) {
+ for (var i = 0; i < 100; i++) {
queueManager.publishMessage(new Message("Low Message Priority", 0));
}
// High Priority message
- for (int i = 0; i < 100; i++) {
+ for (var i = 0; i < 100; i++) {
queueManager.publishMessage(new Message("High Message Priority", 1));
}
// run worker
- Worker worker = new Worker(queueManager);
+ var worker = new Worker(queueManager);
worker.run();
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 66f4d4f591f6..a161a97005dc 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
@@ -57,7 +57,7 @@ public T remove() {
return null;
}
- final T root = queue[0];
+ final var root = queue[0];
queue[0] = queue[size - 1];
size--;
maxHeapifyDown();
@@ -83,10 +83,10 @@ public boolean isEmpty() {
private void maxHeapifyDown() {
- int index = 0;
+ var index = 0;
while (hasLeftChild(index)) {
- int smallerIndex = leftChildIndex(index);
+ var smallerIndex = leftChildIndex(index);
if (hasRightChild(index) && right(index).compareTo(left(index)) > 0) {
smallerIndex = rightChildIndex(index);
@@ -106,7 +106,7 @@ private void maxHeapifyDown() {
}
private void maxHeapifyUp() {
- int index = size - 1;
+ var index = size - 1;
while (hasParent(index) && parent(index).compareTo(queue[index]) < 0) {
swap(parentIndex(index), index);
index = parentIndex(index);
@@ -154,7 +154,7 @@ private boolean hasParent(int index) {
}
private void swap(int fpos, int tpos) {
- T tmp = queue[fpos];
+ var tmp = queue[fpos];
queue[fpos] = queue[tpos];
queue[tpos] = tmp;
}
@@ -170,7 +170,7 @@ private void ensureCapacity() {
* For debug .. print current state of queue
*/
public void print() {
- for (int i = 0; i <= size / 2; i++) {
+ for (var i = 0; i <= size / 2; i++) {
LOGGER.info(" PARENT : " + queue[i] + " LEFT CHILD : "
+ left(i) + " RIGHT CHILD :" + right(i));
}
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 7eca0aca6d3d..0b4be910f2e5 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
@@ -33,7 +33,7 @@ public class QueueManager {
private final PriorityMessageQueue messagePriorityMessageQueue;
public QueueManager(int initialCapacity) {
- messagePriorityMessageQueue = new PriorityMessageQueue(new Message[initialCapacity]);
+ messagePriorityMessageQueue = new PriorityMessageQueue<>(new Message[initialCapacity]);
}
/**
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 18ed16199584..95417c500d4d 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
@@ -45,7 +45,7 @@ public Worker(QueueManager queueManager) {
@SuppressWarnings("squid:S2189")
public void run() throws Exception {
while (true) {
- Message message = queueManager.receiveMessage();
+ var message = queueManager.receiveMessage();
if (message == null) {
LOGGER.info("No Message ... waiting");
Thread.sleep(200);
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 4fd1f06a6454..541310dd0295 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
@@ -23,11 +23,11 @@
package com.iluwatar.priority.queue;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
/**
* Test case for order of messages
*/
@@ -36,25 +36,25 @@ public class PriorityMessageQueueTest {
@Test
public void remove() {
- PriorityMessageQueue stringPriorityMessageQueue = new PriorityMessageQueue<>(new String[2]);
- String pushMessage = "test";
+ var stringPriorityMessageQueue = new PriorityMessageQueue<>(new String[2]);
+ var pushMessage = "test";
stringPriorityMessageQueue.add(pushMessage);
assertEquals(stringPriorityMessageQueue.remove(), pushMessage);
}
@Test
public void add() {
- PriorityMessageQueue stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]);
+ var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]);
stringPriorityMessageQueue.add(1);
stringPriorityMessageQueue.add(5);
stringPriorityMessageQueue.add(10);
stringPriorityMessageQueue.add(3);
- assertTrue(stringPriorityMessageQueue.remove() == 10);
+ assertEquals(10, (int) stringPriorityMessageQueue.remove());
}
@Test
public void isEmpty() {
- PriorityMessageQueue stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]);
+ var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]);
assertTrue(stringPriorityMessageQueue.isEmpty());
stringPriorityMessageQueue.add(1);
stringPriorityMessageQueue.remove();
@@ -63,12 +63,12 @@ public void isEmpty() {
@Test
public void testEnsureSize() {
- PriorityMessageQueue stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]);
+ var stringPriorityMessageQueue = new PriorityMessageQueue<>(new Integer[2]);
assertTrue(stringPriorityMessageQueue.isEmpty());
stringPriorityMessageQueue.add(1);
stringPriorityMessageQueue.add(2);
stringPriorityMessageQueue.add(2);
stringPriorityMessageQueue.add(3);
- assertTrue(stringPriorityMessageQueue.remove() == 3);
+ assertEquals(3, (int) stringPriorityMessageQueue.remove());
}
}
\ No newline at end of file
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 17aad88b396c..3f5dc067665c 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
@@ -23,10 +23,10 @@
package com.iluwatar.priority.queue;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
+
/**
* Check queue manager
*/
@@ -34,21 +34,21 @@ public class QueueManagerTest {
@Test
public void publishMessage() {
- QueueManager queueManager = new QueueManager(2);
- Message testMessage = new Message("Test Message", 1);
+ var queueManager = new QueueManager(2);
+ var testMessage = new Message("Test Message", 1);
queueManager.publishMessage(testMessage);
- Message recivedMessage = queueManager.receiveMessage();
+ var recivedMessage = queueManager.receiveMessage();
assertEquals(testMessage, recivedMessage);
}
@Test
public void receiveMessage() {
- QueueManager queueManager = new QueueManager(2);
- Message testMessage1 = new Message("Test Message 1", 1);
+ var queueManager = new QueueManager(2);
+ var testMessage1 = new Message("Test Message 1", 1);
queueManager.publishMessage(testMessage1);
- Message testMessage2 = new Message("Test Message 2", 2);
+ var testMessage2 = new Message("Test Message 2", 2);
queueManager.publishMessage(testMessage2);
- Message recivedMessage = queueManager.receiveMessage();
+ var recivedMessage = queueManager.receiveMessage();
assertEquals(testMessage2, recivedMessage);
}
}
\ No newline at end of file
diff --git a/private-class-data/pom.xml b/private-class-data/pom.xml
index ecc2933d9ef7..cb81ca3fc9e1 100644
--- a/private-class-data/pom.xml
+++ b/private-class-data/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.privateclassdata.App
+
+
+
+
+
+
+
+
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 367baaf8b86c..52e18b1256bb 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
@@ -46,13 +46,13 @@ public class App {
*/
public static void main(String[] args) {
// stew is mutable
- Stew stew = new Stew(1, 2, 3, 4);
+ var stew = new Stew(1, 2, 3, 4);
stew.mix();
stew.taste();
stew.mix();
// immutable stew protected with Private Class Data pattern
- ImmutableStew immutableStew = new ImmutableStew(2, 4, 3, 6);
+ var immutableStew = new ImmutableStew(2, 4, 3, 6);
immutableStew.mix();
}
}
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 cfdb73fd478f..166ddbdee33d 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
@@ -26,15 +26,12 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
public void test() {
- String[] args = {};
- App.main(args);
+ App.main(new String[]{});
}
}
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 b866b31eacd7..f789408282f0 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
@@ -23,13 +23,13 @@
package com.iluwatar.privateclassdata;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.privateclassdata.utils.InMemoryAppender;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Date: 12/27/15 - 10:46 PM
*
@@ -54,10 +54,10 @@ public void tearDown() {
*/
@Test
public void testMix() {
- final Stew stew = new Stew(1, 2, 3, 4);
- final String expectedMessage = "Mixing the stew we find: 1 potatoes, 2 carrots, 3 meat and 4 peppers";
+ var stew = new Stew(1, 2, 3, 4);
+ var expectedMessage = "Mixing the stew we find: 1 potatoes, 2 carrots, 3 meat and 4 peppers";
- for (int i = 0; i < 20; i++) {
+ for (var i = 0; i < 20; i++) {
stew.mix();
assertEquals(expectedMessage, appender.getLastMessage());
}
@@ -70,15 +70,17 @@ public void testMix() {
*/
@Test
public void testDrink() {
- final Stew stew = new Stew(1, 2, 3, 4);
+ final var stew = new Stew(1, 2, 3, 4);
stew.mix();
- assertEquals("Mixing the stew we find: 1 potatoes, 2 carrots, 3 meat and 4 peppers", appender.getLastMessage());
+ assertEquals("Mixing the stew we find: 1 potatoes, 2 carrots, 3 meat and 4 peppers", appender
+ .getLastMessage());
stew.taste();
- assertEquals("Tasting the stew", appender.getLastMessage());
+ assertEquals("Tasting the stew", appender.getLastMessage());
stew.mix();
- assertEquals("Mixing the stew we find: 0 potatoes, 1 carrots, 2 meat and 3 peppers", appender.getLastMessage());
+ assertEquals("Mixing the stew we find: 0 potatoes, 1 carrots, 2 meat and 3 peppers", appender
+ .getLastMessage());
}
}
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 3c30fc02122f..722e8354abf8 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
@@ -23,13 +23,13 @@
package com.iluwatar.privateclassdata;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import com.iluwatar.privateclassdata.utils.InMemoryAppender;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
/**
* Date: 12/27/15 - 10:46 PM
*
@@ -54,11 +54,11 @@ public void tearDown() {
*/
@Test
public void testMix() {
- final ImmutableStew stew = new ImmutableStew(1, 2, 3, 4);
- final String expectedMessage = "Mixing the immutable stew we find: 1 potatoes, "
+ final var stew = new ImmutableStew(1, 2, 3, 4);
+ final var expectedMessage = "Mixing the immutable stew we find: 1 potatoes, "
+ "2 carrots, 3 meat and 4 peppers";
- for (int i = 0; i < 20; i++) {
+ for (var i = 0; i < 20; i++) {
stew.mix();
assertEquals(expectedMessage, appender.getLastMessage());
}
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 dceaee29b989..6fbe638aed40 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
@@ -26,10 +26,9 @@
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
-import org.slf4j.LoggerFactory;
-
import java.util.LinkedList;
import java.util.List;
+import org.slf4j.LoggerFactory;
/**
* InMemory Log Appender Util.
diff --git a/producer-consumer/pom.xml b/producer-consumer/pom.xml
index 479bd321aed2..ab1872c51562 100644
--- a/producer-consumer/pom.xml
+++ b/producer-consumer/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.producer.consumer.App
+
+
+
+
+
+
+
+
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 0ead44307b7d..0096cc7ca939 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
@@ -26,20 +26,18 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Producer Consumer Design pattern is a classic concurrency or threading pattern which reduces
- * coupling between Producer and Consumer by separating Identification of work with
- * Execution of Work.
+ * coupling between Producer and Consumer by separating Identification of work with Execution of
+ * Work.
*
* In producer consumer design pattern a shared queue is used to control the flow and this
- * separation allows you to code producer and consumer separately. It also addresses the issue
- * of different timing require to produce item or consuming item. by using producer consumer
- * pattern both Producer and Consumer Thread can work with different speed.
- *
+ * separation allows you to code producer and consumer separately. It also addresses the issue of
+ * different timing require to produce item or consuming item. by using producer consumer pattern
+ * both Producer and Consumer Thread can work with different speed.
*/
public class App {
@@ -47,18 +45,17 @@ public class App {
/**
* Program entry point.
- *
- * @param args
- * command line args
+ *
+ * @param args command line args
*/
public static void main(String[] args) {
- ItemQueue queue = new ItemQueue();
+ var queue = new ItemQueue();
- ExecutorService executorService = Executors.newFixedThreadPool(5);
- for (int i = 0; i < 2; i++) {
+ var executorService = Executors.newFixedThreadPool(5);
+ for (var i = 0; i < 2; i++) {
- final Producer producer = new Producer("Producer_" + i, queue);
+ final var producer = new Producer("Producer_" + i, queue);
executorService.submit(() -> {
while (true) {
producer.produce();
@@ -66,8 +63,8 @@ public static void main(String[] args) {
});
}
- for (int i = 0; i < 3; i++) {
- final Consumer consumer = new Consumer("Consumer_" + i, queue);
+ for (var i = 0; i < 3; i++) {
+ final var consumer = new Consumer("Consumer_" + i, queue);
executorService.submit(() -> {
while (true) {
consumer.consume();
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 5598f3e45dca..347b4a052231 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
@@ -46,10 +46,9 @@ public Consumer(String name, ItemQueue queue) {
* Consume item from the queue.
*/
public void consume() throws InterruptedException {
-
- Item item = queue.take();
+ var item = queue.take();
LOGGER.info("Consumer [{}] consume item [{}] produced by [{}]", name,
- item.getId(), item.getProducer());
+ item.getId(), item.getProducer());
}
}
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 6d4ca0096d6d..28f6c053d76c 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
@@ -30,7 +30,7 @@
* to queue.
*/
public class Producer {
-
+
private static final Random RANDOM = new Random();
private final ItemQueue queue;
@@ -49,7 +49,7 @@ public Producer(String name, ItemQueue queue) {
*/
public void produce() throws InterruptedException {
- Item item = new Item(name, itemId++);
+ var item = new Item(name, itemId++);
queue.put(item);
Thread.sleep(RANDOM.nextInt(2000));
}
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 e14e963a1150..bf4b6cc66570 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
@@ -26,16 +26,13 @@
import org.junit.jupiter.api.Test;
/**
- *
* Application test
- *
*/
public class AppTest {
@Test
- public void test() throws Exception {
- String[] args = {};
- App.main(args);
+ public void test() {
+ App.main(new String[]{});
}
}
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 c4b3a17a7a97..24425c3d61ef 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
@@ -23,13 +23,13 @@
package com.iluwatar.producer.consumer;
-import org.junit.jupiter.api.Test;
-
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/27/15 - 11:01 PM
*
@@ -41,15 +41,15 @@ public class ConsumerTest {
@Test
public void testConsume() throws Exception {
- final ItemQueue queue = spy(new ItemQueue());
- for (int id = 0; id < ITEM_COUNT; id++) {
+ final var queue = spy(new ItemQueue());
+ for (var id = 0; id < ITEM_COUNT; id++) {
queue.put(new Item("producer", id));
}
reset(queue); // Don't count the preparation above as interactions with the queue
- final Consumer consumer = new Consumer("consumer", queue);
+ final var consumer = new Consumer("consumer", queue);
- for (int id = 0; id < ITEM_COUNT; id++) {
+ for (var id = 0; id < ITEM_COUNT; id++) {
consumer.consume();
}
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 6e93450115cd..6d772ec6a9f5 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
@@ -23,8 +23,6 @@
package com.iluwatar.producer.consumer;
-import org.junit.jupiter.api.Test;
-
import static java.time.Duration.ofMillis;
import static org.junit.jupiter.api.Assertions.assertTimeout;
import static org.mockito.Matchers.any;
@@ -32,6 +30,8 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import org.junit.jupiter.api.Test;
+
/**
* Date: 12/28/15 - 12:12 AM
*
@@ -42,8 +42,8 @@ public class ProducerTest {
@Test
public void testProduce() {
assertTimeout(ofMillis(6000), () -> {
- final ItemQueue queue = mock(ItemQueue.class);
- final Producer producer = new Producer("producer", queue);
+ final var queue = mock(ItemQueue.class);
+ final var producer = new Producer("producer", queue);
producer.produce();
verify(queue).put(any(Item.class));
diff --git a/promise/pom.xml b/promise/pom.xml
index 369e95748a87..4a9d76df1c84 100644
--- a/promise/pom.xml
+++ b/promise/pom.xml
@@ -44,4 +44,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
+ com.iluwatar.promise.App
+
+
+
+
+
+
+
+
diff --git a/promise/src/main/java/com/iluwatar/promise/App.java b/promise/src/main/java/com/iluwatar/promise/App.java
index c016b67ff0b5..fb2f14bd5492 100644
--- a/promise/src/main/java/com/iluwatar/promise/App.java
+++ b/promise/src/main/java/com/iluwatar/promise/App.java
@@ -29,19 +29,18 @@
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * The Promise object is used for asynchronous computations. A Promise represents an operation
- * that hasn't completed yet, but is expected in the future.
+ * The Promise object is used for asynchronous computations. A Promise represents an operation that
+ * hasn't completed yet, but is expected in the future.
*
- *
A Promise represents a proxy for a value not necessarily known when the promise is created. It
- * allows you to associate dependent promises to an asynchronous action's eventual success value or
- * failure reason. This lets asynchronous methods return values like synchronous methods: instead
- * of the final value, the asynchronous method returns a promise of having a value at some point
- * in the future.
+ *
A Promise represents a proxy for a value not necessarily known when the promise is created.
+ * It allows you to associate dependent promises to an asynchronous action's eventual success value
+ * or failure reason. This lets asynchronous methods return values like synchronous methods: instead
+ * of the final value, the asynchronous method returns a promise of having a value at some point in
+ * the future.
*
*
Promises provide a few advantages over callback objects:
*
@@ -58,14 +57,15 @@
* a file download promise, then a promise of character frequency, then a promise of lowest
* frequency character which is finally consumed and result is printed on console.
*
- *
+ *
* @see CompletableFuture
*/
public class App {
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
- private static final String DEFAULT_URL = "https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/promise/README.md";
+ private static final String DEFAULT_URL =
+ "https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/promise/README.md";
private final ExecutorService executor;
private final CountDownLatch stopLatch;
@@ -76,12 +76,13 @@ private App() {
/**
* Program entry point.
+ *
* @param args arguments
* @throws InterruptedException if main thread is interrupted.
- * @throws ExecutionException if an execution error occurs.
+ * @throws ExecutionException if an execution error occurs.
*/
public static void main(String[] args) throws InterruptedException, ExecutionException {
- App app = new App();
+ var app = new App();
try {
app.promiseUsage();
} finally {
@@ -100,13 +101,12 @@ private void promiseUsage() {
* consume the result in a Consumer
*/
private void calculateLowestFrequencyChar() {
- lowestFrequencyChar()
- .thenAccept(
- charFrequency -> {
- LOGGER.info("Char with lowest frequency is: {}", charFrequency);
- taskCompleted();
- }
- );
+ lowestFrequencyChar().thenAccept(
+ charFrequency -> {
+ LOGGER.info("Char with lowest frequency is: {}", charFrequency);
+ taskCompleted();
+ }
+ );
}
/*
@@ -114,13 +114,12 @@ private void calculateLowestFrequencyChar() {
* in a Consumer
*/
private void calculateLineCount() {
- countLines()
- .thenAccept(
- count -> {
- LOGGER.info("Line count is: {}", count);
- taskCompleted();
- }
- );
+ countLines().thenAccept(
+ count -> {
+ LOGGER.info("Line count is: {}", count);
+ taskCompleted();
+ }
+ );
}
/*
@@ -128,17 +127,15 @@ private void calculateLineCount() {
* then promise to apply function to calculate lowest character frequency.
*/
private Promise lowestFrequencyChar() {
- return characterFrequency()
- .thenApply(Utility::lowestFrequencyChar);
+ return characterFrequency().thenApply(Utility::lowestFrequencyChar);
}
/*
* Download the file at DEFAULT_URL and when that promise is fulfilled,
* then promise to apply function to calculate character frequency.
*/
- private Promise> characterFrequency() {
- return download(DEFAULT_URL)
- .thenApply(Utility::characterFrequency);
+ private Promise> characterFrequency() {
+ return download(DEFAULT_URL).thenApply(Utility::characterFrequency);
}
/*
@@ -146,8 +143,7 @@ private Promise> characterFrequency() {
* then promise to apply function to count lines in that file.
*/
private Promise countLines() {
- return download(DEFAULT_URL)
- .thenApply(Utility::countLines);
+ return download(DEFAULT_URL).thenApply(Utility::countLines);
}
/*
diff --git a/promise/src/main/java/com/iluwatar/promise/Promise.java b/promise/src/main/java/com/iluwatar/promise/Promise.java
index eadcc5bd9a7d..9eecf00eb85c 100644
--- a/promise/src/main/java/com/iluwatar/promise/Promise.java
+++ b/promise/src/main/java/com/iluwatar/promise/Promise.java
@@ -32,10 +32,10 @@
/**
* A Promise represents a proxy for a value not necessarily known when the promise is created. It
* allows you to associate dependent promises to an asynchronous action's eventual success value or
- * failure reason. This lets asynchronous methods return values like synchronous methods: instead
- * of the final value, the asynchronous method returns a promise of having a value at some point
- * in the future.
- *
+ * failure reason. This lets asynchronous methods return values like synchronous methods: instead of
+ * the final value, the asynchronous method returns a promise of having a value at some point in the
+ * future.
+ *
* @param type of result.
*/
public class Promise extends PromiseSupport {
@@ -51,6 +51,7 @@ public Promise() {
/**
* Fulfills the promise with the provided value.
+ *
* @param value the fulfilled value that can be accessed using {@link #get()}.
*/
@Override
@@ -61,8 +62,9 @@ public void fulfill(T value) {
/**
* Fulfills the promise with exception due to error in execution.
- * @param exception the exception will be wrapped in {@link ExecutionException}
- * when accessing the value using {@link #get()}.
+ *
+ * @param exception the exception will be wrapped in {@link ExecutionException} when accessing the
+ * value using {@link #get()}.
*/
@Override
public void fulfillExceptionally(Exception exception) {
@@ -86,10 +88,10 @@ private void postFulfillment() {
}
/**
- * Executes the task using the executor in other thread and fulfills the promise returned
- * once the task completes either successfully or with an exception.
- *
- * @param task the task that will provide the value to fulfill the promise.
+ * Executes the task using the executor in other thread and fulfills the promise returned once the
+ * task completes either successfully or with an exception.
+ *
+ * @param task the task that will provide the value to fulfill the promise.
* @param executor the executor in which the task should be run.
* @return a promise that represents the result of running the task provided.
*/
@@ -105,21 +107,23 @@ public Promise fulfillInAsync(final Callable task, Executor executor) {
}
/**
- * Returns a new promise that, when this promise is fulfilled normally, is fulfilled with
- * result of this promise as argument to the action provided.
+ * Returns a new promise that, when this promise is fulfilled normally, is fulfilled with result
+ * of this promise as argument to the action provided.
+ *
* @param action action to be executed.
* @return a new promise.
*/
public Promise thenAccept(Consumer super T> action) {
- Promise dest = new Promise<>();
+ var dest = new Promise();
fulfillmentAction = new ConsumeAction(this, dest, action);
return dest;
}
-
+
/**
* Set the exception handler on this promise.
- * @param exceptionHandler a consumer that will handle the exception occurred while fulfilling
- * the promise.
+ *
+ * @param exceptionHandler a consumer that will handle the exception occurred while fulfilling the
+ * promise.
* @return this
*/
public Promise onError(Consumer super Throwable> exceptionHandler) {
@@ -128,8 +132,9 @@ public Promise onError(Consumer super Throwable> exceptionHandler) {
}
/**
- * Returns a new promise that, when this promise is fulfilled normally, is fulfilled with
- * result of this promise as argument to the function provided.
+ * Returns a new promise that, when this promise is fulfilled normally, is fulfilled with result
+ * of this promise as argument to the function provided.
+ *
* @param func function to be executed.
* @return a new promise.
*/
@@ -140,8 +145,8 @@ public Promise thenApply(Function super T, V> func) {
}
/**
- * Accesses the value from source promise and calls the consumer, then fulfills the
- * destination promise.
+ * Accesses the value from source promise and calls the consumer, then fulfills the destination
+ * promise.
*/
private class ConsumeAction implements Runnable {
diff --git a/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java b/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java
index 058e899d0b39..7a12f0a0f271 100644
--- a/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java
+++ b/promise/src/main/java/com/iluwatar/promise/PromiseSupport.java
@@ -27,16 +27,15 @@
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * A really simplified implementation of future that allows completing it successfully with a value
+ * A really simplified implementation of future that allows completing it successfully with a value
* or exceptionally with an exception.
*/
class PromiseSupport implements Future {
-
+
private static final Logger LOGGER = LoggerFactory.getLogger(PromiseSupport.class);
private static final int RUNNING = 1;
@@ -93,13 +92,12 @@ public T get() throws InterruptedException, ExecutionException {
}
if (state == COMPLETED) {
return value;
- }
+ }
throw new ExecutionException(exception);
}
@Override
- public T get(long timeout, TimeUnit unit)
- throws ExecutionException, TimeoutException {
+ public T get(long timeout, TimeUnit unit) throws ExecutionException {
synchronized (lock) {
while (state == RUNNING) {
try {
@@ -110,10 +108,10 @@ public T get(long timeout, TimeUnit unit)
}
}
}
-
+
if (state == COMPLETED) {
return value;
- }
+ }
throw new ExecutionException(exception);
}
}
\ No newline at end of file
diff --git a/promise/src/main/java/com/iluwatar/promise/Utility.java b/promise/src/main/java/com/iluwatar/promise/Utility.java
index 09c7f6ddc7b3..47755975ab9a 100644
--- a/promise/src/main/java/com/iluwatar/promise/Utility.java
+++ b/promise/src/main/java/com/iluwatar/promise/Utility.java
@@ -29,13 +29,13 @@
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.io.Reader;
import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Map;
import java.util.Map.Entry;
-
+import java.util.function.Function;
+import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,86 +48,68 @@ public class Utility {
/**
* Calculates character frequency of the file provided.
+ *
* @param fileLocation location of the file.
* @return a map of character to its frequency, an empty map if file does not exist.
*/
- public static Map characterFrequency(String fileLocation) {
- Map characterToFrequency = new HashMap<>();
- try (Reader reader = new FileReader(fileLocation);
- BufferedReader bufferedReader = new BufferedReader(reader)) {
- for (String line; (line = bufferedReader.readLine()) != null;) {
- for (char c : line.toCharArray()) {
- if (!characterToFrequency.containsKey(c)) {
- characterToFrequency.put(c, 1);
- } else {
- characterToFrequency.put(c, characterToFrequency.get(c) + 1);
- }
- }
- }
+ public static Map characterFrequency(String fileLocation) {
+ try (var bufferedReader = new BufferedReader(new FileReader(fileLocation))) {
+ return bufferedReader.lines()
+ .flatMapToInt(String::chars)
+ .mapToObj(x -> (char) x)
+ .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
} catch (IOException ex) {
ex.printStackTrace();
}
- return characterToFrequency;
+ return Collections.emptyMap();
}
/**
* Return the character with the lowest frequency, if exists.
+ *
* @return the character, {@code Optional.empty()} otherwise.
*/
- public static Character lowestFrequencyChar(Map charFrequency) {
- Character lowestFrequencyChar = null;
- Iterator> iterator = charFrequency.entrySet().iterator();
- Entry entry = iterator.next();
- int minFrequency = entry.getValue();
- lowestFrequencyChar = entry.getKey();
-
- while (iterator.hasNext()) {
- entry = iterator.next();
- if (entry.getValue() < minFrequency) {
- minFrequency = entry.getValue();
- lowestFrequencyChar = entry.getKey();
- }
- }
-
- return lowestFrequencyChar;
+ public static Character lowestFrequencyChar(Map charFrequency) {
+ return charFrequency
+ .entrySet()
+ .stream()
+ .min(Comparator.comparingLong(Entry::getValue))
+ .map(Entry::getKey)
+ .orElseThrow();
}
/**
* Count the number of lines in a file.
+ *
* @return number of lines, 0 if file does not exist.
*/
public static Integer countLines(String fileLocation) {
- int lineCount = 0;
- try (Reader reader = new FileReader(fileLocation);
- BufferedReader bufferedReader = new BufferedReader(reader)) {
- while (bufferedReader.readLine() != null) {
- lineCount++;
- }
+ try (var bufferedReader = new BufferedReader(new FileReader(fileLocation))) {
+ return (int) bufferedReader.lines().count();
} catch (IOException ex) {
ex.printStackTrace();
}
- return lineCount;
+ return 0;
}
/**
* Downloads the contents from the given urlString, and stores it in a temporary directory.
+ *
* @return the absolute path of the file downloaded.
*/
public static String downloadFile(String urlString) throws IOException {
LOGGER.info("Downloading contents from url: {}", urlString);
- URL url = new URL(urlString);
- File file = File.createTempFile("promise_pattern", null);
- try (Reader reader = new InputStreamReader(url.openStream());
- BufferedReader bufferedReader = new BufferedReader(reader);
- FileWriter writer = new FileWriter(file)) {
- for (String line; (line = bufferedReader.readLine()) != null; ) {
+ var url = new URL(urlString);
+ var file = File.createTempFile("promise_pattern", null);
+ try (var bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));
+ var writer = new FileWriter(file)) {
+ String line;
+ while ((line = bufferedReader.readLine()) != null) {
writer.write(line);
writer.write("\n");
}
LOGGER.info("File downloaded at: {}", file.getAbsolutePath());
return file.getAbsolutePath();
- } catch (IOException ex) {
- throw ex;
}
}
}
diff --git a/promise/src/test/java/com/iluwatar/promise/AppTest.java b/promise/src/test/java/com/iluwatar/promise/AppTest.java
index 0913d5911ac5..63ac06aec0af 100644
--- a/promise/src/test/java/com/iluwatar/promise/AppTest.java
+++ b/promise/src/test/java/com/iluwatar/promise/AppTest.java
@@ -23,12 +23,10 @@
package com.iluwatar.promise;
-import org.junit.jupiter.api.Test;
-
import java.util.concurrent.ExecutionException;
+import org.junit.jupiter.api.Test;
/**
- *
* Application test.
*/
public class AppTest {
diff --git a/promise/src/test/java/com/iluwatar/promise/PromiseTest.java b/promise/src/test/java/com/iluwatar/promise/PromiseTest.java
index 9b02191ee007..a72faf01e81c 100644
--- a/promise/src/test/java/com/iluwatar/promise/PromiseTest.java
+++ b/promise/src/test/java/com/iluwatar/promise/PromiseTest.java
@@ -23,8 +23,13 @@
package com.iluwatar.promise;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
@@ -33,15 +38,8 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
-import java.util.function.Function;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
/**
* Tests Promise class.
@@ -58,7 +56,7 @@ public void setUp() {
}
@Test
- public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask()
+ public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask()
throws InterruptedException, ExecutionException {
promise.fulfillInAsync(new NumberCrunchingTask(), executor);
@@ -66,21 +64,20 @@ public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask()
assertTrue(promise.isDone());
assertFalse(promise.isCancelled());
}
-
+
@Test
- public void promiseIsFulfilledWithAnExceptionIfTaskThrowsAnException()
- throws InterruptedException, ExecutionException, TimeoutException {
+ public void promiseIsFulfilledWithAnExceptionIfTaskThrowsAnException()
+ throws InterruptedException, TimeoutException {
testWaitingForeverForPromiseToBeFulfilled();
testWaitingSomeTimeForPromiseToBeFulfilled();
}
- private void testWaitingForeverForPromiseToBeFulfilled()
- throws InterruptedException, TimeoutException {
- Promise promise = new Promise<>();
+ private void testWaitingForeverForPromiseToBeFulfilled() throws InterruptedException {
+ var promise = new Promise();
promise.fulfillInAsync(() -> {
throw new RuntimeException("Barf!");
}, executor);
-
+
try {
promise.get();
fail("Fetching promise should result in exception if the task threw an exception");
@@ -88,7 +85,7 @@ private void testWaitingForeverForPromiseToBeFulfilled()
assertTrue(promise.isDone());
assertFalse(promise.isCancelled());
}
-
+
try {
promise.get(1000, TimeUnit.SECONDS);
fail("Fetching promise should result in exception if the task threw an exception");
@@ -97,14 +94,13 @@ private void testWaitingForeverForPromiseToBeFulfilled()
assertFalse(promise.isCancelled());
}
}
-
- private void testWaitingSomeTimeForPromiseToBeFulfilled()
- throws InterruptedException, TimeoutException {
- Promise promise = new Promise<>();
+
+ private void testWaitingSomeTimeForPromiseToBeFulfilled() throws InterruptedException {
+ var promise = new Promise();
promise.fulfillInAsync(() -> {
throw new RuntimeException("Barf!");
}, executor);
-
+
try {
promise.get(1000, TimeUnit.SECONDS);
fail("Fetching promise should result in exception if the task threw an exception");
@@ -112,7 +108,7 @@ private void testWaitingSomeTimeForPromiseToBeFulfilled()
assertTrue(promise.isDone());
assertFalse(promise.isCancelled());
}
-
+
try {
promise.get();
fail("Fetching promise should result in exception if the task threw an exception");
@@ -120,18 +116,15 @@ private void testWaitingSomeTimeForPromiseToBeFulfilled()
assertTrue(promise.isDone());
assertFalse(promise.isCancelled());
}
-
+
}
@Test
- public void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPromise()
+ public void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPromise()
throws InterruptedException, ExecutionException {
- Promise dependentPromise = promise
+ var dependentPromise = promise
.fulfillInAsync(new NumberCrunchingTask(), executor)
- .thenAccept(value -> {
- assertEquals(NumberCrunchingTask.CRUNCHED_NUMBER, value);
- });
-
+ .thenAccept(value -> assertEquals(NumberCrunchingTask.CRUNCHED_NUMBER, value));
dependentPromise.get();
assertTrue(dependentPromise.isDone());
@@ -139,9 +132,9 @@ public void dependentPromiseIsFulfilledAfterTheConsumerConsumesTheResultOfThisPr
}
@Test
- public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnException()
- throws InterruptedException, ExecutionException, TimeoutException {
- Promise dependentPromise = promise
+ public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnException()
+ throws InterruptedException {
+ var dependentPromise = promise
.fulfillInAsync(new NumberCrunchingTask(), executor)
.thenAccept(value -> {
throw new RuntimeException("Barf!");
@@ -155,7 +148,7 @@ public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnExceptio
assertTrue(promise.isDone());
assertFalse(promise.isCancelled());
}
-
+
try {
dependentPromise.get(1000, TimeUnit.SECONDS);
fail("Fetching dependent promise should result in exception "
@@ -167,12 +160,12 @@ public void dependentPromiseIsFulfilledWithAnExceptionIfConsumerThrowsAnExceptio
}
@Test
- public void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThisPromise()
+ public void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThisPromise()
throws InterruptedException, ExecutionException {
- Promise dependentPromise = promise
+ var dependentPromise = promise
.fulfillInAsync(new NumberCrunchingTask(), executor)
.thenApply(value -> {
- assertEquals(NumberCrunchingTask.CRUNCHED_NUMBER, value);
+ assertEquals(NumberCrunchingTask.CRUNCHED_NUMBER, value);
return String.valueOf(value);
});
@@ -181,11 +174,11 @@ public void dependentPromiseIsFulfilledAfterTheFunctionTransformsTheResultOfThis
assertTrue(dependentPromise.isDone());
assertFalse(dependentPromise.isCancelled());
}
-
+
@Test
- public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsException()
- throws InterruptedException, ExecutionException, TimeoutException {
- Promise dependentPromise = promise
+ public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsException()
+ throws InterruptedException {
+ var dependentPromise = promise
.fulfillInAsync(new NumberCrunchingTask(), executor)
.thenApply(value -> {
throw new RuntimeException("Barf!");
@@ -199,7 +192,7 @@ public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsExcepti
assertTrue(promise.isDone());
assertFalse(promise.isCancelled());
}
-
+
try {
dependentPromise.get(1000, TimeUnit.SECONDS);
fail("Fetching dependent promise should result in exception "
@@ -209,26 +202,26 @@ public void dependentPromiseIsFulfilledWithAnExceptionIfTheFunctionThrowsExcepti
assertFalse(promise.isCancelled());
}
}
-
+
@Test
- public void fetchingAnAlreadyFulfilledPromiseReturnsTheFulfilledValueImmediately()
- throws InterruptedException, ExecutionException, TimeoutException {
- Promise promise = new Promise<>();
+ public void fetchingAnAlreadyFulfilledPromiseReturnsTheFulfilledValueImmediately()
+ throws ExecutionException {
+ var promise = new Promise();
promise.fulfill(NumberCrunchingTask.CRUNCHED_NUMBER);
-
+
promise.get(1000, TimeUnit.SECONDS);
}
-
+
@SuppressWarnings("unchecked")
@Test
public void exceptionHandlerIsCalledWhenPromiseIsFulfilledExceptionally() {
- Promise promise = new Promise<>();
- Consumer exceptionHandler = mock(Consumer.class);
+ var promise = new Promise<>();
+ var exceptionHandler = mock(Consumer.class);
promise.onError(exceptionHandler);
-
- Exception exception = new Exception("barf!");
+
+ var exception = new Exception("barf!");
promise.fulfillExceptionally(exception);
-
+
verify(exceptionHandler).accept(eq(exception));
}
diff --git a/property/pom.xml b/property/pom.xml
index 4e1a16a0d9f4..d271af036b47 100644
--- a/property/pom.xml
+++ b/property/pom.xml
@@ -39,4 +39,23 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+