Java 类javax.management.modelmbean.ModelMBeanNotificationInfo 实例源码

项目:cuba    文件:AnnotationMBeanInfoAssembler.java   
/**
 * Reads the {@link ManagedNotification} metadata from the {@code Class} of the managed resource
 * and generates and returns the corresponding {@link javax.management.modelmbean.ModelMBeanNotificationInfo} metadata.
 */
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    Class intf = findJmxInterface(beanKey, AopUtils.getTargetClass(managedBean));
    ManagedNotification[] notificationAttributes =
            this.attributeSource.getManagedNotifications(intf);
    ModelMBeanNotificationInfo[] notificationInfos =
            new ModelMBeanNotificationInfo[notificationAttributes.length];

    for (int i = 0; i < notificationAttributes.length; i++) {
        ManagedNotification attribute = notificationAttributes[i];
        notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute);
    }

    return notificationInfos;
}
项目:TayzGrid    文件:MBean.java   
public MBean(String className, String description, Collection<MBeanAttribute> attributes, Collection<MBeanOperation> operations)
{
    List<MBeanAttributeInfo> attributeInfos = new ArrayList<MBeanAttributeInfo>();
    Map<String, MBeanAttribute> attributesBuilder = new TreeMap<String, MBeanAttribute>();
    for (MBeanAttribute attribute : attributes) {
        attributesBuilder.put(attribute.getName(), attribute);
        attributeInfos.add(attribute.getInfo());
    }
    this.attributes = Collections.unmodifiableMap(attributesBuilder);

    Map<Signature, MBeanOperation> operationsBuilder = new HashMap<Signature, MBeanOperation>();
    List<MBeanOperationInfo> operationsInfos = new ArrayList<MBeanOperationInfo>();
    for (MBeanOperation operation : operations) {
        operationsBuilder.put(operation.getSignature(), operation);
        operationsInfos.add(operation.getInfo());
    }
    this.operations = Collections.unmodifiableMap(operationsBuilder);

    mbeanInfo = new MBeanInfo(className,
            description,
            attributeInfos.toArray(new MBeanAttributeInfo[attributeInfos.size()]),
            new ModelMBeanConstructorInfo[0],
            operationsInfos.toArray(new MBeanOperationInfo[operationsInfos.size()]),
            new ModelMBeanNotificationInfo[0]);
}
项目:wildfly-core    文件:TestModelMBean.java   
@Override
public MBeanInfo getMBeanInfo() {
    try {
        ModelMBeanAttributeInfo[] attributes = new ModelMBeanAttributeInfo[0];
        ModelMBeanConstructorInfo[] constructors = new ModelMBeanConstructorInfo[] {
                new ModelMBeanConstructorInfo("-", this.getClass().getConstructor())
        };
        ModelMBeanOperationInfo[] operations = new ModelMBeanOperationInfo[] {
                new ModelMBeanOperationInfo("info", "-", new MBeanParameterInfo[0], Void.class.getName(), ModelMBeanOperationInfo.INFO),
                new ModelMBeanOperationInfo("action", "-", new MBeanParameterInfo[0], Void.class.getName(), ModelMBeanOperationInfo.ACTION),
                new ModelMBeanOperationInfo("actionInfo", "-", new MBeanParameterInfo[0], Void.class.getName(), ModelMBeanOperationInfo.ACTION_INFO),
                new ModelMBeanOperationInfo("unknown", "-", new MBeanParameterInfo[0], Void.class.getName(), ModelMBeanOperationInfo.UNKNOWN)
        };
        ModelMBeanNotificationInfo[] notifications = new ModelMBeanNotificationInfo[0];
        return new ModelMBeanInfoSupport(this.getClass().getName(), "-", attributes, constructors, operations, notifications);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
项目:lams    文件:JmxMetadataUtils.java   
/**
 * Convert the supplied {@link ManagedNotification} into the corresponding
 * {@link javax.management.modelmbean.ModelMBeanNotificationInfo}.
 */
public static ModelMBeanNotificationInfo convertToModelMBeanNotificationInfo(ManagedNotification notificationInfo) {
    String name = notificationInfo.getName();
    if (!StringUtils.hasText(name)) {
        throw new IllegalArgumentException("Must specify notification name");
    }

    String[] notifTypes = notificationInfo.getNotificationTypes();
    if (notifTypes == null || notifTypes.length == 0) {
        throw new IllegalArgumentException("Must specify at least one notification type");
    }

    String description = notificationInfo.getDescription();
    return new ModelMBeanNotificationInfo(notifTypes, name, description);
}
项目:lams    文件:MetadataMBeanInfoAssembler.java   
/**
 * Reads the {@link ManagedNotification} metadata from the {@code Class} of the managed resource
 * and generates and returns the corresponding {@link ModelMBeanNotificationInfo} metadata.
 */
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ManagedNotification[] notificationAttributes =
            this.attributeSource.getManagedNotifications(getClassToExpose(managedBean));
    ModelMBeanNotificationInfo[] notificationInfos =
            new ModelMBeanNotificationInfo[notificationAttributes.length];

    for (int i = 0; i < notificationAttributes.length; i++) {
        ManagedNotification attribute = notificationAttributes[i];
        notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute);
    }

    return notificationInfos;
}
项目:lams    文件:AbstractConfigurableMBeanInfoAssembler.java   
public void setNotificationInfos(ManagedNotification[] notificationInfos) {
    ModelMBeanNotificationInfo[] infos = new ModelMBeanNotificationInfo[notificationInfos.length];
    for (int i = 0; i < notificationInfos.length; i++) {
        ManagedNotification notificationInfo = notificationInfos[i];
        infos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(notificationInfo);
    }
    this.notificationInfos = infos;
}
项目:lams    文件:AbstractConfigurableMBeanInfoAssembler.java   
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ModelMBeanNotificationInfo[] result = null;
    if (StringUtils.hasText(beanKey)) {
        result = this.notificationInfoMappings.get(beanKey);
    }
    if (result == null) {
        result = this.notificationInfos;
    }
    return (result != null ? result : new ModelMBeanNotificationInfo[0]);
}
项目:spring4-understanding    文件:JmxMetadataUtils.java   
/**
 * Convert the supplied {@link ManagedNotification} into the corresponding
 * {@link javax.management.modelmbean.ModelMBeanNotificationInfo}.
 */
