[ 
https://issues.apache.org/jira/browse/IGNITE-22096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nusrat Shakarov updated IGNITE-22096:
-------------------------------------
    Description: 
This epic is about spring 6 support for ignite extensions.

Spring Boot 3 and Spring 6 users may have difficulties using ignite spring 
extensions in their applications because extensions are based on Spring 5. Most 
of them should work fine in Spring 6 apps, but we may find ourselves on thin 
ice.

For some spring modules like spring-data-commons and spring-session-core, 
Spring has finished spring 5 support in Nov 2023. For other modules(and 
spring-core) support ends in Aug 2024.

The proposal is to upgrade spring-based ignite extensions to spring 6. The 
upgrade will affect modules which currently don't work in the spring 6 
environment(basically, where the API is broken).

Taking into consideration that spring 6 comes with JDK 17+ baseline the plan is 
the following:
 # Add ignite extensions build on TC with JDK 17. JDK 8 build still will be 
available. The project will support both options, spring 6 modules will be 
enabled only when JDK 17 is used. The main build will be with JDK 17 because it 
covers all modules.
 # Use maven.compiler.release=8 for parent pom.
 # If the spring module won't work in spring 6 env, upgrade it with spring 6 
dependencies and set maven.compiler.release=17.
 # Otherwise, make sure that spring 6 is covered with compatibility tests(we 
have such at least for cache-ext and tx-ext). If spring 6 is added to the 
compatibility test, the module should be built only with JDK 17, otherwise, 
tests will fail. But maven.compiler.release can be 8.
 # For updated modules use a new versioning approach. Use the same major and 
minor for spring extension as the corresponding spring module uses. For 
example, If spring-session-core is updated to 3.2.2, the spring-session-ext 
version should be 3.2.x, where x is the revision number.
 # If we update the module to spring 6 and we need a fix for the previous 
module version(which is based on spring 5), we can apply the fix to the master 
first, create a release branch(checkout from the previous spring 5 release) and 
cherry-pick fix.

  was:
This epic is about spring 6 support for ignite extensions.

Spring Boot 3 and Spring 6 users may have difficulties using ignite spring 
extensions in their applications because extensions are based on Spring 5. Most 
of them should work fine in Spring 6 apps, but we may find ourselves on thin 
ice.

For some spring modules like spring-data-commons and spring-session-core, 
Spring has finished spring 5 support in Nov 2023. For other modules(and 
spring-core) support ends in Aug 2024.

The proposal is to upgrade spring-based ignite extensions to spring 6. The 
upgrade will affect modules which won't work in the spring 6 
environment(basically, where the API was broken).

Taking into consideration that spring 6 comes with JDK 17+ baseline the plan is 
the following:
 # Add ignite extensions build on TC with JDK 17. JDK 8 build still will be 
available. The project will support both options, spring 6 modules will be 
enabled only when JDK 17 is used. The main build will be with JDK 17 because it 
covers all modules.
 # Use maven.compiler.release=8 for parent pom.
 # If the spring module won't work in spring 6 env, upgrade it with spring 6 
dependencies and set maven.compiler.release=17.
 # Otherwise, make sure that spring 6 is covered with compatibility tests(we 
have such at least for cache-ext and tx-ext). If spring 6 is added to the 
compatibility test, the module should be built only with JDK 17, otherwise, 
tests will fail. But maven.compiler.release can be 8.
 # For updated modules use a new versioning approach. Use the same major and 
minor for spring extension as the corresponding spring module uses. For 
example, If spring-session-core is updated to 3.2.2, the spring-session-ext 
version should be 3.2.x, where x is the revision number.
 # If we update the module to spring 6 and we need a fix for the previous 
module version(which is based on spring 5), we can apply the fix to the master 
first, create a release branch(checkout from the previous spring 5 release) and 
cherry-pick fix.


> Spring 6 support for ignite spring extensions
> ---------------------------------------------
>
>                 Key: IGNITE-22096
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22096
>             Project: Ignite
>          Issue Type: Epic
>            Reporter: Nusrat Shakarov
>            Assignee: Nusrat Shakarov
>            Priority: Major
>
> This epic is about spring 6 support for ignite extensions.
> Spring Boot 3 and Spring 6 users may have difficulties using ignite spring 
> extensions in their applications because extensions are based on Spring 5. 
> Most of them should work fine in Spring 6 apps, but we may find ourselves on 
> thin ice.
> For some spring modules like spring-data-commons and spring-session-core, 
> Spring has finished spring 5 support in Nov 2023. For other modules(and 
> spring-core) support ends in Aug 2024.
> The proposal is to upgrade spring-based ignite extensions to spring 6. The 
> upgrade will affect modules which currently don't work in the spring 6 
> environment(basically, where the API is broken).
> Taking into consideration that spring 6 comes with JDK 17+ baseline the plan 
> is the following:
>  # Add ignite extensions build on TC with JDK 17. JDK 8 build still will be 
> available. The project will support both options, spring 6 modules will be 
> enabled only when JDK 17 is used. The main build will be with JDK 17 because 
> it covers all modules.
>  # Use maven.compiler.release=8 for parent pom.
>  # If the spring module won't work in spring 6 env, upgrade it with spring 6 
> dependencies and set maven.compiler.release=17.
>  # Otherwise, make sure that spring 6 is covered with compatibility tests(we 
> have such at least for cache-ext and tx-ext). If spring 6 is added to the 
> compatibility test, the module should be built only with JDK 17, otherwise, 
> tests will fail. But maven.compiler.release can be 8.
>  # For updated modules use a new versioning approach. Use the same major and 
> minor for spring extension as the corresponding spring module uses. For 
> example, If spring-session-core is updated to 3.2.2, the spring-session-ext 
> version should be 3.2.x, where x is the revision number.
>  # If we update the module to spring 6 and we need a fix for the previous 
> module version(which is based on spring 5), we can apply the fix to the 
> master first, create a release branch(checkout from the previous spring 5 
> release) and cherry-pick fix.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to