use of com.hazelcast.spi.OperationService in project hazelcast by hazelcast.
the class Invocation_NestedLocalTest method invokeOnTarget_outerGeneric_innerGeneric.
@Test
public void invokeOnTarget_outerGeneric_innerGeneric() {
HazelcastInstance local = createHazelcastInstance();
OperationService operationService = getOperationService(local);
InnerOperation innerOperation = new InnerOperation(RESPONSE, GENERIC_OPERATION);
OuterOperation outerOperation = new OuterOperation(innerOperation, GENERIC_OPERATION);
InternalCompletableFuture future = operationService.invokeOnTarget(null, outerOperation, getAddress(local));
assertEquals(RESPONSE, future.join());
}
use of com.hazelcast.spi.OperationService in project hazelcast by hazelcast.
the class Invocation_NestedLocalTest method invokeOnPartition_outerLocal_innerSameInstance_callsDifferentPartition_mappedToSameThread.
@Test
public void invokeOnPartition_outerLocal_innerSameInstance_callsDifferentPartition_mappedToSameThread() throws Exception {
Config config = new Config();
config.setProperty(GroupProperty.PARTITION_COUNT.getName(), "2");
config.setProperty(GroupProperty.PARTITION_OPERATION_THREAD_COUNT.getName(), "1");
HazelcastInstance local = createHazelcastInstance(config);
final OperationService operationService = getOperationService(local);
int outerPartitionId = 1;
int innerPartitionId = 0;
InnerOperation innerOperation = new InnerOperation(RESPONSE, innerPartitionId);
OuterOperation outerOperation = new OuterOperation(innerOperation, outerPartitionId);
InternalCompletableFuture future = operationService.invokeOnPartition(null, outerOperation, outerOperation.getPartitionId());
expected.expect(IllegalThreadStateException.class);
expected.expectMessage("cannot make remote call");
future.join();
}
use of com.hazelcast.spi.OperationService in project hazelcast by hazelcast.
the class Invocation_NestedRemoteTest method invokeOnPartition_outerRemote_innerSameInstance_callsDifferentPartition_mappedToSameThread.
@Test
public void invokeOnPartition_outerRemote_innerSameInstance_callsDifferentPartition_mappedToSameThread() throws Exception {
HazelcastInstance[] cluster = createHazelcastInstanceFactory(2).newInstances();
HazelcastInstance local = cluster[0];
HazelcastInstance remote = cluster[1];
OperationService operationService = getOperationService(local);
int outerPartitionId = getPartitionId(remote);
int innerPartitionId = randomPartitionIdMappedToSameThreadAsGivenPartitionIdOnInstance(outerPartitionId, remote, operationService);
InnerOperation innerOperation = new InnerOperation(RESPONSE, innerPartitionId);
OuterOperation outerOperation = new OuterOperation(innerOperation, outerPartitionId);
InternalCompletableFuture future = operationService.invokeOnPartition(null, outerOperation, outerPartitionId);
expected.expect(IllegalThreadStateException.class);
expected.expectMessage("cannot make remote call");
future.join();
}
use of com.hazelcast.spi.OperationService in project hazelcast by hazelcast.
the class Invocation_NestedRemoteTest method invokeOnTarget_outerGeneric_innerGeneric.
@Test
public void invokeOnTarget_outerGeneric_innerGeneric() {
HazelcastInstance[] cluster = createHazelcastInstanceFactory(2).newInstances();
HazelcastInstance local = cluster[0];
HazelcastInstance remote = cluster[1];
OperationService operationService = getOperationService(local);
InnerOperation innerOperation = new InnerOperation(RESPONSE, GENERIC_OPERATION);
OuterOperation outerOperation = new OuterOperation(innerOperation, GENERIC_OPERATION);
InternalCompletableFuture future = operationService.invokeOnTarget(null, outerOperation, getAddress(remote));
assertEquals(RESPONSE, future.join());
}
use of com.hazelcast.spi.OperationService in project hazelcast by hazelcast.
the class Invocation_NestedRemoteTest method invokeOnPartition_outerRemote_innerDifferentInstance_forbidden.
@Test
public void invokeOnPartition_outerRemote_innerDifferentInstance_forbidden() {
HazelcastInstance[] cluster = createHazelcastInstanceFactory(2).newInstances();
HazelcastInstance local = cluster[0];
HazelcastInstance remote = cluster[1];
OperationService operationService = getOperationService(local);
int outerPartitionId = getPartitionId(remote);
int innerPartitionId = getPartitionId(local);
assertNotEquals("partitions should be different", innerPartitionId, outerPartitionId);
InnerOperation innerOperation = new InnerOperation(RESPONSE, innerPartitionId);
OuterOperation outerOperation = new OuterOperation(innerOperation, outerPartitionId);
InternalCompletableFuture future = operationService.invokeOnPartition(null, outerOperation, outerPartitionId);
expected.expect(IllegalThreadStateException.class);
expected.expectMessage("cannot make remote call");
future.join();
}
Aggregations