package org.infinispan.api; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import javax.transaction.TransactionManager; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.test.MultipleCacheManagersTest; import org.infinispan.test.TestingUtil; import org.testng.annotations.Test; /** * @author Mircea.Markus@jboss.com * @since 4.1 */ @Test(groups = "functional", testName = "api.AsyncWithTxTest") public class AsyncWithTxTest extends MultipleCacheManagersTest { @Override protected void createCacheManagers() throws Throwable { ConfigurationBuilder defaultConfig = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, true); addClusterEnabledCacheManager(defaultConfig); addClusterEnabledCacheManager(defaultConfig); } public void testWithTx() throws Exception { TransactionManager transactionManager = TestingUtil.getTransactionManager(cache(0)); cache(0).put("k","v1"); transactionManager.begin(); CompletableFuture<Object> future = cache(0).putAsync("k", "v2"); "v1".equals(future.get(2000, TimeUnit.MILLISECONDS)); transactionManager.commit(); } }