@Override public void setCacheManager(EmbeddedCacheManager cm) { this.cache = cm.getCache(cacheName.toString()).getAdvancedCache(); }
public void inject(EmbeddedCacheManager cacheManager) { this.cache = cacheManager.<byte[], byte[]>getCache(cacheName.toString()).getAdvancedCache(); } }
@Override public void fetchExecutionContext(CommandInitializer ci) { this.cache = ci.getCacheManager().getCache(cacheName.toString()); }
public void inject(EmbeddedCacheManager cacheManager) { this.cache = cacheManager.<byte[], byte[]>getCache(cacheName.toString()).getAdvancedCache(); }
@Override public void initializeReplicableCommand(ReplicableCommand c, boolean isRemote) { switch (c.getCommandId()) { case CacheCommandIds.END_INVALIDATION: EndInvalidationCommand endInvalidationCommand = (EndInvalidationCommand) c; endInvalidationCommand.setPutFromLoadValidator(putFromLoadValidators.get(endInvalidationCommand.getCacheName().toString())); break; case CacheCommandIds.BEGIN_INVALIDATION: BeginInvalidationCommand beginInvalidationCommand = (BeginInvalidationCommand) c; // FIXME Dan: Module command initializers are global components since 5.1, so we don't have access to the // beginInvalidationCommand.init(notifier); break; } } }
private void beginInvalidating(InvocationContext ctx, Object key) { TxInvocationContext txCtx = (TxInvocationContext) ctx; // make sure that the command is registered in the transaction txCtx.addAffectedKey(key); GlobalTransaction globalTransaction = txCtx.getGlobalTransaction(); if (!putFromLoadValidator.beginInvalidatingKey(globalTransaction, key)) { throw log.failedInvalidatePendingPut(key, cacheName.toString()); } }
@Override public boolean accept(ReplicableCommand command) { if (commandClass != null && !commandClass.equals(command.getClass())) return false; if (cacheName != null && !cacheName.equals(((CacheRpcCommand) command).getCacheName().toString())) { return false; } if (origin != null && !addressMatches((CacheRpcCommand) command)) return false; if (key != null && !key.equals(((DataCommand) command).getKey())) return false; return true; }
/** * This is invoked only on the receiving node, before {@link #perform(org.infinispan.context.InvocationContext)}. */ @Override public void setCacheManager(EmbeddedCacheManager cm) { String name = cacheName.toString(); if (cm.cacheExists(name)) { Cache cache = cm.getCache(name); searchFactory = ComponentRegistryUtils.getSearchIntegrator(cache); queryInterceptor = ComponentRegistryUtils.getQueryInterceptor(cache); } else { throw new CacheException("Cache named '" + name + "' does not exist on this CacheManager, or was not started"); } }
@Override public CompletableFuture<Object> invokeAsync() { if (queryInterceptor.isStopping()) { throw log.cacheIsStoppingNoCommandAllowed(cacheName.toString()); } IndexManager indexManager = searchFactory.getIndexManager(indexName); if (indexManager == null) { throw new SearchException("Unknown index referenced : " + indexName); } List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel); KeyTransformationHandler handler = queryInterceptor.getKeyTransformationHandler(); LuceneWork workToApply = LuceneWorkConverter.transformKeysToString(luceneWorks.iterator().next(), handler); indexManager.performStreamOperation(workToApply, null, true); return CompletableFutures.completedNull(); }
@Override public CompletableFuture<Object> invokeAsync() throws Throwable { if (queryInterceptor.isStopping()) { throw log.cacheIsStoppingNoCommandAllowed(cacheName.toString()); } IndexManager indexManager = searchFactory.getIndexManager(indexName); if (indexManager == null) { throw new SearchException("Unknown index referenced : " + indexName); } List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel); KeyTransformationHandler handler = queryInterceptor.getKeyTransformationHandler(); LuceneWork workToApply = LuceneWorkConverter.transformKeysToString(luceneWorks.iterator().next(), handler); indexManager.performStreamOperation(workToApply, null, true); return CompletableFutures.completedNull(); }
@Override public CompletableFuture<Object> invokeAsync() { if (queryInterceptor.isStopping()) { throw log.cacheIsStoppingNoCommandAllowed(cacheName.toString()); } List<LuceneWork> luceneWorks = searchFactory.getWorkSerializer().toLuceneWorks(serializedModel); KeyTransformationHandler handler = queryInterceptor.getKeyTransformationHandler(); List<LuceneWork> workToApply = LuceneWorkConverter.transformKeysToString(luceneWorks, handler); for (LuceneWork luceneWork : workToApply) { Iterable<IndexManager> indexManagers = getIndexManagerForModifications(luceneWork); try { for (IndexManager im : indexManagers) { if (log.isDebugEnabled()) log.debugf("Performing remote affinity work %s command on index %s", workToApply, im.getIndexName()); AffinityIndexManager affinityIndexManager = (AffinityIndexManager) im; affinityIndexManager.performOperations(Collections.singletonList(luceneWork), null, false, false); } } catch (Exception e) { return CompletableFuture.completedFuture(new ExceptionResponse(e)); } } return CompletableFuture.completedFuture(Boolean.TRUE); }
@Override public CompletableFuture<Object> invokeAsync() throws Throwable { if (queryInterceptor.isStopping()) { throw log.cacheIsStoppingNoCommandAllowed(cacheName.toString()); } List<LuceneWork> luceneWorks = searchFactory.getWorkSerializer().toLuceneWorks(serializedModel); KeyTransformationHandler handler = queryInterceptor.getKeyTransformationHandler(); List<LuceneWork> workToApply = LuceneWorkConverter.transformKeysToString(luceneWorks, handler); for (LuceneWork luceneWork : workToApply) { Iterable<IndexManager> indexManagers = getIndexManagerForModifications(luceneWork); try { for (IndexManager im : indexManagers) { if (log.isDebugEnabled()) log.debugf("Performing remote affinity work %s command on index %s", workToApply, im.getIndexName()); AffinityIndexManager affinityIndexManager = (AffinityIndexManager) im; affinityIndexManager.performOperations(Collections.singletonList(luceneWork), null, false, false); } } catch (Exception e) { return CompletableFuture.completedFuture(new ExceptionResponse(e)); } } return CompletableFuture.completedFuture(Boolean.TRUE); }
/** * This is invoked only on the receiving node, before {@link #perform(org.infinispan.context.InvocationContext)}. */ @Override public void fetchExecutionContext(CommandInitializer ci) { String name = cacheName.toString(); if (ci.getCacheManager().cacheExists(name)) { Cache cache = ci.getCacheManager().getCache(name); SearchManager searchManager = new SearchManagerImpl(cache.getAdvancedCache()); searchFactory = searchManager.unwrap(SearchIntegrator.class); queryInterceptor = ComponentRegistryUtils.getQueryInterceptor(cache); } else { throw new CacheException("Cache named '" + name + "' does not exist on this CacheManager, or was not started"); } }
@Override public CompletableFuture<Object> invokeAsync() { if (queryInterceptor.isStopping()) { throw log.cacheIsStoppingNoCommandAllowed(cacheName.toString()); } IndexManager indexManager = searchFactory.getIndexManager(indexName); if (indexManager == null) { throw new SearchException("Unknown index referenced : " + indexName); } List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel); KeyTransformationHandler handler = queryInterceptor.getKeyTransformationHandler(); List<LuceneWork> workToApply = LuceneWorkConverter.transformKeysToString(luceneWorks, handler);//idInString field is not serialized, we need to extract it from the key object indexManager.performOperations(workToApply, null); return CompletableFutures.completedNull(); //Return value to be ignored }
@Override public CompletableFuture<Object> invokeAsync() throws Throwable { if (queryInterceptor.isStopping()) { throw log.cacheIsStoppingNoCommandAllowed(cacheName.toString()); } IndexManager indexManager = searchFactory.getIndexManager(indexName); if (indexManager == null) { throw new SearchException("Unknown index referenced : " + indexName); } List<LuceneWork> luceneWorks = indexManager.getSerializer().toLuceneWorks(this.serializedModel); KeyTransformationHandler handler = queryInterceptor.getKeyTransformationHandler(); List<LuceneWork> workToApply = LuceneWorkConverter.transformKeysToString(luceneWorks, handler);//idInString field is not serialized, we need to extract it from the key object indexManager.performOperations(workToApply, null); return CompletableFutures.completedNull(); //Return value to be ignored }
/** * Completes the transaction for a specific cache. */ private CompletableFuture<Void> completeCache(ByteString cacheName) throws Throwable { TxState state = globalTxTable.getState(new CacheXid(cacheName, xid)); AdvancedCache<?, ?> cache = server.cache(header, subject, cacheName.toString()); RpcManager rpcManager = cache.getRpcManager(); if (rpcManager == null || rpcManager.getAddress().equals(state.getOriginator())) { if (isTraceEnabled()) { log().tracef("[%s] Completing local executed transaction.", xid); } return asyncCompleteLocalTransaction(cache, state.getTimeout()); } else if (rpcManager.getMembers().contains(state.getOriginator())) { if (isTraceEnabled()) { log().tracef("[%s] Forward remotely executed transaction to %s.", xid, state.getOriginator()); } return forwardCompleteCommand(cacheName, rpcManager, state); } else { if (isTraceEnabled()) { log().tracef("[%s] Originator, %s, left the cluster.", xid, state.getOriginator()); } return completeWithRemoteCommand(cache, rpcManager, state); } }