1 /* 2 * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @bug 6335337 27 * @summary Test correctness of mxbean flag in descriptor. 28 * @author Luis-Miguel Alventosa 29 * @run clean MXBeanFlagTest 30 * @run build MXBeanFlagTest 31 * @run main MXBeanFlagTest 32 */ 33 34 import javax.management.*; 35 36 public class MXBeanFlagTest { 37 38 public interface Compliant1MXBean {} 39 public static class Compliant1 implements Compliant1MXBean {} 40 41 public interface Compliant2MXBean {} 42 public static class Compliant2 implements Compliant2MXBean {} 43 44 public interface Compliant3MBean {} 45 public static class Compliant3 implements Compliant3MBean {} 46 47 public interface Compliant4MBean {} 48 public static class Compliant4 implements Compliant4MBean {} 49 50 public static void main(String[] args) throws Exception { 51 MBeanServer mbs = MBeanServerFactory.newMBeanServer(); 52 ObjectName on1 = new ObjectName(":type=Compliant1"); 53 ObjectName on2 = new ObjectName(":type=Compliant2"); 54 ObjectName on3 = new ObjectName(":type=Compliant3"); 55 ObjectName on4 = new ObjectName(":type=Compliant4"); 56 Compliant1 compliant1 = new Compliant1(); 57 StandardMBean compliant2 = 58 new StandardMBean(new Compliant2(), Compliant2MXBean.class, true); 59 Compliant3 compliant3 = new Compliant3(); 60 StandardMBean compliant4 = 61 new StandardMBean(new Compliant4(), Compliant4MBean.class, false); 62 mbs.registerMBean(compliant1, on1); 63 mbs.registerMBean(compliant2, on2); 64 mbs.registerMBean(compliant3, on3); 65 mbs.registerMBean(compliant4, on4); 66 String flag1 = (String) 67 mbs.getMBeanInfo(on1).getDescriptor().getFieldValue("mxbean"); 68 String flag2 = (String) 69 mbs.getMBeanInfo(on2).getDescriptor().getFieldValue("mxbean"); 70 String flag3 = (String) 71 mbs.getMBeanInfo(on3).getDescriptor().getFieldValue("mxbean"); 72 String flag4 = (String) 73 mbs.getMBeanInfo(on4).getDescriptor().getFieldValue("mxbean"); 74 System.out.println("MXBean compliant1:\n" + 75 "\t[Expected: mxbean=true] [Got: mxbean=" + flag1 + "]"); 76 System.out.println("MXBean compliant2:\n" + 77 "\t[Expected: mxbean=true] [Got: mxbean=" + flag2 + "]"); 78 System.out.println("Standard MBean compliant3:\n" + 79 "\t[Expected: mxbean=false] [Got: mxbean=" + flag3 + "]"); 80 System.out.println("Standard MBean compliant4:\n" + 81 "\t[Expected: mxbean=false] [Got: mxbean=" + flag4 + "]"); 82 if (flag1 != null && flag1.equals("true") && 83 flag2 != null && flag2.equals("true") && 84 flag3 != null && flag3.equals("false") && 85 flag4 != null && flag4.equals("false")) 86 System.out.println("Test PASSED"); 87 else { 88 System.out.println("Test FAILED"); 89 throw new Exception("invalid flags"); 90 } 91 } 92 }