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

Update dependency org.springframework.boot:spring-boot-starter-parent to v3 #12

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate-bot
Copy link

@renovate-bot renovate-bot commented Jul 15, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.springframework.boot:spring-boot-starter-parent (source) 2.5.5 -> 3.3.5 age adoption passing confidence

Release Notes

spring-projects/spring-boot (org.springframework.boot:spring-boot-starter-parent)

v3.3.5

Compare Source

🐞 Bug Fixes
  • Running mvn spring-boot:run with classpaths that exceeds Windows' length limits leaves temporary files #​42841
  • Report produced by ConditionReportApplicationContextFailureProcessor is always empty in a failed test #​42785
  • Case-insensitive comparisons may be adversely affected by the user's locale #​42735
  • DataSourceProperties#driverClassIsLoadable should not print a stacktrace to the error stream when it fails #​42683
  • Some @ControllerEndpoint and @RestControllerEndpoint infrastructure remains undeprecated #​42498
  • Auto-configuration for Rabbit Streams doesn't consider RabbitConnectionDetails #​42490
  • ClassNotFoundException is thrown when loading protocol resolvers from ForkJoinPool task #​42468
  • ActiveMQ Artemis Connection Factory creation fails in native image #​42421
  • Duplicate meter binding when context contains multiple registries, none are primary, and one or more is a composite #​42397
📔 Documentation
  • Document that embedded Tomcat must be at least 10.1.25 #​42849
  • Fix systemd example configuration #​42805
  • Document that the exact behavior of the maximum HTTP request header size property is server-specific #​42789
  • Clarify why @Primary is recommended when defining your own ObjectMapper that replaces JacksonAutoConfiguration's #​42787
  • Polish javadoc for Binder#bindOrCreate(String, Class) #​42778
  • Document that Tomcat's maxQueueCapacity need to be greater than 0 #​42726
  • Remove stale link to jar-to-war getting started guide #​42723
  • Fix typos and formatting errors in documentation #​42718
  • Fix case used for examples in "Sanitize Sensitive Values" #​42702
  • Fix Regex javadoc links #​42685
  • Document how Map properties are bound from environment variables #​42672
  • Improve classpath index documentation for reproducible builds #​42643
  • Remove links to Spring Data GemFire #​42596
  • Order alphabetically the sections in Common Application Properties #​42520
  • Improve the javadoc describing when @ConditionalOn(Missing)Bean will infer the type to match #​42505
  • Document how to handle MANIFEST.MF in native image with Maven #​42476
  • Fix links to Micrometer reference doc #​42467
  • Polish documentation #​42454
  • Add Javadoc since for PrometheusScrapeEndpoint(PrometheusRegistry, Properties) #​42406
  • Remove note about graceful shutdown with Tomcat requiring 9.0.33 or later as we now require 10.1.x #​42382
  • Document support for Java 23 #​42380
  • Improve documentation for CycloneDX integration #​41506
🔨 Dependency Upgrades
❤️ Contributors

Thank you to all the contributors who worked on this release:

@​IMWoo94, @​arefbehboudi, @​izeye, @​jeonghyeon00, @​ngocnhan-tran1996, @​nosan, and @​quaff

v3.3.4

Compare Source

🐞 Bug Fixes

  • management.health.db.ignore-routing-datasources=true has no effect when an AbstractRoutingDataSource has been wrapped #​42322
  • Missing details in OAuth2ClientProperties validation error message #​42279
  • FileNotFoundException from unused mis-configured SSL bundles #​42169
  • ZipkinHttpClientSender fails with "Failed to introspect Class" when spring-web is not on the classpath #​42161
  • @RestartScope can cause 'Recursive update' exceptions when used with container beans #​42107
  • JarLauncher fails to load large jar files #​42079
  • PropertiesMigrationListener wrongly reports property as deprecated when has group #​42071
  • Using an empty string MongoDB 'replica-set-name' property will result in ClusterType=REPLICA_SET #​42059
  • Default Logback config uses deprecated "converterClass" attribute #​42006

