This is an automated email from the ASF dual-hosted git repository.
upthewaterspout pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-examples.git
The following commit(s) were added to refs/heads/develop by this push:
new 54e0322 Cleaning up the loader example by removing Consumer interface
54e0322 is described below
commit 54e03224bdac3437c27e21f05f7757353c9edcae
Author: Dan Smith <[email protected]>
AuthorDate: Fri Oct 20 16:25:45 2017 -0700
Cleaning up the loader example by removing Consumer interface
---
.../org/apache/geode/examples/loader/Example.java | 29 +++++++++++-----------
.../apache/geode/examples/loader/QuoteLoader.java | 4 +--
.../apache/geode/examples/loader/ExampleTest.java | 14 ++++++-----
3 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/loader/src/main/java/org/apache/geode/examples/loader/Example.java
b/loader/src/main/java/org/apache/geode/examples/loader/Example.java
index c80676f..3186478 100644
--- a/loader/src/main/java/org/apache/geode/examples/loader/Example.java
+++ b/loader/src/main/java/org/apache/geode/examples/loader/Example.java
@@ -15,14 +15,14 @@
package org.apache.geode.examples.loader;
import java.util.Arrays;
-import java.util.function.Consumer;
+import java.util.Map;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.client.ClientCache;
import org.apache.geode.cache.client.ClientCacheFactory;
import org.apache.geode.cache.client.ClientRegionShortcut;
-public class Example implements Consumer<Region<String, String>> {
+public class Example {
private static final String[] AUTHORS =
("Anton Chekhov,C. J. Cherryh,Dorothy Parker,Douglas Adams,Emily
Dickinson,"
+ "Ernest Hemingway,F. Scott Fitzgerald,Henry David Thoreau,Henry
Wadsworth Longfellow,"
@@ -40,32 +40,31 @@ public class Example implements Consumer<Region<String,
String>> {
cache.<String,
String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
.create("example-region");
- new Example().accept(region);
+ printQuotes(region);
cache.close();
}
- @Override
- public void accept(Region<String, String> region) {
+ public static void printQuotes(Map<String, String> region) {
// initial fetch invokes the cache loader
{
- long start = System.currentTimeMillis();
- Arrays.stream(AUTHORS)
- .forEach(author -> System.out.println(author + ": " +
region.get(author)));
-
- long elapsed = System.currentTimeMillis() - start;
+ long elapsed = printQuotesAndMeasureTime(region);
System.out.println(
String.format("\n\nLoaded %d definitions in %d ms\n\n",
AUTHORS.length, elapsed));
}
// fetch from cache, really fast!
{
- long start = System.currentTimeMillis();
- Arrays.stream(AUTHORS)
- .forEach(author -> System.out.println(author + ": " +
region.get(author)));
-
- long elapsed = System.currentTimeMillis() - start;
+ long elapsed = printQuotesAndMeasureTime(region);
System.out.println(
String.format("\n\nFetched %d cached definitions in %d ms\n\n",
AUTHORS.length, elapsed));
}
}
+
+ private static long printQuotesAndMeasureTime(Map<String, String> region) {
+ long start = System.currentTimeMillis();
+ Arrays.stream(AUTHORS)
+ .forEach(author -> System.out.println(author + ": " +
region.get(author)));
+
+ return System.currentTimeMillis() - start;
+ }
}
diff --git
a/loader/src/main/java/org/apache/geode/examples/loader/QuoteLoader.java
b/loader/src/main/java/org/apache/geode/examples/loader/QuoteLoader.java
index 4359572..ed7da41 100644
--- a/loader/src/main/java/org/apache/geode/examples/loader/QuoteLoader.java
+++ b/loader/src/main/java/org/apache/geode/examples/loader/QuoteLoader.java
@@ -25,7 +25,7 @@ import org.apache.geode.cache.LoaderHelper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-public class QuoteLoader implements CacheLoader<String, String>, Declarable {
+public class QuoteLoader implements CacheLoader<String, String> {
private static final Logger log = LogManager.getLogger(QuoteLoader.class);
private final Map<String, String> quotes;
@@ -43,7 +43,7 @@ public class QuoteLoader implements CacheLoader<String,
String>, Declarable {
@Override
public String load(LoaderHelper<String, String> helper) throws
CacheLoaderException {
- log.info("Loading quote for {} into region {}", helper.getKey(),
helper.getRegion().getName());
+ log.info("Loading quote for {}", helper.getKey());
String quote = quotes.get(helper.getKey());
try {
diff --git
a/loader/src/test/java/org/apache/geode/examples/loader/ExampleTest.java
b/loader/src/test/java/org/apache/geode/examples/loader/ExampleTest.java
index 158cef7..2a1f38a 100644
--- a/loader/src/test/java/org/apache/geode/examples/loader/ExampleTest.java
+++ b/loader/src/test/java/org/apache/geode/examples/loader/ExampleTest.java
@@ -14,17 +14,22 @@
*/
package org.apache.geode.examples.loader;
+import static org.apache.geode.examples.loader.Example.printQuotes;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.geode.cache.LoaderHelper;
import org.apache.geode.cache.Region;
import org.geode.examples.util.Mocks;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.SystemOutRule;
+import org.mockito.Mockito;
public class ExampleTest {
@@ -34,20 +39,17 @@ public class ExampleTest {
@Test
public void testExample() throws Exception {
QuoteLoader loader = new QuoteLoader();
- Region<String, String> region = Mocks.region("example-region");
-
- @SuppressWarnings("unchecked")
- LoaderHelper<String, String> helper = mock(LoaderHelper.class);
- when(helper.getRegion()).thenReturn(region);
+ Map<String, String> region = Mockito.spy(new HashMap<>());
when(region.get(any())).then(inv -> {
String key = inv.getArgumentAt(0, String.class);
+ LoaderHelper<String, String> helper = mock(LoaderHelper.class);
when(helper.getKey()).thenReturn(key);
return loader.load(helper);
});
- new Example().accept(region);
+ printQuotes(region);
assertThat(systemOutRule.getLog()).contains("Anton Chekhov");
assertThat(systemOutRule.getLog()).contains("Loaded 20 definitions");
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].