diff --git a/pom.xml b/pom.xml
index f019649..602c5cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.5.RELEASE
+ 3.0.13
@@ -44,43 +44,39 @@
org.springframework.boot
spring-boot-starter-test
test
+
+
+ com.vaadin.external.google
+ android-json
+
+
org.apache.logging.log4j
log4j-api
- 2.13.3
-
-
-
- junit
- junit
- 4.13.1
- test
org.apache.logging.log4j
log4j-core
- 2.13.3
org.mockito
- mockito-all
- 1.10.19
+ mockito-core
+ 4.11.0
test
- javax.validation
- validation-api
- 2.0.1.Final
+ jakarta.validation
+ jakarta.validation-api
- 1.8
+ 21
@@ -92,10 +88,9 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.1
+ 3.14.0
- ${java.version}
- ${java.version}
+ ${java.version}
diff --git a/src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java b/src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java
index d7c6fc6..e4f20c2 100644
--- a/src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java
+++ b/src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java
@@ -17,15 +17,13 @@
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import software.amazon.awssdk.services.appconfig.AppConfigClient;
import software.amazon.awssdk.services.appconfig.model.GetConfigurationResponse;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.validation.Valid;
-
-import static org.springframework.web.bind.annotation.RequestMethod.POST;
+import jakarta.validation.Valid;
@RestController
public class MoviesController {
@@ -107,7 +105,7 @@ public String movie() {
}
}
- @RequestMapping(value = "/movies/{movie}/edit", method = POST)
+ @PostMapping("/movies/{movie}/edit")
public String processUpdateMovie(@Valid Movie movie, BindingResult result, @PathVariable("movieId") int movieId) {
final AppConfigUtility appConfigUtility = new AppConfigUtility(getOrDefault(this::getClient, this::getDefaultClient),
getOrDefault(this::getConfigurationCache, ConfigurationCache::new),
diff --git a/src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java b/src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java
index ff45b66..d5fcdaa 100644
--- a/src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java
+++ b/src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java
@@ -1,16 +1,18 @@
// depreciation example - sun.misc.BASE64Encoder;
package com.amazonaws.samples.appconfig.utils;
-import sun.misc.BASE64Encoder;
+import java.util.Base64;
+import java.time.LocalDate;
+import java.time.ZoneId;
import java.util.Date;
public class Encoder {
- Date defaultDate = new Date(1999, 0, 1);
+ Date defaultDate = Date.from(LocalDate.of(1999, 1, 1).atStartOfDay(ZoneId.systemDefault()).toInstant());
byte[] bytes = new byte[57];
- String enc1 = new sun.misc.BASE64Encoder().encode(bytes);
+ String enc1 = Base64.getEncoder().encodeToString(bytes);
}
\ No newline at end of file
diff --git a/src/main/java/com/amazonaws/samples/appconfig/utils/Math.java b/src/main/java/com/amazonaws/samples/appconfig/utils/Math.java
index 259b286..226f6fb 100644
--- a/src/main/java/com/amazonaws/samples/appconfig/utils/Math.java
+++ b/src/main/java/com/amazonaws/samples/appconfig/utils/Math.java
@@ -1,27 +1,28 @@
//example from https://docs.openrewrite.org/running-recipes/popular-recipe-guides/migrate-to-java-17
package com.amazonaws.samples.appconfig.utils;
import java.math.BigDecimal;
+import java.math.RoundingMode;
public class Math {
- Boolean bool = new Boolean(true);
- Byte b = new Byte("1");
- Character c = new Character('c');
- Double d = new Double(1.0);
- Float f = new Float(1.1f);
- Long l = new Long(1);
- Short sh = new Short("12");
+ Boolean bool = Boolean.valueOf(true);
+ Byte b = Byte.valueOf("1");
+ Character c = Character.valueOf('c');
+ Double d = Double.valueOf(1.0);
+ Float f = Float.valueOf(1.1f);
+ Long l = Long.valueOf(1);
+ Short sh = Short.valueOf("12");
short s3 = 3;
- Short sh3 = new Short(s3);
- Integer i = new Integer(1);
+ Short sh3 = Short.valueOf(s3);
+ Integer i = Integer.valueOf(1);
public void divide() {
BigDecimal bd = BigDecimal.valueOf(10);
BigDecimal bd2 = BigDecimal.valueOf(2);
- bd.divide(bd2, BigDecimal.ROUND_DOWN);
- bd.divide(bd2, 1);
- bd.divide(bd2, 1, BigDecimal.ROUND_CEILING);
- bd.divide(bd2, 1, 1);
- bd.setScale(2, 1);
+ bd.divide(bd2, RoundingMode.DOWN);
+ bd.divide(bd2, RoundingMode.DOWN);
+ bd.divide(bd2, 1, RoundingMode.CEILING);
+ bd.divide(bd2, 1, RoundingMode.DOWN);
+ bd.setScale(2, RoundingMode.DOWN);
}
}
\ No newline at end of file
diff --git a/src/main/java/com/amazonaws/samples/appconfig/utils/Security.java b/src/main/java/com/amazonaws/samples/appconfig/utils/Security.java
index 56cad72..d83807d 100644
--- a/src/main/java/com/amazonaws/samples/appconfig/utils/Security.java
+++ b/src/main/java/com/amazonaws/samples/appconfig/utils/Security.java
@@ -1,7 +1,7 @@
//javax.security.cert to java.security.cert classes migration
package com.amazonaws.samples.appconfig.utils;
-import javax.security.cert.*;
+import java.security.cert.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -13,7 +13,8 @@ public Certificate getCertificate(File certFile) throws CertificateExpiredExcept
X509Certificate cert = null;
try {
InputStream inStream = new FileInputStream(certFile);
- cert = X509Certificate.getInstance(inStream);
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ cert = (X509Certificate) cf.generateCertificate(inStream);
} catch (CertificateException e) {
throw new RuntimeException(e);
} catch (FileNotFoundException e) {
diff --git a/src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java b/src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java
index 04972c1..b57fd8d 100644
--- a/src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java
+++ b/src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java
@@ -1,11 +1,10 @@
package com.amazonaws.samples.appconfig.movies;
-
-import org.junit.Test;
-
+import java.math.RoundingMode;
+import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
-import com.amazonaws.samples.appconfig.utils.Math;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import com.amazonaws.samples.appconfig.utils.Math;
public class MathTest {
@@ -18,21 +17,21 @@ public void testDivide() {
BigDecimal bd = BigDecimal.valueOf(10);
BigDecimal bd2 = BigDecimal.valueOf(2);
BigDecimal expectedResult1 = BigDecimal.valueOf(5);
- assertEquals(expectedResult1, bd.divide(bd2, BigDecimal.ROUND_DOWN));
+ assertEquals(expectedResult1, bd.divide(bd2, RoundingMode.DOWN));
// Test divide(BigDecimal, int)
BigDecimal expectedResult2 = BigDecimal.valueOf(5.0);
// Test divide(BigDecimal, int, int)
BigDecimal expectedResult3 = BigDecimal.valueOf(5.0);
- assertEquals(expectedResult3, bd.divide(bd2, 1, BigDecimal.ROUND_CEILING));
+ assertEquals(expectedResult3, bd.divide(bd2, 1, RoundingMode.CEILING));
BigDecimal expectedResult4 = BigDecimal.valueOf(5.0);
- assertEquals(expectedResult4, bd.divide(bd2, 1, 1));
+ assertEquals(expectedResult4, bd.divide(bd2, 1, RoundingMode.DOWN));
// Test setScale(int, int)
BigDecimal expectedResult5 = BigDecimal.valueOf(10);
- bd.setScale(2, 1);
+ bd.setScale(2, RoundingMode.DOWN);
assertEquals(expectedResult5, bd);
}
}
diff --git a/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.class b/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.class
new file mode 100644
index 0000000..d3f595a
Binary files /dev/null and b/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.class differ
diff --git a/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java b/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java
index ce58091..90537e1 100644
--- a/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java
+++ b/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java
@@ -1,15 +1,15 @@
package com.amazonaws.samples.appconfig.movies;
-import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyInt;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.mock;
@@ -18,6 +18,7 @@ public class MockTest {
@Test
public void testList() {
+ @SuppressWarnings("unchecked")
List mocklist = mock(List.class);
when(mocklist.get(anyInt())).thenReturn("Movies");
@@ -29,6 +30,7 @@ public void testList() {
@Test
public void creatingASpyOnArrayList() {
+ @SuppressWarnings("unchecked")
List listSpy = spy(ArrayList.class);
listSpy.add("Paid");
listSpy.add("Movies");
@@ -40,7 +42,8 @@ public void creatingASpyOnArrayList() {
@Test
public void letsMockListSizeWithMultipleReturnValues() {
- List list = mock(List.class);
+ @SuppressWarnings("unchecked")
+ List list = mock(List.class);
Mockito.when(list.size()).thenReturn(10).thenReturn(20);
assertEquals(10, list.size()); // First Call
assertEquals(20, list.size()); // Second Call
@@ -49,6 +52,7 @@ public void letsMockListSizeWithMultipleReturnValues() {
@Test
public void letsMockListGet() {
+ @SuppressWarnings("unchecked")
List list = mock(List.class);
Mockito.when(list.get(0)).thenReturn("PaidMovies");
diff --git a/src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java b/src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java
index 998a8b6..7e599e8 100644
--- a/src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java
+++ b/src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java
@@ -1,12 +1,8 @@
package com.amazonaws.samples.appconfig.movies;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
import com.amazonaws.samples.appconfig.movies.MoviesController;
-@RunWith(SpringRunner.class)
@SpringBootTest
public class MovieTest {
diff --git a/src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java b/src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java
index f4f616c..c937af3 100644
--- a/src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java
+++ b/src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java
@@ -3,8 +3,9 @@
import com.amazonaws.samples.appconfig.utils.AppConfigUtility;
import com.amazonaws.samples.appconfig.cache.ConfigurationCache;
import com.amazonaws.samples.appconfig.model.ConfigurationKey;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.core.env.Environment;
@@ -14,12 +15,15 @@
import java.time.Duration;
import java.util.UUID;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
public class MoviesControllerTest {
+ private AutoCloseable mocks;
+
@Mock
private Environment env;
@@ -31,9 +35,9 @@ public class MoviesControllerTest {
private MoviesController moviesController;
- @Before
+ @BeforeEach
public void setUp() {
- MockitoAnnotations.initMocks(this);
+ mocks = MockitoAnnotations.openMocks(this);
moviesController = new MoviesController();
moviesController.env = env;
}
@@ -51,7 +55,7 @@ public void testMovieWithFeatureEnabled() {
GetConfigurationResponse getConfigurationResponse = GetConfigurationResponse.builder().build();
AppConfigUtility appConfigUtility = mock(AppConfigUtility.class);
- when(appConfigUtility.getConfiguration(any(ConfigurationKey.class))).thenReturn(getConfigurationResponse);
+ when(appConfigUtility.getConfiguration(nullable(ConfigurationKey.class))).thenReturn(getConfigurationResponse);
moviesController.cacheItemTtl = Duration.ofSeconds(60);
moviesController.client = appConfigClient;
@@ -70,4 +74,9 @@ public void testMovieWithFeatureEnabled() {
assertEquals(5, expectedMovies.length);
}
+ @AfterEach
+ void tearDown() throws Exception {
+ mocks.close();
+ }
+
}
\ No newline at end of file