Java 11 migrate c-d (remaining) (#1111)

* Moves converter pattern to Java 11

* Moves cqrs pattern to Java 11

* Moves dao pattern to Java 11

* Moves data-bus pattern to Java 11

* Moves data-locality pattern to Java 11

* Moves data-mapper pattern to Java 11

* Moves data-transfer-object pattern to Java 11

* Moves decorator pattern to Java 11

* Moves delegation pattern to Java 11

* Moves dependency-injection to Java 11

* Moves dirty-flag to Java 11

* Moves double-buffer to Java 11

* Moves double-checked-locking to Java 11

* Moves double-dispatch to Java 11

* Corrects with changes thats breaking test cases
This commit is contained in:
Anurag Agarwal
2019-12-15 00:02:45 +05:30
committed by Ilkka Seppälä
parent 5681684157
commit ea57934db6
75 changed files with 576 additions and 713 deletions

View File

@ -23,9 +23,7 @@
package com.iluwatar.dirtyflag;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -61,18 +59,15 @@ public class App {
* Program execution point.
*/
public void run() {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
final var executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
final World world = new World();
@Override
public void run() {
List<String> countries = world.fetch();
var countries = world.fetch();
LOGGER.info("Our world currently has the following countries:-");
for (String country : countries) {
LOGGER.info("\t" + country);
}
countries.stream().map(country -> "\t" + country).forEach(LOGGER::info);
}
}, 0, 15, TimeUnit.SECONDS); // Run at every 15 seconds.
}
@ -83,8 +78,7 @@ public class App {
* @param args command line args
*/
public static void main(String[] args) {
App app = new App();
var app = new App();
app.run();
}

View File

@ -27,8 +27,8 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -62,24 +62,18 @@ public class DataFetcher {
* @return List of strings
*/
public List<String> fetch() {
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(filename).getFile());
var classLoader = getClass().getClassLoader();
var file = new File(classLoader.getResource(filename).getFile());
if (isDirty(file.lastModified())) {
LOGGER.info(filename + " is dirty! Re-fetching file content...");
List<String> data = new ArrayList<String>();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
data.add(line);
}
try (var br = new BufferedReader(new FileReader(file))) {
return br.lines().collect(Collectors.collectingAndThen(Collectors.toList(), List::copyOf));
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
return new ArrayList<String>();
return List.of();
}
}

View File

@ -47,10 +47,8 @@ public class World {
* @return List of strings
*/
public List<String> fetch() {
List<String> data = df.fetch();
var data = df.fetch();
countries = data.isEmpty() ? countries : data;
return countries;
}
}

View File

@ -23,19 +23,15 @@
package org.dirty.flag;
import java.io.IOException;
import org.junit.jupiter.api.Test;
import com.iluwatar.dirtyflag.App;
import org.junit.jupiter.api.Test;
/**
* Tests that Dirty-Flag 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[]{});
}
}

View File

@ -26,31 +26,26 @@ package org.dirty.flag;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.List;
import com.iluwatar.dirtyflag.DataFetcher;
import org.junit.jupiter.api.Test;
import com.iluwatar.dirtyflag.DataFetcher;
/**
*
* Application test
*
*/
public class DirtyFlagTest {
@Test
public void testIsDirty() {
DataFetcher df = new DataFetcher();
List<String> countries = df.fetch();
var df = new DataFetcher();
var countries = df.fetch();
assertFalse(countries.isEmpty());
}
@Test
public void testIsNotDirty() {
DataFetcher df = new DataFetcher();
var df = new DataFetcher();
df.fetch();
List<String> countries = df.fetch();
var countries = df.fetch();
assertTrue(countries.isEmpty());
}
}