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:
Anurag Agarwal
2019-12-09 22:33:30 +05:30
committed by Ilkka Seppälä
parent b09b100614
commit fb2c026822
64 changed files with 306 additions and 390 deletions

View File

@ -23,8 +23,9 @@
package com.iluwatar.event.aggregator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
/**
* A system with lots of objects can lead to complexities when a client wants to subscribe to
@ -47,19 +48,18 @@ public class App {
*/
public static void main(String[] args) {
KingJoffrey kingJoffrey = new KingJoffrey();
KingsHand kingsHand = new KingsHand(kingJoffrey);
var kingJoffrey = new KingJoffrey();
var kingsHand = new KingsHand(kingJoffrey);
List<EventEmitter> emitters = new ArrayList<>();
emitters.add(kingsHand);
emitters.add(new LordBaelish(kingsHand));
emitters.add(new LordVarys(kingsHand));
emitters.add(new Scout(kingsHand));
var emitters = List.of(
kingsHand,
new LordBaelish(kingsHand),
new LordVarys(kingsHand),
new Scout(kingsHand)
);
for (Weekday day : Weekday.values()) {
for (EventEmitter emitter : emitters) {
emitter.timePasses(day);
}
}
Arrays.stream(Weekday.values())
.<Consumer<? super EventEmitter>>map(day -> emitter -> emitter.timePasses(day))
.forEachOrdered(emitters::forEach);
}
}

View File

@ -47,9 +47,7 @@ public abstract class EventEmitter {
}
protected void notifyObservers(Event e) {
for (EventObserver obs : observers) {
obs.onEvent(e);
}
observers.forEach(obs -> obs.onEvent(e));
}
public abstract void timePasses(Weekday day);

View File