📔 Documentation

  • Document that spring.jmx.enabled is not intended for third-party libraries #​42285
  • Update link to Log4j2 system properties #​42263
  • Links to GraphQL in the reference guide redirect to the root instead of specific sections #​42208
  • Syntax error in "Receive a message reactively section" of the reference guide #​42200
  • Deprecation reason for the autotime enabled, percentiles, and percentiles-historgram properties is confusing #​42193
  • Replace RFC 7807 by RFC 9457 in property documentation #​42190
  • Document that configuration property binding to a Kotlin value class with a default is not supported #​42176
  • Update documentation to reflect new no handler found exception behavior #​42167
  • Polish configuration property reference #​42165
  • Remove link to “Converting a Spring Boot JAR Application to a WAR” as the guide is no longer available #​42111
  • Fix StatsD link typo on Metrics documentation page #​42109
  • Improve docker without buildpacks documentation #​42106
  • Improve documentation in "Command-line Completion" #​42103
  • Kotlin code examples are missing from the Testing section #​42094
  • Fix incorrect command in Docker configuration for Colima #​42078
  • Gradle Plugin AOT documentation has sample error #​42046

🔨 Dependency Upgrades

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​Alchemik, @​arefbehboudi, @​einarpehrson, @​izeye, @​martinfrancois, @​mushroom528, @​nosan, and @​quaff

v3.3.3

Compare Source

⭐ New Features

  • Add TWENTY_THREE to JavaVersion enum #​41716

🐞 Bug Fixes

  • Extending DefaultErrorAttributes and overriding getErrorAttributes() gets called twice #​41995
  • When using WebFlux, server.error.include-binding-errors=ALWAYS no longer has an effect when the BindingResult exception is the cause of a ResponseStatusException #​41987
  • PropertiesLauncher does not respect classpath.idx when adding jars in BOOT-INF/lib to the classpath #​41970
  • Web extension for SBOM endpoint isn't available under /cloudfoundryapplication #​41890
  • Launcher's ClassLoader is no longer parallel capable #​41873
  • spring-boot-testcontainers causes unwanted container initialization during AOT processing #​41859
  • ReactiveElasticsearchRepositoriesAutoConfiguration should back off when Reactor is not on the classpath #​41678
  • mvn spring-boot:build-image fails when 'classifier' is set to non-default value #​41661
  • Spring Boot Maven plugin AOT cannot handle Maven modules with module-info.java #​41647
  • Docker publishRegistry in Maven plugin configuration is validated when publish option is false #​41641
  • Using Gradle's new file permission API is implemented in a way that prevents removal of the old API #​41607
  • Some @ControllerEndpoint and @RestControllerEndpoint infrastructure remains undeprecated #​41596
  • Constructor binding of EnumMap fails due to missing key type #​41563

📔 Documentation

  • Improve documented logging property descriptions and default values #​41989
  • Explain that enabling virtual threads disables traditional thread pools #​41976
  • Harmonize code sample for MyUserHandler in reference documentation #​41949
  • Document when environment variable property mapping applies #​41945
  • Javadoc of slice test annotations should describe more accurately which components are considered #​41935
  • Fix duplicate words #​41920
  • Document the need to explicitly reset mock servers when using mock server customizers directly #​41849
  • Correct grammar in 'Running your Application with Maven' #​41840
  • Document more clearly that username and password are not used when spring.data.redis.url is set #​41748
  • Pulsar configuration does not have default value for several entries in the metadata #​41683
  • management.otlp.metrics.export.aggregation-temporality does not have a default value in the metadata #​41676
  • management.newrelic.metrics.export.client-provider-type does not have a default value in the metadata #​41670
  • server.error.include-path does not have a default value in the metadata #​41667
  • The effect upon Actuator of defining your own SecurityFilterChain is documented inconsistently #​41638
  • "Use Spring Data repositories" How-to incorrectly refers to Repository annotations #​41628
  • "Use Spring Data repositories" How-to incorrectly refers to Repository annotations #​41627
  • Update link to documentation for log4j-spring-boot #​41622
  • Fix link to Flyway reference documentation #​41593
  • Document configuration property binding's support for using @Name to customize a property name #​41585
  • Add hint for new dependencies required for Flyway #​41574
  • Document that spring-boot:repackage should not be run from the command-line #​22317

🔨 Dependency Upgrades

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​PiyalAhmed, @​Rajin9601, @​cms04, @​dreis2211, @​eddumelendez, @​hyunmin0317, @​ivamly, @​jmewes, @​jxblum, @​lamtrinhdev, @​ngocnhan-tran1996, @​quaff, and @​ritzykey

v3.3.2

Compare Source