public static ModelMBeanNotificationInfo convertToModelMBeanNotificationInfo(ManagedNotification notificationInfo) {
    String name = notificationInfo.getName();
    if (!StringUtils.hasText(name)) {
        throw new IllegalArgumentException("Must specify notification name");
    }

    String[] notifTypes = notificationInfo.getNotificationTypes();
    if (notifTypes == null || notifTypes.length == 0) {
        throw new IllegalArgumentException("Must specify at least one notification type");
    }

    String description = notificationInfo.getDescription();
    return new ModelMBeanNotificationInfo(notifTypes, name, description);
}
项目:spring4-understanding    文件:MetadataMBeanInfoAssembler.java   
/**
 * Reads the {@link ManagedNotification} metadata from the {@code Class} of the managed resource
 * and generates and returns the corresponding {@link ModelMBeanNotificationInfo} metadata.
 */
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ManagedNotification[] notificationAttributes =
            this.attributeSource.getManagedNotifications(getClassToExpose(managedBean));
    ModelMBeanNotificationInfo[] notificationInfos =
            new ModelMBeanNotificationInfo[notificationAttributes.length];

    for (int i = 0; i < notificationAttributes.length; i++) {
        ManagedNotification attribute = notificationAttributes[i];
        notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute);
    }

    return notificationInfos;
}
项目:spring4-understanding    文件:AbstractConfigurableMBeanInfoAssembler.java   
public void setNotificationInfos(ManagedNotification[] notificationInfos) {
    ModelMBeanNotificationInfo[] infos = new ModelMBeanNotificationInfo[notificationInfos.length];
    for (int i = 0; i < notificationInfos.length; i++) {
        ManagedNotification notificationInfo = notificationInfos[i];
        infos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(notificationInfo);
    }
    this.notificationInfos = infos;
}
项目:spring4-understanding    文件:AbstractConfigurableMBeanInfoAssembler.java   
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ModelMBeanNotificationInfo[] result = null;
    if (StringUtils.hasText(beanKey)) {
        result = this.notificationInfoMappings.get(beanKey);
    }
    if (result == null) {
        result = this.notificationInfos;
    }
    return (result != null ? result : new ModelMBeanNotificationInfo[0]);
}
项目:my-spring-cache-redis    文件:JmxMetadataUtils.java   
/**
 * Convert the supplied {@link ManagedNotification} into the corresponding
 * {@link javax.management.modelmbean.ModelMBeanNotificationInfo}.
 */
