Geode has removed the direct dependency on spring data gemfire in favor
of using a ServiceLoader to allow overriding the behavior of geode's server
launcher start behavior. Implementing the ServerLauncherCacheProvider
interface to allow SDG to override the server launcher behavior to parse
a spring xml file, if present.
Because Spring Data GemFire with Apache Geode support (apache-geode) is not part of the Spring Data Release Trains (e.g. Fowler, Gosling, Hopper, etc) it makes more sense to maintain a constant and stable dependency on both Spring Data Build and Spring Data Commons, respectively. Until Apache Geode has an official GA release, SDG with Apache Geode support cannot progress along with the other SD modules during pre-release, development milestones (e.g. M1, RC1) since Apache Geode does not maintain a predictable and similar release cycle. Therefore, it makes sense that SDG with Apache Geode support be coupled with the Apache Geode release cycle until the first GA release. At which time, SDG with Apache Geode support can then maintain a constant, fixed dependency on Apache Geode, as a 'driver' (similar to SDG with Pivotal GemFire support, which depends only on GA GemFire releases) and subsequently, be sync'd with the SD Release Train.
A <gemfire:repositories /> now registers a single bean definition for a GemfireMappingContext that gets wired to the GemfireRepositoryFactoryBean instances registered within the system unless an explicit mapping context is referenced.
The GemfireRepositoryFactoryBean now checks a GemfireMappingContext being registered and rejects to start without one. The same applies to GemfireRepositoryFactory.
Related tickets: SGF-448, SGF-449, SGF-450.
(cherry picked from commit 34665d16ec543e85afcde174194ba5fbff44b841)
Removed the ClientCacheFactoryBean.readyForEvents() method and moved the logic to onApplicationEvent(..).
Updated the spring-gemfire 1.6 and 1.7 XSD with the new keep-alive attribue on the client-cache element.
Changed the generic signature of the CacheFactoryBean class back to com.gemstone.gemfire.cache.Cache due to the Spring container bean resolution Exception when using JavaConfig in SDG 1.7 with GemFire 8.1 and core Spring Framework 4.1.7.
(cherry picked from commit a458115c7f145bce9f02af71572920894ba66465)
Signed-off-by: John Blum <jblum@pivotal.io>
Additional changes and refactoring inspired by Spring Data MongoDB custom SimpleTypeHolder.
(cherry picked from commit 2344eb521df7326b06740c5196eeea4669c9349e)
Signed-off-by: John Blum <jblum@pivotal.io>
Renamed the '<gfe-data:export-snapshot>' and '<gfe-data:import-snapshot>' sub-elements to <gfe-data:snapshot-export>' and '<gfe-data:snapshot-import>' respectively; updated the SnapshotServiceParser to appropriately handle the sub-element name change.
Added a mini chapter in the Spring Data GemFire Reference Guide on how-to use the GemFire SnapshotService support provided by Spring Data GemFire.
Renamed the <gfe-data:snapshot-service> element 'suppress-init-import' attribute to 'suppress-import-on-init'.
Fixed up the JSONRegionAdviceTest class test case failures due to changes in the ..repository.sample.Person application domain object class.
(cherry picked from commit d9245f343050182f570a0ea1bf629f03258667b1)
Signed-off-by: John Blum <jblum@pivotal.io>
Repackaged all GemFire Snapshot Service support classes in Spring Data GemFire under org.springframework.data.gemfire.snapshot.
Moved snapshot application events to ..snapshot.event.
Moved the ComposableSnapshotFilter class to ..snapshot.filter.
(cherry picked from commit 5bf3e8e8132c9cff0c3da33b271bfa4e049968c0)
Signed-off-by: John Blum <jblum@pivotal.io>
Refactored the SnapshotServiceFactoryBean with the addition of a new property (suppressInitImport) to suppress importing on initialization.
Refactored the SnapshotServiceFactoryBean SnapshotServiceAdapter interface's doImport(..) and doExport(..) method signatures to varargs.
Added the ComposableSnapshotFilter class implemeting the SnapshotFilter interface and Composition Design Pattern for composing multiple SnapshotFilters into one using logical operators.
Cleaned up and added addition unit tests.
Completed all integration testing including testing with export and import snapshot application event driven GemFire Cache Region snapshots.