🐞 Bug Fixes

  • No configuration property for defaultTimeout setting that was introduced in Spring Integration 6.2 #​41521
  • NPE during auto-configuration in OnClassCondition.resolveOutcomesThreaded because firstHalf is null #​41504
  • Spring Authorization Server now defaults multipleIssuersAllowed to false and it cannot be easily re-enabled #​41355
  • ServiceConnection does not work with @DataLdapTest #​41325
  • PropertiesMigrationListener wrongly reports property as deprecated #​41252
  • @NestedConfigurationProperty doesn't work on records #​41251
  • TestcontainersLifecycleBeanPostProcessor does not work correctly with scoped beans #​41238
  • Error message can be misleading if spring.config.import fails to resolve #​41236
  • build-image failures after docker desktop update with 'Illegal char <:> at index 5: npipe:////' #​41234
  • When using Jetty, filters, listeners, and servlets are not initialized with the same thread context classloader #​41225
  • DirtiesContext used with Webflux, a random port and multiple contexts causes multiple contexts to misbehave #​41221
  • NoSuchMethodException on org.apache.activemq.ActiveMQConnectionFactory.<init> when using spring-boot-starter-activemq in a native image #​41214

📔 Documentation

  • Fix documentation links in the README #​41531
  • Document the types to which each spring.mvc.format and spring.webflux.format property applies #​41518
  • Document that logging.file.name and logging.file.path cannot be used together #​41516
  • Refine CDS how-to guide #​41464
  • Fix typos in javadoc of BootstrapContext #​41448
  • CDS link in "Efficient Deployments" documentation is broken #​41321
  • Update Kotlin DSL examples that configure the environment of bootBuildImage to be additive #​41270
  • Document tracing support for RestClient #​41192
  • Documentation wrongly states that zipkin-sender-urlconnection is needed #​41181

🔨 Dependency Upgrades

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​acouvreur, @​anbusampath, @​eddumelendez, @​izeye, @​jxblum, @​mateusscheper, @​opcooc, and @​sdeleuze

v3.3.1

Compare Source

🐞 Bug Fixes

  • SQL Server JDBC URL is malformed after adding org.springframework.boot.jdbc.parameters label #​41169
  • Git instant properties cannot be coerced following git-commit-id Maven plugin upgrade #​41152
  • Excluding status code from DefaultErrorAttributes throws NPE #​41141
  • Spring Boot remote restart with devtools causes 'factory already defined' Tomcat error when running with 'java -jar' #​41107
  • MongoHealthIndicator not compliant with Mongo stable API with strict setting #​41104
  • Service connection for bitnami mongodb fails to connect #​41097
  • Image building requires builder to specify a stack #​41091
  • DataSourceProperties fail to bind if java.sql module isn't included #​41084
  • AOT causes Logback configuration error when using include #​41081
  • Image building hangs when builder and buildpack are configured #​41049
  • IllegalArgumentException when trying to use Tomcat's HttpNio2Protocol with Spring Boot-configured SSL #​41010
  • Uber jar fails to start when it contains a dependency with Multi-Release: true in its manifest and unexpected file entries in META-INF/versions #​41006
  • JSP-related resources may not be found in an executable war file when using Jetty #​40996
  • The value of the tomcat.threads.config.max metric is always -1, irrespective of the configured maximum number of threads #​40957
  • The auto-configured reactiveNeo4jTransactionManager may cause a failure due to multiple TransactionManager beans #​40953
  • Application fails to start when server.tomcat.threads.max < 10 #​40945
  • SBOM actuator endpoint doesn't work in a native image #​40939
  • Starter parent applies its configuration of the CycloneDX Maven plugin too broadly #​40927
  • buildInfo does not work with Gradle 8.7 or later when the configuration cache is enabled #​40924
  • Prometheus Exemplars are missing from _count #​40904
  • Extract fails due to a duplicate entry when BOOT-INF/classes contains a directory that's also present in the root of the jar #​40903
  • sbom is not available to the actuator endpoint when using bootRun or bootWar #​40890
  • A newline character is missing from the start of the default banner #​40889

