jdk/test/javax/management/remote/mandatory/connectorServer/StandardForwardersTest.java
changeset 1570 4165709c91e3
parent 1004 5ba8217eb504
equal deleted inserted replaced
1569:54e1de48703e 1570:4165709c91e3
    24 import java.lang.management.ManagementFactory;
    24 import java.lang.management.ManagementFactory;
    25 import java.util.ArrayList;
    25 import java.util.ArrayList;
    26 import java.util.HashMap;
    26 import java.util.HashMap;
    27 import java.util.List;
    27 import java.util.List;
    28 import java.util.Map;
    28 import java.util.Map;
       
    29 import javax.management.ClientContext;
    29 import javax.management.MBeanServer;
    30 import javax.management.MBeanServer;
    30 import javax.management.event.EventClientDelegate;
    31 import javax.management.event.EventClientDelegate;
    31 import javax.management.remote.JMXConnectorServer;
    32 import javax.management.remote.JMXConnectorServer;
    32 
    33 
    33 /*
    34 /*
    60     private static enum Status {DISABLED, ENABLED, DEFAULT}
    61     private static enum Status {DISABLED, ENABLED, DEFAULT}
    61 
    62 
    62     public static void main(String[] args) throws Exception {
    63     public static void main(String[] args) throws Exception {
    63         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    64         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    64 
    65 
       
    66         MBeanServerForwarder ctxFwd = ClientContext.newContextForwarder(mbs, null);
       
    67         Forwarder ctx = new Forwarder(
       
    68                 JMXConnectorServer.CONTEXT_FORWARDER, true, ctxFwd.getClass());
       
    69 
       
    70         MBeanServerForwarder locFwd =
       
    71                 ClientContext.newLocalizeMBeanInfoForwarder(mbs);
       
    72         Forwarder loc = new Forwarder(
       
    73                 JMXConnectorServer.LOCALIZE_MBEAN_INFO_FORWARDER, false,
       
    74                 locFwd.getClass());
       
    75 
    65         MBeanServerForwarder ecdFwd =
    76         MBeanServerForwarder ecdFwd =
    66                 EventClientDelegate.newForwarder();
    77                 EventClientDelegate.newForwarder(mbs, null);
    67         Forwarder ecd = new Forwarder(
    78         Forwarder ecd = new Forwarder(
    68                 JMXConnectorServer.EVENT_CLIENT_DELEGATE_FORWARDER, true,
    79                 JMXConnectorServer.EVENT_CLIENT_DELEGATE_FORWARDER, true,
    69                 ecdFwd.getClass());
    80                 ecdFwd.getClass());
    70 
    81 
    71         Forwarder[] forwarders = {ecd};
    82         Forwarder[] forwarders = {ctx, loc, ecd};
    72 
    83 
    73         // Now go through every combination of forwarders.  Each forwarder
    84         // Now go through every combination of forwarders.  Each forwarder
    74         // may be explicitly enabled, explicitly disabled, or left to its
    85         // may be explicitly enabled, explicitly disabled, or left to its
    75         // default value.
    86         // default value.
    76         int nStatus = Status.values().length;
    87         int nStatus = Status.values().length;
   152                     (status[i] == Status.DEFAULT && forwarders[i].defaultEnabled))
   163                     (status[i] == Status.DEFAULT && forwarders[i].defaultEnabled))
   153                 expectedClasses.add(forwarders[i].expectedClass);
   164                 expectedClasses.add(forwarders[i].expectedClass);
   154         }
   165         }
   155         MBeanServer stop = cs.getMBeanServer();
   166         MBeanServer stop = cs.getMBeanServer();
   156         List<Class<?>> foundClasses = new ArrayList<Class<?>>();
   167         List<Class<?>> foundClasses = new ArrayList<Class<?>>();
   157         for (MBeanServer mbs = cs.getSystemMBeanServer(); mbs != stop;
   168         for (MBeanServer mbs = cs.getSystemMBeanServerForwarder().getMBeanServer();
   158              mbs = ((MBeanServerForwarder) mbs).getMBeanServer())
   169              mbs != stop;
       
   170              mbs = ((MBeanServerForwarder) mbs).getMBeanServer()) {
   159             foundClasses.add(mbs.getClass());
   171             foundClasses.add(mbs.getClass());
       
   172         }
   160         if (!expectedClasses.equals(foundClasses)) {
   173         if (!expectedClasses.equals(foundClasses)) {
   161             fail("Incorrect forwarder chain: expected " + expectedClasses +
   174             fail("Incorrect forwarder chain: expected " + expectedClasses +
   162                     "; found " + foundClasses);
   175                     "; found " + foundClasses);
   163         }
   176         }
   164     }
   177     }
   165 
   178 
   166     // env is consistent if either (a) localizer is not enabled or (b)
   179     // env is consistent if either (a) localizer is not enabled or (b)
   167     // localizer is enabled and context is enabled.
   180     // localizer is enabled and context is enabled.
   168     // Neither of those is present in this codebase so env is always consistent.
       
   169     private static boolean isConsistent(Map<String, String> env) {
   181     private static boolean isConsistent(Map<String, String> env) {
   170         return true;
   182         String ctxS = env.get(JMXConnectorServer.CONTEXT_FORWARDER);
       
   183         boolean ctx = (ctxS == null) ? true : Boolean.parseBoolean(ctxS);
       
   184         String locS = env.get(JMXConnectorServer.LOCALIZE_MBEAN_INFO_FORWARDER);
       
   185         boolean loc = (locS == null) ? false : Boolean.parseBoolean(locS);
       
   186         return !loc || ctx;
   171     }
   187     }
   172 
   188 
   173     private static void fail(String why) {
   189     private static void fail(String why) {
   174         System.out.println("FAILED: " + why);
   190         System.out.println("FAILED: " + why);
   175         failure = why;
   191         failure = why;