private Map<Class<?>, List<PropertyDescriptor>> calcDescriptors( final Set<Class<?>> propertyDescriptorTypes) { final Map<Class<?>, List<PropertyDescriptor>> map = new HashMap<Class<?>, List<PropertyDescriptor>>(); for (final Class<?> type : propertyDescriptorTypes) { final PropertiesContext context = factoryCache.getContext(type); if (context == null) { LOG.debug("Cannot find context for type '" + type.getName() + "'. Skipping."); continue; } final PropertyMetaDataParser propertyDescriptorParser = PropertyMetaDataParser.create(context); final List<PropertyDescriptor> descriptors = propertyDescriptorParser.readDescriptors(type); map.put(type, descriptors); } return map; }
private void addProperties(final MultiSourceProperties compositeProperties) { final Properties properties = new Properties(); final Class<?> type = BootProperties.class; final PropertiesContext context = configuration.getContext(type); final PropertyMetaDataParser propertyDescriptorParser = PropertyMetaDataParser.create(context); final List<PropertyDescriptor> descriptors = propertyDescriptorParser.readDescriptors(type); for (final PropertyDescriptor descriptor : descriptors) { final String propertyKey = descriptor.getKey().toString(); final Property property = compositeProperties.getValue(propertyKey); if (property != null && property.getValue() != null) { properties.put(propertyKey, property); } else { properties.remove(propertyKey); } } configuration.addDescriptors(type); final PropertyProvider provider = new PropertiesPropertyProvider(configuration.getKey(), new PropertyLocation("boot-various"), properties); configuration.addDefinitions(provider); }