📔 Documentation

  • Fix links to Spring AMQP's javadoc #​41144
  • Document more precisely how a Container's Docker image name is used to find the matching service connection #​41123
  • Cross-link to the CDS how-to guide #​41118
  • Fix typos in javadoc of MockServerRestClientCustomizer and MockServerRestTemplateCustomizer #​41065
  • Improve readability when listing three pillars of observability #​41064
  • Add CDS training run configuration documentation #​41045
  • Document the need to switch to io.micrometer:micrometer-registry-prometheus-simpleclient to use the Prometheus push gateway #​40993
  • Improve consistency of documentation guidelines for packaging and running applications #​40977
  • Fix typos in method names and javadoc #​40976
  • Replace hard-coded links to Micrometer in documentation #​40967
  • Add Kotlin example for @Testcontainers #​40943
  • Fix various minor inconsistencies of the documentation #​40942
  • Warn in the documentation that spring.profiles.group can only be used in non-profile-specific documents #​40941
  • Broken Micrometer links in documentation #​40916
  • Document Buildpacks CDS and Spring AOT support #​40762

🔨 Dependency Upgrades

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​Eng-Fouad, @​PiyalAhmed, @​Seungpang, @​asashour, @​cmabdullah, @​dependabot[bot], @​donghoony, @​erie0210, @​izeye, @​mateusscheper, @​onobc, @​quaff, @​sdeleuze, and @​vsanna

v3.3.0

Compare Source

⭐ New Features

  • Add support for descriptions of record components in configuration metadata generation #​29403

🐞 Bug Fixes

  • gradlew bootBuildImage fails with Podman on macOS Sonoma #​40871
  • Pulsar auth parameters don't properly encode JSON values #​40869
  • When using JPA and ImportTestcontainers, test context may fail to refresh due to "Mapped port can only be obtained after the container is started" #​40863
  • Default MIME mappings are not loaded unless additional mappings are configured #​40860
  • Starting from 3.2.x, @SpyBean is not able to initialise MongoRepository bean of the generic type #​40855
  • Auto-configuration ordering change breaks DocumentReference (in non-reactive MongoTemplate) when depending on mongodb-driver-reactivestreams #​40851
  • Neo4jReactiveDataAutoConfiguration creates incorrectly named bean #​40836
  • Image building fails during cleanup when bind mount has read-only content #​40799
  • Failure Analysis for InvalidConfigurationPropertyValueException is skipped when the property is not set #​40691
  • IllegalArgumentException can be thrown when running an uber jar on a shared drive #​40643
  • setReadTimeout can't be set via Reflective factory on JettyClientHttpRequestFactory #​40638
  • URISyntaxException is raised if the spring boot application is started in a location that contains invalid URI characters #​40616
  • resolveMainClassName fails when building with Gradle using Java 22 #​40613
  • AnsiOutput.detectIfAnsiCapable broken on JDK22 #​40609
  • Help information for spring init's build option has the wrong default #​40606
  • JarUrlConnection.getPermission() can throw NullPointerException if jarFileConnection is null #​40599
  • Whitespace is not correctly trimmed when generating configuration properties metadata from records #​40593
  • In some situations, the failure when the AOT-generated initializer cannot be loaded is less helpful than before #​40584
  • Properties binding eagerly creates superfluous maps #​40561
  • Configuring SSL bundle reload for non-file resource types causes errors that are difficult to diagnose #​40560
  • spring-boot-dependencies cannot be used with repositories that ban com.oracle.database.jdbc:ojdbc-bom #​40535
  • Buildpacks do not support Docker with containerd image store #​40526
  • SpringBootMockMvcBuilderCustomizer can crash cryptically while collecting data that it would have discarded anyway #​40517
  • Containers not shut down between tests when using .withReuse(true) but env. does not support reuse (e.g. CI builds) #​40509
  • CookieSameSiteSupplier influences session cookie #​40501
  • <springProperty> and <springProfile> do not work in <include> after Logback upgrade #​40491
  • Runtime hint registration for property binding should not fail when parameter information is unavailable #​40486
  • ServiceLevelObjectiveBoundary properties cannot be bound in a native image application #​40483
  • server.error.include-binding-errors does not recognize MethodValidationResult exceptions #​40474
  • spring.data.redis.cluster.nodes and spring.data.redis.sentinel.nodes do not handle IPv6 addresses correctly #​40467
  • Using relative paths to describe the classpath in the error message from ResolveMainClassName hinders problem diagnosis #​40465
  • Jartools extract command doesn't extract all files from META-INF #​40456
  • Native image doesn't start and doesn't log anything if an environment post processor throws an exception #​40451
  • Unlike DataSourceAutoConfiguration, DevToolsDataSourceAutoConfiguration assumes that javax.sql.DataSource will always be available #​40441

