Java 11 migrate remaining e (#1112)
* Moves eip-aggregator to Java 11 * Moves eip-message-channel to Java 11 * Moves eip-publish-subscribe to Java 11 * Moves eip-splitter to Java 11 * Moves eip-wire-tap to Java 11 * Moves event-aggregator to Java 11 * Moves event-asynchronous to Java 11 * Moves event-driven-architecture to Java 11 * Moves event-queue to Java 11 * Moves event-sourcing to Java 11 * Moves execute-around to Java 11 * Moves extension-objects to Java 11
This commit is contained in:
committed by
Ilkka Seppälä
parent
b09b100614
commit
fb2c026822
@ -24,7 +24,6 @@
|
||||
package com.iluwatar.event.asynchronous;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Properties;
|
||||
import java.util.Scanner;
|
||||
import org.slf4j.Logger;
|
||||
@ -70,8 +69,7 @@ public class App {
|
||||
* @param args command line args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
App app = new App();
|
||||
|
||||
var app = new App();
|
||||
app.setUp();
|
||||
app.run();
|
||||
}
|
||||
@ -82,9 +80,9 @@ public class App {
|
||||
* operations.
|
||||
*/
|
||||
public void setUp() {
|
||||
Properties prop = new Properties();
|
||||
var prop = new Properties();
|
||||
|
||||
InputStream inputStream = App.class.getClassLoader().getResourceAsStream(PROP_FILE_NAME);
|
||||
var inputStream = App.class.getClassLoader().getResourceAsStream(PROP_FILE_NAME);
|
||||
|
||||
if (inputStream != null) {
|
||||
try {
|
||||
@ -92,7 +90,7 @@ public class App {
|
||||
} catch (IOException e) {
|
||||
LOGGER.error("{} was not found. Defaulting to non-interactive mode.", PROP_FILE_NAME, e);
|
||||
}
|
||||
String property = prop.getProperty("INTERACTIVE_MODE");
|
||||
var property = prop.getProperty("INTERACTIVE_MODE");
|
||||
if (property.equalsIgnoreCase("YES")) {
|
||||
interactiveMode = true;
|
||||
}
|
||||
@ -114,17 +112,17 @@ public class App {
|
||||
* Run program in non-interactive mode.
|
||||
*/
|
||||
public void quickRun() {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
|
||||
try {
|
||||
// Create an Asynchronous event.
|
||||
int asyncEventId = eventManager.createAsync(60);
|
||||
var asyncEventId = eventManager.createAsync(60);
|
||||
LOGGER.info("Async Event [{}] has been created.", asyncEventId);
|
||||
eventManager.start(asyncEventId);
|
||||
LOGGER.info("Async Event [{}] has been started.", asyncEventId);
|
||||
|
||||
// Create a Synchronous event.
|
||||
int syncEventId = eventManager.create(60);
|
||||
var syncEventId = eventManager.create(60);
|
||||
LOGGER.info("Sync Event [{}] has been created.", syncEventId);
|
||||
eventManager.start(syncEventId);
|
||||
LOGGER.info("Sync Event [{}] has been started.", syncEventId);
|
||||
@ -147,10 +145,10 @@ public class App {
|
||||
* Run program in interactive mode.
|
||||
*/
|
||||
public void runInteractiveMode() {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
|
||||
Scanner s = new Scanner(System.in);
|
||||
int option = -1;
|
||||
var s = new Scanner(System.in);
|
||||
var option = -1;
|
||||
while (option != 4) {
|
||||
LOGGER.info("Hello. Would you like to boil some eggs?");
|
||||
LOGGER.info("(1) BOIL AN EGG \n(2) STOP BOILING THIS EGG \n(3) HOW ARE MY EGGS? \n(4) EXIT");
|
||||
@ -174,7 +172,7 @@ public class App {
|
||||
private void processOption3(EventManager eventManager, Scanner s) {
|
||||
s.nextLine();
|
||||
LOGGER.info("Just one egg (O) OR all of them (A) ?: ");
|
||||
String eggChoice = s.nextLine();
|
||||
var eggChoice = s.nextLine();
|
||||
|
||||
if (eggChoice.equalsIgnoreCase("O")) {
|
||||
LOGGER.info("Which egg?: ");
|
||||
@ -191,7 +189,7 @@ public class App {
|
||||
|
||||
private void processOption2(EventManager eventManager, Scanner s) {
|
||||
LOGGER.info("Which egg?: ");
|
||||
int eventId = s.nextInt();
|
||||
var eventId = s.nextInt();
|
||||
try {
|
||||
eventManager.cancel(eventId);
|
||||
LOGGER.info("Egg [{}] is removed from boiler.", eventId);
|
||||
@ -203,12 +201,12 @@ public class App {
|
||||
private void processOption1(EventManager eventManager, Scanner s) {
|
||||
s.nextLine();
|
||||
LOGGER.info("Boil multiple eggs at once (A) or boil them one-by-one (S)?: ");
|
||||
String eventType = s.nextLine();
|
||||
var eventType = s.nextLine();
|
||||
LOGGER.info("How long should this egg be boiled for (in seconds)?: ");
|
||||
int eventTime = s.nextInt();
|
||||
var eventTime = s.nextInt();
|
||||
if (eventType.equalsIgnoreCase("A")) {
|
||||
try {
|
||||
int eventId = eventManager.createAsync(eventTime);
|
||||
var eventId = eventManager.createAsync(eventTime);
|
||||
eventManager.start(eventId);
|
||||
LOGGER.info("Egg [{}] is being boiled.", eventId);
|
||||
} catch (MaxNumOfEventsAllowedException | LongRunningEventException
|
||||
@ -217,7 +215,7 @@ public class App {
|
||||
}
|
||||
} else if (eventType.equalsIgnoreCase("S")) {
|
||||
try {
|
||||
int eventId = eventManager.create(eventTime);
|
||||
var eventId = eventManager.create(eventTime);
|
||||
eventManager.start(eventId);
|
||||
LOGGER.info("Egg [{}] is being boiled.", eventId);
|
||||
} catch (MaxNumOfEventsAllowedException | InvalidOperationException
|
||||
|
@ -82,8 +82,8 @@ public class Event implements IEvent, Runnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
long endTime = currentTime + (eventTime * 1000);
|
||||
var currentTime = System.currentTimeMillis();
|
||||
var endTime = currentTime + (eventTime * 1000);
|
||||
while (System.currentTimeMillis() < endTime) {
|
||||
try {
|
||||
Thread.sleep(1000); // Sleep for 1 second.
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
package com.iluwatar.event.asynchronous;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -75,7 +74,7 @@ public class EventManager implements ThreadCompleteListener {
|
||||
+ " running. Please wait until it finishes and try again.");
|
||||
}
|
||||
|
||||
int eventId = createEvent(eventTime, true);
|
||||
var eventId = createEvent(eventTime, true);
|
||||
currentlyRunningSyncEvent = eventId;
|
||||
|
||||
return eventId;
|
||||
@ -106,9 +105,9 @@ public class EventManager implements ThreadCompleteListener {
|
||||
"Maximum event time allowed is " + MAX_EVENT_TIME + " seconds. Please try again.");
|
||||
}
|
||||
|
||||
int newEventId = generateId();
|
||||
var newEventId = generateId();
|
||||
|
||||
Event newEvent = new Event(newEventId, eventTime, isSynchronous);
|
||||
var newEvent = new Event(newEventId, eventTime, isSynchronous);
|
||||
newEvent.addListener(this);
|
||||
eventPool.put(newEventId, newEvent);
|
||||
|
||||
@ -167,11 +166,7 @@ public class EventManager implements ThreadCompleteListener {
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void statusOfAllEvents() {
|
||||
Iterator it = eventPool.entrySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
Map.Entry pair = (Map.Entry) it.next();
|
||||
((Event) pair.getValue()).status();
|
||||
}
|
||||
eventPool.entrySet().forEach(entry -> ((Event) ((Map.Entry) entry).getValue()).status());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -179,11 +174,7 @@ public class EventManager implements ThreadCompleteListener {
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void shutdown() {
|
||||
Iterator it = eventPool.entrySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
Map.Entry pair = (Map.Entry) it.next();
|
||||
((Event) pair.getValue()).stop();
|
||||
}
|
||||
eventPool.entrySet().forEach(entry -> ((Event) ((Map.Entry) entry).getValue()).stop());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -194,7 +185,7 @@ public class EventManager implements ThreadCompleteListener {
|
||||
private int generateId() {
|
||||
// nextInt is normally exclusive of the top value,
|
||||
// so add 1 to make it inclusive
|
||||
int randomNum = rand.nextInt((MAX_ID - MIN_ID) + 1) + MIN_ID;
|
||||
var randomNum = rand.nextInt((MAX_ID - MIN_ID) + 1) + MIN_ID;
|
||||
while (eventPool.containsKey(randomNum)) {
|
||||
randomNum = rand.nextInt((MAX_ID - MIN_ID) + 1) + MIN_ID;
|
||||
}
|
||||
|
@ -25,15 +25,12 @@ package com.iluwatar.event.asynchronous;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Tests that EventAsynchronous 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[]{});
|
||||
}
|
||||
}
|
||||
|
@ -23,28 +23,26 @@
|
||||
|
||||
package com.iluwatar.event.asynchronous;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
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 org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
* Application test
|
||||
*
|
||||
*/
|
||||
public class EventAsynchronousTest {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EventAsynchronousTest.class);
|
||||
|
||||
@Test
|
||||
public void testAsynchronousEvent() {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
try {
|
||||
int aEventId = eventManager.createAsync(60);
|
||||
var aEventId = eventManager.createAsync(60);
|
||||
eventManager.start(aEventId);
|
||||
assertEquals(1, eventManager.getEventPool().size());
|
||||
assertTrue(eventManager.getEventPool().size() < EventManager.MAX_RUNNING_EVENTS);
|
||||
@ -58,9 +56,9 @@ public class EventAsynchronousTest {
|
||||
|
||||
@Test
|
||||
public void testSynchronousEvent() {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
try {
|
||||
int sEventId = eventManager.create(60);
|
||||
var sEventId = eventManager.create(60);
|
||||
eventManager.start(sEventId);
|
||||
assertEquals(1, eventManager.getEventPool().size());
|
||||
assertTrue(eventManager.getEventPool().size() < EventManager.MAX_RUNNING_EVENTS);
|
||||
@ -76,9 +74,9 @@ public class EventAsynchronousTest {
|
||||
@Test
|
||||
public void testUnsuccessfulSynchronousEvent() {
|
||||
assertThrows(InvalidOperationException.class, () -> {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
try {
|
||||
int sEventId = eventManager.create(60);
|
||||
var sEventId = eventManager.create(60);
|
||||
eventManager.start(sEventId);
|
||||
sEventId = eventManager.create(60);
|
||||
eventManager.start(sEventId);
|
||||
@ -90,20 +88,18 @@ public class EventAsynchronousTest {
|
||||
|
||||
@Test
|
||||
public void testFullSynchronousEvent() {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
try {
|
||||
int eventTime = 1;
|
||||
var eventTime = 1;
|
||||
|
||||
int sEventId = eventManager.create(eventTime);
|
||||
var sEventId = eventManager.create(eventTime);
|
||||
assertEquals(1, eventManager.getEventPool().size());
|
||||
eventManager.start(sEventId);
|
||||
|
||||
long currentTime = System.currentTimeMillis();
|
||||
long endTime = currentTime + (eventTime + 2 * 1000); // +2 to give a bit of buffer time for event to
|
||||
// complete
|
||||
// properly.
|
||||
while (System.currentTimeMillis() < endTime) {
|
||||
}
|
||||
var currentTime = System.currentTimeMillis();
|
||||
// +2 to give a bit of buffer time for event to complete properly.
|
||||
var endTime = currentTime + (eventTime + 2 * 1000);
|
||||
while (System.currentTimeMillis() < endTime) ;
|
||||
|
||||
assertTrue(eventManager.getEventPool().isEmpty());
|
||||
|
||||
@ -115,24 +111,23 @@ public class EventAsynchronousTest {
|
||||
|
||||
@Test
|
||||
public void testFullAsynchronousEvent() {
|
||||
EventManager eventManager = new EventManager();
|
||||
var eventManager = new EventManager();
|
||||
try {
|
||||
int eventTime = 1;
|
||||
var eventTime = 1;
|
||||
|
||||
int aEventId1 = eventManager.createAsync(eventTime);
|
||||
int aEventId2 = eventManager.createAsync(eventTime);
|
||||
int aEventId3 = eventManager.createAsync(eventTime);
|
||||
var aEventId1 = eventManager.createAsync(eventTime);
|
||||
var aEventId2 = eventManager.createAsync(eventTime);
|
||||
var aEventId3 = eventManager.createAsync(eventTime);
|
||||
assertEquals(3, eventManager.getEventPool().size());
|
||||
|
||||
eventManager.start(aEventId1);
|
||||
eventManager.start(aEventId2);
|
||||
eventManager.start(aEventId3);
|
||||
|
||||
long currentTime = System.currentTimeMillis();
|
||||
long endTime = currentTime + (eventTime + 2 * 1000); // +2 to give a bit of buffer time for event to complete
|
||||
// properly.
|
||||
while (System.currentTimeMillis() < endTime) {
|
||||
}
|
||||
var currentTime = System.currentTimeMillis();
|
||||
// +2 to give a bit of buffer time for event to complete properly.
|
||||
var endTime = currentTime + (eventTime + 2 * 1000);
|
||||
while (System.currentTimeMillis() < endTime) ;
|
||||
|
||||
assertTrue(eventManager.getEventPool().isEmpty());
|
||||
|
||||
|
Reference in New Issue
Block a user