org.springframework.boot.configurationmetadata.ConfigurationMetadataGroup Java Examples

The following examples show how to use org.springframework.boot.configurationmetadata.ConfigurationMetadataGroup. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DeployerConfigurationMetadataResolver.java    From spring-cloud-skipper with Apache License 2.0 5 votes vote down vote up
/**
 * Resolve all configuration metadata properties prefixed with {@code spring.cloud.deployer.}
 *
 * @return the list
 */
public List<ConfigurationMetadataProperty> resolve() {
	List<ConfigurationMetadataProperty> metadataProperties = new ArrayList<>();
	ConfigurationMetadataRepositoryJsonBuilder builder = ConfigurationMetadataRepositoryJsonBuilder.create();
	try {
		Resource[] resources = applicationContext.getResources(CONFIGURATION_METADATA_PATTERN);
		for (Resource resource : resources) {
			builder.withJsonResource(resource.getInputStream());
		}
	}
	catch (IOException e) {
		throw new SkipperException("Unable to read configuration metadata", e);
	}
	ConfigurationMetadataRepository metadataRepository = builder.build();
	Map<String, ConfigurationMetadataGroup> groups = metadataRepository.getAllGroups();
	// 1. go through all groups and their properties
	// 2. filter 'spring.cloud.deployer.' properties
	// 3. pass in only group includes, empty passes through all
	// 4. pass in group excludes
	// 5. same logic for properties for includes and excludes
	// 6. what's left is white/black listed props
	groups.values().stream()
		.filter(g -> g.getId().startsWith(KEY_PREFIX))
		.filter(groupEmptyOrAnyMatch(deployerProperties.getGroupIncludes()))
		.filter(groupNoneMatch(deployerProperties.getGroupExcludes()))
		.forEach(g -> {
			g.getProperties().values().stream()
				.filter(propertyEmptyOrAnyMatch(deployerProperties.getPropertyIncludes()))
				.filter(propertyNoneMatch(deployerProperties.getPropertyExcludes()))
				.forEach(p -> {
					metadataProperties.add(p);
				});
		});
	return metadataProperties;
}
 
Example #2
Source File: PropertyDocumentation.java    From joinfaces with Apache License 2.0 5 votes vote down vote up
@TaskAction
public void generatePropertyDocumentation() throws IOException {
	ConfigurationMetadataRepository configurationMetadataRepository;

	configurationMetadataRepository = ConfigurationMetadataRepositoryJsonBuilder.create()
			.withJsonResource(new FileInputStream(getInputFile().getAsFile().get()))
			.build();

	try (PrintWriter writer = ResourceGroovyMethods.newPrintWriter(getOutputFile().getAsFile().get(), "UTF-8")) {

		writer.println("[source,properties,indent=0,subs=\"verbatim,attributes,macros\"]");
		writer.println("----");

		configurationMetadataRepository.getAllGroups().values().stream()
				.sorted(Comparator.comparing(ConfigurationMetadataGroup::getId))
				.forEach(group -> {
					writer.printf("## %s\n", group.getId());

					group.getSources().values()
							.stream()
							.map(ConfigurationMetadataSource::getShortDescription)
							.filter(s -> s != null && !s.isEmpty())
							.forEach(d -> writer.printf("# %s\n", d));

					group.getProperties().values().stream()
							.sorted(Comparator.comparing(ConfigurationMetadataProperty::getId))
							.forEach(property -> printProperty(writer, property));
					writer.println();
					writer.flush();
				});

		writer.println("----");
	}
}
 
Example #3
Source File: DeployerConfigurationMetadataResolver.java    From spring-cloud-dataflow with Apache License 2.0 5 votes vote down vote up
/**
 * Resolve all configuration metadata properties prefixed with {@code spring.cloud.deployer.}
 *
 * @return the list
 */
