Spring Boot for Apache Geode & Pivotal GemFire Reference Guide

John Blum

1.3.0.M2

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

1. Introduction
2. Getting Started
3. Using Spring Boot for Apache Geode and Pivotal GemFire
4. Building ClientCache Applications
4.1. Building Embedded (Peer & Server) Cache Applications
4.2. Building Locator Applications
4.3. Building Manager Applications
5. Auto-configuration
5.1. Customizing Auto-configuration
5.2. Disabling Auto-configuration
5.3. Overriding Auto-configuration
5.4. Replacing Auto-configuration
5.5. Auto-configuration Explained
5.5.1. @ClientCacheApplication
5.5.2. @EnableGemfireCaching
5.5.3. @EnableContinuousQueries
5.5.4. @EnableGemfireFunctionExecutions & @EnableGemfireFunctions
5.5.5. @EnableGemfireRepositories
5.5.6. @EnableLogging
5.5.7. @EnablePdx
5.5.8. @EnableSecurity
5.5.9. @EnableSsl
5.5.10. @EnableGemFireHttpSession
5.5.11. RegionTemplateAutoConfiguration
6. Declarative Configuration
6.1. Auto-configuration
6.2. Annotations not covered by Auto-configuration
6.3. Productivity Annotations
6.3.1. @EnableClusterAware (SBDG)
6.3.2. @EnableCachingDefinedRegions, @EnableClusterDefinedRegions & @EnableEntityDefinedRegions (SDG)
@EnableCachingDefinedRegions
@EnableEntityDefinedRegions
@EnableClusterDefinedRegions
6.3.3. @EnableIndexing (SDG)
6.3.4. @EnableExpiration (SDG)
6.3.5. @EnableGemFireMockObjects (STDG)
7. Externalized Configuration
7.1. Externalized Configuration of Spring Session
8. Caching using Apache Geode or Pivotal GemFire
8.1. Look-Aside Caching, Near Caching and Inline Caching
8.1.1. Look-Aside Caching
8.1.2. Near Caching
8.1.3. Inline Caching
Implementing CacheLoaders, CacheWriters for Inline Caching
Inline Caching using Spring Data Repositories.
8.2. Advanced Caching Configuration
8.3. Disable Caching
9. Data Access with GemfireTemplate
9.1. Explicitly Declared Regions
9.2. Entity-defined Regions
9.3. Caching-defined Regions
9.4. Native-defined Regions
9.5. Template Creation Rules
10. Spring Data Repositories
11. Function Implementations & Executions
11.1. Background
11.2. Applying Functions
12. Continuous Query
13. Data Serialization with PDX
13.1. SDG MappingPdxSerializer vs. GemFire/Geode’s ReflectionBasedAutoSerializer
14. Security
14.1. Authentication & Authorization
14.1.1. Auth for Servers
14.1.2. Auth for Clients
Non-Managed Auth for Clients
Managed Auth for Clients
14.2. Transport Layer Security using SSL
14.3. Securing Data at Rest
15. Logging
15.1. Configure Apache Geode & Pivotal GemFire Logging
15.1.1. Configuring Log Levels
15.1.2. Composing Logging Configuration
15.2. SLF4J & Logback API Support
15.2.1. CompositeAppender
15.2.2. DelegatingAppender
15.2.3. StringAppender
16. Spring Boot Actuator
16.1. Base HealthIndicators
16.1.1. GeodeCacheHealthIndicator
16.1.2. GeodeRegionsHealthIndicator
16.1.3. GeodeIndexesHealthIndicator
16.1.4. GeodeDiskStoresHealthIndicator
16.2. ClientCache HealthIndicators
16.2.1. GeodeContinuousQueriesHealthIndicator
16.2.2. GeodePoolsHealthIndicator
16.3. Peer Cache HealthIndicators
16.3.1. GeodeCacheServersHealthIndicator
16.3.2. GeodeAsyncEventQueuesHealthIndicator
16.3.3. GeodeGatewayReceiversHealthIndicator
16.3.4. GeodeGatewaySendersHealthIndicator
17. Spring Session
17.1. Configuration
17.2. Custom Configuration
17.2.1. Custom Configuration using Properties
17.2.2. Custom Configuration using a Configurer
17.3. Disabling Session State Caching
17.4. Using Spring Session with Pivotal Cloud Cache
18. Pivotal CloudFoundry
18.1. Running Spring Boot applications as a specific user
18.1.1. Overriding Authentication Auto-configuration
18.2. Targeting Specific Pivotal Cloud Cache Service Instances
18.3. Using Multiple Pivotal Cloud Cache Service Instances
18.4. Hybrid Pivotal CloudFoundry & Apache Geode Spring Boot Applications
18.4.1. Running PCFDev
18.4.2. Running an Apache Geode Cluster
18.4.3. Creating a User-Provided Service
18.4.4. Push & Bind a Spring Boot application
18.4.5. Running the Spring Boot application
18.5. Summary
19. Samples
20. Appendix
20.1. Auto-configuration vs. Annotation-based configuration
20.1.1. Background
20.1.2. Conventions
20.1.3. Overriding
Caches
Security
20.1.4. Extension
Caching
Continuous Query
Functions
PDX
Spring Data Repositories
20.1.5. Explicit Configuration
20.1.6. Summary
20.2. Configuration Metadata Reference
20.2.1. Spring Data Based Properties
20.2.2. Spring Session Based Properties
20.2.3. Apache Geode Properties
20.3. Disabling Auto-configuration
20.3.1. Complete Set of Auto-configuration Classes
20.4. Switch from Apache Geode to Pivotal Cloud Cache (a.k.a. Pivotal GemFire)
20.5. Running an Apache Geode or Pivotal GemFire cluster using Spring Boot from your IDE
20.6. Testing
20.7. Examples
20.8. References