Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade spring-rest to use spring-boot 2 #2496

Closed
t92549 opened this issue Aug 26, 2021 · 1 comment · Fixed by #2608
Closed

Upgrade spring-rest to use spring-boot 2 #2496

t92549 opened this issue Aug 26, 2021 · 1 comment · Fixed by #2608
Assignees
Labels
dependencies Updates/changes to Maven or other dependencies enhancement Improvement to existing functionality/feature rest-api Specific to/touches a part of the REST API

Comments

@t92549
Copy link
Contributor

t92549 commented Aug 26, 2021

Currently the spring-rest module uses spring-boot version 1.3.2.RELEASE, which was released in January 2016. This should be upgraded to the newest release of 2.5.4 for new features and security. One example being that spring boot 2 supports JUnit 5.
This migration guide can be used: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide

While upgrading to spring-boot 2.5.4, we should simultaneously try to upgrade to OpenAPI 3.0, which is the next version of Swagger 2.

@t92549 t92549 added dependencies Updates/changes to Maven or other dependencies rest-api Specific to/touches a part of the REST API labels Aug 26, 2021
@t92549 t92549 added this to the v2.0.0 milestone Aug 26, 2021
@t511203 t511203 self-assigned this Sep 9, 2021
@n3101 n3101 modified the milestones: v2.0.0, v2.0.0-alpha-0.2 Jan 26, 2022
GCHQDeveloper314 pushed a commit that referenced this issue Jan 31, 2022
GCHQDeveloper314 pushed a commit that referenced this issue Mar 8, 2022
GCHQDeveloper314 pushed a commit that referenced this issue Mar 8, 2022
@GCHQDeveloper314 GCHQDeveloper314 linked a pull request Mar 11, 2022 that will close this issue
@t92549 t92549 added the enhancement Improvement to existing functionality/feature label Mar 24, 2022
t92549 pushed a commit that referenced this issue Apr 5, 2022
* Change 'org.apache.commons.lang' imports to be 'org.apache.commons.lang3'

* Fix use of removed internal Java API

* Remove jackson profile

* Correct failsafe plugin versioning

* Jackson - Relocate JsonInclude Annotation

* Fix lamda which is ambiguous with Java 11

* Upgrade versions of Spark and graphframes.
Also add jackson-databind as an explicit dependency to prevent another incompatible version being introduced.

* Change test to match on exception content
In Java 11 the exception contains more info, including file and line number. Instead of matching on the exact string and needing to update the test whenever this changes, match on the string we expect the exception to contain.

* Fix assertj tests for Java 11

* Add javax.annotation dependency
This is no longer part of Java itself

* Remove hadoop2 classifier

* Update POM and bump versions various dependencies
Also replaces findbugs with spotbugs.

* Update JUnit and fix checkstyle

* Downgrade version of maven-failsafe-plugin
JUnit integration test for graph fails to load if the maven-failsafe-plugin version is 3.0.0-M5. Works with 3.0.0-M4.

* Fix Flink version and improve versioning of dependencies to use centrally managed version properties
Also add JAXB Module, as this is no longer included in the JDK.

* Fix core-rest Jackson dependencies
Also needed to bump version of swagger - old version had NoSuchMethodError when used with newer jackson

* Upgrade Jersey version
Also requires a single test in OperationServiceV2IT.java to be disabled - unknown why this is failing.

* Update hazelcast-cache-service to the latest version
See https://docs.hazelcast.com/imdg/4.2/migration-guides#upgrading-to-hazelcast-imdg-4-0 for migration details.

* Upgrade Maven plugin versions

* Upgrade versions of Apache Commons libraries

* gh-2496: Update to Spring Boot v2.5.8
Includes Guava upgrade

* Update remaining dependencies to newer versions
Also remove 'org.apache.httpcomponents' and 'snappy' artifacts as dependencies. Neither are used by Gaffer directly and so shouldn't be specifed.

* Upgrade Swagger version, remove duplicate Guava dependency
Guava version is defined in the parent POM, an old version is no longer required for Swagger

* Remove remaining traces of findbugs

* Tidy up POM to remove unused and duplicate dependencies

* Replace tomcat7-maven-plugin with cargo-maven3-plugin and upgrade to Tomcat 9
The tomcat7 plugin was last updated in 2013, it doesn't support Java 11

* Specify all Maven Plugins in pluginManagement
Also add default plugins to ensure the default versions (which are very old) are not used

* Upgrade zookeeper, remove unused dependencies from POM

* Use Java 8, set lower versions of dependencies

* Fix POM property naming mistake

* Downgrade Scala version - For backwards compatibility with Spark

* Fix Jackson issue

* Update Hazelcast to latest version

* Downgrade dependencies to retain compatibility with Hadoop

* Reinstate hadoop-hdfs as a test dependency - this is required for Hadoop 2

* Remove Java 11 related changes

* Change Jersey to compatible version

* Replace Log4j with Reload4j
Also add enforcer plugin to prevent future problems

* Update NOTICES file

* Set Koryphe to use jar classifiers and use 2.1.0

* Fix Log4j exclusions
The latest versions of some these deps require both exclusions

* Add property for assertj

Co-authored-by: t511203 <t511203@users.noreply.github.com>
@t92549
Copy link
Contributor Author

t92549 commented Apr 8, 2022

Closed by #2608

@t92549 t92549 closed this as completed Apr 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Updates/changes to Maven or other dependencies enhancement Improvement to existing functionality/feature rest-api Specific to/touches a part of the REST API
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants