@SuppressWarnings("unchecked") protected List<DiskStoreDetails> getDiskStoreListing(Set<DistributedMember> members) { final Execution membersFunctionExecutor = getMembersFunctionExecutor(members); if (membersFunctionExecutor instanceof AbstractExecution) { ((AbstractExecution) membersFunctionExecutor).setIgnoreDepartedMembers(true); } final ResultCollector<?, ?> resultCollector = membersFunctionExecutor.execute(new ListDiskStoresFunction()); final List<?> results = (List<?>) resultCollector.getResult(); final List<DiskStoreDetails> distributedSystemMemberDiskStores = new ArrayList<DiskStoreDetails>(results.size()); for (final Object result : results) { if (result instanceof Set) { // ignore FunctionInvocationTargetExceptions and other Exceptions... distributedSystemMemberDiskStores.addAll((Set<DiskStoreDetails>) result); } } Collections.sort(distributedSystemMemberDiskStores); return distributedSystemMemberDiskStores; }
@Override public Object call() throws Exception { DistributedSystem ds = getSystem(); Execution e1 = FunctionService.onMembers("g1"); ArrayList<String> args = new ArrayList<String>(); args.add("shutdown"); args.add("g2"); e1 = e1.withArgs(args); ((AbstractExecution)e1).setIgnoreDepartedMembers(true); ArrayList l = (ArrayList) e1.execute(new OnGroupsExceptionFunction()).getResult(); assertEquals(2, l.size()); if (l.get(0) instanceof FunctionInvocationTargetException) { assertTrue((Boolean) l.get(1)); } else if (l.get(0) instanceof Boolean) { assertTrue(l.get(1) instanceof FunctionInvocationTargetException); } else { fail("expected to find a Boolean or throwable at index 0"); } return null; } });
@SuppressWarnings("unchecked") protected List<DiskStoreDetails> getDiskStoreListing() { final Execution membersFunctionExecutor = getMembersFunctionExecutor(getMembers(getCache())); if (membersFunctionExecutor instanceof AbstractExecution) { ((AbstractExecution) membersFunctionExecutor).setIgnoreDepartedMembers(true); } final ResultCollector<?, ?> resultCollector = membersFunctionExecutor.execute(new ListDiskStoresFunction()); final List<?> results = (List<?>) resultCollector.getResult(); final List<DiskStoreDetails> distributedSystemMemberDiskStores = new ArrayList<DiskStoreDetails>(results.size()); for (final Object result : results) { if (result instanceof Set) { // ignore FunctionInvocationTargetExceptions and other Exceptions... distributedSystemMemberDiskStores.addAll((Set<DiskStoreDetails>) result); } } Collections.sort(distributedSystemMemberDiskStores); return distributedSystemMemberDiskStores; }
@SuppressWarnings("unchecked") protected List<IndexDetails> getIndexListing() { final Execution functionExecutor = getMembersFunctionExecutor(getMembers(getCache())); if (functionExecutor instanceof AbstractExecution) { ((AbstractExecution) functionExecutor).setIgnoreDepartedMembers(true); } final ResultCollector<?, ?> resultsCollector = functionExecutor.execute(new ListIndexFunction()); final List<?> results = (List<?>) resultsCollector.getResult(); final List<IndexDetails> indexDetailsList = new ArrayList<IndexDetails>(results.size()); for (Object result : results) { if (result instanceof Set) { // ignore FunctionInvocationTargetExceptions and other Exceptions indexDetailsList.addAll((Set<IndexDetails>) result); } } Collections.sort(indexDetailsList); return indexDetailsList; }
@SuppressWarnings("unchecked") protected List<IndexDetails> getIndexListing() { final Execution functionExecutor = getMembersFunctionExecutor(getMembers(getCache())); if (functionExecutor instanceof AbstractExecution) { ((AbstractExecution) functionExecutor).setIgnoreDepartedMembers(true); } final ResultCollector<?, ?> resultsCollector = functionExecutor.execute(new ListIndexFunction()); final List<?> results = (List<?>) resultsCollector.getResult(); final List<IndexDetails> indexDetailsList = new ArrayList<IndexDetails>(results.size()); for (Object result : results) { if (result instanceof Set) { // ignore FunctionInvocationTargetExceptions and other Exceptions indexDetailsList.addAll((Set<IndexDetails>) result); } } Collections.sort(indexDetailsList); return indexDetailsList; }
logger.debug("Function will ignore failed members"); ((AbstractExecution)execution).setIgnoreDepartedMembers(true);
/*** * Executes a function with arguments on a member , ignores the departed member. * @param function Function to be executed * @param args Arguments passed to the function, pass null if you wish to pass no arguments to the function. * @param targetMember Member on which the function is to be executed. * @return ResultCollector */ public static ResultCollector<?, ?> executeFunction(final Function function, Object args , final DistributedMember targetMember) { Execution execution = null; if (args != null) { execution = FunctionService.onMember(targetMember).withArgs(args); } else { execution = FunctionService.onMember(targetMember); } ((AbstractExecution) execution).setIgnoreDepartedMembers(true); return execution.execute(function); }
/*** * Executes a function with arguments on a member , ignores the departed member. * @param function Function to be executed * @param args Arguments passed to the function, pass null if you wish to pass no arguments to the function. * @param targetMember Member on which the function is to be executed. * @return ResultCollector */ public static ResultCollector<?, ?> executeFunction(final Function function, Object args , final DistributedMember targetMember) { Execution execution = null; if (args != null) { execution = FunctionService.onMember(targetMember).withArgs(args); } else { execution = FunctionService.onMember(targetMember); } ((AbstractExecution) execution).setIgnoreDepartedMembers(true); return execution.execute(function); }
/*** * Executes a function with arguments on a set of members , ignores the departed members. * @param function Function to be executed. * @param args Arguments passed to the function, pass null if you wish to pass no arguments to the function. * @param targetMembers Set of members on which the function is to be executed. * * @return ResultCollector */ public static ResultCollector<?, ?> executeFunction(final Function function, Object args , final Set<DistributedMember> targetMembers) { Execution execution = null; if (args != null) { execution = FunctionService.onMembers(targetMembers).withArgs(args); } else { execution = FunctionService.onMembers(targetMembers); } ((AbstractExecution) execution).setIgnoreDepartedMembers(true); return execution.execute(function); }
/*** * Executes a function with arguments on a set of members , ignores the departed members. * @param function Function to be executed. * @param args Arguments passed to the function, pass null if you wish to pass no arguments to the function. * @param targetMembers Set of members on which the function is to be executed. * * @return ResultCollector */ public static ResultCollector<?, ?> executeFunction(final Function function, Object args , final Set<DistributedMember> targetMembers) { Execution execution = null; if (args != null) { execution = FunctionService.onMembers(targetMembers).withArgs(args); } else { execution = FunctionService.onMembers(targetMembers); } ((AbstractExecution) execution).setIgnoreDepartedMembers(true); return execution.execute(function); }
args.add("g2"); e = e.withArgs(args); ((AbstractExecution)e).setIgnoreDepartedMembers(true); ArrayList l = (ArrayList) e.execute(new OnGroupsExceptionFunction()).getResult(); getLogWriter().info("SWAP:result:"+l);
logger.fine("Function will ignore failed members"); ((AbstractExecution)execution).setIgnoreDepartedMembers(true);
connectToDistributedSystem(props); AbstractExecution exe = (AbstractExecution)FunctionService.onMembers(getSystem()); exe.setIgnoreDepartedMembers(true); ResultCollector rs = exe.execute(new FunctionAdapter(){ @Override
@Test public void testGetIndexListingReturnsFunctionInvocationTargetExceptionInResults() { final Cache mockCache = mockContext.mock(Cache.class, "Cache"); final AbstractExecution mockFunctionExecutor = mockContext.mock(AbstractExecution.class, "Function Executor"); final ResultCollector mockResultCollector = mockContext.mock(ResultCollector.class, "ResultCollector"); final IndexDetails indexDetails = createIndexDetails("memberOne", "/Employees", "empIdIdx"); final List<IndexDetails> expectedIndexDetails = Arrays.asList(indexDetails); final List<Object> results = new ArrayList<Object>(2); results.add(CollectionUtils.asSet(indexDetails)); results.add(new FunctionInvocationTargetException("expected")); mockContext.checking(new Expectations() {{ oneOf(mockFunctionExecutor).setIgnoreDepartedMembers(with(equal(true))); oneOf(mockFunctionExecutor).execute(with(aNonNull(ListIndexFunction.class))); will(returnValue(mockResultCollector)); oneOf(mockResultCollector).getResult(); will(returnValue(results)); }}); final IndexCommands commands = createIndexCommands(mockCache, mockFunctionExecutor); final List<IndexDetails> actualIndexDetails = commands.getIndexListing(); assertNotNull(actualIndexDetails); assertEquals(expectedIndexDetails, actualIndexDetails); }
@Test public void testGetDiskStoreListReturnsFunctionInvocationTargetExceptionInResults() { final Cache mockCache = mockContext.mock(Cache.class, "Cache"); final DistributedMember mockDistributedMember = mockContext.mock(DistributedMember.class, "DistributedMember"); final AbstractExecution mockFunctionExecutor = mockContext.mock(AbstractExecution.class, "Function Executor"); final ResultCollector mockResultCollector = mockContext.mock(ResultCollector.class, "ResultCollector"); final DiskStoreDetails diskStoreDetails = createDiskStoreDetails("memberOne", "cacheServerDiskStore"); final List<DiskStoreDetails> expectedDiskStores = Arrays.asList(diskStoreDetails); final List<Object> results = new ArrayList<Object>(); results.add(CollectionUtils.asSet(diskStoreDetails)); results.add(new FunctionInvocationTargetException("expected")); mockContext.checking(new Expectations() {{ oneOf(mockFunctionExecutor).setIgnoreDepartedMembers(with(equal(true))); oneOf(mockFunctionExecutor).execute(with(aNonNull(ListDiskStoresFunction.class))); will(returnValue(mockResultCollector)); oneOf(mockResultCollector).getResult(); will(returnValue(results)); }}); final DiskStoreCommands commands = createDiskStoreCommands(mockCache, mockDistributedMember, mockFunctionExecutor); final List<DiskStoreDetails> actualDiskStores = commands.getDiskStoreListing(); Assert.assertNotNull(actualDiskStores); assertEquals(expectedDiskStores, actualDiskStores); }
@Test public void testGetIndexListing() { final Cache mockCache = mockContext.mock(Cache.class, "Cache"); final AbstractExecution mockFunctionExecutor = mockContext.mock(AbstractExecution.class, "Function Executor"); final ResultCollector mockResultCollector = mockContext.mock(ResultCollector.class, "ResultCollector"); final IndexDetails indexDetails1 = createIndexDetails("memberOne", "/Employees", "empIdIdx"); final IndexDetails indexDetails2 = createIndexDetails("memberOne", "/Employees", "empLastNameIdx"); final IndexDetails indexDetails3 = createIndexDetails("memberTwo", "/Employees", "empDobIdx"); final List<IndexDetails> expectedIndexDetails = Arrays.asList(indexDetails1, indexDetails2, indexDetails3); final List<Set<IndexDetails>> results = new ArrayList<Set<IndexDetails>>(2); results.add(CollectionUtils.asSet(indexDetails2, indexDetails1)); results.add(CollectionUtils.asSet(indexDetails3)); mockContext.checking(new Expectations() {{ oneOf(mockFunctionExecutor).setIgnoreDepartedMembers(with(equal(true))); oneOf(mockFunctionExecutor).execute(with(aNonNull(ListIndexFunction.class))); will(returnValue(mockResultCollector)); oneOf(mockResultCollector).getResult(); will(returnValue(results)); }}); final IndexCommands commands = createIndexCommands(mockCache, mockFunctionExecutor); final List<IndexDetails> actualIndexDetails = commands.getIndexListing(); assertNotNull(actualIndexDetails); assertEquals(expectedIndexDetails, actualIndexDetails); }
((AbstractExecution) execution).setIgnoreDepartedMembers(true); collector = (ResultCollector<HashSet<Dependency>, Serializable>)execution.execute(new CollectDependencyFunction());
((AbstractExecution) execution).setIgnoreDepartedMembers(true); collector = (ResultCollector<HashSet<Dependency>, Serializable>)execution.execute(new CollectDependencyFunction());
oneOf(mockFunctionExecutor).setIgnoreDepartedMembers(with(equal(true))); oneOf(mockFunctionExecutor).execute(with(aNonNull(ListDiskStoresFunction.class))); will(returnValue(mockResultCollector));