Fix Per Comments
diff --git a/modules/spring-sessions/pom.xml b/modules/spring-sessions/pom.xml
index 4fca7b6..9e33eac 100644
--- a/modules/spring-sessions/pom.xml
+++ b/modules/spring-sessions/pom.xml
@@ -23,13 +23,13 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-core</artifactId>
-            <version>5.3.8</version>
+            <version>${spring.version.for.sessions}</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-expression</artifactId>
-            <version>5.3.8</version>
+            <version>${spring.version.for.sessions}</version>
         </dependency>
 
         <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
@@ -50,7 +50,7 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
-            <version>5.3.8</version>
+            <version>${spring.version.for.sessions}</version>
         </dependency>
 
         <dependency>
@@ -62,7 +62,7 @@
         <dependency>
             <groupId>org.apache.ignite</groupId>
             <artifactId>ignite-core</artifactId>
-            <version>2.11.0-SNAPSHOT</version>
+            <version>2.10.0</version>
             <scope>compile</scope>
         </dependency>
 
@@ -86,7 +86,7 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-test</artifactId>
-            <version>5.3.8</version>
+            <version>${spring.version.for.sessions}</version>
             <scope>test</scope>
         </dependency>
 
@@ -109,7 +109,7 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
-            <version>5.3.8</version>
+            <version>${spring.version.for.sessions}</version>
         </dependency>
 
         <!-- https://mvnrepository.com/artifact/org.apache.ignite/ignite-indexing -->
@@ -131,4 +131,4 @@
     </dependencies>
 
 
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
index 7e6b841..8ac5b17 100644
--- a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
+++ b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/EnableIgniteHttpSession.java
@@ -96,4 +96,4 @@
      */
     SaveMode saveMode() default SaveMode.ON_SET_ATTRIBUTE;
 
-}
\ No newline at end of file
+}
diff --git a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
index 971e049..3adc2a4 100644
--- a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
+++ b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfiguration.java
@@ -49,93 +49,148 @@
 @Configuration(proxyBeanMethods = false)
 public class IgniteHttpSessionConfiguration extends SpringHttpSessionConfiguration implements ImportAware {
 
+    /**
+     *
+     */
     private Integer maxInactiveIntervalInSeconds = MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS;
 
+    /**
+     *
+     */
     private String sessionMapName = IgniteIndexedSessionRepository.DEFAULT_SESSION_MAP_NAME;
 
+    /**
+     *
+     */
     private FlushMode flushMode = FlushMode.ON_SAVE;
 
+    /**
+     *
+     */
     private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE;
 
+    /**
+     *
+     */
     private Ignite ignite;
 
+    /**
+     *
+     */
     private ApplicationEventPublisher applicationEventPublisher;
 
+    /**
+     *
+     */
     private IndexResolver<Session> indexResolver;
 
+    /**
+     *
+     */
     private List<SessionRepositoryCustomizer<IgniteIndexedSessionRepository>> sessionRepositoryCustomizers;
 
+    /**
+     *
+     */
     @Bean
     public SessionRepository<?> sessionRepository() {
         return createIgniteIndexedSessionRepository();
     }
 
+    /**
+     *
+     */
     public void setMaxInactiveIntervalInSeconds(int maxInactiveIntervalInSeconds) {
         this.maxInactiveIntervalInSeconds = maxInactiveIntervalInSeconds;
     }
 
+    /**
+     *
+     */
     public void setSessionMapName(String sessionMapName) {
         this.sessionMapName = sessionMapName;
     }
 
+    /**
+     *
+     */
     public void setFlushMode(FlushMode flushMode) {
         this.flushMode = flushMode;
     }
 
+    /**
+     *
+     */
     public void setSaveMode(SaveMode saveMode) {
         this.saveMode = saveMode;
     }
 
+    /**
+     *
+     */
     @Autowired
     public void setIgnite(@SpringSessionIgnite ObjectProvider<Ignite> springSessionIgnite,
                           ObjectProvider<Ignite> ignite) {
         Ignite igniteToUse = springSessionIgnite.getIfAvailable();
-        if (igniteToUse == null) {
+        if (igniteToUse == null)
             igniteToUse = ignite.getObject();
-        }
+
         this.ignite = igniteToUse;
     }
 
+    /**
+     *
+     */
     @Autowired
     public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
         this.applicationEventPublisher = applicationEventPublisher;
     }
 
