Skip to content

Commit 2933fa5

Browse files
authored
Merge pull request #138 from TNG/update-java-expression-language
Update Java Expression Language
2 parents d2da747 + e88050e commit 2933fa5

17 files changed

+79
-113
lines changed

.github/workflows/build.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,12 @@ jobs:
3939
with:
4040
files: target/site/jacoco/jacoco.xml
4141
name: codecov
42+
43+
dependency-check:
44+
needs: test
45+
runs-on: ubuntu-latest
46+
steps:
47+
- name: Checkout
48+
uses: actions/checkout@v3
49+
- name: Check dependencies
50+
run: mvn -e dependency-check:check

pom.xml

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,13 @@
8888
</execution>
8989
</executions>
9090
</plugin>
91-
<plugin>
92-
<groupId>org.owasp</groupId>
93-
<artifactId>dependency-check-maven</artifactId>
94-
<version>7.2.1</version>
95-
<executions>
96-
<execution>
97-
<goals>
98-
<goal>check</goal>
99-
</goals>
100-
</execution>
101-
</executions>
91+
<plugin>
92+
<groupId>org.owasp</groupId>
93+
<artifactId>dependency-check-maven</artifactId>
94+
<version>7.2.1</version>
95+
<configuration>
96+
<failBuildOnCVSS>5</failBuildOnCVSS>
97+
</configuration>
10298
</plugin>
10399
<plugin>
104100
<groupId>org.apache.maven.plugins</groupId>
@@ -207,8 +203,8 @@
207203
</dependency>
208204
<dependency>
209205
<groupId>org.glassfish</groupId>
210-
<artifactId>javax.el</artifactId>
211-
<version>3.0.1-b12</version>
206+
<artifactId>jakarta.el</artifactId>
207+
<version>3.0.4</version>
212208
</dependency>
213209
<dependency>
214210
<groupId>org.hibernate.validator</groupId>

src/main/java/com/tngtech/configbuilder/util/ConfigValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.slf4j.LoggerFactory;
99

