@SuppressWarnings("unchecked") public void testProjectionPredicateDifferentClassLoaders() throws Exception {
  final Ignite ignite3=startGrid(3);
  URL[] clsLdrUrls;
  try {
    clsLdrUrls=new URL[]{new URL(GridTestProperties.getProperty("p2p.uri.cls"))};
  }
 catch (  MalformedURLException e) {
    throw new RuntimeException("Define property p2p.uri.cls",e);
  }
  ClassLoader ldr1=new URLClassLoader(clsLdrUrls,getClass().getClassLoader());
  Class taskCls=ldr1.loadClass("org.apache.ignite.tests.p2p.JobStealingTask");
  Class nodeFilterCls=ldr1.loadClass("org.apache.ignite.tests.p2p.ExcludeNodeFilter");
  IgnitePredicate<ClusterNode> nodeFilter=(IgnitePredicate<ClusterNode>)nodeFilterCls.getConstructor(UUID.class).newInstance(ignite2.cluster().localNode().id());
  Map<UUID,Integer> ret=(Map<UUID,Integer>)executeAsync(compute(ignite1.cluster().forPredicate(nodeFilter)),taskCls,null).get(TASK_EXEC_TIMEOUT_MS);
  assert ret != null;
  assert ret.get(ignite1.cluster().localNode().id()) != null && ret.get(ignite1.cluster().localNode().id()) == 2 : ret.get(ignite1.cluster().localNode().id());
  assert ret.get(ignite3.cluster().localNode().id()) != null && ret.get(ignite3.cluster().localNode().id()) == 2 : ret.get(ignite3.cluster().localNode().id());
}

@ SuppressWarnings ( "unchecked" ) public void testProjectionPredicateDifferentClassLoaders ( ) throws Exception { final Ignite ignite3 = startGrid ( 3 ) ; URL [ ] clsLdrUrls ; try { clsLdrUrls = new URL [ ] { new URL ( GridTestProperties . getProperty ( "p2p.uri.cls" ) ) } ; } catch ( MalformedURLException e ) { throw new RuntimeException ( "Define property p2p.uri.cls" , e ) ; } ClassLoader ldr1 = new URLClassLoader ( clsLdrUrls , getClass ( ) . getClassLoader ( ) ) ; Class taskCls = ldr1 . loadClass ( "org.apache.ignite.tests.p2p.JobStealingTask" ) ; Class nodeFilterCls = ldr1 . loadClass ( "org.apache.ignite.tests.p2p.ExcludeNodeFilter" ) ; IgnitePredicate < ClusterNode > nodeFilter = ( IgnitePredicate < ClusterNode > ) nodeFilterCls . getConstructor ( UUID . class ) . newInstance ( ignite2 . cluster ( ) . localNode ( ) . id ( ) ) ; Map < UUID , Integer > ret = ( Map < UUID , Integer > ) executeAsync ( compute ( ignite1 . cluster ( ) . forPredicate ( nodeFilter ) ) , taskCls , null ) . get ( TASK_EXEC_TIMEOUT_MS ) ; assert ret != null ; assert ret . get ( ignite1 . cluster ( ) . localNode ( ) . id ( ) ) != null && ret . get ( ignite1 . cluster ( ) . localNode ( ) . id ( ) ) == 2 : ret . get ( ignite1 . cluster ( ) . localNode ( ) . id ( ) ) ; assert ret . get ( ignite3 . cluster ( ) . localNode ( ) . id ( ) ) != null && ret . get ( ignite3 . cluster ( ) . localNode ( ) . id ( ) ) == 2 : ret . get ( ignite3 . cluster ( ) . localNode ( ) . id ( ) ) ; }
tests job stealing with peer deployment and different class loaders .