public static ModelMBeanNotificationInfo convertToModelMBeanNotificationInfo(ManagedNotification notificationInfo) {
    String name = notificationInfo.getName();
    if (!StringUtils.hasText(name)) {
        throw new IllegalArgumentException("Must specify notification name");
    }

    String[] notifTypes = notificationInfo.getNotificationTypes();
    if (notifTypes == null || notifTypes.length == 0) {
        throw new IllegalArgumentException("Must specify at least one notification type");
    }

    String description = notificationInfo.getDescription();
    return new ModelMBeanNotificationInfo(notifTypes, name, description);
}
项目:my-spring-cache-redis    文件:MetadataMBeanInfoAssembler.java   
/**
 * Reads the {@link ManagedNotification} metadata from the {@code Class} of the managed resource
 * and generates and returns the corresponding {@link ModelMBeanNotificationInfo} metadata.
 */
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ManagedNotification[] notificationAttributes =
            this.attributeSource.getManagedNotifications(getClassToExpose(managedBean));
    ModelMBeanNotificationInfo[] notificationInfos =
            new ModelMBeanNotificationInfo[notificationAttributes.length];

    for (int i = 0; i < notificationAttributes.length; i++) {
        ManagedNotification attribute = notificationAttributes[i];
        notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute);
    }

    return notificationInfos;
}
项目:my-spring-cache-redis    文件:AbstractConfigurableMBeanInfoAssembler.java   
public void setNotificationInfos(ManagedNotification[] notificationInfos) {
    ModelMBeanNotificationInfo[] infos = new ModelMBeanNotificationInfo[notificationInfos.length];
    for (int i = 0; i < notificationInfos.length; i++) {
        ManagedNotification notificationInfo = notificationInfos[i];
        infos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(notificationInfo);
    }
    this.notificationInfos = infos;
}
项目:my-spring-cache-redis    文件:AbstractConfigurableMBeanInfoAssembler.java   
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ModelMBeanNotificationInfo[] result = null;
    if (StringUtils.hasText(beanKey)) {
        result = this.notificationInfoMappings.get(beanKey);
    }
    if (result == null) {
        result = this.notificationInfos;
    }
    return (result != null ? result : new ModelMBeanNotificationInfo[0]);
}
项目:spring    文件:JmxMetadataUtils.java   
/**
 * Convert the supplied {@link ManagedNotification} into the corresponding
 * {@link javax.management.modelmbean.ModelMBeanNotificationInfo}.
 */
