This is an automated email from the ASF dual-hosted git repository.

anovikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git


The following commit(s) were added to refs/heads/master by this push:
     new 64aade85 IGNITE-22352 Fix bean creation order (#270)
64aade85 is described below

commit 64aade856c1e98838c90d8751d0295019c79498e
Author: Nusrat Shakarov <[email protected]>
AuthorDate: Wed May 29 07:14:28 2024 +0200

    IGNITE-22352 Fix bean creation order (#270)
---
 .../spring/sessions/EnableIgniteHttpSession.java   |  1 -
 .../sessions/IgniteHttpSessionConfiguration.java   | 81 +++++++++-------------
 2 files changed, 31 insertions(+), 51 deletions(-)

diff --git 
a/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
 
b/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
index 74dadcf8..7301203a 100644
--- 
a/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
+++ 
b/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
@@ -22,7 +22,6 @@ import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
-
 import org.apache.ignite.Ignite;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
diff --git 
a/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
 
b/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
index a06006bb..86b3c730 100644
--- 
a/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
+++ 
b/modules/spring-session-ext/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
@@ -21,7 +21,6 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-import jakarta.annotation.PostConstruct;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.client.IgniteClient;
@@ -68,9 +67,6 @@ public class IgniteHttpSessionConfiguration extends 
SpringHttpSessionConfigurati
     /** */
     private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE;
 
-    /** */
-    private SessionProxy sessions;
-
     /** */
     private ApplicationEventPublisher applicationEvtPublisher;
 
@@ -80,17 +76,6 @@ public class IgniteHttpSessionConfiguration extends 
SpringHttpSessionConfigurati
     /** */
     private List<SessionRepositoryCustomizer<IgniteIndexedSessionRepository>> 
sesRepoCustomizers;
 
-    /**  */
-    private Object connObj;
-
-    /**
-     * @return Session repository.
-     */
-    @Bean
-    public SessionRepository<?> sessionRepository() {
-        return createIgniteIndexedSessionRepository();
-    }
-
     /**
      * @param maxInactiveIntervalInSeconds Maximum inactive interval in sec.
      */
@@ -119,36 +104,6 @@ public class IgniteHttpSessionConfiguration extends 
SpringHttpSessionConfigurati
         this.saveMode = saveMode;
     }
 
-    /**
-     * @param springSesIgnite Ignite session.
-     * @param ignite Ignite instance provider.
-     * @param cli Ignite client instance provider.
-     */
-    @Autowired
-    public void setSessions(
-        @SpringSessionIgnite ObjectProvider<Object> springSesIgnite,
-        ObjectProvider<Ignite> ignite,
-        ObjectProvider<IgniteClient> cli
-    ) {
-        Object connObj = springSesIgnite.getIfAvailable();
-
-        if (connObj == null)
-            connObj = ignite.getIfAvailable();
-
-        if (connObj == null)
-            connObj = cli.getIfAvailable();
-
-        this.connObj = connObj;
-    }
-
-    /**
-     * Init sessions.
-     */
-    @PostConstruct
-    public void initSessions() {
-        this.sessions = createSessionProxy(this.connObj);
-    }
-
     /**
      * @param applicationEvtPublisher Application event publisher.
      */
@@ -189,8 +144,28 @@ public class IgniteHttpSessionConfiguration extends 
SpringHttpSessionConfigurati
         this.saveMode = attrs.getEnum("saveMode");
     }
 
-    /** */
-    private SessionProxy createSessionProxy(Object connObj) {
+    /**
+     * Session cache proxy.
+     *
+     * @param springSesIgnite Ignite session.
+     * @param igniteProvider Ignite instance provider.
+     * @param igniteClientProvider Ignite client instance provider.
+     * @return Session cache proxy.
+     */
+    @Bean
+    public SessionProxy sessionProxy(
+        @SpringSessionIgnite ObjectProvider<Object> springSesIgnite,
+        ObjectProvider<Ignite> igniteProvider,
+        ObjectProvider<IgniteClient> igniteClientProvider
+    ) {
+        Object connObj = springSesIgnite.getIfAvailable();
+
+        if (connObj == null)
+            connObj = igniteProvider.getIfAvailable();
+
+        if (connObj == null)
+            connObj = igniteClientProvider.getIfAvailable();
+
         List<SqlFieldsQuery> initQueries = Arrays.asList(
             new SqlFieldsQuery("CREATE TABLE IF NOT EXISTS IgniteSession (" +
                 " id VARCHAR PRIMARY KEY," +
@@ -224,9 +199,15 @@ public class IgniteHttpSessionConfiguration extends 
SpringHttpSessionConfigurati
             "Object " + connObj + " can not be used to connect to the Ignite 
cluster.");
     }
 
-    /** */
-    private IgniteIndexedSessionRepository 
createIgniteIndexedSessionRepository() {
-        IgniteIndexedSessionRepository sesRepo = new 
IgniteIndexedSessionRepository(this.sessions);
+    /**
+     * Session repository bean.
+     *
+     * @param sesProxy Session cache proxy.
+     * @return Session repository.
+     */
+    @Bean
+    public SessionRepository<?> sessionRepository(SessionProxy sesProxy) {
+        IgniteIndexedSessionRepository sesRepo = new 
IgniteIndexedSessionRepository(sesProxy);
         sesRepo.setApplicationEventPublisher(this.applicationEvtPublisher);
         if (this.idxResolver != null)
             sesRepo.setIndexResolver(this.idxResolver);

Reply via email to