Refine search
@Test public void testMapPutTtl() { getVertx().sharedData().<String, String>getAsyncMap("foo", onSuccess(map -> { map.put("pipo", "molo", 10, onSuccess(vd -> { vertx.setTimer(15, l -> { getVertx().sharedData().<String, String>getAsyncMap("foo", onSuccess(map2 -> { map2.get("pipo", onSuccess(res -> { assertNull(res); testComplete(); })); })); }); })); })); await(); }
@Test public void testAcquireTimeout() { getVertx().sharedData().getLock("foo", ar -> { assertTrue(ar.succeeded()); long start = System.currentTimeMillis(); getVertx().sharedData().getLockWithTimeout("foo", 1000, ar2 -> { assertFalse(ar2.succeeded()); // Should be delayed assertTrue(System.currentTimeMillis() - start >= 1000); testComplete(); }); }); await(); }
@Test public void testIllegalArguments() throws Exception { assertNullPointerException(() -> getVertx().sharedData().getLock(null, ar -> {})); assertNullPointerException(() -> getVertx().sharedData().getLock("foo", null)); assertNullPointerException(() -> getVertx().sharedData().getLockWithTimeout(null, 1, ar -> {})); assertNullPointerException(() -> getVertx().sharedData().getLockWithTimeout("foo", 1, null)); assertIllegalArgumentException(() -> getVertx().sharedData().getLockWithTimeout("foo", -1, ar -> {})); }
@Test public void testGet() { getVertx().sharedData().getCounter("foo", ar -> { assertTrue(ar.succeeded()); Counter counter = ar.result(); counter.get(ar2 -> { assertTrue(ar2.succeeded()); assertEquals(0l, ar2.result().longValue()); testComplete(); }); }); await(); }
Vertx.clusteredVertx(options, res -> { assertTrue(res.succeeded()); assertNotNull(mgr.getCuratorFramework()); res.result().sharedData().getClusterWideMap("mymap1", ar -> { ar.result().put("news", "hello", v -> { vertx1.set(res.result()); }); vertx1.get().close(); vertx1.get().close(ar -> vertx1.set(null));
String assemblyName = reconciliation.name(); final String lockName = getLockName(assemblyType, namespace, assemblyName); vertx.sharedData().getLockWithTimeout(lockName, LOCK_TIMEOUT_MS, res -> { if (res.succeeded()) { log.debug("{}: Lock {} acquired", reconciliation, lockName); Lock lock = res.result(); lock.release(); log.debug("{}: Lock {} released", reconciliation, lockName); if (createResult.failed()) { if (createResult.cause() instanceof InvalidResourceException) { log.error(createResult.cause().getMessage());
public SharedGlobalDataRegistry(Vertx vertx, IEngineConfig vxConfig, Map<String, String> options) { this.vertx = vertx; this.vxConfig = vxConfig; this.options = options; if (!vertx.isClustered()) { throw new IllegalStateException(SharedGlobalDataRegistry.class.getCanonicalName() + " only works when operating in clustered mode!"); } vertx.sharedData().<String, Object> getClusterWideMap("SharedGlobalDataRegistry-Shared", async -> { if (async.succeeded()) { objectMap = async.result(); } else { throw new IllegalStateException(async.cause()); } }); }
@Override public void start() throws Exception { System.out.println("DisplayStatsApp start()"); vertx.setPeriodic(2000, x -> vertx.sharedData().getCounter("globalStatsCounter", ar -> { if (ar.succeeded()) { Counter counter = ar.result(); counter.get(stats -> System.out.println("Global stats counter value is " + stats.result())); } else { System.out.println(ar.cause()); } })); }
@Override public void start() throws Exception { System.out.println(String.format("StatsConsumerApp [%s] start()", id)); vertx.eventBus().<Integer>consumer("stats", message -> { Integer stats = message.body(); System.out.println(">> received " + stats); vertx.sharedData().getCounter("globalStatsCounter", ar -> { if (ar.succeeded()) { Counter counter = ar.result(); counter.addAndGet(stats.longValue(), opAr -> { if (opAr.succeeded()) { System.out.println("Stats added to global stats counter"); } else { System.out.println(opAr.cause()); } }); } else { System.out.println(ar.cause()); } }); }); }
/** * Like {@link io.vertx.rxjava.core.shareddata.SharedData#getLock} but specifying a timeout. If the lock is not obtained within the timeout * a failure will be sent to the handler. * <p> * In general lock acquision is unordered, so that sequential attempts to acquire a lock, * even from a single thread, can happen in non-sequential order. * </p> * @param name the name of the lock * @param timeout the timeout in ms * @param resultHandler the handler */ public void getLockWithTimeout(String name, long timeout, Handler<AsyncResult<io.vertx.rxjava.core.shareddata.Lock>> resultHandler) { delegate.getLockWithTimeout(name, timeout, new Handler<AsyncResult<io.vertx.core.shareddata.Lock>>() { public void handle(AsyncResult<io.vertx.core.shareddata.Lock> ar) { if (ar.succeeded()) { resultHandler.handle(io.vertx.core.Future.succeededFuture(io.vertx.rxjava.core.shareddata.Lock.newInstance(ar.result()))); } else { resultHandler.handle(io.vertx.core.Future.failedFuture(ar.cause())); } } }); }
private void getMap(Handler<AsyncResult<AsyncMap<String, Session>>> resultHandler) { if (sessionMap == null) { vertx.sharedData().<String, Session>getClusterWideMap(sessionMapName, res -> { if (res.succeeded()) { sessionMap = res.result(); resultHandler.handle(Future.succeededFuture(res.result())); } else { resultHandler.handle(res); } }); } else { resultHandler.handle(Future.succeededFuture(sessionMap)); } } }
private synchronized void retrieveRegistry(Handler<AsyncResult<AsyncMap<String, String>>> handler) { if (registry != null) { handler.handle(Future.succeededFuture(registry)); } else { vertx.sharedData().<String, String>getClusterWideMap("service.registry", ar -> { synchronized (DefaultServiceDiscoveryBackend.class) { if (ar.failed()) { handler.handle(ar); } else { registry = ar.result(); handler.handle(Future.succeededFuture(registry)); } } }); } }
@Test public void testIllegalArguments() throws Exception { assertNullPointerException(() -> getVertx().sharedData().getCounter(null, ar -> {})); assertNullPointerException(() -> getVertx().sharedData().getCounter("foo", null)); getVertx().sharedData().getCounter("foo", ar -> { Counter counter = ar.result(); assertNullPointerException(() -> counter.get(null)); assertNullPointerException(() -> counter.incrementAndGet(null)); assertNullPointerException(() -> counter.getAndIncrement(null)); assertNullPointerException(() -> counter.decrementAndGet(null)); assertNullPointerException(() -> counter.addAndGet(1, null)); assertNullPointerException(() -> counter.getAndAdd(1, null)); assertNullPointerException(() -> counter.compareAndSet(1, 1, null)); testComplete(); }); await(); }
private void testMapOperationResult(BiFunction<LocalMap<String, ShareableObject>, String, ShareableObject> operation) { final String key = "key"; final ShareableObject value = new ShareableObject("some test data"); final LocalMap<String, ShareableObject> map = vertx.sharedData().getLocalMap("foo"); assertNull(map.put(key, value)); final ShareableObject result = operation.apply(map, key); assertEquals(value, result); assertNotSame(value, result); }
@Test public void testGetMapWithNullResultHandler() throws Exception { assertNullPointerException(() -> getVertx().sharedData().<String, String>getAsyncMap("foo", null)); }
public static AsyncSQLClient getOrCreate(Vertx vertx, JsonObject config, String poolName, boolean mySQL) { synchronized (vertx) { LocalMap<String, ClientHolder> map = vertx.sharedData().getLocalMap( DS_LOCAL_MAP_NAME_BASE + (mySQL ? "MySQL" : "PostgreSQL")); ClientHolder theHolder = map.get(poolName); if (theHolder == null) { theHolder = new ClientHolder(vertx, config, mySQL, () -> removeFromMap(vertx, map, poolName)); map.put(poolName, theHolder); } else { theHolder.incRefCount(); } return new ClientWrapper(theHolder); } }
@Test public void testKeys() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); map.put("foo1", "val1"); map.put("foo2", "val2"); map.put("foo3", "val3"); assertEquals(3, map.size()); Set<String> keys = map.keySet(); assertEquals(3, keys.size()); assertTrue(keys.contains("foo1")); assertTrue(keys.contains("foo2")); assertTrue(keys.contains("foo3")); }
@Test public void testValues() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); map.put("foo1", "val1"); map.put("foo2", "val2"); map.put("foo3", "val3"); assertEquals(3, map.size()); Collection<String> values = map.values(); assertEquals(3, values.size()); assertTrue(values.contains("val1")); assertTrue(values.contains("val2")); assertTrue(values.contains("val3")); }
public void deleteMessage(String topic) { String key = topic; LocalMap<String, byte[]> map = vertx.sharedData().getLocalMap(tenant); if(map.keySet().contains(key)) { map.remove(key); } }