diff --git a/.gradle/8.8/checksums/checksums.lock b/.gradle/8.8/checksums/checksums.lock new file mode 100644 index 0000000..3e3c88c Binary files /dev/null and b/.gradle/8.8/checksums/checksums.lock differ diff --git a/.gradle/8.8/dependencies-accessors/gc.properties b/.gradle/8.8/dependencies-accessors/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/8.8/fileChanges/last-build.bin b/.gradle/8.8/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/.gradle/8.8/fileChanges/last-build.bin differ diff --git a/.gradle/8.8/fileHashes/fileHashes.bin b/.gradle/8.8/fileHashes/fileHashes.bin new file mode 100644 index 0000000..c53b30d Binary files /dev/null and b/.gradle/8.8/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.8/fileHashes/fileHashes.lock b/.gradle/8.8/fileHashes/fileHashes.lock new file mode 100644 index 0000000..7a52b5e Binary files /dev/null and b/.gradle/8.8/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.8/gc.properties b/.gradle/8.8/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000..2d6960e Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..0cd56ab --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Wed Feb 26 12:57:42 IST 2025 +gradle.version=8.8 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml index f019649..ddef9da 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,5 @@ - + 4.0.0 org.springframework @@ -10,14 +9,19 @@ org.springframework.boot spring-boot-starter-parent - 2.0.5.RELEASE + 3.3.9 + + jakarta.validation + jakarta.validation-api + 3.1.1 + software.amazon.awssdk bom - 2.14.27 + 2.28.6 pom import @@ -38,7 +42,7 @@ org.json json - 20200518 + 20240303 org.springframework.boot @@ -49,38 +53,33 @@ org.apache.logging.log4j log4j-api - 2.13.3 + 2.24.3 - - junit - junit - 4.13.1 - test - org.apache.logging.log4j log4j-core - 2.13.3 + 2.24.3 org.mockito - mockito-all - 1.10.19 + mockito-core test - javax.validation - validation-api - 2.0.1.Final + jakarta.validation + jakarta.validation-api - 1.8 + 17 + 17 + 17 + 17 @@ -92,10 +91,8 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 - ${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..55f9d7c 100644 --- a/src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java +++ b/src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java @@ -23,7 +23,7 @@ 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 jakarta.validation.Valid; import static org.springframework.web.bind.annotation.RequestMethod.POST; 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..3c9d576 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,17 @@ // depreciation example - sun.misc.BASE64Encoder; package com.amazonaws.samples.appconfig.utils; -import sun.misc.BASE64Encoder; -import java.util.Date; +import java.util.Base64; +import java.util.Calendar; +import java.util.GregorianCalendar; public class Encoder { - Date defaultDate = new Date(1999, 0, 1); + Calendar defaultDate = new GregorianCalendar(1999, Calendar.JANUARY, 1); 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/HTMLBuilder.java b/src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java index 16d4edd..e3477f4 100644 --- a/src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java +++ b/src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java @@ -33,11 +33,17 @@ public String getMoviesHtml(Movie[] movies) { private static String getMovieItemsHtml(Movie[] movies) { StringBuilder movieItemsHtml = new StringBuilder(); for (Movie movie : movies) { - movieItemsHtml.append("
" - + "

ID: ").append(movie.getId()).append("

" - + "

").append(movie.getMovieName()).append("

" - + "
" - + "
"); + movieItemsHtml.append(""" +
\ +

ID: \ + """).append(movie.getId()).append(""" +

\ +

\ + """).append(movie.getMovieName()).append(""" +

\ +
\ +
\ + """); } return movieItemsHtml.toString(); } 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..65acc21 100644 --- a/src/main/java/com/amazonaws/samples/appconfig/utils/Security.java +++ b/src/main/java/com/amazonaws/samples/appconfig/utils/Security.java @@ -1,10 +1,11 @@ //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.security.cert.CertificateFactory; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; +import java.io.IOException; import java.io.InputStream; import java.util.Date; @@ -12,11 +13,11 @@ public class Security { public Certificate getCertificate(File certFile) throws CertificateExpiredException, CertificateNotYetValidException { X509Certificate cert = null; try { - InputStream inStream = new FileInputStream(certFile); - cert = X509Certificate.getInstance(inStream); - } catch (CertificateException e) { - throw new RuntimeException(e); - } catch (FileNotFoundException e) { + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + try (InputStream inStream = new FileInputStream(certFile)) { + cert = (X509Certificate) cf.generateCertificate(inStream); + } + } catch (CertificateException | IOException e) { throw new RuntimeException(e); } cert.checkValidity(new Date()); 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..98d18b7 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,11 @@ package com.amazonaws.samples.appconfig.movies; -import org.junit.Test; - import java.math.BigDecimal; -import com.amazonaws.samples.appconfig.utils.Math; +import java.math.RoundingMode; +import org.junit.jupiter.api.Test; -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 +18,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.java b/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java index ce58091..1746230 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; 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..a86400b 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,8 @@ 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.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.core.env.Environment; @@ -14,9 +14,10 @@ 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 { @@ -31,7 +32,7 @@ public class MoviesControllerTest { private MoviesController moviesController; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.initMocks(this); moviesController = new MoviesController(); @@ -51,7 +52,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; diff --git a/summary/buildCommandOutput.log b/summary/buildCommandOutput.log new file mode 100644 index 0000000..296647a --- /dev/null +++ b/summary/buildCommandOutput.log @@ -0,0 +1,33 @@ +[INFO] Scanning for projects... +[INFO] +[INFO] -----------------< org.springframework:movie-service >------------------ +[INFO] Building movie-service 0.1.0 +[INFO] from pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- clean:3.3.2:clean (default-clean) @ movie-service --- +[INFO] +[INFO] --- resources:3.3.1:resources (default-resources) @ movie-service --- +[INFO] Copying 1 resource from src/main/resources to target/classes +[INFO] Copying 1 resource from src/main/resources to target/classes +[INFO] +[INFO] --- compiler:3.13.0:compile (default-compile) @ movie-service --- +[INFO] Recompiling the module because of changed source code. +[INFO] Compiling 11 source files with javac [debug deprecation parameters release 17] to target/classes +[WARNING] /ramdisk/code/src/main/java/com/amazonaws/samples/appconfig/utils/AppConfigUtility.java:[92,59] getConfiguration(software.amazon.awssdk.services.appconfig.model.GetConfigurationRequest) in software.amazon.awssdk.services.appconfig.AppConfigClient has been deprecated +[INFO] +[INFO] --- resources:3.3.1:testResources (default-testResources) @ movie-service --- +[INFO] skip non existing resourceDirectory /ramdisk/code/src/test/resources +[INFO] +[INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ movie-service --- +[INFO] Recompiling the module because of changed dependency. +[INFO] Compiling 4 source files with javac [debug deprecation parameters release 17] to target/test-classes +[WARNING] /ramdisk/code/src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java:[37,27] initMocks(java.lang.Object) in org.mockito.MockitoAnnotations has been deprecated +[INFO] /ramdisk/code/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java: /ramdisk/code/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java uses unchecked or unsafe operations. +[INFO] /ramdisk/code/src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java: Recompile with -Xlint:unchecked for details. +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 4.084 s +[INFO] Finished at: 2025-02-26T07:42:00Z +[INFO] ------------------------------------------------------------------------ diff --git a/summary/qct-icons/transform-build-dark.svg b/summary/qct-icons/transform-build-dark.svg new file mode 100644 index 0000000..6a3d121 --- /dev/null +++ b/summary/qct-icons/transform-build-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/summary/qct-icons/transform-clock-dark.svg b/summary/qct-icons/transform-clock-dark.svg new file mode 100644 index 0000000..4fba7b4 --- /dev/null +++ b/summary/qct-icons/transform-clock-dark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/summary/qct-icons/transform-dependencies-dark.svg b/summary/qct-icons/transform-dependencies-dark.svg new file mode 100644 index 0000000..67e2654 --- /dev/null +++ b/summary/qct-icons/transform-dependencies-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/summary/qct-icons/transform-dependencyAnalyzer-dark.svg b/summary/qct-icons/transform-dependencyAnalyzer-dark.svg new file mode 100644 index 0000000..360dd03 --- /dev/null +++ b/summary/qct-icons/transform-dependencyAnalyzer-dark.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/summary/qct-icons/transform-file-dark.svg b/summary/qct-icons/transform-file-dark.svg new file mode 100644 index 0000000..6dc7dda --- /dev/null +++ b/summary/qct-icons/transform-file-dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/summary/qct-icons/transform-listFiles-dark.svg b/summary/qct-icons/transform-listFiles-dark.svg new file mode 100644 index 0000000..7f75386 --- /dev/null +++ b/summary/qct-icons/transform-listFiles-dark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/summary/qct-icons/transform-logo.svg b/summary/qct-icons/transform-logo.svg new file mode 100644 index 0000000..51f68cf --- /dev/null +++ b/summary/qct-icons/transform-logo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/summary/qct-icons/transform-smartStepInto-dark.svg b/summary/qct-icons/transform-smartStepInto-dark.svg new file mode 100644 index 0000000..bf66ecd --- /dev/null +++ b/summary/qct-icons/transform-smartStepInto-dark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/summary/qct-icons/transform-step-into-dark.svg b/summary/qct-icons/transform-step-into-dark.svg new file mode 100644 index 0000000..07fd107 --- /dev/null +++ b/summary/qct-icons/transform-step-into-dark.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/summary/qct-icons/transform-variables-dark.svg b/summary/qct-icons/transform-variables-dark.svg new file mode 100644 index 0000000..f36d366 --- /dev/null +++ b/summary/qct-icons/transform-variables-dark.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/summary/summary.md b/summary/summary.md new file mode 100644 index 0000000..581af1b --- /dev/null +++ b/summary/summary.md @@ -0,0 +1,95 @@ + + +

Code Transformation Summary by Amazon Q

+

Q has made the following changes during the transformation process.

+

Lines of code in your application: 610

+

Transformation duration: 12 min(s)

+

Dependencies upgraded: 11 out of 15

+

Planned deprecated code instances replaced: 14 of 14

+

Files changed: 10

+

Build status in Java 17: SUCCEEDED

+ +### Table of Contents + +1. Build log summary +1. Planned dependencies replaced +1. Additional dependencies added +1. Deprecated code replaced +1. Other changes +1. All files changed + + +### Build log summary Scroll to top + +Amazon Q successfully built the upgraded code in Java 17. Here is a relevant snippet from the build log. To view the full build log, open [`buildCommandOutput.log`](./buildCommandOutput.log) + +``` +The build process for a Java 17 application was successful. The compilation process included both main and test sources. A warning about unchecked or unsafe operations was reported during test compilation. +``` + + +### Planned dependencies replaced Scroll to top + +Amazon Q updated the following dependencies that it identified in the transformation plan + +| Dependency | Action | Previous version in Java 8 | Current version in Java 17 | +|--------------|--------|--------|--------| +| `jakarta.validation:jakarta.validation-api` | Added | - | 3.1.1 | +| `javax.validation:validation-api` | Removed | 2.0.1.Final | - | +| `junit:junit` | Removed | 4.13.1 | - | +| `org.mockito:mockito-all` | Removed | 1.10.19 | - | +| `org.mockito:mockito-core` | Added | - | - | +| `org.springframework.boot:spring-boot-starter-parent` | Updated | 2.0.5.RELEASE | 3.3.9 | + +### Additional dependencies added Scroll to top + +Amazon Q updated the following additional dependencies during the upgrade + +| Dependency | Action | Previous version in Java 8 | Current version in Java 17 | +|--------------|--------|--------|--------| +| `org.apache.logging.log4j:log4j-api` | Updated | 2.13.3 | 2.24.3 | +| `org.apache.logging.log4j:log4j-core` | Updated | 2.13.3 | 2.24.3 | +| `org.apache.maven.plugins:maven-compiler-plugin` | Updated | 3.8.1 | - | +| `org.json:json` | Updated | 20200518 | 20240303 | +| `software.amazon.awssdk:bom` | Updated | 2.14.27 | 2.28.6 | + +### Deprecated code replaced Scroll to top + + +Amazon Q replaced the following instances of deprecated code. An instance with 0 files changed +indicates Amazon Q wasn't able to replace the deprecated code. + +| Deprecated code | Files changed | +|----------------|----------------| +| `java.lang.Boolean.Boolean(boolean)` | 1 | +| `java.lang.Byte.Byte(String)` | 1 | +| `java.lang.Character.Character(char)` | 1 | +| `java.lang.Double.Double(double)` | 1 | +| `java.lang.Float.Float(float)` | 1 | +| `java.lang.Integer.Integer(int)` | 1 | +| `java.lang.Short.Short(String)` | 1 | +| `java.math.BigDecimal.divide(BigDecimal,int)` | 2 | +| `java.math.BigDecimal.divide(BigDecimal,int,int)` | 2 | +| `java.math.BigDecimal.setScale(int,int)` | 2 | +| `java.util.Date.Date(int,int,int)` | 1 | + + + +### Other changes Scroll to top + + + +### All files changed Scroll to top + +| File | Action | +|----------------|--------| +| [pom.xml](../pom.xml) | Updated | +| [src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java](../src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java) | Updated | +| [src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java](../src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java) | Updated | +| [src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java](../src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java) | Updated | +| [src/main/java/com/amazonaws/samples/appconfig/utils/Math.java](../src/main/java/com/amazonaws/samples/appconfig/utils/Math.java) | Updated | +| [src/main/java/com/amazonaws/samples/appconfig/utils/Security.java](../src/main/java/com/amazonaws/samples/appconfig/utils/Security.java) | Updated | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java](../src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java) | Updated | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java](../src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java) | Updated | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java](../src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java) | Updated | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java](../src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java) | Updated | \ No newline at end of file diff --git a/transformation-plan.md b/transformation-plan.md new file mode 100644 index 0000000..3bf1963 --- /dev/null +++ b/transformation-plan.md @@ -0,0 +1,53 @@ + + +

Code Transformation plan by Amazon Q


Amazon Q reviewed your code and generated a transformation plan. Amazon Q will suggest code changes according to the plan, and you can review the updated code before accepting changes to your files.

Lines of code in your application: 610

Dependencies to be replaced: 10

Deprecated code instances to be replaced: 17

Files to be changed: 9

Planned transformation changes

Amazon Q will use the proposed changes as guidance during the transformation. The final code updates might differ from this plan. Read more.

Step 1 - Update JDK version, dependencies and related code

Scroll to top

Amazon Q will attempt to update the JDK version and change the following dependencies and related code.

+ + +Dependency Changes +| Dependency | Action | Current version | Target version | +|-----|-----|-----|-----| +| jakarta.validation:jakarta.validation-api | ADD | - | latest.release | +| javax.validation:javax.validation-api | ADD | - | - | +| javax.validation:validation-api | REMOVE | 2.0.1.Final | - | +| junit:junit | REMOVE | 4.13.1 | - | +| org.apache.logging.log4j:* | UPDATE | - | 2.x | +| org.junit.vintage:junit-vintage-engine | REMOVE | - | - | +| org.mockito:* | UPDATE | - | 4.x | +| org.mockito:mockito-all | REMOVE | 1.10.19 | - | +| org.mockito:mockito-core | ADD | - | - | +| org.springframework.boot:spring-boot-starter-parent | UPDATE | 2.0.5.RELEASE | 3.3.x | + +

Step 2 - Upgrade deprecated code

Scroll to top

Amazon Q will attempt to replace the following instances of deprecated code.

+ + +Deprecated Api Changes +| Deprecated code | Files to be changed | +|-----|-----| +| java.lang.Boolean.Boolean(boolean) | 1 | +| java.lang.Byte.Byte(String) | 1 | +| java.lang.Character.Character(char) | 1 | +| java.lang.Double.Double(double) | 1 | +| java.lang.Float.Float(float) | 1 | +| java.lang.Integer.Integer(int) | 1 | +| java.lang.Short.Short(String) | 1 | +| java.math.BigDecimal.divide(BigDecimal,int) | 2 | +| java.math.BigDecimal.divide(BigDecimal,int,int) | 2 | +| java.math.BigDecimal.setScale(int,int) | 2 | +| java.util.Date.Date(int,int,int) | 1 | + +

Step 3 - Apply code changes and resolve compilation errors

Scroll to top

Amazon Q will apply additional dependency and code changes.


Step 4 - Finalize code changes and generate transformation summary

Scroll to top

Amazon Q will generate code changes that you can review before accepting changes to your files. You can also view a transformation summary with details about the upgrade and build logs for future reference and troubleshooting.



Appendix
Scroll to top


+ + +File Changes +| File | Action | +|-----|-----| +| [src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java](src/main/java/com/amazonaws/samples/appconfig/movies/MoviesController.java) | UPDATE | +| [src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java](src/main/java/com/amazonaws/samples/appconfig/utils/Encoder.java) | UPDATE | +| [src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java](src/main/java/com/amazonaws/samples/appconfig/utils/HTMLBuilder.java) | UPDATE | +| [src/main/java/com/amazonaws/samples/appconfig/utils/Math.java](src/main/java/com/amazonaws/samples/appconfig/utils/Math.java) | UPDATE | +| [src/main/java/com/amazonaws/samples/appconfig/utils/Security.java](src/main/java/com/amazonaws/samples/appconfig/utils/Security.java) | UPDATE | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java](src/test/java/com/amazonaws/samples/appconfig/movies/MathTest.java) | UPDATE | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java](src/test/java/com/amazonaws/samples/appconfig/movies/MockTest.java) | UPDATE | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java](src/test/java/com/amazonaws/samples/appconfig/movies/MovieTest.java) | UPDATE | +| [src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java](src/test/java/com/amazonaws/samples/appconfig/movies/MoviesControllerTest.java) | UPDATE | +