📔 Documentation

  • Improve graceful shutdown documentation to remove ambiguity #​40846
  • Document ways to opt out from immutable @ConfigurationProperties binding with single constructor #​40844
  • Document that a custom HttpMessageConverters bean can be used to reorder json message converters when needed #​40839
  • Address ambiguity now that Testcontainers has two classes named KafkaContainer #​40756
  • Publish API documentation for Spring Boot's Kotlin APIs #​40692
  • Fix typo in features doc #​40631
  • Code inclusion in Jersey documentation is broken #​40629
  • Add How-To for ManagedClassNameFilter #​40617
  • Clarify devtools restart class loader #​40608
  • Document default value of management.zipkin.tracing.encoding #​40588
  • Note that spring-boot-docker-compose is excluded by default from packaged jars #​40565
  • Clarify docs around spring.jpa.generate-ddl #​40523
  • Clarify the directory that's used by default to find Docker Compose compose.yaml #​40515
  • Suggest testAndDevelopmentOnly configuration when using Docker Compose support in tests #​40481
  • Clarify that all named properties must match for @ConditionalOnProperty to match #​40471
  • Links to Spring Batch javadoc for EnableBatchProcessing and DefaultBatchConfiguration are broken #​40141
  • Add grpc starter and httpexchange starter to the community starters document #​39437

🔨 Dependency Upgrades


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

coderabbitai bot commented Jul 15, 2024

Walkthrough

The pom.xml file has been updated to increase the version of the spring-boot-starter-parent dependency from 2.5.5 to 3.3.5. This change indicates a significant upgrade in the Spring Boot framework used in the project, which may involve enhancements in performance, security, and compatibility with newer libraries, while also potentially introducing breaking changes that require code adjustments.

Changes

File Change Summary
pom.xml Updated spring-boot-starter-parent from 2.5.5 to 3.3.5.

Poem

In the meadow where versions grow,
Spring Boot hops, putting on a show.
From 2.5.5 to 3.3.5,
Upgrades bloom, oh what a score!
With every leap, our code shines bright,
A rabbit's cheer for changes in sight! 🌼🐇


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 6bbe0ee and cc88cd8.

Files selected for processing (1)
  • pom.xml (1 hunks)
Files skipped from review due to trivial changes (1)
  • pom.xml

@renovate-bot renovate-bot force-pushed the renovate/org.springframework.boot-spring-boot-starter-parent-3.x branch from cc88cd8 to 0e1ecff Compare July 18, 2024 20:20
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range, codebase verification and nitpick comments (1)
pom.xml (1)

17-17: Update Java version to at least 17 for compatibility with Spring Boot 3.3.2.

The pom.xml specifies java.version as 1.8, which is incompatible with spring-boot-starter-parent version 3.3.2. Spring Boot 3.x requires at least Java 17. Please update the Java version to ensure compatibility.

  • Java version specified: <java.version>1.8</java.version>
  • Dependencies:
    • spring-boot-starter-web
    • spring-boot-starter-test
  • Parent POM: spring-boot-starter-parent version 3.3.2
Analysis chain

Verify compatibility with Java version and other dependencies.

The spring-boot-starter-parent version has been updated to 3.3.2. Ensure that this version is compatible with the specified Java version (1.8) and other dependencies (spring-boot-starter-web, spring-boot-starter-test, spring-boot-maven-plugin, maven-surefire-plugin).

Consider updating the Java version to 11 or higher if compatibility issues arise, as Spring Boot 3.x has dropped support for Java 8.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility of Spring Boot 3.3.2 with Java 1.8 and other dependencies.

# Check for Java version compatibility in Spring Boot documentation.
echo "Check Spring Boot 3.3.2 compatibility with Java 1.8: https://docs.spring.io/spring-boot/docs/3.3.2/reference/html/getting-started.html#getting-started-system-requirements"

# Check for dependency compatibility.
mvn dependency:tree | grep -E 'spring-boot-starter-web|spring-boot-starter-test|spring-boot-maven-plugin|maven-surefire-plugin'

Length of output: 551


Script:

#!/bin/bash
# Description: Extract Java version and dependencies from pom.xml for manual verification.