public static ModelMBeanNotificationInfo convertToModelMBeanNotificationInfo(ManagedNotification notificationInfo) {
    String name = notificationInfo.getName();
    if (!StringUtils.hasText(name)) {
        throw new IllegalArgumentException("Must specify notification name");
    }

    String[] notifTypes = notificationInfo.getNotificationTypes();
    if (notifTypes == null || notifTypes.length == 0) {
        throw new IllegalArgumentException("Must specify at least one notification type");
    }

    String description = notificationInfo.getDescription();
    return new ModelMBeanNotificationInfo(notifTypes, name, description);
}
项目:spring    文件:MetadataMBeanInfoAssembler.java   
/**
 * Reads the {@link ManagedNotification} metadata from the {@code Class} of the managed resource
 * and generates and returns the corresponding {@link ModelMBeanNotificationInfo} metadata.
 */
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ManagedNotification[] notificationAttributes =
            this.attributeSource.getManagedNotifications(getClassToExpose(managedBean));
    ModelMBeanNotificationInfo[] notificationInfos =
            new ModelMBeanNotificationInfo[notificationAttributes.length];

    for (int i = 0; i < notificationAttributes.length; i++) {
        ManagedNotification attribute = notificationAttributes[i];
        notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute);
    }

    return notificationInfos;
}
项目:spring    文件:AbstractConfigurableMBeanInfoAssembler.java   
public void setNotificationInfos(ManagedNotification[] notificationInfos) {
    ModelMBeanNotificationInfo[] infos = new ModelMBeanNotificationInfo[notificationInfos.length];
    for (int i = 0; i < notificationInfos.length; i++) {
        ManagedNotification notificationInfo = notificationInfos[i];
        infos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(notificationInfo);
    }
    this.notificationInfos = infos;
}
项目:spring    文件:AbstractConfigurableMBeanInfoAssembler.java   
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ModelMBeanNotificationInfo[] result = null;
    if (StringUtils.hasText(beanKey)) {
        result = this.notificationInfoMappings.get(beanKey);
    }
    if (result == null) {
        result = this.notificationInfos;
    }
    return (result != null ? result : new ModelMBeanNotificationInfo[0]);
}
项目:flowable-engine    文件:MBeanInfoAssembler.java   
private void extractMbeanNotifications(Object managedBean, Set<ModelMBeanNotificationInfo> mBeanNotifications) {
    ManagedNotifications notifications = managedBean.getClass().getAnnotation(ManagedNotifications.class);
    if (notifications != null) {
        for (ManagedNotification notification : notifications.value()) {
            ModelMBeanNotificationInfo info = new ModelMBeanNotificationInfo(notification.notificationTypes(), notification.name(), notification.description());
            mBeanNotifications.add(info);
            LOGGER.trace("Assembled notification: {}", info);
        }
    }
}
项目:Camel    文件:MBeanInfoAssembler.java   
private void extractMbeanNotifications(Object managedBean, Set<ModelMBeanNotificationInfo> mBeanNotifications) {
    ManagedNotifications notifications = managedBean.getClass().getAnnotation(ManagedNotifications.class);
    if (notifications != null) {
        for (ManagedNotification notification : notifications.value()) {
            ModelMBeanNotificationInfo info = new ModelMBeanNotificationInfo(notification.notificationTypes(), notification.name(), notification.description());
            mBeanNotifications.add(info);
            LOG.trace("Assembled notification: {}", info);
        }
    }
}
项目:class-guard    文件:JmxMetadataUtils.java   
/**
 * Convert the supplied {@link ManagedNotification} into the corresponding
 * {@link javax.management.modelmbean.ModelMBeanNotificationInfo}.
 */
public static ModelMBeanNotificationInfo convertToModelMBeanNotificationInfo(ManagedNotification notificationInfo) {
    String name = notificationInfo.getName();
    if (!StringUtils.hasText(name)) {
        throw new IllegalArgumentException("Must specify notification name");
    }

    String[] notifTypes = notificationInfo.getNotificationTypes();
    if (notifTypes == null || notifTypes.length == 0) {
        throw new IllegalArgumentException("Must specify at least one notification type");
    }

    String description = notificationInfo.getDescription();
    return new ModelMBeanNotificationInfo(notifTypes, name, description);
}
项目:class-guard    文件:MetadataMBeanInfoAssembler.java   
/**
 * Reads the {@link ManagedNotification} metadata from the {@code Class} of the managed resource
 * and generates and returns the corresponding {@link ModelMBeanNotificationInfo} metadata.
 */
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ManagedNotification[] notificationAttributes =
            this.attributeSource.getManagedNotifications(getClassToExpose(managedBean));
    ModelMBeanNotificationInfo[] notificationInfos =
            new ModelMBeanNotificationInfo[notificationAttributes.length];

    for (int i = 0; i < notificationAttributes.length; i++) {
        ManagedNotification attribute = notificationAttributes[i];
        notificationInfos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(attribute);
    }

    return notificationInfos;
}
项目:class-guard    文件:AbstractConfigurableMBeanInfoAssembler.java   
public void setNotificationInfos(ManagedNotification[] notificationInfos) {
    ModelMBeanNotificationInfo[] infos = new ModelMBeanNotificationInfo[notificationInfos.length];
    for (int i = 0; i < notificationInfos.length; i++) {
        ManagedNotification notificationInfo = notificationInfos[i];
        infos[i] = JmxMetadataUtils.convertToModelMBeanNotificationInfo(notificationInfo);
    }
    this.notificationInfos = infos;
}
项目:class-guard    文件:AbstractConfigurableMBeanInfoAssembler.java   
@Override
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    ModelMBeanNotificationInfo[] result = null;
    if (StringUtils.hasText(beanKey)) {
        result = this.notificationInfoMappings.get(beanKey);
    }
    if (result == null) {
        result = this.notificationInfos;
    }
    return (result != null ? result : new ModelMBeanNotificationInfo[0]);
}
项目:freeVM    文件:UserDefinedDescriptorTest.java   
/**
 * Do 1-6 steps.
 */
