use of org.infinispan.commands.write.ReplaceCommand in project infinispan by infinispan.
the class CacheMgmtInterceptorTest method testVisitReplaceCommandException.
public void testVisitReplaceCommandException() throws Throwable {
ReplaceCommand command = new ReplaceCommand(KEY, VALUE, false, null, 0, 0, null);
InvocationStage stage = makeStage(interceptor.visitReplaceCommand(ctx, command));
assertFalse(stage.isDone());
timeService.advance(1);
nextInterceptor.completeLastInvocationExceptionally(new TestException());
expectInvocationException(stage);
assertEquals(1, interceptor.getAverageWriteTime());
}
use of org.infinispan.commands.write.ReplaceCommand in project infinispan by infinispan.
the class CacheMgmtInterceptorTest method testVisitReplaceCommand.
public void testVisitReplaceCommand() throws Throwable {
ReplaceCommand command = new ReplaceCommand(KEY, VALUE, false, null, 0, 0, null);
InvocationStage stage = makeStage(interceptor.visitReplaceCommand(ctx, command));
assertFalse(stage.isDone());
timeService.advance(1);
nextInterceptor.completeLastInvocation(null);
assertNull(stage.get());
assertEquals(1, interceptor.getAverageWriteTime());
}
use of org.infinispan.commands.write.ReplaceCommand in project infinispan by infinispan.
the class SingleKeyBackupWriteCommand method createWriteCommand.
@Override
WriteCommand createWriteCommand() {
DataWriteCommand command;
switch(operation) {
case REMOVE:
command = new RemoveCommand(key, null, segmentId, getFlags(), getCommandInvocationId());
break;
case WRITE:
command = EnumUtil.containsAny(getFlags(), FlagBitSets.IRAC_UPDATE) ? new IracPutKeyValueCommand(key, segmentId, getCommandInvocationId(), valueOrFunction, metadata, internalMetadata) : new PutKeyValueCommand(key, valueOrFunction, false, metadata, segmentId, getFlags(), getCommandInvocationId());
break;
case COMPUTE:
command = new ComputeCommand(key, (BiFunction) valueOrFunction, false, segmentId, getFlags(), getCommandInvocationId(), metadata);
break;
case REPLACE:
command = new ReplaceCommand(key, null, valueOrFunction, metadata, segmentId, getFlags(), getCommandInvocationId());
break;
case REMOVE_EXPIRED:
// Doesn't matter if it is max idle or not - important thing is that it raises expired event
command = new RemoveExpiredCommand(key, valueOrFunction, null, false, segmentId, getFlags(), getCommandInvocationId());
break;
case COMPUTE_IF_PRESENT:
command = new ComputeCommand(key, (BiFunction) valueOrFunction, true, segmentId, getFlags(), getCommandInvocationId(), metadata);
break;
case COMPUTE_IF_ABSENT:
command = new ComputeIfAbsentCommand(key, (Function) valueOrFunction, segmentId, getFlags(), getCommandInvocationId(), metadata);
break;
default:
throw new IllegalStateException("Unknown operation " + operation);
}
command.setInternalMetadata(internalMetadata);
return command;
}
use of org.infinispan.commands.write.ReplaceCommand in project infinispan by infinispan.
the class VersionAwareMarshallerTest method testReplicableCommandsMarshalling.
public void testReplicableCommandsMarshalling() throws Exception {
ByteString cacheName = ByteString.fromString(TestingUtil.getDefaultCacheName(cm));
ClusteredGetCommand c2 = new ClusteredGetCommand("key", cacheName, 0, EnumUtil.EMPTY_BIT_SET);
marshallAndAssertEquality(c2);
// SizeCommand does not have an empty constructor, so doesn't look to be one that is marshallable.
GetKeyValueCommand c4 = new GetKeyValueCommand("key", 0, EnumUtil.EMPTY_BIT_SET);
marshallAndAssertEquality(c4);
PutKeyValueCommand c5 = new PutKeyValueCommand("k", "v", false, new EmbeddedMetadata.Builder().build(), 0, EnumUtil.EMPTY_BIT_SET, CommandInvocationId.generateId(null));
marshallAndAssertEquality(c5);
RemoveCommand c6 = new RemoveCommand("key", null, 0, EnumUtil.EMPTY_BIT_SET, CommandInvocationId.generateId(null));
marshallAndAssertEquality(c6);
// EvictCommand does not have an empty constructor, so doesn't look to be one that is marshallable.
InvalidateCommand c7 = new InvalidateCommand(EnumUtil.EMPTY_BIT_SET, CommandInvocationId.generateId(null), "key1", "key2");
marshallAndAssertEquality(c7);
InvalidateCommand c71 = new InvalidateL1Command(EnumUtil.EMPTY_BIT_SET, CommandInvocationId.generateId(null), "key1", "key2");
marshallAndAssertEquality(c71);
ReplaceCommand c8 = new ReplaceCommand("key", "oldvalue", "newvalue", new EmbeddedMetadata.Builder().build(), 0, EnumUtil.EMPTY_BIT_SET, CommandInvocationId.generateId(null));
marshallAndAssertEquality(c8);
ClearCommand c9 = new ClearCommand();
marshallAndAssertEquality(c9);
Map<Integer, GlobalTransaction> m1 = new HashMap<>();
for (int i = 0; i < 10; i++) {
GlobalTransaction gtx = gtf.newGlobalTransaction(new JGroupsAddress(UUID.randomUUID()), false);
m1.put(1000 * i, gtx);
}
PutMapCommand c10 = new PutMapCommand(m1, new EmbeddedMetadata.Builder().build(), EnumUtil.EMPTY_BIT_SET, CommandInvocationId.generateId(null));
marshallAndAssertEquality(c10);
Address local = new JGroupsAddress(UUID.randomUUID());
GlobalTransaction gtx = gtf.newGlobalTransaction(local, false);
PrepareCommand c11 = new PrepareCommand(cacheName, gtx, true, c5, c6, c8, c10);
marshallAndAssertEquality(c11);
CommitCommand c12 = new CommitCommand(cacheName, gtx);
marshallAndAssertEquality(c12);
RollbackCommand c13 = new RollbackCommand(cacheName, gtx);
marshallAndAssertEquality(c13);
}
use of org.infinispan.commands.write.ReplaceCommand in project infinispan by infinispan.
the class CacheImpl method replaceAsync.
final CompletableFuture<V> replaceAsync(final K key, final V value, final Metadata metadata, final long explicitFlags, ContextBuilder contextBuilder) {
assertKeyValueNotNull(key, value);
ReplaceCommand command = createReplaceCommand(key, value, metadata, explicitFlags);
return invocationHelper.invokeAsync(contextBuilder, command, 1);
}
Aggregations