Skip to content

Commit de5e01a

Browse files
committed
Fix compile/test for list of beans support
1 parent 37e2dd3 commit de5e01a

File tree

5 files changed

+50
-28
lines changed

5 files changed

+50
-28
lines changed

config/src/main/java/com/typesafe/config/impl/ConfigBeanImpl.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ private static Object getValue(Class<?> beanClass, Type parameterType, Class<?>
170170

171171
private static Object getListValue(Class<?> beanClass, Type parameterType, Class<?> parameterClass, Config config, String configPropName) {
172172
Type elementType = ((ParameterizedType)parameterType).getActualTypeArguments()[0];
173-
173+
174174
if (elementType == Boolean.class) {
175175
return config.getBooleanList(configPropName);
176176
} else if (elementType == Integer.class) {
@@ -194,12 +194,12 @@ private static Object getListValue(Class<?> beanClass, Type parameterType, Class
194194
} else if (elementType == ConfigValue.class) {
195195
return config.getList(configPropName);
196196
} else if (hasAtLeastOneBeanProperty((Class<?>) elementType)) {
197-
List<Object> beanList = new ArrayList<>();
198-
List<? extends Config> configList = config.getConfigList(configPropName);
199-
for (Config listMember : configList) {
200-
beanList.add(createInternal(listMember, (Class<?>) elementType));
201-
}
202-
return beanList;
197+
List<Object> beanList = new ArrayList<Object>();
198+
List<? extends Config> configList = config.getConfigList(configPropName);
199+
for (Config listMember : configList) {
200+
beanList.add(createInternal(listMember, (Class<?>) elementType));
201+
}
202+
return beanList;
203203
} else {
204204
throw new ConfigException.BadBean("Bean property '" + configPropName + "' of class " + beanClass.getName() + " has unsupported list element type " + elementType);
205205
}

config/src/test/java/beanconfig/ArraysConfig.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,12 @@ public List<ConfigMemorySize> getOfMemorySize() {
128128
public void setOfMemorySize(List<ConfigMemorySize> ofMemorySize) {
129129
this.ofMemorySize = ofMemorySize;
130130
}
131-
131+
132132
public List<StringsConfig> getOfStringBean() {
133-
return ofStringBean;
134-
}
135-
133+
return ofStringBean;
134+
}
135+
136136
public void setOfStringBean(List<StringsConfig> ofStringBean) {
137-
this.ofStringBean = ofStringBean;
138-
}
137+
this.ofStringBean = ofStringBean;
138+
}
139139
}

config/src/test/java/beanconfig/StringsConfig.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,26 @@ public String getYes() {
2020
public void setYes(String s) {
2121
yes = s;
2222
}
23+
24+
@Override
25+
public boolean equals(Object o) {
26+
if (o instanceof StringsConfig) {
27+
StringsConfig sc = (StringsConfig) o;
28+
return sc.abcd.equals(abcd) &&
29+
sc.yes.equals(yes);
30+
} else {
31+
return false;
32+
}
33+
}
34+
35+
@Override
36+
public int hashCode() {
37+
int h = 41 * (41 + abcd.hashCode());
38+
return h + yes.hashCode();
39+
}
40+
41+
@Override
42+
public String toString() {
43+
return "StringsConfig(" + abcd + "," + yes + ")";
44+
}
2345
}

config/src/test/resources/beanconfig/beanconfig01.conf

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@
5454
"ofDuration" : [1, 2h, 3 days],
5555
"ofMemorySize" : [1024, 1M, 1G],
5656
"ofStringBean" : [
57-
{
58-
abcd : "testAbcdOne"
59-
yes : "testYesOne"
60-
},
61-
{
62-
abcd : "testAbcdTwo"
63-
yes : "testYesTwo"
64-
}
57+
{
58+
abcd : "testAbcdOne"
59+
yes : "testYesOne"
60+
},
61+
{
62+
abcd : "testAbcdTwo"
63+
yes : "testYesTwo"
64+
}
6565
]
6666
},
6767
"bytes" : {

config/src/test/scala/com/typesafe/config/impl/ConfigBeanFactoryTest.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ class ConfigBeanFactoryTest extends TestUtils {
4646
ConfigBeanFactory.create(config, classOf[ValidationBeanConfig])
4747
}
4848

49-
val expecteds = Seq(Missing("propNotListedInConfig", 67, "string"),
50-
WrongType("shouldBeInt", 68, "number", "boolean"),
51-
WrongType("should-be-boolean", 69, "boolean", "number"),
52-
WrongType("should-be-list", 70, "list", "string"))
49+
val expecteds = Seq(Missing("propNotListedInConfig", 77, "string"),
50+
WrongType("shouldBeInt", 78, "number", "boolean"),
51+
WrongType("should-be-boolean", 79, "boolean", "number"),
52+
WrongType("should-be-list", 80, "list", "string"))
5353

5454
checkValidationException(e, expecteds)
5555
}
@@ -111,15 +111,15 @@ class ConfigBeanFactoryTest extends TestUtils {
111111
ConfigMemorySize.ofBytes(1048576),
112112
ConfigMemorySize.ofBytes(1073741824)),
113113
beanConfig.getOfMemorySize.asScala)
114-
114+
115115
val stringsConfigOne = new StringsConfig();
116116
stringsConfigOne.setAbcd("testAbcdOne")
117117
stringsConfigOne.setYes("testYesOne")
118118
val stringsConfigTwo = new StringsConfig();
119119
stringsConfigTwo.setAbcd("testAbcdTwo")
120120
stringsConfigTwo.setYes("testYesTwo")
121-
122-
assertEquals(List(stringsConfigOne, stringsConfigTwo), beanConfig.getOfStringBean)
121+
122+
assertEquals(List(stringsConfigOne, stringsConfigTwo).asJava, beanConfig.getOfStringBean)
123123
}
124124

125125
@Test

0 commit comments

Comments
 (0)