Commit Graph

862 Commits

Author SHA1 Message Date
John Blum
23da21d8fe Add generic signature to getSessionRepository().
Add commit(:Session) method.
2018-12-19 02:17:27 -08:00
John Blum
b077f66856 Update README describing SSDG custom, enterprise features. 2018-12-19 02:12:56 -08:00
John Blum
71837eac1f Switch from Log4j to SLF4J.
Resolves gh-18.
2018-12-17 21:05:25 -08:00
John Blum
ba678e8b41 Add additional Unit Tests using Always Dirty, Never Dirty and a custom IsDirtyPredicate strategy interface.
Add additional Unit Tests for org.apache.geode.Delta implementing objects.

Resolves gh-17.
2018-12-17 20:53:16 -08:00
John Blum
deb774f94f Rename getFullyQualifiedRegionName() to getSessionsRegionName(). 2018-12-17 18:45:44 -08:00
John Blum
8e50d365f6 Apply the configured IsDirtyPredicate strategy interface implementation to appliation domain objects stored in Session Attributes.
Resolves gh-17.
2018-12-17 18:40:17 -08:00
John Blum
545a9fbff1 Enable the configuration of an IsDirtyPredicate strategy interface implementation.
Resolves gh-17.
2018-12-17 18:37:40 -08:00
John Blum
f90ca10bd8 Upgrade to Spring Build Conventions Gradle Plugin 0.0.22.RELEASE. 2018-12-17 16:42:40 -08:00
John Blum
c03cfe41f0 Upgrade to Gradle Wrapper 4.10.3. 2018-12-17 16:42:01 -08:00
John Blum
ad312984bc Fix bug in DeltaCapableGemFireSessionAttriutes.newSessionAttributes(lock:Object) not properly passing the lock to the new GemFireSessionAttributes instance. 2018-12-17 13:52:05 -08:00
John Blum
96632a0502 Add an IsDirtyPredicate strategy interface for determining when users application domain objects are dirty in a DataSerialization, Delta capable Session configuration.
Resolves gh-17.
2018-12-16 13:40:52 -08:00
John Blum
f8c8e5d912 Simplify delta recording in DeltaCapableGemFireSessionAttributes.
Existing tests cover the changes.

Resolves gh-19.
2018-12-14 03:28:16 -08:00
John Blum
53ccac533e Polish.
Resolves gh-21.
2018-12-14 03:03:10 -08:00
John Blum
7a448183c0 Change the default value for register interest receive values to true, matching the GemFire/Geode default.
Resolves gh-21.
2018-12-14 02:55:41 -08:00
John Blum
8b8723f87c Re-implement GemFire/Geode cache entry event to Spring Session event to HttpSessionListener event handling.
Resolves gh-21.
2018-12-14 01:08:33 -08:00
John Blum
019753f86d Re-implement Session ID interest registration using Apache Geode/Pivotal GemFire Region.registerInterest(..) inside a registered, custom CacheListener.
Resolves gh-6.
2018-12-12 19:23:07 -08:00
John Blum
c67d4d11b7 Add abstract utility class containing functions for managing Sessions. 2018-12-12 18:01:34 -08:00
John Blum
0952f7efc3 Add GemFireUtils.isNonLocalClientRegion(:Region<?, ?>) method.
Remove GemFireUtils.toRegionPath(:String) method.
2018-12-12 17:49:53 -08:00
John Blum
e3467fc840 Refactor and Simplify Interest Registration.
Resolves gh-6.