private ModelMBeanInfoSupport constractModelMBeanInfoSupport()
    throws Exception {
    ModelMBeanOperationInfo operationInfo = new ModelMBeanOperationInfo(
        "description", class1.getMethod("simpleOperartion", null));
    setDescriptor(operationInfo);
    ModelMBeanConstructorInfo constructorInfo = new ModelMBeanConstructorInfo(
        "description", class1.getConstructor(null));
    setDescriptor(constructorInfo);
    ModelMBeanAttributeInfo attributeInfo = new ModelMBeanAttributeInfo(
        "name", "description", class1.getMethod("getH", null), class1
            .getMethod("setH", new Class[] { int.class }));
    setDescriptor(attributeInfo);
    ModelMBeanNotificationInfo notificationInfo = new ModelMBeanNotificationInfo(
        new String[] { "specific notification tepes" }, "name",
        "description");
    setDescriptor(notificationInfo);
    ModelMBeanInfoSupport beanInfoSupport = new ModelMBeanInfoSupport(
        class1.getName(), "description",
        new ModelMBeanAttributeInfo[] { attributeInfo },
        new ModelMBeanConstructorInfo[] { constructorInfo },
        new ModelMBeanOperationInfo[] { operationInfo },
        new ModelMBeanNotificationInfo[] { notificationInfo });
    Descriptor descriptor = beanInfoSupport.getMBeanDescriptor();
    String[] strings = getSpesific(beanInfoSupport.getClass());
    descriptor.setField(strings[0], strings[1]);
    map.put(beanInfoSupport.getClass().getName(), descriptor);
    beanInfoSupport.setMBeanDescriptor(descriptor);
    return beanInfoSupport;
}
项目:freeVM    文件:NotificationLoggingTest.java   
/**
 * <ul>
 * Verify that logs of new notifications, when sendNotification is invoked,
 * write to file. File name is value of descriptor of
 * ModelMBeanNotificationInfo.
 * <li>Create java class, which is not MBean. MBean has 1 getter and 1
 * setter methods.
 * <li>Create ModelMBeanNotificationInfo object for my type with descriptor
 * with logging.
 * <li>Create ModelMBeanInfoSupport object. All ModelMBeanXXXInfo except
 * ModelMBeanNotificationInfo are default.
 * <li>Create RequiredModelMBean object.
 * <li>Instance of java class in 1st step sets managed resource for
 * RequiredModelMBean using setManagedResource method.
 * <li>Send my notification using sendNotification method.
 * <li>Verify that logfile was created and size of file > 0.
 * </ul>
 */