public List<ConfigurationMetadataProperty> resolve() {
	List<ConfigurationMetadataProperty> metadataProperties = new ArrayList<>();
	ConfigurationMetadataRepositoryJsonBuilder builder = ConfigurationMetadataRepositoryJsonBuilder.create();
	try {
		Resource[] resources = applicationContext.getResources(CONFIGURATION_METADATA_PATTERN);
		for (Resource resource : resources) {
			builder.withJsonResource(resource.getInputStream());
		}
	}
	catch (IOException e) {
		throw new SkipperException("Unable to read configuration metadata", e);
	}
	ConfigurationMetadataRepository metadataRepository = builder.build();
	Map<String, ConfigurationMetadataGroup> groups = metadataRepository.getAllGroups();
	// 1. go through all groups and their properties
	// 2. filter 'spring.cloud.deployer.' properties
	// 3. pass in only group includes, empty passes through all
	// 4. pass in group excludes
	// 5. same logic for properties for includes and excludes
	// 6. what's left is white/black listed props
	groups.values().stream()
		.filter(g -> g.getId().startsWith(KEY_PREFIX))
		.filter(groupEmptyOrAnyMatch(deployerProperties.getGroupIncludes()))
		.filter(groupNoneMatch(deployerProperties.getGroupExcludes()))
		.forEach(g -> {
			g.getProperties().values().stream()
				.filter(propertyEmptyOrAnyMatch(deployerProperties.getPropertyIncludes()))
				.filter(propertyNoneMatch(deployerProperties.getPropertyExcludes()))
				.forEach(p -> {
					metadataProperties.add(p);
				});
		});
	return metadataProperties;
}
 
Example #4
Source File: DeployerConfigurationMetadataResolver.java    From spring-cloud-skipper with Apache License 2.0 4 votes vote down vote up
private Predicate<ConfigurationMetadataGroup> groupEmptyOrAnyMatch(String[] matches) {
	if (ObjectUtils.isEmpty(matches)) {
		return g -> true;
	}
	return g -> Arrays.stream(matches).anyMatch(g.getId()::equals);
}
 
Example #5
Source File: DeployerConfigurationMetadataResolver.java    From spring-cloud-skipper with Apache License 2.0 4 votes vote down vote up
private Predicate<ConfigurationMetadataGroup> groupNoneMatch(String[] matches) {
	return g -> Arrays.stream(matches).noneMatch(g.getId()::equals);
}
 
Example #6
Source File: BootApplicationConfigurationMetadataResolver.java    From spring-cloud-dashboard with Apache License 2.0 4 votes vote down vote up
/**
 * Return whether a configuration property group (class) has been white listed as being a "main" group.
 */
private boolean isWhiteListed(ConfigurationMetadataGroup group, Collection<String> classes) {
	Set<String> sourceTypes = group.getSources().keySet();
	return !sourceTypes.isEmpty() && classes.containsAll(sourceTypes);
}
 
Example #7
Source File: BootApplicationConfigurationMetadataResolver.java    From spring-cloud-dataflow with Apache License 2.0 4 votes vote down vote up
/**
 * Return whether a configuration property group (class) has been white listed as
 * being a "main" group.
 */
private boolean isWhiteListed(ConfigurationMetadataGroup group, Collection<String> classes) {
	Set<String> sourceTypes = group.getSources().keySet();
	return !sourceTypes.isEmpty() && classes.containsAll(sourceTypes);
}
 
Example #8
Source File: DeployerConfigurationMetadataResolver.java    From spring-cloud-dataflow with Apache License 2.0 4 votes vote down vote up
private Predicate<ConfigurationMetadataGroup> groupEmptyOrAnyMatch(String[] matches) {
	if (ObjectUtils.isEmpty(matches)) {
		return g -> true;
	}
	return g -> Arrays.stream(matches).anyMatch(g.getId()::equals);
}
 
Example #9
Source File: DeployerConfigurationMetadataResolver.java    From spring-cloud-dataflow with Apache License 2.0 4 votes vote down vote up
private Predicate<ConfigurationMetadataGroup> groupNoneMatch(String[] matches) {
	return g -> Arrays.stream(matches).noneMatch(g.getId()::equals);
}