Main Article Content
Abstract
Upgrading from Java 8 to Java 17 in the enterprise setting is both challenging and an opportunity, especially for mission-critical ecosystems. Java 17 is a long-term support (LTS) version that includes numerous enhancements over Java 8, including language syntax enhancements, improved garbage collection and memory management, enhanced security models, and modularization via the Java Platform Module System (JPMS). Nevertheless, the opportunities presented by Java 17 can be fully realised with the assistance of a well-organised migration plan that assesses risks, implements mitigation strategies, and ensures the equipping of enterprise-scale systems. This paper proposes a risk-based migration framework that is SAP-based, Java environment-specific, and identifies safe migration patterns, along with a detailed case study example to demonstrate how the workflow migration methodology works. We suggest an expedient and replicable solution that accommodates modernization.
Keywords
Article Details
References
- Oracle. (2021). Java SE 8 End of Public Updates. Oracle Technology Documentation.
- https://www.oracle.com/java/technologies/java8-support.html
- Oracle. (2021). JDK 17 Feature Specification Overview. OpenJDK Project.
- https://openjdk.org/projects/jdk/17/
- Dahanayake, D., Deelsnyder, J., & van der Weide, T. (2020). Challenges in integrating Java with enterprise SAP environments: A case-based analysis. Proceedings of the 2020 IEEE International Conference on Enterprise Systems, pp. 157–164. IEEE. https://doi.org/10.1109/ES.2020.00027
- Islam, M. R., Mahmood, A., & Hossain, M. (2021). Modernizing Java applications: Techniques and tools for migration. Journal of Software Engineering Research and Development, 9(1), 1–20.
- https://doi.org/10.1186/s40411-021-00123-4
- Oracle. (2016). JEP 246: Use G1 garbage collector as the default server GC. OpenJDK Project.
- https://openjdk.org/jeps/246
- Oracle. (2018). JEP 333: ZGC scalable low-latency garbage collector. OpenJDK Project.
- https://openjdk.org/jeps/333
- Oracle. (2019). JEP 361: Switch expressions (standard feature). OpenJDK Project.
- https://openjdk.org/jeps/361
- Oracle. (2021). JEP 394: Pattern Matching for instanceof. OpenJDK Project.
- https://openjdk.org/jeps/394
- Oracle. (2021). JEP 395: Records in Java. OpenJDK Project.
- https://openjdk.org/jeps/395
- Oracle. (2021). JEP 409: Sealed Classes and Interfaces. OpenJDK Project.
- https://openjdk.org/jeps/409
- Oracle. (2016). JEP 252: Default locale data based on Unicode CLDR. OpenJDK Project.
- https://openjdk.org/jeps/252
- SAP. (2024). SAP Java Connector (JCo) Technical Documentation. SAP Help Portal.
- https://help.sap.com/docs/JCO_LIB
- SAP. (2023). SAP Business Technology Platform Documentation. SAP Official Portal.
- https://www.sap.com/products/technology-platform/btp.html
- Reinhold, M. (2017). The State of the Java Module System. OpenJDK Jigsaw Project.
- https://openjdk.org/projects/jigsaw/spec/sotms/
- OWASP Foundation. (2023). OWASP Risk Rating Methodology. Available: https://owasp.org/www-community/OWASP_Risk_Rating_Methodology
- OWASP Foundation. (2023). OWASP Dependency-Check Documentation. Available: https://owasp.org/www-project-dependency-check/
- Apache Software Foundation. (2024). Apache Maven Dependency Plugin – Official Documentation. Available: https://maven.apache.org/plugins/maven-dependency-plugin/
- VMware. (2022). Spring Framework 6.0 Reference Documentation. Available: https://docs.spring.io/spring-framework/docs/6.0.x/reference/html/
- VMware. (2022). Spring Boot 3.0 Migration Guide. Available: https://docs.spring.io/spring-boot/docs/3.0.0/reference/htmlsingle/
- Eclipse Foundation. (2023). Jakarta EE 10 Platform Specification. Available: https://jakarta.ee/specifications/platform/10/
- Oracle. (2017). JEP 261: Module System (Project Jigsaw). OpenJDK Project. Available: https://openjdk.org/jeps/261
- Unicode Consortium. (2024). Unicode CLDR Project Documentation.
- https://cldr.unicode.org/
- Apache Software Foundation. (2024). Apache Maven Project Documentation. Available: https://maven.apache.org/
- Feitelson, D. G. (2015). Workload Modeling for Computer Systems Performance Evaluation. Cambridge University Press. https://doi.org/10.1017/CBO9781107280142
- Oracle. (2021). JEP 376: Hidden Classes. OpenJDK Project. Available: https://openjdk.org/jeps/376
- Oracle. (2021). JEP 411: Deprecate the Security Manager for Removal. OpenJDK Project. Available: https://openjdk.org/jeps/411
- NIST. (2020). Security and Privacy Controls for Information Systems and Organizations (SP 800-53 Rev. 5). National Institute of Standards and Technology. https://doi.org/10.6028/NIST.SP.800-53r5
- Oracle. (2021). JEP 403: Strongly Encapsulate JDK Internals. OpenJDK Project. Available: https://openjdk.org/jeps/403
- Li, Z., Liang, P., & Avgeriou, P. (2015). Architectural debt management in enterprise systems: A case study. Journal of Systems and Software, 110, 19–33. https://doi.org/10.1016/j.jss.2015.08.025
- Mens, T., & Demeyer, S. (2008). Software Evolution. Springer. https://doi.org/10.1007/978-3-540-76440-3
References
Oracle. (2021). Java SE 8 End of Public Updates. Oracle Technology Documentation.
https://www.oracle.com/java/technologies/java8-support.html
Oracle. (2021). JDK 17 Feature Specification Overview. OpenJDK Project.
https://openjdk.org/projects/jdk/17/
Dahanayake, D., Deelsnyder, J., & van der Weide, T. (2020). Challenges in integrating Java with enterprise SAP environments: A case-based analysis. Proceedings of the 2020 IEEE International Conference on Enterprise Systems, pp. 157–164. IEEE. https://doi.org/10.1109/ES.2020.00027
Islam, M. R., Mahmood, A., & Hossain, M. (2021). Modernizing Java applications: Techniques and tools for migration. Journal of Software Engineering Research and Development, 9(1), 1–20.
https://doi.org/10.1186/s40411-021-00123-4
Oracle. (2016). JEP 246: Use G1 garbage collector as the default server GC. OpenJDK Project.
Oracle. (2018). JEP 333: ZGC scalable low-latency garbage collector. OpenJDK Project.
Oracle. (2019). JEP 361: Switch expressions (standard feature). OpenJDK Project.
Oracle. (2021). JEP 394: Pattern Matching for instanceof. OpenJDK Project.
Oracle. (2021). JEP 395: Records in Java. OpenJDK Project.
Oracle. (2021). JEP 409: Sealed Classes and Interfaces. OpenJDK Project.
Oracle. (2016). JEP 252: Default locale data based on Unicode CLDR. OpenJDK Project.
SAP. (2024). SAP Java Connector (JCo) Technical Documentation. SAP Help Portal.
https://help.sap.com/docs/JCO_LIB
SAP. (2023). SAP Business Technology Platform Documentation. SAP Official Portal.
https://www.sap.com/products/technology-platform/btp.html
Reinhold, M. (2017). The State of the Java Module System. OpenJDK Jigsaw Project.
https://openjdk.org/projects/jigsaw/spec/sotms/
OWASP Foundation. (2023). OWASP Risk Rating Methodology. Available: https://owasp.org/www-community/OWASP_Risk_Rating_Methodology
OWASP Foundation. (2023). OWASP Dependency-Check Documentation. Available: https://owasp.org/www-project-dependency-check/
Apache Software Foundation. (2024). Apache Maven Dependency Plugin – Official Documentation. Available: https://maven.apache.org/plugins/maven-dependency-plugin/
VMware. (2022). Spring Framework 6.0 Reference Documentation. Available: https://docs.spring.io/spring-framework/docs/6.0.x/reference/html/
VMware. (2022). Spring Boot 3.0 Migration Guide. Available: https://docs.spring.io/spring-boot/docs/3.0.0/reference/htmlsingle/
Eclipse Foundation. (2023). Jakarta EE 10 Platform Specification. Available: https://jakarta.ee/specifications/platform/10/
Oracle. (2017). JEP 261: Module System (Project Jigsaw). OpenJDK Project. Available: https://openjdk.org/jeps/261
Unicode Consortium. (2024). Unicode CLDR Project Documentation.
Apache Software Foundation. (2024). Apache Maven Project Documentation. Available: https://maven.apache.org/
Feitelson, D. G. (2015). Workload Modeling for Computer Systems Performance Evaluation. Cambridge University Press. https://doi.org/10.1017/CBO9781107280142
Oracle. (2021). JEP 376: Hidden Classes. OpenJDK Project. Available: https://openjdk.org/jeps/376
Oracle. (2021). JEP 411: Deprecate the Security Manager for Removal. OpenJDK Project. Available: https://openjdk.org/jeps/411
NIST. (2020). Security and Privacy Controls for Information Systems and Organizations (SP 800-53 Rev. 5). National Institute of Standards and Technology. https://doi.org/10.6028/NIST.SP.800-53r5
Oracle. (2021). JEP 403: Strongly Encapsulate JDK Internals. OpenJDK Project. Available: https://openjdk.org/jeps/403
Li, Z., Liang, P., & Avgeriou, P. (2015). Architectural debt management in enterprise systems: A case study. Journal of Systems and Software, 110, 19–33. https://doi.org/10.1016/j.jss.2015.08.025
Mens, T., & Demeyer, S. (2008). Software Evolution. Springer. https://doi.org/10.1007/978-3-540-76440-3