@Override public Collection<V> values() { return delegate.values(); }
@Override public Map<String, MapSession> findByIndexNameAndIndexValue(String indexName, String indexValue) { if (!PRINCIPAL_NAME_INDEX_NAME.equals(indexName)) { return Collections.emptyMap(); } return cache.getNativeCache().values().stream() .map(cacheValue -> (MapSession) cacheValue) .filter(session -> indexValue.equals(principalNameResolver.resolvePrincipal(session))) .collect(Collectors.toMap(MapSession::getId, Function.identity())); } }
@Test public void testUsingTemplate() throws SystemException { final Book[] created = new Book[2]; final Book[] found = new Book[2]; TransactionManager tm = getTransactionManager("booksTransactional"); assert tm.getStatus() == 0 : "Transaction should be in state 'RUNNING'"; Book nonTxBook = new Book("1-1-2-3-5", "Random author", "Title"); Book txBook = new Book("1-2-2-4-8", "Not so random author", "Title"); created[0] = bookService.createBookTransactionalCache(nonTxBook); found[0] = bookService.findBookTransactionalCache(Integer.valueOf(9)); created[1] = bookService.createBookNonTransactionalCache(txBook); found[1] = bookService.findBookNonTransactionalCache(Integer.valueOf(9)); // rollback transaction tm.rollback(); // check whether rollback caused cached items to be removed from transactional cache assert !transactionalCache().values().contains(created[0]); assert !transactionalCache().values().contains(found[0]); // rollback should not have any impact on non-transactional cache assert nonTransactionalCache().values().contains(created[1]); assert nonTransactionalCache().values().contains(found[1]); // make sure books have not been persisted assert bookService.findBookCacheDisabled(created[0].getId()) == null; assert bookService.findBookCacheDisabled(created[1].getId()) == null; }
@Test public void testUsingTemplateNoRollback() throws SystemException, HeuristicRollbackException, HeuristicMixedException, RollbackException { final Book[] created = new Book[2]; final Book[] found = new Book[2]; assert !transactionalCache().containsKey(Integer.valueOf(9)); TransactionManager tm = getTransactionManager("booksTransactional"); assert tm.getStatus() == 0 : "Transaction should be in state 'RUNNING'"; Book nonTxBook = new Book("1-1-2-3-5", "Random author", "Title"); Book txBook = new Book("1-2-2-4-8", "Not so random author", "Title"); created[0] = bookService.createBookTransactionalCache(nonTxBook); found[0] = bookService.findBookTransactionalCache(Integer.valueOf(9)); created[1] = bookService.createBookNonTransactionalCache(txBook); found[1] = bookService.findBookNonTransactionalCache(Integer.valueOf(9)); // commit changes tm.commit(); // all items should be cached regardless of cache type assert transactionalCache().values().contains(created[0]); assert transactionalCache().values().contains(found[0]); assert nonTransactionalCache().values().contains(created[1]); assert nonTransactionalCache().values().contains(found[1]); // check whether books have been persisted assert bookService.findBookCacheDisabled(created[0].getId()) != null; assert bookService.findBookCacheDisabled(created[1].getId()) != null; }
@Test public void testUsingTemplateNoRollback() throws SystemException, HeuristicRollbackException, HeuristicMixedException, RollbackException { final Book[] created = new Book[2]; final Book[] found = new Book[2]; assert !transactionalCache().containsKey(Integer.valueOf(9)); TransactionManager tm = getTransactionManager("booksTransactional"); assert tm.getStatus() == 0 : "Transaction should be in state 'RUNNING'"; Book nonTxBook = new Book("1-1-2-3-5", "Random author", "Title"); Book txBook = new Book("1-2-2-4-8", "Not so random author", "Title"); created[0] = bookService.createBookTransactionalCache(nonTxBook); found[0] = bookService.findBookTransactionalCache(Integer.valueOf(9)); created[1] = bookService.createBookNonTransactionalCache(txBook); found[1] = bookService.findBookNonTransactionalCache(Integer.valueOf(9)); // commit changes tm.commit(); // all items should be cached regardless of cache type assert transactionalCache().values().contains(created[0]); assert transactionalCache().values().contains(found[0]); assert nonTransactionalCache().values().contains(created[1]); assert nonTransactionalCache().values().contains(found[1]); // check whether books have been persisted assert bookService.findBookCacheDisabled(created[0].getId()) != null; assert bookService.findBookCacheDisabled(created[1].getId()) != null; }
@Test public void testUsingTemplate() throws SystemException { final Book[] created = new Book[2]; final Book[] found = new Book[2]; TransactionManager tm = getTransactionManager("booksTransactional"); assert tm.getStatus() == 0 : "Transaction should be in state 'RUNNING'"; Book nonTxBook = new Book("1-1-2-3-5", "Random author", "Title"); Book txBook = new Book("1-2-2-4-8", "Not so random author", "Title"); created[0] = bookService.createBookTransactionalCache(nonTxBook); found[0] = bookService.findBookTransactionalCache(Integer.valueOf(9)); created[1] = bookService.createBookNonTransactionalCache(txBook); found[1] = bookService.findBookNonTransactionalCache(Integer.valueOf(9)); // rollback transaction tm.rollback(); // check whether rollback caused cached items to be removed from transactional cache assert !transactionalCache().values().contains(created[0]); assert !transactionalCache().values().contains(found[0]); // rollback should not have any impact on non-transactional cache assert nonTransactionalCache().values().contains(created[1]); assert nonTransactionalCache().values().contains(found[1]); // make sure books have not been persisted assert bookService.findBookCacheDisabled(created[0].getId()) == null; assert bookService.findBookCacheDisabled(created[1].getId()) == null; }
@Test public void testUsingTemplate() throws SystemException { final Book[] created = new Book[2]; final Book[] found = new Book[2]; TransactionManager tm = getTransactionManager("booksTransactional"); assert tm.getStatus() == 0 : "Transaction should be in state 'RUNNING'"; Book nonTxBook = new Book("1-1-2-3-5", "Random author", "Title"); Book txBook = new Book("1-2-2-4-8", "Not so random author", "Title"); created[0] = bookService.createBookTransactionalCache(nonTxBook); found[0] = bookService.findBookTransactionalCache(Integer.valueOf(9)); created[1] = bookService.createBookNonTransactionalCache(txBook); found[1] = bookService.findBookNonTransactionalCache(Integer.valueOf(9)); // rollback transaction tm.rollback(); // check whether rollback caused cached items to be removed from transactional cache assert !transactionalCache().values().contains(created[0]); assert !transactionalCache().values().contains(found[0]); // rollback should not have any impact on non-transactional cache assert nonTransactionalCache().values().contains(created[1]); assert nonTransactionalCache().values().contains(found[1]); // make sure books have not been persisted assert bookService.findBookCacheDisabled(created[0].getId()) == null; assert bookService.findBookCacheDisabled(created[1].getId()) == null; }
@Test public void testUsingTemplateNoRollback() throws SystemException, HeuristicRollbackException, HeuristicMixedException, RollbackException { final Book[] created = new Book[2]; final Book[] found = new Book[2]; assert !transactionalCache().containsKey(Integer.valueOf(9)); TransactionManager tm = getTransactionManager("booksTransactional"); assert tm.getStatus() == 0 : "Transaction should be in state 'RUNNING'"; Book nonTxBook = new Book("1-1-2-3-5", "Random author", "Title"); Book txBook = new Book("1-2-2-4-8", "Not so random author", "Title"); created[0] = bookService.createBookTransactionalCache(nonTxBook); found[0] = bookService.findBookTransactionalCache(Integer.valueOf(9)); created[1] = bookService.createBookNonTransactionalCache(txBook); found[1] = bookService.findBookNonTransactionalCache(Integer.valueOf(9)); // commit changes tm.commit(); // all items should be cached regardless of cache type assert transactionalCache().values().contains(created[0]); assert transactionalCache().values().contains(found[0]); assert nonTransactionalCache().values().contains(created[1]); assert nonTransactionalCache().values().contains(found[1]); // check whether books have been persisted assert bookService.findBookCacheDisabled(created[0].getId()) != null; assert bookService.findBookCacheDisabled(created[1].getId()) != null; }