public Result testLogging() throws Exception {
    ModelMBeanAttributeInfo attributeInfoForG = new ModelMBeanAttributeInfo(
        "g", "descr", class1.getMethod("getG", null), class1.getMethod(
            "setG", new Class[] { String.class }));
    ModelMBeanAttributeInfo[] attributeInfos = new ModelMBeanAttributeInfo[] { attributeInfoForG };
    ModelMBeanNotificationInfo notificationInfo = new ModelMBeanNotificationInfo(
        new String[] { SimpleNotification.notificationType },
        SimpleNotification.notificationType, "description");
    File file = File.createTempFile("log", ".txt");
    file.deleteOnExit();
    Descriptor descriptor = notificationInfo.getDescriptor();
    descriptor.setField("log", "true");
    descriptor.setField("logfile", file.getAbsolutePath());
    log.info("file name: " + file.getAbsolutePath());
    notificationInfo.setDescriptor(descriptor);
    ModelMBeanInfoSupport beanInfoSupport = new ModelMBeanInfoSupport(
        class1.getName(), "description", attributeInfos, null, null,
        new ModelMBeanNotificationInfo[] { notificationInfo });
    beanInfoSupport.getNotification(new SimpleNotification("src", 1)
        .getType());
    RequiredModelMBean requiredModelMBean = new RequiredModelMBean(
        beanInfoSupport);
    beanInfoSupport.getDescriptor(new SimpleNotification("src", 1)
        .getType(), "notification");
    requiredModelMBean.sendNotification(new SimpleNotification("src", 1));
    assertTrue(file.length() > 0);
    file.delete();
    return result();
}
项目:freeVM    文件:DefaultDescriptorTest.java   
/**
 * Verify default fields of descriptor from ModelMBeanNotificationInfo:
 * name=nameUsedInConstructor, displayName=nameUsedInConstructor, severity=6
 * and descriptorType=notification.
 */
public Result testModelMBeanNotificationInfo() throws Exception {
    final String name = "notification name";
    ModelMBeanNotificationInfo notificationInfo = new ModelMBeanNotificationInfo(
        null, name, "description");
    descriptor = notificationInfo.getDescriptor();
    assertEquals(descriptor.getFieldValue("name"), name);
    assertEquals(descriptor.getFieldValue("displayName"), name);
    assertEquals(descriptor.getFieldValue("severity"), "6");
    assertEquals(descriptor.getFieldValue("descriptorType"), "notification");
    assertEquals(descriptor.getFields().length, 4);
    commonCheck();
    return result();
}
项目:flowable-engine    文件:MBeanInfoAssembler.java   
public ModelMBeanInfo getMBeanInfo(Object defaultManagedBean, Object customManagedBean, String objectName) throws JMException {

        if ((defaultManagedBean == null && customManagedBean == null) || objectName == null)
            return null;
        // skip proxy classes
        if (defaultManagedBean != null && Proxy.isProxyClass(defaultManagedBean.getClass())) {
            LOGGER.trace("Skip creating ModelMBeanInfo due proxy class {}", defaultManagedBean.getClass());
            return null;
        }

        // maps and lists to contain information about attributes and operations
        Map<String, ManagedAttributeInfo> attributes = new LinkedHashMap<>();
        Set<ManagedOperationInfo> operations = new LinkedHashSet<>();
        Set<ModelMBeanAttributeInfo> mBeanAttributes = new LinkedHashSet<>();
        Set<ModelMBeanOperationInfo> mBeanOperations = new LinkedHashSet<>();
        Set<ModelMBeanNotificationInfo> mBeanNotifications = new LinkedHashSet<>();

        // extract details from default managed bean
        if (defaultManagedBean != null) {
            extractAttributesAndOperations(defaultManagedBean.getClass(), attributes, operations);
            extractMbeanAttributes(defaultManagedBean, attributes, mBeanAttributes, mBeanOperations);
            extractMbeanOperations(defaultManagedBean, operations, mBeanOperations);
            extractMbeanNotifications(defaultManagedBean, mBeanNotifications);
        }

        // extract details from custom managed bean
        if (customManagedBean != null) {
            extractAttributesAndOperations(customManagedBean.getClass(), attributes, operations);
            extractMbeanAttributes(customManagedBean, attributes, mBeanAttributes, mBeanOperations);
            extractMbeanOperations(customManagedBean, operations, mBeanOperations);
            extractMbeanNotifications(customManagedBean, mBeanNotifications);
        }

        // create the ModelMBeanInfo
        String name = getName(customManagedBean != null ? customManagedBean : defaultManagedBean, objectName);
        String description = getDescription(customManagedBean != null ? customManagedBean : defaultManagedBean, objectName);
        ModelMBeanAttributeInfo[] arrayAttributes = mBeanAttributes.toArray(new ModelMBeanAttributeInfo[mBeanAttributes.size()]);
        ModelMBeanOperationInfo[] arrayOperations = mBeanOperations.toArray(new ModelMBeanOperationInfo[mBeanOperations.size()]);
        ModelMBeanNotificationInfo[] arrayNotifications = mBeanNotifications.toArray(new ModelMBeanNotificationInfo[mBeanNotifications.size()]);

        ModelMBeanInfo info = new ModelMBeanInfoSupport(name, description, arrayAttributes, null, arrayOperations, arrayNotifications);
        LOGGER.trace("Created ModelMBeanInfo {}", info);
        return info;
    }
