From 7cb94f676ccd3056f77ce2a8c502416e7ebabc8a Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Mon, 2 Oct 2017 12:53:26 +0200 Subject: [PATCH] Refactor Atomix samples (#2696) --- atomix/pom.xml | 77 ++++++++++--------- .../atomix/example/BootstrapingCluster.java | 21 +++-- .../com/atomix/example/ClientExample.java | 32 -------- .../java/com/atomix/example/OtherNodes.java | 58 +++++++------- .../exampletest/AtomixClientLiveTest.java | 35 +++++++++ .../atomix/exampletest/ClientExampleTest.java | 38 --------- pom.xml | 1 + 7 files changed, 114 insertions(+), 148 deletions(-) delete mode 100644 atomix/src/main/java/com/atomix/example/ClientExample.java create mode 100644 atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java delete mode 100644 atomix/src/test/java/com/atomix/exampletest/ClientExampleTest.java diff --git a/atomix/pom.xml b/atomix/pom.xml index ec54f896d1..80c573dd86 100644 --- a/atomix/pom.xml +++ b/atomix/pom.xml @@ -1,41 +1,46 @@ - 4.0.0 - com.atomix.io - atomix - 0.0.1-SNAPSHOT + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + com.atomix.io + atomix + 0.0.1-SNAPSHOT - - - io.atomix - atomix-all - 1.0.0-rc9 - - - junit - junit - 4.9 - test - - - log4j - log4j - 1.2.17 - - - - src - - - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - - - - + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + + + + + io.atomix + atomix-all + 1.0.0-rc9 + + + junit + junit + 4.9 + test + + + log4j + log4j + 1.2.17 + + + + + + maven-compiler-plugin + 3.7.0 + + 1.8 + 1.8 + + + + diff --git a/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java b/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java index 7fce4cae5f..6c5c94d307 100644 --- a/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java +++ b/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java @@ -1,30 +1,27 @@ package com.atomix.example; -import java.io.File; -import java.util.concurrent.CompletableFuture; - import io.atomix.AtomixReplica; import io.atomix.catalyst.transport.Address; import io.atomix.catalyst.transport.netty.NettyTransport; import io.atomix.copycat.server.storage.Storage; import io.atomix.copycat.server.storage.StorageLevel; +import java.io.File; +import java.util.concurrent.CompletableFuture; + public class BootstrapingCluster { public static void main(String[] args) { - // TODO Auto-generated method stub - Storage storage = Storage.builder() - .withDirectory(new File("log")) - .withStorageLevel(StorageLevel.DISK) - .build(); + .withDirectory(new File("log")) + .withStorageLevel(StorageLevel.DISK) + .build(); AtomixReplica replica = AtomixReplica.builder(new Address("localhost", 8700)) - .withStorage(storage) - .withTransport(new NettyTransport()) - .build(); + .withStorage(storage) + .withTransport(new NettyTransport()) + .build(); CompletableFuture completableFuture = replica.bootstrap(); completableFuture.join(); - } } diff --git a/atomix/src/main/java/com/atomix/example/ClientExample.java b/atomix/src/main/java/com/atomix/example/ClientExample.java deleted file mode 100644 index 1cfaed76a5..0000000000 --- a/atomix/src/main/java/com/atomix/example/ClientExample.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.atomix.example; - -import java.util.Arrays; -import java.util.List; - -import io.atomix.AtomixClient; -import io.atomix.catalyst.transport.Address; -import io.atomix.catalyst.transport.netty.NettyTransport; -import io.atomix.collections.DistributedMap; - -public class ClientExample { - - public static void main(String args[]) throws InterruptedException { - AtomixClient client = AtomixClient.builder() - .withTransport(new NettyTransport()) - .build(); - - List
cluster = Arrays.asList(new Address("localhost", 8700), new Address("localhsot", 8701)); - client.connect(cluster) - .thenRun(() -> System.out.println("Client Connected")); - - Thread.sleep(5000); - - DistributedMap map = client.getMap("map") - .join(); - - String value = (String) map.get("bar") - .join(); - System.out.println("Value: " + value); - - } -} \ No newline at end of file diff --git a/atomix/src/main/java/com/atomix/example/OtherNodes.java b/atomix/src/main/java/com/atomix/example/OtherNodes.java index ae4c3eef2f..e5688b062f 100644 --- a/atomix/src/main/java/com/atomix/example/OtherNodes.java +++ b/atomix/src/main/java/com/atomix/example/OtherNodes.java @@ -1,42 +1,42 @@ package com.atomix.example; -import java.io.File; - -import java.util.Arrays; -import java.util.List; - import io.atomix.AtomixReplica; import io.atomix.catalyst.transport.Address; import io.atomix.catalyst.transport.netty.NettyTransport; -import io.atomix.collections.DistributedMap; import io.atomix.concurrent.DistributedLock; import io.atomix.copycat.server.storage.Storage; import io.atomix.copycat.server.storage.StorageLevel; +import java.io.File; +import java.util.Arrays; +import java.util.List; + public class OtherNodes { public static void main(String[] args) throws InterruptedException { - // TODO Auto-generated method stub - - List
cluster = Arrays.asList(new Address("localhost", 8700), new Address("localhost", 8701), new Address("localhost", 8702)); + List
cluster = Arrays + .asList( + new Address("localhost", 8700), + new Address("localhost", 8701), + new Address("localhost", 8702)); Storage storage = Storage.builder() - .withDirectory(new File("log")) - .withStorageLevel(StorageLevel.DISK) - .build(); + .withDirectory(new File("log")) + .withStorageLevel(StorageLevel.DISK) + .build(); AtomixReplica replica2 = AtomixReplica.builder(new Address("localhost", 8701)) - .withStorage(storage) - .withTransport(new NettyTransport()) - .build(); + .withStorage(storage) + .withTransport(new NettyTransport()) + .build(); WorkerThread WT1 = new WorkerThread(replica2, cluster); WT1.run(); AtomixReplica replica3 = AtomixReplica.builder(new Address("localhost", 8702)) - .withStorage(storage) - .withTransport(new NettyTransport()) - .build(); + .withStorage(storage) + .withTransport(new NettyTransport()) + .build(); WorkerThread WT2 = new WorkerThread(replica3, cluster); WT2.run(); @@ -44,30 +44,28 @@ public class OtherNodes { Thread.sleep(6000); DistributedLock lock = replica2.getLock("my-lock") - .join(); + .join(); lock.lock() - .thenRun(() -> System.out.println("Acquired a lock")); + .thenRun(() -> System.out.println("Acquired a lock")); - DistributedMap map = replica2.getMap("map") - .join(); - - // Put a value in the map and call the completion callback on response - map.put("bar", "Hello world!") - .thenRun(() -> System.out.println("Value is set in Distributed Map")); + replica2.getMap("map") + .thenCompose(m -> m.put("bar", "Hello world!")) + .thenRun(() -> System.out.println("Value is set in Distributed Map")) + .join(); } private static class WorkerThread extends Thread { - AtomixReplica replica; - List
cluster; + private AtomixReplica replica; + private List
cluster; - public WorkerThread(AtomixReplica replica, List
cluster) { + WorkerThread(AtomixReplica replica, List
cluster) { this.replica = replica; this.cluster = cluster; } public void run() { replica.join(cluster) - .join(); + .join(); } } } \ No newline at end of file diff --git a/atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java b/atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java new file mode 100644 index 0000000000..9268a4a69b --- /dev/null +++ b/atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java @@ -0,0 +1,35 @@ +package com.atomix.exampletest; + +import io.atomix.AtomixClient; +import io.atomix.catalyst.transport.Address; +import io.atomix.catalyst.transport.netty.NettyTransport; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.ExecutionException; + +import static org.junit.Assert.assertEquals; + +public class AtomixClientLiveTest { + + private final AtomixClient client = AtomixClient.builder() + .withTransport(new NettyTransport()) + .build(); + + @Test + public void whenBootstrap_thenShouldGet() throws InterruptedException, ExecutionException { + List
cluster = Arrays.asList( + new Address("localhost", 8700), + new Address("localhsot", 8701)); + + String value = client.connect(cluster) + .thenRun(() -> System.out.println("Client Connected")) + .thenCompose(c -> client.getMap("map")) + .thenCompose(m -> m.get("bar")) + .thenApply(a -> (String) a) + .get(); + + assertEquals("Hello world!", value); + } +} diff --git a/atomix/src/test/java/com/atomix/exampletest/ClientExampleTest.java b/atomix/src/test/java/com/atomix/exampletest/ClientExampleTest.java deleted file mode 100644 index 7a378c486d..0000000000 --- a/atomix/src/test/java/com/atomix/exampletest/ClientExampleTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.atomix.exampletest; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; -import io.atomix.AtomixClient; -import io.atomix.catalyst.transport.Address; -import io.atomix.catalyst.transport.netty.NettyTransport; -import io.atomix.collections.DistributedMap; - -import java.util.Arrays; -import java.util.List; - -import org.junit.Test; - -public class ClientExampleTest { - - @Test - public void ExampleTest() throws InterruptedException { - AtomixClient client = AtomixClient.builder() - .withTransport(new NettyTransport()) - .build(); - - List
cluster = Arrays.asList(new Address("localhost", 8700), new Address("localhsot", 8701)); - client.connect(cluster) - .thenRun(() -> System.out.println("Client Connected")); - - Thread.sleep(5000); - - DistributedMap map = client.getMap("map") - .join(); - - String value = (String) map.get("bar") - .join(); - - assertEquals("Hello world!", value); - } - -} diff --git a/pom.xml b/pom.xml index dd0871ae79..ff4b490c6b 100644 --- a/pom.xml +++ b/pom.xml @@ -28,6 +28,7 @@ + atomix apache-cayenne aws akka-streams