Skip to content

Instantly share code, notes, and snippets.

@vichu
vichu / Application.java
Created April 30, 2018 04:32
@EnableIntegrationGraphController
@SpringBootApplication
@EnableIntegrationGraphController(allowedOrigins = "http://localhost:8082")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@vichu
vichu / three_completable_futures.java
Created May 10, 2018 22:44
Three completable futures.
ForkJoinPool myThreadPool = new ForkJoinPool(10);
CompletableFuture<Integer> myCompletableFutureInt = CompletableFuture.supplyAsync(() -> {
try {
int sleepTime = new Random().nextInt(2000);
Thread.sleep(sleepTime);
System.out.println(
"Sleeping for " + sleepTime + " in myCompletableFutureInt on thread "
+ Thread.currentThread().getName());
} catch (InterruptedException e) {
@vichu
vichu / chain_thenApply.java
Created May 11, 2018 00:00
Chaining thenApply method on CompletableFutures
CompletableFuture<CompletableFuture<CompletableFuture<Map<String, Object>>>> result = myCompletableFutureBigDecimal.thenApply(bigDecimal ->
myCompletableFutureInt.thenApply( integer ->
myCompletableFutureLong.thenApply(aLong -> {
Map<String, Object> objectHashMap = new HashMap<>();
objectHashMap.put("IntegerValue", integer);
objectHashMap.put("LongValue", aLong);
objectHashMap.put("BigDecimalValue", bigDecimal);
return objectHashMap;
})));
@vichu
vichu / compose_and_combine.java
Created May 11, 2018 03:28
compose and combine CompletableFutures
CompletableFuture<Map<String, Object>> myObjectCompletableFuture =
myCompletableFutureBigDecimal.thenCompose(bigDecimalValue ->
myCompletableFutureInt
.thenCombine(myCompletableFutureLong,
((integerValue, longValue) -> {
Map<String, Object> objectHashMap = new HashMap<>();
objectHashMap.put("IntegerValue", integerValue);
objectHashMap.put("LongValue", longValue);
objectHashMap.put("BigDecimalValue", bigDecimalValue);
return objectHashMap;
@vichu
vichu / access_future.java
Created May 11, 2018 03:31
access the completable future
try {
Map<String, Object> myObjectMap = myObjectCompletableFuture.get(2, TimeUnit.SECONDS);
myObjectMap.entrySet().forEach(stringObjectEntry -> System.out
.println(stringObjectEntry.getKey() + " = " + stringObjectEntry.getValue().toString()));
} catch (InterruptedException | ExecutionException | TimeoutException e) {
e.printStackTrace();
}
@vichu
vichu / reactor-module.xml
Created May 24, 2018 19:48
reactor module order
<modules>
<module>maven-reactor-app</module>
<module>maven-reactor-util</module>
</modules>
@vichu
vichu / parent-pom.xml
Created May 24, 2018 20:19
parent-pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.indywiz.springorama.reactor</groupId>
<artifactId>maven-reactor-parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
@vichu
vichu / module1-pom.xml
Created May 24, 2018 21:01
first-module-pom file.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>maven-reactor-parent</artifactId>
<groupId>com.indywiz.springorama.reactor</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
@vichu
vichu / dependency-pom.xml
Created May 24, 2018 21:05
module2 dependency
<dependency>
<groupId>com.indywiz.springorama.reactor</groupId>
<artifactId>maven-reactor-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
@vichu
vichu / order-does-not-matter-pom.xml
Created May 24, 2018 21:17
order-does-not-matter
<modules>
<module>maven-reactor-app</module>
<module>maven-reactor-util</module>
</modules>