Resolves gh-7.
2018-12-12 17:49:53 -08:00
John Blum
58d79a3dfa Simplify isProxy(:Region) method. 2018-12-10 23:13:41 -08:00
John Blum
84b6cd1442 Polish. 2018-12-07 16:43:10 -08:00
John Blum
7a9c1398ca Add additional integration test case testing the accessiblity of Spring Session GemFire configuration as Properties via Spring's @Value annotation on other beans defined in the Spring ApplicationContext.
Resolves gh-14.
2018-12-06 01:33:32 -08:00
John Blum
308bf0e6b7 Introduce usingDataSerialization boolean flag fixing bug when DataSerializer is not the DataSerializableSessionSerializer provided by SSDG.
Rename exposeSpringSessionGemFireConfigurationAsProperties() to exposeSpringSessionGemFireConfiguration().
2018-12-06 01:33:32 -08:00
John Blum
50827c21cb Simplify Spring Session DataSerializer (Spy) re-registration logic. 2018-12-06 01:33:32 -08:00
John Blum
788cbda8cb Change DI annotations on the Session Region field from @Resource to @Autowired(required = false) with a qualifier. 2018-12-06 01:33:32 -08:00
John Blum
889d4b004b Remove post test, explicit DataSerializer cleanup. 2018-12-06 01:33:32 -08:00
John Blum
73228a4192 Polish. 2018-12-06 01:33:32 -08:00
John Blum
d56604276e Add additional test case covering the serialization behavior of a Region.put(key, value) when value is new and when value.hasDelta() returns false. 2018-12-06 01:33:32 -08:00
John Blum
b269bd23b1 Add an additional Thread (#3) to the ConcurrentSessionOperationsTestCase. 2018-12-06 01:33:32 -08:00
John Blum
b5419ce20d Autowire optional reference to Spring ApplicationContext.
Provide getters for the autowired/injected ApplicationContext, GemFireCache and Sessions Region.

Add method to force touch a Session object by incrementing the current lastAccessedTime by 1 millisecond.
2018-12-06 01:33:32 -08:00
John Blum
8be155e109 Add integration, load test testing the concurrent access of an HttpSession backed by Spring Session using Apache Geode with 180 concurrent users (Threads) performing 10,000 concurrent data access opeations on the HttpSession to rule out possible race conditions and lost updates. 2018-12-06 01:33:32 -08:00
John Blum
ada5900863 Replace Optional.ofNullable(:Session) with a conditional and a new, private isNonNullAndDirty(:Session) method. 2018-12-03 18:37:04 -08:00
John Blum
0369cb85e5 Add protected instance variable, optionally auto-wired with an object reference to the configured 'ClusteredSpringSessions' Region. 2018-12-03 18:34:40 -08:00
John Blum
e48d34888e Set Spring Test for Apache Geode/Pivotal GemFire to 0.0.1.BUILD-SNAPSHOT. 2018-12-03 18:32:46 -08:00
John Blum
8662bea492 Increase number of Threads concurrently accessing the same logical Session to 4.
In Thread 4, update lastAccessedTime then save Session in tick 2, and attempt to save a non-dirty Session in tick 3.
2018-11-27 18:59:56 -08:00
John Blum
d6bae4912a Guard against null values for Session.lastAccessedTime. 2018-11-27 18:59:56 -08:00
John Blum
adf29e7702 Refactor and simplify non-dirty Session handling.
Resolves gh-16.
2018-11-27 00:17:18 -08:00
John Blum
1c915b27a4 Change Pivotal GemFire log-level to error. 2018-11-27 00:05:51 -08:00
John Blum
8c990ac328 Format source code. 2018-11-27 00:04:04 -08:00
John Blum
f37010c5d7 Add support to expose configuration as properties in the Spring Environment.
Edit Javadoc.

Resolves gh-14.
2018-11-25 18:27:37 -08:00
John Blum
e036a1b512 Rename tearDow() to tearDown(). 2018-11-25 18:25:34 -08:00
John Blum
90824e973d Annotate configuration methods and parameters with Spring's @NonNull and @Nullable annotations to make the contract of the methods apparent.
Edit Javadoc.
2018-11-25 18:19:34 -08:00
John Blum
2a30b08d25 Change all configuration based, JavaBean property accessor methods (getters) to public. 2018-11-21 16:29:47 -08:00
John Blum
153568d05c Add registerDataSerializableSessionSerializer() method.
Refactor doInitialization() to delegate to registerDataSerializableSessionSerializer() when registering custom Spring Session DataSerializers/SessionSerializer implementations.

Remove sessionRegionName configuration parameters and state.
2018-11-21 16:24:51 -08:00
John Blum
fef2faa307 Implement non-behavior changing fixes.
Format source code.

Edit Javadoc.
2018-11-21 15:54:03 -08:00
John Blum
8db58729b3 Reorder overridden SessionRepository methods.
Edit Javadoc.
2018-11-21 15:54:03 -08:00
John Blum
3df7146b9e Prepare next development iteration. 2018-11-13 22:25:04 -08:00
John Blum
609a5157ce Release 2.1.1.RELEASE. 2018-11-13 22:13:09 -08:00
John Blum
a450bea65d Add test class asserting proper DataSerialization of Session types combined with proper PDX serialization of application domain types. 2018-11-13 22:03:19 -08:00
John Blum
680c6d4a61 Add sample demonstrating the use of Spring Session with Gfsh started Apache Geode servers configured with DataSerialization.
Resolve gh-11.
2018-11-13 19:09:57 -08:00