@ -37,7 +37,7 @@ public class LordBaelish extends EventEmitter {
@Override
public void timePasses(Weekday day) {
if (day.equals(Weekday.FRIDAY)) {
if (day == Weekday.FRIDAY) {
notifyObservers(Event.STARK_SIGHTED);
}
}

View File

@ -37,7 +37,7 @@ public class LordVarys extends EventEmitter {
@Override
public void timePasses(Weekday day) {
if (day.equals(Weekday.SATURDAY)) {
if (day == Weekday.SATURDAY) {
notifyObservers(Event.TRAITOR_DETECTED);
}
}

View File

@ -37,7 +37,7 @@ public class Scout extends EventEmitter {
@Override
public void timePasses(Weekday day) {
if (day.equals(Weekday.TUESDAY)) {
if (day == Weekday.TUESDAY) {
notifyObservers(Event.WARSHIPS_APPROACHING);
}
}

View File

@ -28,8 +28,13 @@ package com.iluwatar.event.aggregator;
*/
public enum Weekday {
MONDAY("Monday"), TUESDAY("Tuesday"), WEDNESDAY("Wednesday"), THURSDAY("Thursday"), FRIDAY(
"Friday"), SATURDAY("Saturday"), SUNDAY("Sunday");
MONDAY("Monday"),
TUESDAY("Tuesday"),
WEDNESDAY("Wednesday"),
THURSDAY("Thursday"),
FRIDAY("Friday"),
SATURDAY("Saturday"),
SUNDAY("Sunday");
private String description;

View File

@ -26,15 +26,12 @@ package com.iluwatar.event.aggregator;
import org.junit.jupiter.api.Test;
/**
*
* Application test
*
*/
public class AppTest {
@Test
public void test() {
String[] args = {};
App.main(args);
App.main(new String[]{});
}
}

View File

@ -23,8 +23,6 @@
package com.iluwatar.event.aggregator;
import org.junit.jupiter.api.Test;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@ -35,10 +33,11 @@ import static org.mockito.Mockito.verifyZeroInteractions;
import java.util.Objects;
import java.util.function.Function;
import java.util.function.Supplier;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:58 PM
* Tests for Event Emitter
* Date: 12/12/15 - 10:58 PM Tests for Event Emitter
*
* @param <E> Type of Event Emitter
* @author Jeroen Meulemeester
*/
@ -99,13 +98,13 @@ public abstract class EventEmitterTest<E extends EventEmitter> {
private void testAllDays(final Weekday specialDay, final Event event, final E emitter,
final EventObserver... observers) {
for (final Weekday weekday : Weekday.values()) {
for (final var weekday : Weekday.values()) {
// Pass each week of the day, day by day to the event emitter
emitter.timePasses(weekday);
if (weekday == specialDay) {
// On a special day, every observer should have received the event
for (final EventObserver observer : observers) {
for (final var observer : observers) {
verify(observer, times(1)).onEvent(eq(event));
}
} else {
@ -126,10 +125,10 @@ public abstract class EventEmitterTest<E extends EventEmitter> {
* @param event The expected event emitted by the test object
*/
private void testAllDaysWithoutDefaultObserver(final Weekday specialDay, final Event event) {
final EventObserver observer1 = mock(EventObserver.class);
final EventObserver observer2 = mock(EventObserver.class);
final var observer1 = mock(EventObserver.class);
final var observer2 = mock(EventObserver.class);
final E emitter = this.factoryWithoutDefaultObserver.get();
final var emitter = this.factoryWithoutDefaultObserver.get();
emitter.registerObserver(observer1);
emitter.registerObserver(observer2);
@ -143,11 +142,11 @@ public abstract class EventEmitterTest<E extends EventEmitter> {
* @param event The expected event emitted by the test object
*/
private void testAllDaysWithDefaultObserver(final Weekday specialDay, final Event event) {
final EventObserver defaultObserver = mock(EventObserver.class);
final EventObserver observer1 = mock(EventObserver.class);
final EventObserver observer2 = mock(EventObserver.class);
final var defaultObserver = mock(EventObserver.class);
final var observer1 = mock(EventObserver.class);
final var observer2 = mock(EventObserver.class);
final E emitter = this.factoryWithDefaultObserver.apply(defaultObserver);
final var emitter = this.factoryWithDefaultObserver.apply(defaultObserver);
emitter.registerObserver(observer1);
emitter.registerObserver(observer2);

View File

@ -23,11 +23,12 @@
package com.iluwatar.event.aggregator;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.util.Arrays;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 2:52 PM
*
@ -40,11 +41,10 @@ public class EventTest {
*/
@Test
public void testToString() {
for (final Event event : Event.values()) {
final String toString = event.toString();
Arrays.stream(Event.values()).map(Event::toString).forEach(toString -> {
assertNotNull(toString);
assertFalse(toString.trim().isEmpty());
}
});
}
}

View File

@ -23,19 +23,19 @@
package com.iluwatar.event.aggregator;
import static org.junit.jupiter.api.Assertions.assertEquals;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.IntStream;
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;
/**
* Date: 12/12/15 - 3:04 PM
*
@ -60,17 +60,16 @@ public class KingJoffreyTest {
*/
@Test
public void testOnEvent() {
final KingJoffrey kingJoffrey = new KingJoffrey();
final var kingJoffrey = new KingJoffrey();
for (int i = 0; i < Event.values().length; ++i) {
IntStream.range(0, Event.values().length).forEach(i -> {
assertEquals(i, appender.getLogSize());
Event event = Event.values()[i];
var event = Event.values()[i];
kingJoffrey.onEvent(event);
final String expectedMessage = "Received event from the King's Hand: " + event.toString();
final var expectedMessage = "Received event from the King's Hand: " + event.toString();
assertEquals(expectedMessage, appender.getLastMessage());
assertEquals(i + 1, appender.getLogSize());
}
});
}

View File

@ -23,14 +23,15 @@
package com.iluwatar.event.aggregator;
import org.junit.jupiter.api.Test;
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 java.util.Arrays;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 10:57 AM
@ -47,24 +48,24 @@ public class KingsHandTest extends EventEmitterTest<KingsHand> {
}
/**
* The {@link KingsHand} is both an {@link EventEmitter} as an {@link EventObserver} so verify if every
* event received is passed up to it's superior, in most cases {@link KingJoffrey} but now just a
* mocked observer.
* The {@link KingsHand} is both an {@link EventEmitter} as an {@link EventObserver} so verify if
* every event received is passed up to it's superior, in most cases {@link KingJoffrey} but now
* just a mocked observer.
*/
@Test
public void testPassThrough() throws Exception {
final EventObserver observer = mock(EventObserver.class);
final KingsHand kingsHand = new KingsHand(observer);
final var observer = mock(EventObserver.class);
final var kingsHand = new KingsHand(observer);
// The kings hand should not pass any events before he received one
verifyZeroInteractions(observer);
// Verify if each event is passed on to the observer, nothing less, nothing more.
for (final Event event : Event.values()) {
Arrays.stream(Event.values()).forEach(event -> {
kingsHand.onEvent(event);
verify(observer, times(1)).onEvent(eq(event));
verifyNoMoreInteractions(observer);
}
});
}

View File

@ -23,11 +23,12 @@
package com.iluwatar.event.aggregator;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.util.Arrays;
import org.junit.jupiter.api.Test;
/**
* Date: 12/12/15 - 2:12 PM
*
@ -37,11 +38,11 @@ public class WeekdayTest {
@Test
public void testToString() {
for (final Weekday weekday : Weekday.values()) {
Arrays.stream(Weekday.values()).forEach(weekday -> {
final String toString = weekday.toString();
assertNotNull(toString);
assertEquals(weekday.name(), toString.toUpperCase());
}
});
}
}