Java Code Examples for javax.management.MBeanInfo#getAttributes()
The following examples show how to use
javax.management.MBeanInfo#getAttributes() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DynamicMBeanFactoryAttributesTest.java From datakernel with Apache License 2.0 | 6 votes |
@Test public void retreivesProperMBeanInfo() { MBeanWithSimpleAttrsAndPojo mbeanOneSample = new MBeanWithSimpleAttrsAndPojo("data", new SamplePojo(5, 100)); DynamicMBean mbean = createDynamicMBeanFor(mbeanOneSample); MBeanInfo mBeanInfo = mbean.getMBeanInfo(); MBeanAttributeInfo[] attributesInfoArr = mBeanInfo.getAttributes(); Map<String, MBeanAttributeInfo> nameToAttr = nameToAttribute(attributesInfoArr); assertEquals(3, nameToAttr.size()); assertTrue(nameToAttr.containsKey("info")); assertTrue(nameToAttr.get("info").isReadable()); assertTrue(nameToAttr.containsKey("details_count")); assertTrue(nameToAttr.get("details_count").isReadable()); assertTrue(nameToAttr.containsKey("details_sum")); assertTrue(nameToAttr.get("details_sum").isReadable()); }
Example 2
Source File: OldMBeanServerTest.java From hottub with GNU General Public License v2.0 | 6 votes |
private static void printAttrs( MBeanServerConnection mbsc1, Class<? extends Exception> expectX) throws Exception { Set<ObjectName> names = mbsc1.queryNames(null, null); for (ObjectName name : names) { System.out.println(name + ":"); MBeanInfo mbi = mbsc1.getMBeanInfo(name); MBeanAttributeInfo[] mbais = mbi.getAttributes(); for (MBeanAttributeInfo mbai : mbais) { String attr = mbai.getName(); Object value; try { value = mbsc1.getAttribute(name, attr); } catch (Exception e) { if (expectX != null && expectX.isInstance(e)) value = "<" + e + ">"; else throw e; } String s = " " + attr + " = " + value; if (s.length() > 80) s = s.substring(0, 77) + "..."; System.out.println(s); } } }
Example 3
Source File: JMXGet.java From hadoop with Apache License 2.0 | 6 votes |
public void printAllMatchedAttributes(String attrRegExp) throws Exception { err("List of the keys matching " + attrRegExp + " :"); Object val = null; Pattern p = Pattern.compile(attrRegExp); for (ObjectName oname : hadoopObjectNames) { err(">>>>>>>>jmx name: " + oname.getCanonicalKeyPropertyListString()); MBeanInfo mbinfo = mbsc.getMBeanInfo(oname); MBeanAttributeInfo[] mbinfos = mbinfo.getAttributes(); for (MBeanAttributeInfo mb : mbinfos) { if (p.matcher(mb.getName()).lookingAt()) { val = mbsc.getAttribute(oname, mb.getName()); System.out.format(format, mb.getName(), (val == null) ? "" : val.toString()); } } } }
Example 4
Source File: MBeanIntrospector.java From dragonwell8_jdk with GNU General Public License v2.0 | 6 votes |
/** * Return the MBeanInfo for the given resource, based on the given * per-interface data. */ final MBeanInfo getMBeanInfo(Object resource, PerInterface<M> perInterface) { MBeanInfo mbi = getClassMBeanInfo(resource.getClass(), perInterface); MBeanNotificationInfo[] notifs = findNotifications(resource); if (notifs == null || notifs.length == 0) return mbi; else { return new MBeanInfo(mbi.getClassName(), mbi.getDescription(), mbi.getAttributes(), mbi.getConstructors(), mbi.getOperations(), notifs, mbi.getDescriptor()); } }
Example 5
Source File: MBeanIntrospector.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
/** * Return the MBeanInfo for the given resource, based on the given * per-interface data. */ final MBeanInfo getMBeanInfo(Object resource, PerInterface<M> perInterface) { MBeanInfo mbi = getClassMBeanInfo(resource.getClass(), perInterface); MBeanNotificationInfo[] notifs = findNotifications(resource); if (notifs == null || notifs.length == 0) return mbi; else { return new MBeanInfo(mbi.getClassName(), mbi.getDescription(), mbi.getAttributes(), mbi.getConstructors(), mbi.getOperations(), notifs, mbi.getDescriptor()); } }
Example 6
Source File: JmxUtil.java From ankush with GNU Lesser General Public License v3.0 | 6 votes |
/** * Gets the attribute name value map. * * @param objName * the obj name * @return the attribute name value map */ public Map<String, Object> getAttributes(ObjectName objName) { Map<String, Object> attrMap = null; try { MBeanInfo mbeanInfo = mbeanServerConnection.getMBeanInfo(objName); MBeanAttributeInfo[] mbeanAttributeInfo = mbeanInfo.getAttributes(); attrMap = new HashMap<String, Object>(); DecimalFormat df = new DecimalFormat("###.##"); for (int i = 0; i < mbeanAttributeInfo.length; i++) { String attrName = mbeanAttributeInfo[i].getName(); Object attrValue = getAttribute(objName, mbeanAttributeInfo[i].getName()); if (mbeanAttributeInfo[i].getType().equals("double")) { attrValue = df.format((Double) getAttribute(objName, mbeanAttributeInfo[i].getName())); } attrMap.put(attrName, attrValue); } } catch (Exception e) { LOGGER.error(e.getMessage(), e); } return attrMap; }
Example 7
Source File: StandardMBeanSupport.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
@Override public MBeanInfo getMBeanInfo() { MBeanInfo mbi = super.getMBeanInfo(); Class<?> resourceClass = getResource().getClass(); if (StandardMBeanIntrospector.isDefinitelyImmutableInfo(resourceClass)) return mbi; return new MBeanInfo(mbi.getClassName(), mbi.getDescription(), mbi.getAttributes(), mbi.getConstructors(), mbi.getOperations(), MBeanIntrospector.findNotifications(getResource()), mbi.getDescriptor()); }
Example 8
Source File: MXBeanTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
private static void testMXBean(MBeanServer mbs, ObjectName on) throws Exception { MBeanInfo mbi = mbs.getMBeanInfo(on); MBeanAttributeInfo[] attrs = mbi.getAttributes(); int nattrs = attrs.length; if (mbi.getAttributes().length != 1) failure("wrong number of attributes: " + attrs); else { MBeanAttributeInfo mbai = attrs[0]; if (mbai.getName().equals("Ints") && mbai.isReadable() && !mbai.isWritable() && mbai.getDescriptor().getFieldValue("openType") .equals(new ArrayType<int[]>(SimpleType.INTEGER, true)) && attrs[0].getType().equals("[I")) success("MBeanAttributeInfo"); else failure("MBeanAttributeInfo: " + mbai); } int[] ints = (int[]) mbs.getAttribute(on, "Ints"); if (equal(ints, new int[] {1, 2, 3}, null)) success("getAttribute"); else failure("getAttribute: " + Arrays.toString(ints)); ExplicitMXBean proxy = JMX.newMXBeanProxy(mbs, on, ExplicitMXBean.class); int[] pints = proxy.getInts(); if (equal(pints, new int[] {1, 2, 3}, null)) success("getAttribute through proxy"); else failure("getAttribute through proxy: " + Arrays.toString(pints)); }
Example 9
Source File: DynamicMBeanFactoryAttributesSelectionTest.java From datakernel with Apache License 2.0 | 5 votes |
@Test(expected = RuntimeException.class) public void throwsExceptionInCaseOfInvalidFieldName() { MBeansStubWithInvalidExtraAttrName mbeanStub = new MBeansStubWithInvalidExtraAttrName(); DynamicMBean mbean = createDynamicMBeanFor(mbeanStub); MBeanInfo mBeanInfo = mbean.getMBeanInfo(); MBeanAttributeInfo[] attributesInfoArr = mBeanInfo.getAttributes(); assertEquals(1, attributesInfoArr.length); assertEquals("stats_sum", attributesInfoArr[0].getName()); }
Example 10
Source File: MXBeanTest.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
private static void testMXBean(MBeanServer mbs, ObjectName on) throws Exception { MBeanInfo mbi = mbs.getMBeanInfo(on); MBeanAttributeInfo[] attrs = mbi.getAttributes(); int nattrs = attrs.length; if (mbi.getAttributes().length != 1) failure("wrong number of attributes: " + attrs); else { MBeanAttributeInfo mbai = attrs[0]; if (mbai.getName().equals("Ints") && mbai.isReadable() && !mbai.isWritable() && mbai.getDescriptor().getFieldValue("openType") .equals(new ArrayType<int[]>(SimpleType.INTEGER, true)) && attrs[0].getType().equals("[I")) success("MBeanAttributeInfo"); else failure("MBeanAttributeInfo: " + mbai); } int[] ints = (int[]) mbs.getAttribute(on, "Ints"); if (equal(ints, new int[] {1, 2, 3}, null)) success("getAttribute"); else failure("getAttribute: " + Arrays.toString(ints)); ExplicitMXBean proxy = JMX.newMXBeanProxy(mbs, on, ExplicitMXBean.class); int[] pints = proxy.getInts(); if (equal(pints, new int[] {1, 2, 3}, null)) success("getAttribute through proxy"); else failure("getAttribute through proxy: " + Arrays.toString(pints)); }
Example 11
Source File: ArtemisMBeanServerGuard.java From activemq-artemis with Apache License 2.0 | 5 votes |
private void handleSetAttribute(MBeanServer proxy, ObjectName objectName, Attribute attribute) throws JMException, IOException { String dataType = null; MBeanInfo info = proxy.getMBeanInfo(objectName); for (MBeanAttributeInfo attr : info.getAttributes()) { if (attr.getName().equals(attribute.getName())) { dataType = attr.getType(); break; } } if (dataType == null) throw new IllegalStateException("Attribute data type can not be found"); handleInvoke(objectName, "set" + attribute.getName(), new Object[]{attribute.getValue()}, new String[]{dataType}); }
Example 12
Source File: StandardMBeanSupport.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
@Override public MBeanInfo getMBeanInfo() { MBeanInfo mbi = super.getMBeanInfo(); Class<?> resourceClass = getResource().getClass(); if (StandardMBeanIntrospector.isDefinitelyImmutableInfo(resourceClass)) return mbi; return new MBeanInfo(mbi.getClassName(), mbi.getDescription(), mbi.getAttributes(), mbi.getConstructors(), mbi.getOperations(), MBeanIntrospector.findNotifications(getResource()), mbi.getDescriptor()); }
Example 13
Source File: StandardMBeanSupport.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
@Override public MBeanInfo getMBeanInfo() { MBeanInfo mbi = super.getMBeanInfo(); Class<?> resourceClass = getResource().getClass(); if (StandardMBeanIntrospector.isDefinitelyImmutableInfo(resourceClass)) return mbi; return new MBeanInfo(mbi.getClassName(), mbi.getDescription(), mbi.getAttributes(), mbi.getConstructors(), mbi.getOperations(), MBeanIntrospector.findNotifications(getResource()), mbi.getDescriptor()); }
Example 14
Source File: JmxInterfaceStandardRolesBasicTestCase.java From wildfly-core with GNU Lesser General Public License v2.1 | 5 votes |
private void readAttributeAccessInfo(JmxManagementInterface client, String address, String attribute, boolean read, boolean write) throws Exception { ObjectName objectName = new ObjectName(getJmxDomain() + ":" + address); MBeanInfo mBeanInfo = client.getConnection().getMBeanInfo(objectName); for (MBeanAttributeInfo attrInfo : mBeanInfo.getAttributes()) { if (attrInfo.getName().equals(attribute)) { Assert.assertEquals(read, attrInfo.isReadable()); Assert.assertEquals(write, attrInfo.isWritable()); return; } } fail("Attribute " + attribute + " not found at " + address); }
Example 15
Source File: AnnotationTest.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
private static void check(MBeanServer mbs, ObjectName on) throws Exception { MBeanInfo mbi = mbs.getMBeanInfo(on); // check the MBean itself check(mbi); // check attributes MBeanAttributeInfo[] attrs = mbi.getAttributes(); for (MBeanAttributeInfo attr : attrs) { check(attr); if (attr.getName().equals("ReadOnly")) check("@Full", attr.getDescriptor(), expectedFullDescriptor); } // check operations MBeanOperationInfo[] ops = mbi.getOperations(); for (MBeanOperationInfo op : ops) { check(op); check(op.getSignature()); } MBeanConstructorInfo[] constrs = mbi.getConstructors(); for (MBeanConstructorInfo constr : constrs) { check(constr); check(constr.getSignature()); } }
Example 16
Source File: Monitor.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
Object getAttribute(MBeanServerConnection mbsc, ObjectName object, String attribute) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException, IOException { // Check for "ObservedAttribute" replacement. // This could happen if a thread A called setObservedAttribute() // while other thread B was in the middle of the monitor() method // and received the old observed attribute value. // final boolean lookupMBeanInfo; synchronized (this) { if (!isActive()) throw new IllegalArgumentException( "The monitor has been stopped"); if (!attribute.equals(getObservedAttribute())) throw new IllegalArgumentException( "The observed attribute has been changed"); lookupMBeanInfo = (firstAttribute == null && attribute.indexOf('.') != -1); } // Look up MBeanInfo if needed // final MBeanInfo mbi; if (lookupMBeanInfo) { try { mbi = mbsc.getMBeanInfo(object); } catch (IntrospectionException e) { throw new IllegalArgumentException(e); } } else { mbi = null; } // Check for complex type attribute // final String fa; synchronized (this) { if (!isActive()) throw new IllegalArgumentException( "The monitor has been stopped"); if (!attribute.equals(getObservedAttribute())) throw new IllegalArgumentException( "The observed attribute has been changed"); if (firstAttribute == null) { if (attribute.indexOf('.') != -1) { MBeanAttributeInfo mbaiArray[] = mbi.getAttributes(); for (MBeanAttributeInfo mbai : mbaiArray) { if (attribute.equals(mbai.getName())) { firstAttribute = attribute; break; } } if (firstAttribute == null) { String tokens[] = attribute.split("\\.", -1); firstAttribute = tokens[0]; for (int i = 1; i < tokens.length; i++) remainingAttributes.add(tokens[i]); isComplexTypeAttribute = true; } } else { firstAttribute = attribute; } } fa = firstAttribute; } return mbsc.getAttribute(object, fa); }
Example 17
Source File: TypeNameTest.java From dragonwell8_jdk with GNU General Public License v2.0 | 4 votes |
public static void main(String[] args) throws Exception { TestMXBean testImpl = (TestMXBean) Proxy.newProxyInstance( TestMXBean.class.getClassLoader(), new Class<?>[] {TestMXBean.class}, nullIH); Object mxbean = new StandardMBean(testImpl, TestMXBean.class, true); MBeanServer mbs = MBeanServerFactory.newMBeanServer(); ObjectName name = new ObjectName("a:b=c"); mbs.registerMBean(mxbean, name); MBeanInfo mbi = mbs.getMBeanInfo(name); MBeanAttributeInfo[] mbais = mbi.getAttributes(); boolean sawTabular = false; for (MBeanAttributeInfo mbai : mbais) { String attrName = mbai.getName(); String attrTypeName = (String) mbai.getDescriptor().getFieldValue("originalType"); String fieldName = attrName + "Name"; Field nameField = TestMXBean.class.getField(fieldName); String expectedTypeName = (String) nameField.get(null); if (expectedTypeName.equals(attrTypeName)) { System.out.println("OK: " + attrName + ": " + attrTypeName); } else { fail("For attribute " + attrName + " expected type name \"" + expectedTypeName + "\", found type name \"" + attrTypeName + "\""); } if (mbai.getType().equals(TabularData.class.getName())) { sawTabular = true; TabularType tt = (TabularType) mbai.getDescriptor().getFieldValue("openType"); if (tt.getTypeName().equals(attrTypeName)) { System.out.println("OK: TabularType name for " + attrName); } else { fail("For attribute " + attrName + " expected TabularType " + "name \"" + attrTypeName + "\", found \"" + tt.getTypeName()); } } } if (!sawTabular) fail("Test bug: did not test TabularType name"); if (failure == null) System.out.println("TEST PASSED"); else throw new Exception("TEST FAILED: " + failure); }
Example 18
Source File: StandardAgent.java From cacheonix-core with GNU Lesser General Public License v2.1 | 4 votes |
private void printMBeanInfo(ObjectName mbeanObjectName, String mbeanName) { echo("\n>>> Getting the management information for the "+ mbeanName +" MBean"); echo(" using the getMBeanInfo method of the MBeanServer"); sleep(1000); MBeanInfo info = null; try { info = server.getMBeanInfo(mbeanObjectName); } catch (Exception e) { echo("\t!!! Could not get MBeanInfo object for "+ mbeanName +" !!!"); e.printStackTrace(); return; } echo("\nCLASSNAME: \t"+ info.getClassName()); echo("\nDESCRIPTION: \t"+ info.getDescription()); echo("\nATTRIBUTES"); MBeanAttributeInfo[] attrInfo = info.getAttributes(); if (attrInfo.length>0) { for(int i=0; i<attrInfo.length; i++) { echo(" ** NAME: \t"+ attrInfo[i].getName()); echo(" DESCR: \t"+ attrInfo[i].getDescription()); echo(" TYPE: \t"+ attrInfo[i].getType() + "\tREAD: "+ attrInfo[i].isReadable() + "\tWRITE: "+ attrInfo[i].isWritable()); } } else echo(" ** No attributes **"); echo("\nCONSTRUCTORS"); MBeanConstructorInfo[] constrInfo = info.getConstructors(); for(int i=0; i<constrInfo.length; i++) { echo(" ** NAME: \t"+ constrInfo[i].getName()); echo(" DESCR: \t"+ constrInfo[i].getDescription()); echo(" PARAM: \t"+ constrInfo[i].getSignature().length +" parameter(s)"); } echo("\nOPERATIONS"); MBeanOperationInfo[] opInfo = info.getOperations(); if (opInfo.length>0) { for(int i=0; i<opInfo.length; i++) { echo(" ** NAME: \t"+ opInfo[i].getName()); echo(" DESCR: \t"+ opInfo[i].getDescription()); echo(" PARAM: \t"+ opInfo[i].getSignature().length +" parameter(s)"); } } else echo(" ** No operations ** "); echo("\nNOTIFICATIONS"); MBeanNotificationInfo[] notifInfo = info.getNotifications(); if (notifInfo.length>0) { for(int i=0; i<notifInfo.length; i++) { echo(" ** NAME: \t"+ notifInfo[i].getName()); echo(" DESCR: \t"+ notifInfo[i].getDescription()); } } else echo(" ** No notifications **"); }
Example 19
Source File: Monitor.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
Object getAttribute(MBeanServerConnection mbsc, ObjectName object, String attribute) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException, IOException { // Check for "ObservedAttribute" replacement. // This could happen if a thread A called setObservedAttribute() // while other thread B was in the middle of the monitor() method // and received the old observed attribute value. // final boolean lookupMBeanInfo; synchronized (this) { if (!isActive()) throw new IllegalArgumentException( "The monitor has been stopped"); if (!attribute.equals(getObservedAttribute())) throw new IllegalArgumentException( "The observed attribute has been changed"); lookupMBeanInfo = (firstAttribute == null && attribute.indexOf('.') != -1); } // Look up MBeanInfo if needed // final MBeanInfo mbi; if (lookupMBeanInfo) { try { mbi = mbsc.getMBeanInfo(object); } catch (IntrospectionException e) { throw new IllegalArgumentException(e); } } else { mbi = null; } // Check for complex type attribute // final String fa; synchronized (this) { if (!isActive()) throw new IllegalArgumentException( "The monitor has been stopped"); if (!attribute.equals(getObservedAttribute())) throw new IllegalArgumentException( "The observed attribute has been changed"); if (firstAttribute == null) { if (attribute.indexOf('.') != -1) { MBeanAttributeInfo mbaiArray[] = mbi.getAttributes(); for (MBeanAttributeInfo mbai : mbaiArray) { if (attribute.equals(mbai.getName())) { firstAttribute = attribute; break; } } if (firstAttribute == null) { String tokens[] = attribute.split("\\.", -1); firstAttribute = tokens[0]; for (int i = 1; i < tokens.length; i++) remainingAttributes.add(tokens[i]); isComplexTypeAttribute = true; } } else { firstAttribute = attribute; } } fa = firstAttribute; } return mbsc.getAttribute(object, fa); }
Example 20
Source File: ProcessDefinitionsTest.java From flowable-engine with Apache License 2.0 | 4 votes |
@Test public void testAnnotations() throws MalformedObjectNameException, JMException { ModelMBean modelBean = assembler.assemble(processDefinitionsMBean, new ObjectName("domain", "key", "value")); assertNotNull(modelBean); MBeanInfo beanInfo = modelBean.getMBeanInfo(); assertNotNull(beanInfo); assertNotNull(beanInfo.getOperations()); assertEquals(9, beanInfo.getOperations().length); int counter = 0; for (MBeanOperationInfo op : beanInfo.getOperations()) { if (op.getName().equals("deleteDeployment")) { counter++; assertEquals("delete deployment", op.getDescription()); assertEquals("void", op.getReturnType()); assertEquals(1, op.getSignature().length); assertEquals("java.lang.String", op.getSignature()[0].getType()); } else if (op.getName().equals("suspendProcessDefinitionById")) { counter++; assertEquals("Suspend given process ID", op.getDescription()); assertEquals("void", op.getReturnType()); assertEquals(1, op.getSignature().length); assertEquals("java.lang.String", op.getSignature()[0].getType()); } else if (op.getName().equals("activatedProcessDefinitionById")) { counter++; assertEquals("Activate given process ID", op.getDescription()); assertEquals("void", op.getReturnType()); assertEquals(1, op.getSignature().length); assertEquals("java.lang.String", op.getSignature()[0].getType()); } else if (op.getName().equals("suspendProcessDefinitionByKey")) { counter++; assertEquals("Suspend given process ID", op.getDescription()); assertEquals("void", op.getReturnType()); assertEquals(1, op.getSignature().length); assertEquals("java.lang.String", op.getSignature()[0].getType()); } else if (op.getName().equals("activatedProcessDefinitionByKey")) { counter++; assertEquals("Activate given process ID", op.getDescription()); assertEquals("void", op.getReturnType()); assertEquals(1, op.getSignature().length); assertEquals("java.lang.String", op.getSignature()[0].getType()); } else if (op.getName().equals("deployProcessDefinition")) { counter++; assertEquals("Deploy Process Definition", op.getDescription()); assertEquals("void", op.getReturnType()); assertEquals(2, op.getSignature().length); assertEquals("java.lang.String", op.getSignature()[0].getType()); assertEquals("java.lang.String", op.getSignature()[1].getType()); } } assertEquals(6, counter); // check attributes assertNotNull(beanInfo.getAttributes()); assertEquals(2, beanInfo.getAttributes().length); counter = 0; for (MBeanAttributeInfo attr : beanInfo.getAttributes()) { if (attr.getName().equals("ProcessDefinitions")) { counter++; assertEquals("List of Process definitions", attr.getDescription()); assertEquals("java.util.List", attr.getType()); } else if (attr.getName().equals("Deployments")) { counter++; assertEquals("List of deployed Processes", attr.getDescription()); assertEquals("java.util.List", attr.getType()); } } assertEquals(2, counter); }