-
Notifications
You must be signed in to change notification settings - Fork 34
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
Distributed Session Management #7529 #7594 #7551
Conversation
rymsha
commented
Oct 16, 2019
•
edited
Loading
edited
- ignite was updated to latest version. To make sure I don't use deprecated API
- worked around ignite bug where it uses wrong classloader for serialisation of ignite internal classes (this is due to conflict between ignite and OSGi which classloader to use)
- removed ignite XP "Cluster" abstraction, because not all nodes will be ignite cluster (if any)
- javax cache updated to version 1.1.1 (now Apache license). Removed rebundle as it is now correct bundle by itself. It is potentially a breaking change, but very unlikely because code is supposed to import 1.x version of javax.cache package.
- fixed SessionWrapper: it had race conditions for session creation and was storing reference to potentially expired session
- fixed JettyActivator to wait for all dispatchers to be ready. Before it was potential race.
- introduced IgniteSessionStoreFactory (OSGi service) and made IgniteSessionStore OSGi independent. This make multiple dispatchers work again - before they were sharing SessionStore singleton and fail on startup
- worked around Jetty vs Ignite conflict which deserializer to use
- added package import so Auth info deserialization works (OSGi prevents not imported classes to be deserialized).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you guarantee compatibility after upgrading Osgi?
I tested it. It should be fine. We are using R7 in runtime already. But compile with R6. |
Don't close it. Many ideas can be used for Hazelcast |
Hazelcast
Here is an overview of what got changed by this pull request: Issues
======
+ Solved 2
Complexity increasing per file
==============================
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/hazelcast/HazelcastSessionDataStoreFactoryActivator.java 3
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/hazelcast/HazelcastInstanceActivator.java 1
- modules/web/web-session/src/test/java/com/enonic/xp/web/session/impl/ignite/reporter/WebSessionReporterTest.java 1
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/IgniteSessionDataStore.java 7
- modules/web/web-session/src/test/java/com/enonic/xp/web/session/impl/ignite/IgniteSessionDataStoreTest.java 1
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/IgniteSessionDataStoreFactory.java 1
- modules/core/core-ignite/src/main/java/com/enonic/xp/ignite/impl/IgniteActivator.java 2
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/IgniteCacheConfigFactory.java 3
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/reporter/WebSessionReport.java 2
- modules/core/core-ignite/src/test/java/com/enonic/xp/ignite/impl/IgniteClusterTest.java 1
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/reporter/WebSessionReporter.java 1
- modules/core/core-ignite/src/test/java/com/enonic/xp/ignite/impl/IgniteAdminClientImplTest.java 1
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/IgniteSessionData.java 3
- modules/core/core-ignite/src/test/java/com/enonic/xp/ignite/impl/IgniteActivatorTest.java 1
- modules/web/web-session/src/main/java/com/enonic/xp/web/session/impl/ignite/IgniteSessionDataStoreFactoryActivator.java 3
See the complete overview on Codacy |