项目:Camel    文件:MBeanInfoAssembler.java   
/**
 * Gets the {@link ModelMBeanInfo} for the given managed bean
 *
 * @param defaultManagedBean  the default managed bean
 * @param customManagedBean   an optional custom managed bean
 * @param objectName   the object name
 * @return the model info, or <tt>null</tt> if not possible to create, for example due the managed bean is a proxy class
 * @throws JMException is thrown if error creating the model info
 */
public ModelMBeanInfo getMBeanInfo(Object defaultManagedBean, Object customManagedBean, String objectName) throws JMException {
    // skip proxy classes
    if (defaultManagedBean != null && Proxy.isProxyClass(defaultManagedBean.getClass())) {
        LOG.trace("Skip creating ModelMBeanInfo due proxy class {}", defaultManagedBean.getClass());
        return null;
    }

    // maps and lists to contain information about attributes and operations
    Map<String, ManagedAttributeInfo> attributes = new LinkedHashMap<String, ManagedAttributeInfo>();
    Set<ManagedOperationInfo> operations = new LinkedHashSet<ManagedOperationInfo>();
    Set<ModelMBeanAttributeInfo> mBeanAttributes = new LinkedHashSet<ModelMBeanAttributeInfo>();
    Set<ModelMBeanOperationInfo> mBeanOperations = new LinkedHashSet<ModelMBeanOperationInfo>();
    Set<ModelMBeanNotificationInfo> mBeanNotifications = new LinkedHashSet<ModelMBeanNotificationInfo>();

    // extract details from default managed bean
    if (defaultManagedBean != null) {
        extractAttributesAndOperations(defaultManagedBean.getClass(), attributes, operations);
        extractMbeanAttributes(defaultManagedBean, attributes, mBeanAttributes, mBeanOperations);
        extractMbeanOperations(defaultManagedBean, operations, mBeanOperations);
        extractMbeanNotifications(defaultManagedBean, mBeanNotifications);
    }

    // extract details from custom managed bean
    if (customManagedBean != null) {
        extractAttributesAndOperations(customManagedBean.getClass(), attributes, operations);
        extractMbeanAttributes(customManagedBean, attributes, mBeanAttributes, mBeanOperations);
        extractMbeanOperations(customManagedBean, operations, mBeanOperations);
        extractMbeanNotifications(customManagedBean, mBeanNotifications);
    }

    // create the ModelMBeanInfo
    String name = getName(customManagedBean != null ? customManagedBean : defaultManagedBean, objectName);
    String description = getDescription(customManagedBean != null ? customManagedBean : defaultManagedBean, objectName);
    ModelMBeanAttributeInfo[] arrayAttributes = mBeanAttributes.toArray(new ModelMBeanAttributeInfo[mBeanAttributes.size()]);
    ModelMBeanOperationInfo[] arrayOperations = mBeanOperations.toArray(new ModelMBeanOperationInfo[mBeanOperations.size()]);
    ModelMBeanNotificationInfo[] arrayNotifications = mBeanNotifications.toArray(new ModelMBeanNotificationInfo[mBeanNotifications.size()]);

    ModelMBeanInfo info = new ModelMBeanInfoSupport(name, description, arrayAttributes, null, arrayOperations, arrayNotifications);
    LOG.trace("Created ModelMBeanInfo {}", info);
    return info;
}
项目:metaworks_framework    文件:MetadataMBeanInfoAssembler.java   
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    managedBean = AspectUtil.exposeRootBean(managedBean);
    return super.getNotificationInfo(managedBean, beanKey);
}
项目:SparkCommerce    文件:MetadataMBeanInfoAssembler.java   
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    managedBean = AspectUtil.exposeRootBean(managedBean);
    return super.getNotificationInfo(managedBean, beanKey);
}
项目:blcdemo    文件:MetadataMBeanInfoAssembler.java   
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) {
    managedBean = AspectUtil.exposeRootBean(managedBean);
    return super.getNotificationInfo(managedBean, beanKey);
}
项目:lams    文件:AbstractMBeanInfoAssembler.java   
/**
 * Get the notification metadata for the MBean resource. Subclasses should implement
 * this method to return the appropriate metadata for all notifications that should
 * be exposed in the management interface for the managed resource.
 * <p>Default implementation returns an empty array of {@code ModelMBeanNotificationInfo}.
 * @param managedBean the bean instance (might be an AOP proxy)
 * @param beanKey the key associated with the MBean in the beans map
 * of the {@code MBeanExporter}
 * @return the notification metadata
 * @throws JMException in case of errors
 */
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey)
        throws JMException {
    return new ModelMBeanNotificationInfo[0];
}
项目:spring4-understanding    文件:AbstractMBeanInfoAssembler.java   
/**
 * Get the notification metadata for the MBean resource. Subclasses should implement
 * this method to return the appropriate metadata for all notifications that should
 * be exposed in the management interface for the managed resource.
 * <p>Default implementation returns an empty array of {@code ModelMBeanNotificationInfo}.
 * @param managedBean the bean instance (might be an AOP proxy)
 * @param beanKey the key associated with the MBean in the beans map
 * of the {@code MBeanExporter}
 * @return the notification metadata
 * @throws JMException in case of errors
 */
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey)
        throws JMException {
    return new ModelMBeanNotificationInfo[0];
}
项目:my-spring-cache-redis    文件:AbstractMBeanInfoAssembler.java   
/**
 * Get the notification metadata for the MBean resource. Subclasses should implement
 * this method to return the appropriate metadata for all notifications that should
 * be exposed in the management interface for the managed resource.
 * <p>Default implementation returns an empty array of {@code ModelMBeanNotificationInfo}.
 * @param managedBean the bean instance (might be an AOP proxy)
 * @param beanKey the key associated with the MBean in the beans map
 * of the {@code MBeanExporter}
 * @return the notification metadata
 * @throws JMException in case of errors
 */
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey)
        throws JMException {
    return new ModelMBeanNotificationInfo[0];
}
项目:spring    文件:AbstractMBeanInfoAssembler.java   
/**
 * Get the notification metadata for the MBean resource. Subclasses should implement
 * this method to return the appropriate metadata for all notifications that should
 * be exposed in the management interface for the managed resource.
 * <p>Default implementation returns an empty array of {@code ModelMBeanNotificationInfo}.
 * @param managedBean the bean instance (might be an AOP proxy)
 * @param beanKey the key associated with the MBean in the beans map
 * of the {@code MBeanExporter}
 * @return the notification metadata
 * @throws JMException in case of errors
 */
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey)
        throws JMException {
    return new ModelMBeanNotificationInfo[0];
}
项目:class-guard    文件:AbstractMBeanInfoAssembler.java   
/**
 * Get the notification metadata for the MBean resource. Subclasses should implement
 * this method to return the appropriate metadata for all notifications that should
 * be exposed in the management interface for the managed resource.
 * <p>Default implementation returns an empty array of {@code ModelMBeanNotificationInfo}.
 * @param managedBean the bean instance (might be an AOP proxy)
 * @param beanKey the key associated with the MBean in the beans map
 * of the {@code MBeanExporter}
 * @return the notification metadata
 * @throws JMException in case of errors
 */
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey)
        throws JMException {
    return new ModelMBeanNotificationInfo[0];
}