# Extract Java version
echo "Java version in pom.xml:"
rg '<maven.compiler.source>|<maven.compiler.target>' pom.xml

# Extract dependencies
echo "Dependencies in pom.xml:"
rg '<dependency>' -A 3 pom.xml

Length of output: 484


Script:

#!/bin/bash
# Description: Extract parent POM information and recheck for Java version.

# Extract parent POM information
echo "Parent POM information in pom.xml:"
rg '<parent>' -A 3 pom.xml

# Recheck for Java version in case it's specified elsewhere
echo "Rechecking for Java version in pom.xml:"
rg '<maven.compiler.source>|<maven.compiler.target>|<java.version>' pom.xml

Length of output: 446

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between cc88cd8 and 0e1ecff.

Files selected for processing (1)
  • pom.xml (1 hunks)

@renovate-bot renovate-bot changed the title Update dependency org.springframework.boot:spring-boot-starter-parent to v3 Update dependency org.springframework.boot:spring-boot-starter-parent to v3.3.2 Aug 19, 2024
@renovate-bot renovate-bot changed the title Update dependency org.springframework.boot:spring-boot-starter-parent to v3.3.2 Update dependency org.springframework.boot:spring-boot-starter-parent to v3 Aug 20, 2024
@renovate-bot renovate-bot force-pushed the renovate/org.springframework.boot-spring-boot-starter-parent-3.x branch from 0e1ecff to 9176df7 Compare August 22, 2024 22:57
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 0e1ecff and 9176df7.

Files selected for processing (1)
  • pom.xml (1 hunks)
Additional comments not posted (1)
pom.xml (1)

17-17: Verify compatibility with Spring Boot 3.3.3.

The version update from 2.5.5 to 3.3.3 is a significant upgrade and may include breaking changes. Ensure that the application and its dependencies are compatible with this new version. Review the Spring Boot 3.3.3 release notes for detailed information on changes and potential impacts.

Run the following script to check for potential breaking changes and deprecated features:

@renovate-bot renovate-bot force-pushed the renovate/org.springframework.boot-spring-boot-starter-parent-3.x branch from 9176df7 to 5b3ace2 Compare September 19, 2024 11:25
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 9176df7 and 5b3ace2.

Files selected for processing (1)
  • pom.xml (1 hunks)

pom.xml Outdated
@@ -14,7 +14,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<version>3.3.4</version>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

Update Java version to 17 or later for Spring Boot 3.x compatibility

The upgrade from Spring Boot 2.5.5 to 3.3.4 is a significant change, but there's a critical compatibility issue:

  • The project currently uses Java 1.8, but Spring Boot 3.x requires Java 17 or later.

To proceed with the upgrade:

  1. Update the <java.version> in pom.xml to at least 17.
  2. Review the application.properties file for any configuration changes required by Spring Boot 3.x.
  3. Consult the Spring Boot 3.x migration guide for other potential issues not detected in this static analysis.
  4. After making these changes, thoroughly test the application to ensure compatibility.

While no immediately obvious deprecated features were found, the Java version update may reveal additional compatibility issues. Careful testing is crucial after making these changes.

Analysis chain

Thoroughly test the application with the upgraded Spring Boot version.

Upgrading the Spring Boot version from 2.5.5 to 3.3.4 is a significant change that can introduce new features, bug fixes, and performance improvements. However, it may also involve breaking changes that require code adjustments in the application.

Please ensure that:

  1. The application is thoroughly tested with the newer Spring Boot version to identify any compatibility issues or breaking changes.
  2. The Spring Boot release notes are reviewed to understand the specific changes introduced in version 3.3.4 and how they may impact the application.
  3. Other dependencies and plugins that interact with Spring Boot are updated as needed to maintain compatibility.

Run the following script to verify the compatibility of the application with the upgraded Spring Boot version:

Please let me know if you encounter any issues during the testing process or if you have any concerns about the upgrade.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the application's compatibility with the upgraded Spring Boot version.

# Test: Build the application with the updated Spring Boot version.
mvn clean package

# Test: Run the application and perform thorough manual testing to identify any issues.
java -jar target/demo-0.0.1-SNAPSHOT.jar

# Test: Review the application logs for any error messages or warnings related to the Spring Boot upgrade.
rg --type log -i "error|warning" logs/

Length of output: 292


Script:

#!/bin/bash

