Skip to content

Commit 9dd8b6f

Browse files
authored
Merge pull request #48 from StubbornJava/suppliers
Added Suppliers.memoize examples
2 parents 7b5a2c9 + 5f6dc5d commit 9dd8b6f

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

gradle/dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ext {
77
logback : '1.1.8', // Logging
88
undertow : '1.4.18.Final', // Webserver
99
metrics : '3.1.2', // Metrics
10-
guava : '22.0', // Common / Helper libraries
10+
guava : '23.0', // Common / Helper libraries
1111
typesafeConfig : '1.3.1', // Configuration
1212
handlebars : '4.0.6', // HTML templating
1313
htmlCompressor : '1.4', // HTML compression
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.stubbornjava.examples.common;
2+
3+
import java.util.concurrent.TimeUnit;
4+
import java.util.function.Supplier;
5+
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
9+
import com.google.common.base.Suppliers;
10+
11+
public class SuppliersExamples {
12+
private static final Logger log = LoggerFactory.getLogger(SuppliersExamples.class);
13+
14+
// {{start:supplier}}
15+
public static String helloWorldSupplier() {
16+
log.info("supplying");
17+
return "hello world";
18+
}
19+
// {{end:supplier}}
20+
21+
public static void main(String[] args) throws InterruptedException {
22+
// {{start:memoize}}
23+
log.info("Memoized");
24+
Supplier<String> memoized = Suppliers.memoize(SuppliersExamples::helloWorldSupplier);
25+
log.info(memoized.get());
26+
log.info(memoized.get());
27+
// {{end:memoize}}
28+
29+
// {{start:memoizeWithExpiration}}
30+
log.info("Memoized with Expiration");
31+
Supplier<String> memoizedExpiring = Suppliers.memoizeWithExpiration(
32+
SuppliersExamples::helloWorldSupplier, 50, TimeUnit.MILLISECONDS);
33+
log.info(memoizedExpiring.get());
34+
log.info(memoizedExpiring.get());
35+
log.info("sleeping");
36+
TimeUnit.MILLISECONDS.sleep(100);
37+
log.info(memoizedExpiring.get());
38+
log.info(memoizedExpiring.get());
39+
log.info("sleeping");
40+
TimeUnit.MILLISECONDS.sleep(100);
41+
log.info(memoizedExpiring.get());
42+
log.info(memoizedExpiring.get());
43+
// {{end:memoizeWithExpiration}}
44+
}
45+
}

0 commit comments

Comments
 (0)