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);