1010
import javax.validation.ConstraintViolation;
11+
import javax.validation.Validator;
1112
import javax.validation.ValidatorFactory;
1213
import java.lang.reflect.Method;
1314
import java.util.Set;
@@ -45,7 +46,7 @@ private void callValidationMethods(T instanceOfConfigClass) {
4546

4647
private void callJSRValidation(T instanceOfConfigClass) {
4748
ValidatorFactory factory = configBuilderFactory.getInstance(ValidatorFactory.class);
48-
javax.validation.Validator validator = factory.getValidator();
49+
Validator validator = factory.getValidator();
4950
Set<ConstraintViolation<T>> constraintViolations = validator.validate(instanceOfConfigClass);
5051
if (!constraintViolations.isEmpty()) {
5152
StringBuilder stringBuilder = new StringBuilder(errorMessageSetup.getErrorMessage(ValidatorException.class) + "\n");

src/test/java/com/tngtech/configbuilder/ConfigBuilderExceptionTest.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,22 @@
66
import com.tngtech.configbuilder.testclasses.TestConfigThrowsInvocationTargetExceptionException;
77
import com.tngtech.configbuilder.testclasses.TestConfigThrowsPrimitiveParsingException;
88
import com.tngtech.configbuilder.testclasses.TestConfigWithoutDefaultConstructor;
9-
import org.junit.Rule;
109
import org.junit.Test;
11-
import org.junit.rules.ExpectedException;
1210
import org.junit.runner.RunWith;
1311
import org.junit.runners.Parameterized;
1412

1513
import java.util.Arrays;
1614
import java.util.Collection;
1715

16+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
17+
1818
@RunWith(Parameterized.class)
1919
public class ConfigBuilderExceptionTest {
2020

2121
private Class configClass;
2222
private Class<? extends Throwable> exceptionClass;
2323
private String message;
2424

25-
@Rule
26-
public ExpectedException expectedException = ExpectedException.none();
27-
2825
@Parameterized.Parameters
2926
public static Collection configs() {
3027
return Arrays.asList(new Object[][]{
@@ -42,9 +39,9 @@ public ConfigBuilderExceptionTest(Class configClass, Class<? extends Throwable>
4239

4340
@Test
4441
public void testConfigBuilderExceptions() {
45-
expectedException.expect(exceptionClass);
46-
expectedException.expectMessage(message);
4742
ConfigBuilder configBuilder = new ConfigBuilder(configClass);
48-
configBuilder.build();
43+
assertThatThrownBy(() -> configBuilder.build())
44+
.isInstanceOf(exceptionClass)
45+
.hasMessageContaining(message);
4946
}
5047
}

src/test/java/com/tngtech/configbuilder/ConfigBuilderIntegrationTest.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package com.tngtech.configbuilder;
22

3+
import com.tngtech.configbuilder.exception.ValidatorException;
34
import com.tngtech.configbuilder.testclasses.TestConfig;
45
import com.tngtech.configbuilder.testutil.SystemOutRule;
56
import org.junit.Rule;
67
import org.junit.Test;
78

9+
import javax.validation.constraints.NotNull;
810
import java.nio.file.Path;
911
import java.nio.file.Paths;
1012
import java.util.ArrayList;
@@ -13,15 +15,15 @@
1315

1416
import static com.google.common.collect.Lists.newArrayList;
1517
import static com.google.common.collect.Sets.newHashSet;
16-
import static com.google.common.collect.Sets.newLinkedHashSet;
1718
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
1820

1921
public class ConfigBuilderIntegrationTest {
2022

2123
@Rule
2224
public SystemOutRule systemOut = new SystemOutRule();
2325

24-
private ConfigBuilder configBuilder = ConfigBuilder.on(TestConfig.class);
26+
private ConfigBuilder<TestConfig> configBuilder = ConfigBuilder.on(TestConfig.class);
2527

2628
@Test
2729
public void testConfigBuilderWithParameters() {
@@ -38,7 +40,7 @@ public void testConfigBuilderWithParameters() {
3840
String[] args = {"-u", "--collection", "first entry,second entry"};
3941
Object result = configBuilder.withCommandLineArgs(args).build();
4042

41-
assertThat(result).isEqualToComparingFieldByField(expectedTestConfig);
43+
assertThat(result).usingRecursiveComparison().isEqualTo(expectedTestConfig);
4244
assertThat(systemOut.getLog()).contains("config validated");
4345
}
4446

@@ -55,7 +57,7 @@ public void testWithImportedConfig() {
5557
TestConfig expectedTestConfig = new TestConfig();
5658
expectedTestConfig.setSomeNumber(5);
5759
List<Path> paths = Arrays.asList(Paths.get("/mnt"), Paths.get("/home"));
58-
expectedTestConfig.setPathCollection(newLinkedHashSet(paths));
60+
expectedTestConfig.setPathCollection(newHashSet(paths));
5961
expectedTestConfig.setCopiedStringCollection(importedTestConfig.getStringCollection());
6062
expectedTestConfig.setSomeString("Hello, World!");
6163
expectedTestConfig.setBoolean(true);
@@ -68,7 +70,20 @@ public void testWithImportedConfig() {
6870
String[] args = {"-u", "--collection", "collection,two"};
6971
Object result = configBuilder.withCommandLineArgs(args).withImportedConfiguration(importedTestConfig).build();
7072

71-
assertThat(result).isEqualToComparingFieldByField(expectedTestConfig);
73+
assertThat(result).usingRecursiveComparison().isEqualTo(expectedTestConfig);
7274
assertThat(systemOut.getLog()).contains("config validated");
7375
}
76+
77+
static class ConfigWithNotNullValidation {
78+
@NotNull
79+
private String notNullString;
80+
}
81+
82+
@Test
83+
public void testValidation(){
84+
ConfigBuilder<ConfigWithNotNullValidation> configBuilder = new ConfigBuilder<>(ConfigWithNotNullValidation.class);
85+
assertThatThrownBy(configBuilder::build)
86+
.isInstanceOf(ValidatorException.class)
87+
.hasMessageContaining("must not be null");
88+
}
7489
}

src/test/java/com/tngtech/configbuilder/ConfigBuilderWithoutAnnotationsIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void testConfigBuilderWithParameters() {
4848
.withCommandLineArgs(args)
4949
.addProperties(additionalProperties)
5050
.build();
51-
assertThat(result).isEqualToComparingFieldByField(expectedConfig);
51+
assertThat(result).usingRecursiveComparison().isEqualTo(expectedConfig);
5252
assertThat(systemOut.getLog()).contains("config validated");
5353
}
5454
}

src/test/java/com/tngtech/configbuilder/annotation/propertyloaderconfiguration/PropertyFiltersProcessorTest.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,15 @@
55
import com.tngtech.propertyloader.impl.filters.*;
66
import com.tngtech.propertyloader.impl.interfaces.PropertyLoaderFilter;
77
import org.junit.Before;
8-
import org.junit.Rule;
98
import org.junit.Test;
10-
import org.junit.rules.ExpectedException;
119
import org.junit.runner.RunWith;
1210
import org.mockito.InOrder;
1311
import org.mockito.Mock;
1412
import org.mockito.junit.MockitoJUnitRunner;
1513

1614
import java.util.Properties;
1715

16+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
1817
import static org.mockito.Mockito.*;
1918

2019
@RunWith(MockitoJUnitRunner.class)
@@ -27,9 +26,6 @@ protected String filterValue(String key, String value, Properties properties) {
2726
}
2827
}
2928

30-
@Rule
31-
public ExpectedException expectedException = ExpectedException.none();
32-
3329
@Mock
3430
private PropertyFilters propertyFilters;
3531
@Mock
@@ -82,8 +78,8 @@ public void testAnnotationWithUnknownValuesShouldThrowException() {
8278
@SuppressWarnings("unchecked") Class<? extends PropertyLoaderFilter>[] classes = new Class[]{TestPropertyFilter.class};
8379
when(propertyFilters.value()).thenReturn(classes);
8480

85-
expectedException.expect(IllegalStateException.class);
86-
expectedException.expectMessage("unhandled filter class TestPropertyFilter");
87-
propertyFiltersProcessor.configurePropertyLoader(propertyFilters, propertyLoader);
81+
assertThatThrownBy(() -> propertyFiltersProcessor.configurePropertyLoader(propertyFilters, propertyLoader))
82+
.isInstanceOf(IllegalStateException.class)
83+
.hasMessage("unhandled filter class TestPropertyFilter");
8884
}
8985
}

src/test/java/com/tngtech/configbuilder/annotation/valueextractor/DefaultValueProcessorTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,12 @@ public class DefaultValueProcessorTest {
2121
private DefaultValue defaultValue;
2222

2323
@Before
24-
public void setUp() throws Exception {
24+
public void setUp() {
2525
defaultValueProcessor = new DefaultValueProcessor();
2626
}
2727

2828
@Test
2929
public void testDefaultValueProcessor() {
30-
3130
when(defaultValue.value()).thenReturn("value");
3231
assertThat(defaultValueProcessor.getValue(defaultValue, configBuilderFactory)).isEqualTo("value");
3332
}

src/test/java/com/tngtech/configbuilder/annotation/valueextractor/SystemPropertyProcessorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class SystemPropertyProcessorTest {
2020
private ConfigBuilderFactory configBuilderFactory;
2121

2222
@Test
23-
public void testGetValue() throws Exception {
23+
public void testGetValue() {
2424
when(systemPropertyValue.value()).thenReturn("user.language");
2525
assertThat(systemPropertyProcessor.getValue(systemPropertyValue, configBuilderFactory)).isEqualTo(System.getProperty("user.language"));
2626
}

src/test/java/com/tngtech/configbuilder/testclasses/TestConfigNotNullViolation.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)