mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Polish contribution
Closes gh-5335
This commit is contained in:
parent
79cd01eb7a
commit
a83dae0e10
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012-2015 the original author or authors.
|
* Copyright 2012-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -77,12 +77,18 @@ class RawConfigurationMetadata {
|
|||||||
}
|
}
|
||||||
ConfigurationMetadataSource source = getSource(item.getSourceType());
|
ConfigurationMetadataSource source = getSource(item.getSourceType());
|
||||||
if (source != null) {
|
if (source != null) {
|
||||||
String dottedPrefix = source.getGroupId() + ".";
|
String groupId = source.getGroupId();
|
||||||
|
String dottedPrefix = groupId + ".";
|
||||||
String id = item.getId();
|
String id = item.getId();
|
||||||
if (id.startsWith(dottedPrefix)) {
|
if (hasLength(groupId) && id.startsWith(dottedPrefix)) {
|
||||||
String name = id.substring(dottedPrefix.length(), id.length());
|
String name = id.substring(dottedPrefix.length(), id.length());
|
||||||
item.setName(name);
|
item.setName(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean hasLength(String s) {
|
||||||
|
return (s != null && s.length() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012-2015 the original author or authors.
|
* Copyright 2012-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -123,6 +123,22 @@ public class ConfigurationMetadataRepositoryJsonBuilderTests
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void emptyGroups() throws IOException {
|
||||||
|
InputStream in = getInputStreamFor("empty-groups");
|
||||||
|
try {
|
||||||
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder
|
||||||
|
.create(in).build();
|
||||||
|
validateEmptyGroup(repo);
|
||||||
|
assertEquals(1, repo.getAllGroups().size());
|
||||||
|
contains(repo.getAllProperties(), "name", "title");
|
||||||
|
assertEquals(2, repo.getAllProperties().size());
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
in.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void builderInstancesAreIsolated() throws IOException {
|
public void builderInstancesAreIsolated() throws IOException {
|
||||||
InputStream foo = getInputStreamFor("foo");
|
InputStream foo = getInputStreamFor("foo");
|
||||||
@ -184,6 +200,20 @@ public class ConfigurationMetadataRepositoryJsonBuilderTests
|
|||||||
validatePropertyHints(repo.getAllProperties().get("spring.bar.counter"), 0, 0);
|
validatePropertyHints(repo.getAllProperties().get("spring.bar.counter"), 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void validateEmptyGroup(ConfigurationMetadataRepository repo) {
|
||||||
|
ConfigurationMetadataGroup group = repo.getAllGroups().get("");
|
||||||
|
contains(group.getSources(), "org.acme.Foo", "org.acme.Bar");
|
||||||
|
ConfigurationMetadataSource source = group.getSources().get("org.acme.Foo");
|
||||||
|
contains(source.getProperties(), "name");
|
||||||
|
assertEquals(1, source.getProperties().size());
|
||||||
|
ConfigurationMetadataSource source2 = group.getSources()
|
||||||
|
.get("org.acme.Bar");
|
||||||
|
contains(source2.getProperties(), "title");
|
||||||
|
assertEquals(1, source2.getProperties().size());
|
||||||
|
validatePropertyHints(repo.getAllProperties().get("name"), 0, 0);
|
||||||
|
validatePropertyHints(repo.getAllProperties().get("title"), 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
private void validatePropertyHints(ConfigurationMetadataProperty property,
|
private void validatePropertyHints(ConfigurationMetadataProperty property,
|
||||||
int valueHints, int valueProviders) {
|
int valueHints, int valueProviders) {
|
||||||
assertEquals(valueHints, property.getValueHints().size());
|
assertEquals(valueHints, property.getValueHints().size());
|
||||||
|
@ -54,13 +54,14 @@ public class JsonReaderTests extends AbstractConfigurationMetadataTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void emptyGroupName() throws IOException {
|
public void emptyGroupName() throws IOException {
|
||||||
RawConfigurationMetadata rawMetadata = readFor("emptygroup");
|
RawConfigurationMetadata rawMetadata = readFor("empty-groups");
|
||||||
List<ConfigurationMetadataItem> items = rawMetadata.getItems();
|
List<ConfigurationMetadataItem> items = rawMetadata.getItems();
|
||||||
assertEquals(1, items.size());
|
assertEquals(2, items.size());
|
||||||
|
|
||||||
ConfigurationMetadataItem item = items.get(0);
|
|
||||||
assertProperty(item, "name", "name", String.class, null);
|
|
||||||
|
|
||||||
|
ConfigurationMetadataItem name = items.get(0);
|
||||||
|
assertProperty(name, "name", "name", String.class, null);
|
||||||
|
ConfigurationMetadataItem dotTitle = items.get(1);
|
||||||
|
assertProperty(dotTitle, "title", "title", String.class, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -6,6 +6,13 @@
|
|||||||
"sourceType": "org.acme.config.FooApp",
|
"sourceType": "org.acme.config.FooApp",
|
||||||
"sourceMethod": "foo()",
|
"sourceMethod": "foo()",
|
||||||
"description": "This is Foo."
|
"description": "This is Foo."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"type": "org.acme.Bar",
|
||||||
|
"sourceType": "org.acme.config.FooApp",
|
||||||
|
"sourceMethod": "bar()",
|
||||||
|
"description": "This is Bar."
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"properties": [
|
"properties": [
|
||||||
@ -13,6 +20,11 @@
|
|||||||
"name": "name",
|
"name": "name",
|
||||||
"type": "java.lang.String",
|
"type": "java.lang.String",
|
||||||
"sourceType": "org.acme.Foo"
|
"sourceType": "org.acme.Foo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "title",
|
||||||
|
"type": "java.lang.String",
|
||||||
|
"sourceType": "org.acme.Bar"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user