+    /**
+     *
+     */
     @Autowired(required = false)
     public void setIndexResolver(IndexResolver<Session> indexResolver) {
         this.indexResolver = indexResolver;
     }
 
+    /**
+     *
+     */
     @Autowired(required = false)
     public void setSessionRepositoryCustomizer(
             ObjectProvider<SessionRepositoryCustomizer<IgniteIndexedSessionRepository>> sessionRepositoryCustomizers) {
         this.sessionRepositoryCustomizers = sessionRepositoryCustomizers.orderedStream().collect(Collectors.toList());
     }
 
-    @Override
-    @SuppressWarnings("deprecation")
-    public void setImportMetadata(AnnotationMetadata importMetadata) {
+    /**
+     *
+     */
+    @Override @SuppressWarnings("deprecation") public void setImportMetadata(AnnotationMetadata importMetadata) {
         Map<String, Object> attributeMap = importMetadata
                 .getAnnotationAttributes(EnableIgniteHttpSession.class.getName());
         AnnotationAttributes attributes = AnnotationAttributes.fromMap(attributeMap);
         this.maxInactiveIntervalInSeconds = attributes.getNumber("maxInactiveIntervalInSeconds");
         String sessionMapNameValue = attributes.getString("sessionMapName");
-        if (StringUtils.hasText(sessionMapNameValue)) {
+        if (StringUtils.hasText(sessionMapNameValue))
             this.sessionMapName = sessionMapNameValue;
-        }
+
         this.flushMode = attributes.getEnum("flushMode");
         this.saveMode = attributes.getEnum("saveMode");
     }
 
+    /**
+     *
+     */
     private IgniteIndexedSessionRepository createIgniteIndexedSessionRepository() {
         IgniteIndexedSessionRepository sessionRepository = new IgniteIndexedSessionRepository(this.ignite);
         sessionRepository.setApplicationEventPublisher(this.applicationEventPublisher);
-        if (this.indexResolver != null) {
+        if (this.indexResolver != null)
             sessionRepository.setIndexResolver(this.indexResolver);
-        }
-        if (StringUtils.hasText(this.sessionMapName)) {
+
+        if (StringUtils.hasText(this.sessionMapName))
             sessionRepository.setSessionMapName(this.sessionMapName);
-        }
+
         sessionRepository.setDefaultMaxInactiveInterval(this.maxInactiveIntervalInSeconds);
         sessionRepository.setFlushMode(this.flushMode);
         sessionRepository.setSaveMode(this.saveMode);
@@ -143,5 +198,5 @@
                 .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository));
         return sessionRepository;
     }
-
 }
+
diff --git a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
index d8adad4..5318883 100644
--- a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
+++ b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/IgniteIndexedSessionRepository.java
@@ -110,16 +110,23 @@
     public static final String DEFAULT_SESSION_MAP_NAME = "spring:session:sessions";
 
     /**
-     * The principal name custom attribute name.
+     *
      */
-    public static final String PRINCIPAL_NAME_ATTRIBUTE = "principalName";
-
     private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT";
 
+    /**
+     *
+     */
     private static final Log logger = LogFactory.getLog(IgniteIndexedSessionRepository.class);
 
+    /**
+     *
+     */
     private final Ignite ignite;
 
+    /**
+     *
+     */
     private ApplicationEventPublisher eventPublisher = (event) -> {
     };
 
@@ -129,16 +136,34 @@
      */
     private Integer defaultMaxInactiveInterval;
 
