String name = dataSource.identity();
Module module = ( Module ) spi.moduleOf( dataSource );
EntityDescriptor descriptor = module.entityDescriptor( DataSourceConfiguration.class.getName() );
List<MBeanAttributeInfo> attributes = new ArrayList<MBeanAttributeInfo>();
Map<String, AccessibleObject> properties = new LinkedHashMap<String, AccessibleObject>();
for ( PropertyDescriptor persistentProperty : descriptor.state().properties() ) {
if ( !persistentProperty.isImmutable() ) {
String propertyName = persistentProperty.qualifiedName().name();
String type = persistentProperty.valueType().mainType().getName();
attributes.add( new MBeanAttributeInfo( propertyName, type, propertyName, true, true, type.equals( "java.lang.Boolean" ) ) );
properties.put( propertyName, persistentProperty.accessor() );