# Analyze pom.xml for dependencies
echo "Analyzing pom.xml for dependencies:"
cat pom.xml | grep -E "<dependency>|<artifactId>|<version>"

echo "\nSearching for Spring Boot annotations and configurations:"
rg -i "@SpringBootApplication|@EnableAutoConfiguration|@Configuration|@Bean|@Component|@Service|@Repository|@Controller|@RestController"

echo "\nSearching for potential deprecated features:"
rg -i "WebSecurityConfigurerAdapter|WebMvcConfigurerAdapter|@EnableWebMvc|@EnableWebSecurity"

echo "\nSearching for application.properties or application.yml:"
fd -e properties -e yml -e yaml | grep -i "application"

echo "\nChecking Java version in pom.xml:"
cat pom.xml | grep -E "<java.version>|<maven.compiler.source>|<maven.compiler.target>"

Length of output: 1601

@renovate-bot renovate-bot force-pushed the renovate/org.springframework.boot-spring-boot-starter-parent-3.x branch from 5b3ace2 to b90f699 Compare October 24, 2024 14:38
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (1)
pom.xml (1)

Line range hint 41-45: Update Maven Surefire plugin version

The Surefire plugin version 3.0.0-M3 is outdated. Spring Boot 3.x works better with Surefire 3.2.x+.

Apply this diff:

 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
-    <version>3.0.0-M3</version>
+    <version>3.2.2</version>
 </plugin>
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 5b3ace2 and b90f699.

📒 Files selected for processing (1)
  • pom.xml (1 hunks)
🔇 Additional comments (1)
pom.xml (1)

Line range hint 27-37: Add validation starter for Spring Boot 3.x compatibility

Spring Boot 3.x moved validation to a separate starter. Add spring-boot-starter-validation to maintain compatibility if your application uses validation annotations.

Add this dependency:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
#!/bin/bash
# Description: Check if the codebase uses validation annotations that require the validation starter

# Search for common validation annotations
rg -l "@Valid|@NotNull|@NotEmpty|@NotBlank|@Size|@Min|@Max|@Pattern|@Email"

@@ -14,7 +14,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<version>3.3.5</version>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

Based on the analysis of the codebase, I can now provide a final response:

Spring Boot 3.3.5 version needs critical compatibility updates

The Spring Boot upgrade to version 3.3.5 requires several important changes:

  • Java version needs to be updated from 1.8 to at least 17 (required by Spring Boot 3.x)
  • The maven-surefire-plugin version 3.0.0-M3 is outdated and should be updated to at least 3.1.2 for Spring Boot 3.x
  • The codebase uses JUnit Jupiter annotations which are compatible, but the test configuration might need updates for Spring Boot 3.x WebTestClient

Note: I'm not addressing the specific version number (3.3.5) concern from the original review comment as we couldn't verify if a newer 3.3.x version exists in the sandbox environment. Instead, I'm focusing on the verified compatibility issues found in the codebase that need to be addressed for this major version upgrade.

🔗 Analysis chain

Consider using the latest 3.3.x version

The PR updates to version 3.3.5, but Spring Boot 3.3.6 is available with additional bug fixes and security patches.


Since we couldn't verify the latest Spring Boot version through Maven in the sandbox environment, let me try a different approach to analyze the codebase for Spring Boot version-related configurations.


Let me check the application configuration and main application class to understand the Spring Boot setup better.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify if a newer version is available in the 3.3.x line
# Use Maven to check for updates in the org.springframework.boot:spring-boot-starter-parent artifact

mvn versions:display-dependency-updates | grep "spring-boot-starter-parent"

Length of output: 200


Script:

#!/bin/bash
# Check for Spring Boot version and related configurations in pom.xml
cat pom.xml

Length of output: 1575


Script:

#!/bin/bash
# Look for Spring Boot specific annotations and configurations
rg -l "org.springframework.boot"

Length of output: 149


Script:

#!/bin/bash
# Search for Spring configuration files
fd -e yml -e properties -e xml

Length of output: 82


Script:

#!/bin/bash
# Check application.properties content
cat src/main/resources/application.properties

Length of output: 47


Script:

#!/bin/bash
# Check main application class
cat src/main/java/com/example/demo/DemoApplication.java

Length of output: 473


Script:

#!/bin/bash
# Check test class for Spring Boot test configurations
cat src/test/java/com/example/demo/DemoApplicationTests.java

Length of output: 773

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant