test/jdk/javax/management/remote/rest/RestAdapterPerfTest.java
branchjmx-rest-api
changeset 56006 352a4f213fc6
parent 56003 4f7f76f6be2f
equal deleted inserted replaced
56005:90cff2ac77b8 56006:352a4f213fc6
     8  *          java.management.rest/com.oracle.jmx.remote.rest.mapper
     8  *          java.management.rest/com.oracle.jmx.remote.rest.mapper
     9  * @build RestAdapterPerfTest RestAdapterTest
     9  * @build RestAdapterPerfTest RestAdapterTest
    10  * @run testng/othervm RestAdapterPerfTest
    10  * @run testng/othervm RestAdapterPerfTest
    11  */
    11  */
    12 
    12 
       
    13 import java.lang.reflect.InvocationTargetException;
    13 import jdk.test.lib.Utils;
    14 import jdk.test.lib.Utils;
    14 import jdk.test.lib.process.ProcessTools;
       
    15 import java.util.ArrayList;
       
    16 import java.util.List;
    15 import java.util.List;
    17 import java.util.Random;
    16 import java.util.Random;
    18 import java.util.concurrent.Executors;
    17 import java.util.concurrent.Executors;
    19 import java.util.concurrent.ThreadPoolExecutor;
    18 import java.util.concurrent.ThreadPoolExecutor;
    20 import java.util.concurrent.TimeUnit;
    19 import java.util.concurrent.TimeUnit;
    21 import java.util.concurrent.atomic.AtomicInteger;
    20 import java.util.concurrent.atomic.AtomicInteger;
       
    21 import java.util.stream.Collectors;
       
    22 import java.util.stream.Stream;
    22 
    23 
    23 import org.testng.Assert;
       
    24 import org.testng.annotations.AfterClass;
       
    25 import org.testng.annotations.BeforeClass;
       
    26 import org.testng.annotations.DataProvider;
       
    27 import org.testng.annotations.Test;
    24 import org.testng.annotations.Test;
    28 
    25 
    29 @Test
    26 @Test
    30 public class RestAdapterPerfTest {
    27 public class RestAdapterPerfTest {
    31 
    28 
    33     private static AtomicInteger count = new AtomicInteger(1);
    30     private static AtomicInteger count = new AtomicInteger(1);
    34 
    31 
    35     @Test
    32     @Test
    36     public void testMultipleClients() throws Exception {
    33     public void testMultipleClients() throws Exception {
    37         RestAdapterTest test = new RestAdapterTest();
    34         RestAdapterTest test = new RestAdapterTest();
    38         List<Runnable> tasks = new ArrayList<>();
    35         List<Runnable> tasks = Stream.of(RestAdapterTest.class.getMethods())
    39 
    36                 .filter(m -> m.getName().startsWith("test")).map(m -> (Runnable)() -> {
    40         tasks.add(test::testAllMBeanServers);
    37                     try {
    41         tasks.add(test::testAllMBeanInfo);
    38                         m.invoke(test);
    42         tasks.add(test::testAllMBeans);
    39                     } catch (IllegalAccessException e) {
    43         tasks.add(test::testMBeanFiltering);
    40                     } catch (InvocationTargetException e) {
    44         tasks.add(test::testMBeanGetAttributes);
    41                     }
    45         tasks.add(test::testMBeanSetAttributes);
    42                 }).collect(Collectors.toList());
    46         tasks.add(test::testMbeanNoArgOperations);
       
    47         tasks.add(test::testAllMBeansBulkRequest);
       
    48         tasks.add(test::testThreadMXBeanBulkRequest);
       
    49         tasks.add(test::testThreadMXBeanThreadInfo);
       
    50 
    43 
    51         ThreadPoolExecutor es = (ThreadPoolExecutor) Executors.newFixedThreadPool(20);
    44         ThreadPoolExecutor es = (ThreadPoolExecutor) Executors.newFixedThreadPool(20);
    52         es.setThreadFactory((Runnable R) -> new Thread(R, "perf-" + count.getAndIncrement()));
    45         es.setThreadFactory((Runnable R) -> new Thread(R, "perf-" + count.getAndIncrement()));
    53         long current = System.currentTimeMillis();
    46         long current = System.currentTimeMillis();
    54         test.setupServers();
    47         test.setupServers();