+    /**
+     *
+     */
     private IndexResolver<Session> indexResolver = new DelegatingIndexResolver<>(new PrincipalNameIndexResolver<>());
 
+    /**
+     *
+     */
     private String sessionMapName = DEFAULT_SESSION_MAP_NAME;
 
+    /**
+     *
+     */
     private FlushMode flushMode = FlushMode.ON_SAVE;
 
+    /**
+     *
+     */
     private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE;
 
+    /**
+     *
+     */
     private IgniteCache<String, IgniteSession> sessions;
 
+    /**
+     *
+     */
     private CacheEntryListenerConfiguration<String, IgniteSession> listenerConfiguration;
 
     /**
@@ -150,42 +175,43 @@
         this.ignite = ignite;
     }
 
+    /**
+     *
+     */
     @PostConstruct
     public void init() {
         final CacheConfiguration<String, IgniteSession> configuration = new CacheConfiguration<String, IgniteSession>(
                 this.sessionMapName).setIndexedTypes(String.class, IgniteSession.class);
 
-        if (this.defaultMaxInactiveInterval != null) {
+        if (this.defaultMaxInactiveInterval != null)
             configuration.setExpiryPolicyFactory(TouchedExpiryPolicy
                     .factoryOf(new javax.cache.expiry.Duration(TimeUnit.SECONDS, this.defaultMaxInactiveInterval)));
-        }
 
         this.sessions = this.ignite.getOrCreateCache(configuration);
 
         this.listenerConfiguration = new CacheEntryListenerConfiguration<String, IgniteSession>() {
-            @Override
-            public Factory<CacheEntryListener<? super String, ? super IgniteSession>> getCacheEntryListenerFactory() {
+            @Override public Factory<CacheEntryListener<? super String, ? super IgniteSession>> getCacheEntryListenerFactory() {
                 return (Factory<CacheEntryListener<? super String, ? super IgniteSession>>) () -> IgniteIndexedSessionRepository.this;
             }
 
-            @Override
-            public boolean isOldValueRequired() {
+            @Override public boolean isOldValueRequired() {
                 return true;
             }
 
-            @Override
-            public Factory<CacheEntryEventFilter<? super String, ? super IgniteSession>> getCacheEntryEventFilterFactory() {
+            @Override public Factory<CacheEntryEventFilter<? super String, ? super IgniteSession>> getCacheEntryEventFilterFactory() {
                 return null;
             }
 
-            @Override
-            public boolean isSynchronous() {
+            @Override public boolean isSynchronous() {
                 return false;
             }
         };
         this.sessions.registerCacheEntryListener(this.listenerConfiguration);
     }
 
+    /**
+     *
+     */
     @PreDestroy
     public void close() {
         this.sessions.deregisterCacheEntryListener(this.listenerConfiguration);
@@ -249,22 +275,26 @@
         this.saveMode = saveMode;
     }
 
-    @Override
-    public IgniteSession createSession() {
+    /**
+     *
+     */
+    @Override public IgniteSession createSession() {
         MapSession cached = new MapSession();
-        if (this.defaultMaxInactiveInterval != null) {
+        if (this.defaultMaxInactiveInterval != null)
             cached.setMaxInactiveInterval(Duration.ofSeconds(this.defaultMaxInactiveInterval));
-        }
+
         IgniteSession session = new IgniteSession(cached, true);
         session.flushImmediateIfNecessary();
         return session;
     }
 
-    @Override
-    public void save(IgniteSession session) {
-        if (session.isNew) {
+    /**
+     *
+     */
+    @Override public void save(IgniteSession session) {
+        if (session.isNew)
             ttlSessions(session.getMaxInactiveInterval()).put(session.getId(), session);
-        }
+
         else if (session.sessionIdChanged) {
             this.sessions.remove(session.originalId);
             session.originalId = session.getId();
@@ -281,12 +311,14 @@
         session.clearChangeFlags();
     }
 
-    @Override
-    public IgniteSession findById(String id) {
+    /**
+     *
+     */
+    @Override public IgniteSession findById(String id) {
         IgniteSession saved = this.sessions.get(id);
-        if (saved == null) {
+        if (saved == null)
             return null;
-        }
+
         if (saved.isExpired()) {
             deleteById(saved.getId());
             return null;
@@ -295,22 +327,25 @@
         return saved;
     }
 
-    @Override
-    public void deleteById(String id) {
+    /**
+     *
+     */
+    @Override public void deleteById(String id) {
         this.sessions.remove(id);
     }
 
-    @Override
-    public Map<String, IgniteSession> findByIndexNameAndIndexValue(String indexName, String indexValue) {
-        if (!PRINCIPAL_NAME_INDEX_NAME.equals(indexName)) {
+    /**
+     *
+     */
+    @Override public Map<String, IgniteSession> findByIndexNameAndIndexValue(String indexName, String indexValue) {
+        if (!PRINCIPAL_NAME_INDEX_NAME.equals(indexName))
             return Collections.emptyMap();
-        }
+
         final FieldsQueryCursor<List<?>> cursor = this.sessions
                 .query(new SqlFieldsQuery("SELECT * FROM IgniteSession WHERE principal='" + indexValue + "'"));
 
-        if (cursor == null) {
+        if (cursor == null)
             return Collections.emptyMap();
-        }
 
         final List<List<?>> sessions = cursor.getAll();
 
@@ -325,40 +360,47 @@
         return sessionMap;
     }
 
-    @Override
-    public void onCreated(Iterable<CacheEntryEvent<? extends String, ? extends IgniteSession>> events)
+    /**
+     *
+     */
+    @Override public void onCreated(Iterable<CacheEntryEvent<? extends String, ? extends IgniteSession>> events)
             throws CacheEntryListenerException {
         events.forEach((event) -> {
             IgniteSession session = event.getValue();
             if (session.getId().equals(session.getDelegate().getOriginalId())) {
-                if (logger.isDebugEnabled()) {
+                if (logger.isDebugEnabled())
                     logger.debug("Session created with id: " + session.getId());
-                }
+
                 this.eventPublisher.publishEvent(new SessionCreatedEvent(this, session));
             }
         });
     }
 
+    /**
+     *
+     */
     @Override
     public void onExpired(Iterable<CacheEntryEvent<? extends String, ? extends IgniteSession>> events)
             throws CacheEntryListenerException {
         events.forEach((event) -> {
-            if (logger.isDebugEnabled()) {
+            if (logger.isDebugEnabled())
                 logger.debug("Session expired with id: " + event.getOldValue().getId());
-            }
+
             this.eventPublisher.publishEvent(new SessionExpiredEvent(this, event.getOldValue()));
         });
     }
 
-    @Override
-    public void onRemoved(Iterable<CacheEntryEvent<? extends String, ? extends IgniteSession>> events)
+    /**
+     *
+     */
+    @Override public void onRemoved(Iterable<CacheEntryEvent<? extends String, ? extends IgniteSession>> events)
             throws CacheEntryListenerException {
         events.forEach((event) -> {
             IgniteSession session = event.getOldValue();
             if (session != null) {
-                if (logger.isDebugEnabled()) {
+                if (logger.isDebugEnabled())
                     logger.debug("Session deleted with id: " + session.getId());
-                }
+
                 this.eventPublisher.publishEvent(new SessionDeletedEvent(this, session));
             }
         });
@@ -388,27 +430,51 @@
      */
     final class IgniteSession implements Session {
 
+        /**
+         *
+         */
         @QuerySqlField
         private final MapSession delegate;
 
+        /**
+         *
+         */
         @GridDirectTransient
         private boolean isNew;
 
+        /**
+         *
+         */
         @GridDirectTransient
         private boolean sessionIdChanged;
 
+        /**
+         *
+         */
         @GridDirectTransient
         private boolean lastAccessedTimeChanged;
 
+        /**
+         *
+         */
         @GridDirectTransient
         private boolean maxInactiveIntervalChanged;
 
+        /**
+         *
+         */
         @GridDirectTransient
         private String originalId;
 
+        /**
+         *
+         */
         @GridDirectTransient
         private Map<String, Object> delta = new HashMap<>();
 
+        /**
+         *
+         */
         @QuerySqlField(index = true)
         private String principal;
 
@@ -416,75 +482,97 @@
             this.delegate = cached;
             this.isNew = isNew;
             this.originalId = cached.getId();
-            if (this.isNew || (IgniteIndexedSessionRepository.this.saveMode == SaveMode.ALWAYS)) {
+            if (this.isNew || (IgniteIndexedSessionRepository.this.saveMode == SaveMode.ALWAYS))
                 getAttributeNames()
                         .forEach((attributeName) -> this.delta.put(attributeName, cached.getAttribute(attributeName)));
-            }
+
         }
 
-        @Override
-        public void setLastAccessedTime(Instant lastAccessedTime) {
+        /**
+         *
+         */
+        @Override public void setLastAccessedTime(Instant lastAccessedTime) {
             this.delegate.setLastAccessedTime(lastAccessedTime);
             this.lastAccessedTimeChanged = true;
             flushImmediateIfNecessary();
         }
 
-        @Override
-        public boolean isExpired() {
+        /**
+         *
+         */
+        @Override public boolean isExpired() {
             return this.delegate.isExpired();
         }
 
-        @Override
-        public Instant getCreationTime() {
+        /**
+         *
+         */
+        @Override public Instant getCreationTime() {
             return this.delegate.getCreationTime();
         }
 
-        @Override
-        public String getId() {
+        /**
+         *
+         */
+        @Override public String getId() {
             return this.delegate.getId();
         }
 
-        @Override
-        public String changeSessionId() {
+        /**
+         *
+         */
+        @Override public String changeSessionId() {
             String newSessionId = this.delegate.changeSessionId();
             this.sessionIdChanged = true;
             return newSessionId;
         }
 
-        @Override
-        public Instant getLastAccessedTime() {
+        /**
+         *
+         */
+        @Override public Instant getLastAccessedTime() {
             return this.delegate.getLastAccessedTime();
         }
 
-        @Override
-        public void setMaxInactiveInterval(Duration interval) {
+        /**
+         *
+         */
+        @Override public void setMaxInactiveInterval(Duration interval) {
             this.delegate.setMaxInactiveInterval(interval);
             this.maxInactiveIntervalChanged = true;
             flushImmediateIfNecessary();
         }
 
-        @Override
-        public Duration getMaxInactiveInterval() {
+        /**
+         *
+         */
+        @Override public Duration getMaxInactiveInterval() {
             return this.delegate.getMaxInactiveInterval();
         }
 
-        @Override
-        public <T> T getAttribute(String attributeName) {
+        /**
+         *
+         */
+        @Override public <T> T getAttribute(String attributeName) {
             T attributeValue = this.delegate.getAttribute(attributeName);
             if (attributeValue != null
-                    && IgniteIndexedSessionRepository.this.saveMode.equals(SaveMode.ON_GET_ATTRIBUTE)) {
+                    && IgniteIndexedSessionRepository.this.saveMode.equals(SaveMode.ON_GET_ATTRIBUTE))
                 this.delta.put(attributeName, attributeValue);
-            }
+
             return attributeValue;
         }
 
-        @Override
-        public Set<String> getAttributeNames() {
+        /**
+         *
+         */
+        @Override public Set<String> getAttributeNames() {
             return this.delegate.getAttributeNames();
         }
 
-        @Override
-        public void setAttribute(String attributeName, Object attributeValue) {
+        /**
+         *
+         */
+        @Override public void setAttribute(String attributeName, Object attributeValue) {
             this.delegate.setAttribute(attributeName, attributeValue);
             this.delta.put(attributeName, attributeValue);
             if (SPRING_SECURITY_CONTEXT.equals(attributeName)) {
@@ -496,19 +584,30 @@
             flushImmediateIfNecessary();
         }
 
-        @Override
-        public void removeAttribute(String attributeName) {
+        /**
+         *
+         */
+        @Override public void removeAttribute(String attributeName) {
             setAttribute(attributeName, null);
         }
 
+        /**
+         *
+         */
         MapSession getDelegate() {
             return this.delegate;
         }
 
+        /**
+         *
+         */
         boolean hasChanges() {
             return (this.lastAccessedTimeChanged || this.maxInactiveIntervalChanged || !this.delta.isEmpty());
         }
 
+        /**
+         *
+         */
         void clearChangeFlags() {
             this.isNew = false;
             this.lastAccessedTimeChanged = false;
@@ -517,29 +616,34 @@
             this.delta.clear();
         }
 
+        /**
+         *
+         */
         private void flushImmediateIfNecessary() {
-            if (IgniteIndexedSessionRepository.this.flushMode == FlushMode.IMMEDIATE) {
+            if (IgniteIndexedSessionRepository.this.flushMode == FlushMode.IMMEDIATE)
                 IgniteIndexedSessionRepository.this.save(this);
-            }
         }
 
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) {
+        /**
+         *
+         */
+        @Override public boolean equals(Object o) {
+            if (this == o)
                 return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
+
+            if (o == null || getClass() != o.getClass())
                 return false;
-            }
+
             IgniteSession session = (IgniteSession) o;
             return this.delegate.equals(session.delegate);
         }
 
-        @Override
-        public int hashCode() {
+        /**
+         *
+         */
+        @Override public int hashCode() {
             return Objects.hash(this.delegate);
         }
-
     }
-
 }
+
diff --git a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/SessionEventRegistry.java b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/SessionEventRegistry.java
index c5c6479..de1a3ce 100644
--- a/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/SessionEventRegistry.java
+++ b/modules/spring-sessions/src/main/java/org/apache/ignite/spring/sessions/SessionEventRegistry.java
@@ -31,12 +31,20 @@
  */
 class SessionEventRegistry implements ApplicationListener<AbstractSessionEvent> {
 
+    /**
+     *
+     */
     private Map<String, AbstractSessionEvent> events = new HashMap<>();
 
+    /**
+     *
+     */
     private ConcurrentMap<String, Object> locks = new ConcurrentHashMap<>();
 
-    @Override
-    public void onApplicationEvent(AbstractSessionEvent event) {
+    /**
+     *
+     */
+    @Override public void onApplicationEvent(AbstractSessionEvent event) {
         String sessionId = event.getSessionId();
         this.events.put(sessionId, event);
         Object lock = getLock(sessionId);
@@ -45,30 +53,45 @@
         }
     }
 
+    /**
+     *
+     */
     void clear() {
         this.events.clear();
         this.locks.clear();
     }
 
+    /**
+     *
+     */
     boolean receivedEvent(String sessionId) throws InterruptedException {
         return waitForEvent(sessionId) != null;
     }
 
+    /**
+     *
+     */
     <E extends AbstractSessionEvent> E getEvent(String sessionId) throws InterruptedException {
         return (E) waitForEvent(sessionId);
     }
 
+    /**
+     *
+     */
     private <E extends AbstractSessionEvent> E waitForEvent(String sessionId) throws InterruptedException {
         Object lock = getLock(sessionId);
         synchronized (lock) {
-            if (!this.events.containsKey(sessionId)) {
+            if (!this.events.containsKey(sessionId))
                 lock.wait(10000);
-            }
+
         }
         return (E) this.events.get(sessionId);
     }
 
+    /**
+     *
+     */
     private Object getLock(String sessionId) {
         return this.locks.computeIfAbsent(sessionId, (k) -> new Object());
     }
-}
\ No newline at end of file
+}
diff --git a/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/ClientServerIgniteIndexedSessionRepositoryITests.java b/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/ClientServerIgniteIndexedSessionRepositoryITests.java
deleted file mode 100644
index 204721d..0000000
--- a/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/ClientServerIgniteIndexedSessionRepositoryITests.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.apache.ignite.spring.sessions;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.Collections;
-
-import org.apache.ignite.Ignite;
-import org.apache.ignite.Ignition;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.testcontainers.containers.GenericContainer;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-import org.springframework.test.context.web.WebAppConfiguration;
-
-/**
- * Integration tests for {@link IgniteIndexedSessionRepository} using client-server
- * topology.
- */
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration
-@WebAppConfiguration
-class ClientServerIgniteIndexedSessionRepositoryITests extends AbstractIgniteIndexedSessionRepositoryITests {
-
-    private static GenericContainer container = new GenericContainer<>("apacheignite/ignite:2.9.0")
-            .withExposedPorts(47100, 47500);
-
-    @BeforeAll
-    static void setUpClass() {
-        Ignition.stopAll(true);
-        container.start();
-    }
-
-    @AfterAll
-    static void tearDownClass() {
-        Ignition.stopAll(true);
-        container.stop();
-    }
-
-    @Configuration
-    @EnableIgniteHttpSession
-    static class IgniteSessionConfig {
-
-        @Bean
-        Ignite ignite() {
-            IgniteConfiguration cfg = new IgniteConfiguration();
-            final String address = container.getContainerIpAddress() + ":" + container.getMappedPort(47500);
-            final TcpDiscoverySpi spi = new TcpDiscoverySpi()
-                    .setIpFinder(new TcpDiscoveryVmIpFinder().setAddresses(Collections.singleton(address)));
-            cfg.setDiscoverySpi(spi);
-            return Ignition.start(cfg);
-        }
-
-    }
-
-}
diff --git a/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfigurationTests.java b/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfigurationTests.java
index c096b78..09ea373 100644
--- a/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfigurationTests.java
+++ b/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteHttpSessionConfigurationTests.java
@@ -55,9 +55,8 @@
 
     @AfterEach
     void closeContext() {
-        if (this.context != null) {
+        if (this.context != null)
             this.context.close();
-        }
     }
 
     @Test
@@ -436,7 +435,5 @@
             return (sessionRepository) -> sessionRepository
                     .setDefaultMaxInactiveInterval(MAX_INACTIVE_INTERVAL_IN_SECONDS);
         }
-
     }
-
 }
diff --git a/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteITestUtils.java b/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteITestUtils.java
index 172cf56..c0a9503 100644
--- a/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteITestUtils.java
+++ b/modules/spring-sessions/src/test/java/org/apache/ignite/spring/sessions/IgniteITestUtils.java
@@ -35,5 +35,4 @@
     static Ignite embeddedIgniteServer() {
         return Ignition.start();
     }
-
 }
diff --git a/parent/pom.xml b/parent/pom.xml
index a94c273..1adc04d 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -129,6 +129,7 @@
         <spark.version>2.3.0</spark.version>
         <spring.data.version>1.13.23.RELEASE</spring.data.version> <!-- don't forget to update spring version -->
         <spring.version>4.3.26.RELEASE</spring.version><!-- don't forget to update spring-data version -->
+        <spring.version.for.sessions>5.3.8</spring.version.for.sessions><!-- don't forget to update spring-data version -->
         <spring.data-2.0.version>2.0.13.RELEASE</spring.data-2.0.version> <!-- don't forget to update spring-5.0 version -->
         <spring-5.0.version>5.0.16.RELEASE</spring-5.0.version><!-- don't forget to update spring-data-2.0 version -->
         <spring.data-2.2.version>2.2.3.RELEASE</spring.data-2.2.version> <!-- don't forget to update spring-5.2 version -->