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