Skip to content

Commit 1239f14

Browse files
committed
feat(springboot cloudconfig): Change the behavior of Config Type
Enum of Config Type has lack of file extension suport, reimplement it as class Signed-off-by: lony2003 <[email protected]>
1 parent 1de8f47 commit 1239f14

9 files changed

+43
-13
lines changed

dapr-spring/dapr-spring-cloudconfig/src/main/java/io/dapr/spring/boot/cloudconfig/configdata/DaprCloudConfigParserHandler.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
package io.dapr.spring.boot.cloudconfig.configdata;
1515

16+
import io.dapr.spring.boot.cloudconfig.configdata.types.DaprCloudConfigType;
17+
import io.dapr.spring.boot.cloudconfig.configdata.types.DocType;
1618
import org.springframework.boot.env.PropertySourceLoader;
1719
import org.springframework.boot.env.YamlPropertySourceLoader;
1820
import org.springframework.core.env.PropertySource;
@@ -83,7 +85,7 @@ public List<PropertySource<?>> parseDaprCloudConfigData(
8385
List<PropertySource<?>> result = new ArrayList<>();
8486

8587
Map<String, Resource> configResults = getConfigResult(configValue, type);
86-
String extension = DaprCloudConfigType.DocYaml.equals(type) ? ".yaml" : ".properties";
88+
String extension = type instanceof DocType ? ((DocType) type).getDocExtension() : ".properties";
8789

8890
configResults.forEach((key, configResult) -> {
8991
for (PropertySourceLoader propertySourceLoader : propertySourceLoaders) {
@@ -108,7 +110,7 @@ private Map<String, Resource> getConfigResult(
108110
DaprCloudConfigType type
109111
) {
110112
Map<String, Resource> result = new HashMap<>();
111-
if (DaprCloudConfigType.DocYaml.equals(type) || DaprCloudConfigType.DocProperties.equals(type)) {
113+
if (type instanceof DocType) {
112114
configValue.forEach((key, value) -> result.put(key,
113115
new ByteArrayResource(value.getBytes(StandardCharsets.UTF_8))));
114116
} else {

dapr-spring/dapr-spring-cloudconfig/src/main/java/io/dapr/spring/boot/cloudconfig/configdata/config/DaprConfigurationConfigDataLocationResolver.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import io.dapr.spring.boot.autoconfigure.client.DaprClientProperties;
1717
import io.dapr.spring.boot.cloudconfig.config.DaprCloudConfigClientManager;
1818
import io.dapr.spring.boot.cloudconfig.config.DaprCloudConfigProperties;
19-
import io.dapr.spring.boot.cloudconfig.configdata.DaprCloudConfigType;
19+
import io.dapr.spring.boot.cloudconfig.configdata.types.DaprCloudConfigType;
2020
import org.apache.commons.logging.Log;
2121
import org.springframework.boot.BootstrapRegistry;
2222
import org.springframework.boot.ConfigurableBootstrapContext;

dapr-spring/dapr-spring-cloudconfig/src/main/java/io/dapr/spring/boot/cloudconfig/configdata/config/DaprConfigurationConfigDataResource.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
package io.dapr.spring.boot.cloudconfig.configdata.config;
1515

16-
import io.dapr.spring.boot.cloudconfig.configdata.DaprCloudConfigType;
16+
import io.dapr.spring.boot.cloudconfig.configdata.types.DaprCloudConfigType;
1717
import org.springframework.boot.context.config.ConfigDataResource;
1818
import org.springframework.lang.Nullable;
1919

dapr-spring/dapr-spring-cloudconfig/src/main/java/io/dapr/spring/boot/cloudconfig/configdata/secret/DaprSecretStoreConfigDataLocationResolver.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import io.dapr.spring.boot.autoconfigure.client.DaprClientProperties;
1717
import io.dapr.spring.boot.cloudconfig.config.DaprCloudConfigClientManager;
1818
import io.dapr.spring.boot.cloudconfig.config.DaprCloudConfigProperties;
19-
import io.dapr.spring.boot.cloudconfig.configdata.DaprCloudConfigType;
19+
import io.dapr.spring.boot.cloudconfig.configdata.types.DaprCloudConfigType;
2020
import org.apache.commons.logging.Log;
2121
import org.springframework.boot.BootstrapRegistry;
2222
import org.springframework.boot.ConfigurableBootstrapContext;

dapr-spring/dapr-spring-cloudconfig/src/main/java/io/dapr/spring/boot/cloudconfig/configdata/secret/DaprSecretStoreConfigDataResource.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
package io.dapr.spring.boot.cloudconfig.configdata.secret;
1515

16-
import io.dapr.spring.boot.cloudconfig.configdata.DaprCloudConfigType;
16+
import io.dapr.spring.boot.cloudconfig.configdata.types.DaprCloudConfigType;
1717
import org.springframework.boot.context.config.ConfigDataResource;
1818
import org.springframework.lang.Nullable;
1919

Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
package io.dapr.spring.boot.cloudconfig.configdata;
1+
package io.dapr.spring.boot.cloudconfig.configdata.types;
22

3-
public enum DaprCloudConfigType {
4-
DocProperties,
5-
DocYaml,
6-
Value;
3+
import org.springframework.util.StringUtils;
74

5+
public class DaprCloudConfigType {
86
/**
97
* Get Type from String.
108
* @param value type specified in schema
@@ -13,7 +11,7 @@ public enum DaprCloudConfigType {
1311
*/
1412
public static DaprCloudConfigType fromString(String value, String docType) {
1513
return "doc".equals(value)
16-
? ("yaml".equals(docType) ? DaprCloudConfigType.DocYaml : DaprCloudConfigType.DocProperties)
17-
: DaprCloudConfigType.Value;
14+
? new DocType(StringUtils.hasText(docType) ? docType : "properties")
15+
: new ValueType();
1816
}
1917
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.dapr.spring.boot.cloudconfig.configdata.types;
2+
3+
import org.springframework.util.StringUtils;
4+
5+
public class DocType extends DaprCloudConfigType {
6+
private final String docType;
7+
8+
public DocType(String docType) {
9+
this.docType = StringUtils.hasText(docType) ? docType : "properties";
10+
}
11+
12+
public String getDocType() {
13+
return docType;
14+
}
15+
16+
public String getDocExtension() {
17+
String type = getDocType();
18+
return "." + StringUtils.trimLeadingCharacter(type, '.');
19+
}
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package io.dapr.spring.boot.cloudconfig.configdata.types;
2+
3+
public class ValueType extends DaprCloudConfigType {
4+
}

spotbugs-exclude.xml

+6
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,10 @@
5151
<Package name="~io\.dapr.*"/>
5252
<Bug pattern="NP_UNWRITTEN_FIELD"/>
5353
</Match>
54+
55+
<!-- have to disable this in order to make test work -->
56+
<Match>
57+
<Class name="~io.dapr.spring.boot.cloudconfig.*"/>
58+
<Bug pattern="MS_EXPOSE_REP"/>
59+
</Match>
5460
</FindBugsFilter>

0 commit comments

Comments
 (0)