package org.littlewings.hazelcast; import java.io.IOException; import java.util.Objects; import java.util.stream.Stream; import com.hazelcast.client.HazelcastClient; import com.hazelcast.client.config.XmlClientConfigBuilder; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IMap; public class Client { public static void main(String... args) throws IOException { HazelcastInstance client = HazelcastClient.newHazelcastClient(new XmlClientConfigBuilder("src/main/resources/hazelcast-client.xml").build()); try { IMap<String, Language> map = client.getMap("language"); Stream .generate(() -> System.console().readLine("Command> ")) .filter(Objects::nonNull) .forEach(line -> { String[] tokens = line.split("\\s+"); String command = tokens[0]; switch (command) { case "put": String key = tokens[1]; Language language = new Language(tokens[2]); map.put(key, language); System.out.printf("putted %s/%s%n", key, language); break; case "get": System.out.printf("get => %s%n", map.get(tokens[1])); break; default: System.out.printf("Unknown command => %s%n", command); break; } }); } finally { client.getLifecycleService().shutdown(); HazelcastClient.shutdownAll(); } } }