throws MalformedObjectNameException, MBeanRegistrationException, InstanceAlreadyExistsException, NotCompliantMBeanException
{
for ( ServiceReference<DataSource> dataSource : dataSources ) {
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();