Search in sources :

Example 1 with ManagedResource

use of org.springframework.jmx.export.metadata.ManagedResource in project spring-framework by spring-projects.

the class MetadataMBeanInfoAssembler method populateMBeanDescriptor.

/**
	 * Adds descriptor fields from the {@code ManagedResource} attribute
	 * to the MBean descriptor. Specifically, adds the {@code currencyTimeLimit},
	 * {@code persistPolicy}, {@code persistPeriod}, {@code persistLocation}
	 * and {@code persistName} descriptor fields if they are present in the metadata.
	 */
@Override
protected void populateMBeanDescriptor(Descriptor desc, Object managedBean, String beanKey) {
    ManagedResource mr = this.attributeSource.getManagedResource(getClassToExpose(managedBean));
    if (mr == null) {
        throw new InvalidMetadataException("No ManagedResource attribute found for class: " + getClassToExpose(managedBean));
    }
    applyCurrencyTimeLimit(desc, mr.getCurrencyTimeLimit());
    if (mr.isLog()) {
        desc.setField(FIELD_LOG, "true");
    }
    if (StringUtils.hasLength(mr.getLogFile())) {
        desc.setField(FIELD_LOG_FILE, mr.getLogFile());
    }
    if (StringUtils.hasLength(mr.getPersistPolicy())) {
        desc.setField(FIELD_PERSIST_POLICY, mr.getPersistPolicy());
    }
    if (mr.getPersistPeriod() >= 0) {
        desc.setField(FIELD_PERSIST_PERIOD, Integer.toString(mr.getPersistPeriod()));
    }
    if (StringUtils.hasLength(mr.getPersistName())) {
        desc.setField(FIELD_PERSIST_NAME, mr.getPersistName());
    }
    if (StringUtils.hasLength(mr.getPersistLocation())) {
        desc.setField(FIELD_PERSIST_LOCATION, mr.getPersistLocation());
    }
}
Also used : InvalidMetadataException(org.springframework.jmx.export.metadata.InvalidMetadataException) ManagedResource(org.springframework.jmx.export.metadata.ManagedResource)

Example 2 with ManagedResource

use of org.springframework.jmx.export.metadata.ManagedResource in project spring-framework by spring-projects.

the class MetadataNamingStrategy method getObjectName.

/**
	 * Reads the {@code ObjectName} from the source-level metadata associated
	 * with the managed resource's {@code Class}.
	 */
@Override
public ObjectName getObjectName(Object managedBean, String beanKey) throws MalformedObjectNameException {
    Class<?> managedClass = AopUtils.getTargetClass(managedBean);
    ManagedResource mr = this.attributeSource.getManagedResource(managedClass);
    // Check that an object name has been specified.
    if (mr != null && StringUtils.hasText(mr.getObjectName())) {
        return ObjectNameManager.getInstance(mr.getObjectName());
    } else {
        try {
            return ObjectNameManager.getInstance(beanKey);
        } catch (MalformedObjectNameException ex) {
            String domain = this.defaultDomain;
            if (domain == null) {
                domain = ClassUtils.getPackageName(managedClass);
            }
            Hashtable<String, String> properties = new Hashtable<>();
            properties.put("type", ClassUtils.getShortName(managedClass));
            properties.put("name", beanKey);
            return ObjectNameManager.getInstance(domain, properties);
        }
    }
}
Also used : MalformedObjectNameException(javax.management.MalformedObjectNameException) Hashtable(java.util.Hashtable) ManagedResource(org.springframework.jmx.export.metadata.ManagedResource)

Aggregations

ManagedResource (org.springframework.jmx.export.metadata.ManagedResource)2 Hashtable (java.util.Hashtable)1 MalformedObjectNameException (javax.management.MalformedObjectNameException)1 InvalidMetadataException (org.springframework.jmx.export.metadata.InvalidMetadataException)1