├── spring-geode-project ├── spring-geode │ ├── src │ │ ├── test │ │ │ ├── resources │ │ │ │ ├── data.sql │ │ │ │ ├── cassandra-data.cql │ │ │ │ ├── data-example-jondoe.json │ │ │ │ ├── schema.sql │ │ │ │ ├── application.properties │ │ │ │ ├── testcontainers.properties │ │ │ │ ├── application-inline-caching-database.properties │ │ │ │ ├── data.json │ │ │ │ ├── data-customers.json │ │ │ │ ├── application-inline-caching-cassandra.properties │ │ │ │ ├── cassandra-schema.cql │ │ │ │ ├── cassandra-init.cql │ │ │ │ ├── data-example-purchaseorder.json │ │ │ │ ├── data-example-doefamily.json │ │ │ │ └── logback.xml │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── crm │ │ │ │ ├── config │ │ │ │ └── EmbeddedTestCassandraConfiguration.java │ │ │ │ ├── repo │ │ │ │ └── CustomerRepository.java │ │ │ │ └── service │ │ │ │ └── CustomerService.java │ │ └── main │ │ │ ├── resources │ │ │ ├── META-INF │ │ │ │ └── spring.factories │ │ │ └── notice.txt │ │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── geode │ │ │ ├── core │ │ │ └── util │ │ │ │ └── function │ │ │ │ └── FunctionUtils.java │ │ │ ├── data │ │ │ ├── CacheDataImporterExporter.java │ │ │ └── json │ │ │ │ └── converter │ │ │ │ └── ObjectToJsonConverter.java │ │ │ ├── cache │ │ │ └── support │ │ │ │ └── CacheLoaderSupport.java │ │ │ └── config │ │ │ └── annotation │ │ │ └── support │ │ │ └── TypelessAnnotationConfigSupport.java │ ├── lombok.config │ └── spring-geode.gradle ├── spring-geode-docs │ ├── lombok.config │ └── src │ │ ├── main │ │ ├── resources │ │ │ ├── java-util-logging.properties │ │ │ ├── example-cups.json │ │ │ ├── flattened-cups.json-tmpl │ │ │ ├── cups.json-tmpl │ │ │ ├── cloudfoundry │ │ │ │ └── bin │ │ │ │ │ └── cf-commands.sh │ │ │ ├── geode │ │ │ │ └── bin │ │ │ │ │ └── start-cluster.gfsh │ │ │ ├── logback.xml │ │ │ └── log4j2-test.xml │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── geode │ │ │ └── docs │ │ │ └── example │ │ │ └── app │ │ │ └── docker │ │ │ ├── repo │ │ │ └── CustomerRepository.java │ │ │ └── model │ │ │ └── Customer.java │ │ ├── docs │ │ ├── asciidoc │ │ │ ├── guides │ │ │ │ ├── docinfo-footer.html │ │ │ │ └── images │ │ │ │ │ ├── Cluster.png │ │ │ │ │ ├── HTTP-Session-Caching.png │ │ │ │ │ ├── Inline-Caching-Layer.png │ │ │ │ │ ├── Inline-Caching-Pattern.png │ │ │ │ │ ├── Near-Caching-Pattern.png │ │ │ │ │ ├── Inline-Caching-Overview.png │ │ │ │ │ ├── factorial-of-five-after.png │ │ │ │ │ ├── factorial-of-five-before.png │ │ │ │ │ ├── factorial-of-four-after.png │ │ │ │ │ ├── factorial-of-four-before.png │ │ │ │ │ ├── Asynchronous-Inline-Caching.png │ │ │ │ │ ├── Look-Aside-Caching-Pattern.png │ │ │ │ │ ├── Multi-Site-Caching-Pattern.png │ │ │ │ │ ├── Near-Caching-Example-Webapp.png │ │ │ │ │ ├── Synchronous-Inline-Caching.png │ │ │ │ │ ├── HttpSessionCachingApplication.png │ │ │ │ │ ├── spring-initializer-screenshot.png │ │ │ │ │ ├── LookAsideCachingApplication-Ping.png │ │ │ │ │ ├── Small-Database-To-Big-Database.png │ │ │ │ │ ├── client-actuator-health-endpoints.png │ │ │ │ │ ├── getting-started-crm-app-homepage.png │ │ │ │ │ ├── pvtl-appsmanager-org-space-apps.png │ │ │ │ │ ├── server-actuator-health-endpoints.png │ │ │ │ │ ├── Multi-Node-To-Single-Node-Cluster.png │ │ │ │ │ ├── client-actuator-health-cq-endpoint.png │ │ │ │ │ ├── Spring-Session-Framework-Architecture.png │ │ │ │ │ ├── customer-service-application-jondoe.png │ │ │ │ │ ├── Asynchronous-Inline-Caching-Application.png │ │ │ │ │ ├── Near-Caching-Example-Webapp-Read-JonDoe.png │ │ │ │ │ ├── client-actuator-health-region-endpoint.png │ │ │ │ │ ├── getting-started-crm-app-getallcustomers.png │ │ │ │ │ ├── server-actuator-health-indexes-endpoint.png │ │ │ │ │ ├── server-actuator-health-region-endpoint.png │ │ │ │ │ ├── Near-Caching-Example-Webapp-Create-JonDoe.png │ │ │ │ │ ├── Near-Caching-Example-Webapp-Reload-JonDoe.png │ │ │ │ │ ├── Near-Caching-Example-Webapp-Update-JonDoe.png │ │ │ │ │ ├── HttpSessionCachingApplication-SpringSession.png │ │ │ │ │ ├── Look-Aside--Near--Inline--Multi-Site-Caching.png │ │ │ │ │ ├── Multi-Site-Caching-Client-Application-1-Home.png │ │ │ │ │ ├── server-actuator-health-cacheserver-endpoint.png │ │ │ │ │ ├── pvtl-appsmanager-org-space-apps-crm-app-service.png │ │ │ │ │ ├── pvtl-appsmanager-org-space-apps-crm-app-start.png │ │ │ │ │ ├── spring-initializer-explore-project-screenshot.png │ │ │ │ │ ├── pvtl-appsmanager-org-space-apps-crm-app-overview.png │ │ │ │ │ ├── pvtl-appsmanager-org-space-apps-crm-app-settings.png │ │ │ │ │ ├── pvtl-appsmanager-org-space-apps-crm-app-logs-output.png │ │ │ │ │ ├── HttpSessionCachingApplication-ServletContainerSession.png │ │ │ │ │ ├── HttpSessionCachingApplication-ServletContainerSessionExpiration.png │ │ │ │ │ ├── Multi-Site-Caching-Client-Application-1-Customer-JonDoe-CacheHit.png │ │ │ │ │ ├── Multi-Site-Caching-Client-Application-2-Customer-JonDoe-CacheHit.png │ │ │ │ │ ├── Multi-Site-Caching-Client-Application-1-Customer-JaneDoe-CacheHit.png │ │ │ │ │ ├── Multi-Site-Caching-Client-Application-1-Customer-JonDoe-CacheMiss.png │ │ │ │ │ ├── Multi-Site-Caching-Client-Application-2-Customer-JaneDoe-CacheMiss.png │ │ │ │ │ └── BootGeodeAsyncInlineCachingClientApplication-IntelliJ-IDEA-Run-Configuration.png │ │ │ ├── images │ │ │ │ ├── membership-api-uml.png │ │ │ │ ├── pcfdev-cf-cli-start.png │ │ │ │ ├── PCCDemo-app-screenshot.png │ │ │ │ ├── pcfdev-appsmanager-org-space-apps.png │ │ │ │ ├── PCCDemo-app-book-by-isbn-screenshot.png │ │ │ │ ├── pcfdev-appsmanager-org-space-app-logs.png │ │ │ │ ├── pcfdev-appsmanager-org-space-services.png │ │ │ │ ├── pcfdev-appsmanager-org-space-app-overview.png │ │ │ │ ├── pcfdev-appsmanager-org-space-service-boundapps.png │ │ │ │ ├── pcfdev-appsmanager-org-space-app-settings-envvars.png │ │ │ │ └── pcfdev-appsmanager-org-space-service-configuration.png │ │ │ └── index-docinfo.xml │ │ └── scripts │ │ │ └── doc-regex.txt │ │ └── test │ │ └── resources │ │ └── application-no-ssl.properties ├── spring-geode-autoconfigure │ ├── src │ │ ├── test │ │ │ ├── resources │ │ │ │ ├── application-session-local.properties │ │ │ │ ├── java-util-logging.properties │ │ │ │ ├── data-golfers.json │ │ │ │ ├── test.properties │ │ │ │ ├── application-session-remote.properties │ │ │ │ ├── test-trusted.keystore │ │ │ │ ├── application-security-hybrid.properties │ │ │ │ ├── application-security-local-server.properties │ │ │ │ ├── application-security-local-client.properties │ │ │ │ ├── application-security-multi.properties │ │ │ │ ├── application-ssl.properties │ │ │ │ ├── template-cache.xml │ │ │ │ ├── application.properties │ │ │ │ ├── application-session-config-test.properties │ │ │ │ ├── data-books.json │ │ │ │ ├── log4j2-test.xml │ │ │ │ ├── vcap-application.json │ │ │ │ ├── vcap-services.json │ │ │ │ ├── application-vcap-hybrid.properties │ │ │ │ └── application-vcap-cloud.properties │ │ │ └── java │ │ │ │ ├── example │ │ │ │ ├── app │ │ │ │ │ ├── books │ │ │ │ │ │ ├── NonBeanType.java │ │ │ │ │ │ └── repo │ │ │ │ │ │ │ └── BookRepository.java │ │ │ │ │ └── library │ │ │ │ │ │ └── service │ │ │ │ │ │ └── LibraryService.java │ │ │ │ ├── java │ │ │ │ │ ├── lang │ │ │ │ │ │ └── IntValueComparisonUnitTests.java │ │ │ │ │ └── net │ │ │ │ │ │ └── UrlRevealed.java │ │ │ │ └── geode │ │ │ │ │ └── cache │ │ │ │ │ └── EchoCacheLoader.java │ │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── geode │ │ │ │ └── boot │ │ │ │ └── autoconfigure │ │ │ │ ├── repository │ │ │ │ ├── repo │ │ │ │ │ └── CustomerRepository.java │ │ │ │ └── model │ │ │ │ │ └── Customer.java │ │ │ │ └── function │ │ │ │ └── executions │ │ │ │ └── Calculator.java │ │ └── main │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ ├── spring.factories │ │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── geode │ │ │ └── boot │ │ │ └── autoconfigure │ │ │ └── package-info.java │ └── lombok.config ├── apache-geode-jetty11 │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── services │ │ │ └── org.apache.geode.internal.cache.CacheService │ └── apache-geode-jetty11.gradle ├── spring-geode-actuator-autoconfigure │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ ├── spring.factories │ │ │ └── spring │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── spring-geode-actuator-autoconfigure.gradle ├── spring-geode-cloud │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.factories │ └── spring-geode-cloud.gradle ├── spring-geode-starters │ ├── spring-geode-starter-logging │ │ ├── src │ │ │ ├── main │ │ │ │ └── resources │ │ │ │ │ ├── spring-geode-logging.properties │ │ │ │ │ ├── org │ │ │ │ │ └── springframework │ │ │ │ │ │ └── geode │ │ │ │ │ │ └── logging │ │ │ │ │ │ └── slf4j │ │ │ │ │ │ └── logback │ │ │ │ │ │ ├── properties-include.xml │ │ │ │ │ │ ├── appender-include.xml │ │ │ │ │ │ └── logger-include.xml │ │ │ │ │ └── logback.xml │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── logback-test.xml │ │ └── spring-geode-starter-logging.gradle │ ├── spring-geode-starter-actuator │ │ └── spring-geode-starter-actuator.gradle │ ├── spring-geode-starter-test │ │ └── spring-geode-starter-test.gradle │ ├── spring-geode-starter │ │ └── spring-geode-starter.gradle │ └── spring-geode-starter-session │ │ └── spring-geode-starter-session.gradle ├── spring-geode-bom │ └── spring-geode-bom.gradle ├── spring-geode-actuator │ └── spring-geode-actuator.gradle └── apache-geode-extensions │ ├── apache-geode-extensions.gradle │ └── src │ └── main │ └── java │ └── org │ └── springframework │ └── geode │ ├── util │ ├── function │ │ └── TupleConsumer.java │ └── GeodeConstants.java │ └── pdx │ └── PdxFieldNotWritableException.java ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── spring-geode-samples ├── boot │ ├── actuator │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application-server.properties │ │ │ │ ├── java-util-logging.properties │ │ │ │ ├── application-client.properties │ │ │ │ ├── application.properties │ │ │ │ ├── logback.xml │ │ │ │ └── log4j2-test.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── temp │ │ │ │ ├── event │ │ │ │ ├── BoilingTemperatureEvent.java │ │ │ │ ├── FreezingTemperatureEvent.java │ │ │ │ └── TemperatureEvent.java │ │ │ │ └── repo │ │ │ │ └── TemperatureReadingRepository.java │ │ └── spring-geode-samples-boot-actuator.gradle │ ├── security │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── shiro.properties │ │ │ │ ├── trusted.keystore │ │ │ │ ├── application.properties │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── security │ │ │ │ └── client │ │ │ │ ├── model │ │ │ │ └── Customer.java │ │ │ │ └── controller │ │ │ │ └── SecurityController.java │ │ ├── manifest.yaml │ │ └── spring-geode-samples-boot-security.gradle │ └── configuration │ │ ├── lombok.config │ │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ ├── java-util-logging.properties │ │ │ ├── geode │ │ │ │ ├── bin │ │ │ │ │ ├── stop-cluster.gfsh │ │ │ │ │ ├── stop-cluster.sh │ │ │ │ │ ├── setenv.gfsh │ │ │ │ │ ├── start-secure-cluster.sh │ │ │ │ │ ├── start-simple-cluster.sh │ │ │ │ │ ├── start-simple-cluster.gfsh │ │ │ │ │ ├── connect.gfsh │ │ │ │ │ └── start-secure-cluster.gfsh │ │ │ │ └── config │ │ │ │ │ └── gemfire.properties │ │ │ ├── example-trusted-keystore.jks │ │ │ ├── application.properties │ │ │ ├── application-security.properties │ │ │ ├── logback.xml │ │ │ └── log4j2-test.xml │ │ │ └── java │ │ │ └── example │ │ │ └── app │ │ │ └── crm │ │ │ ├── repo │ │ │ └── CustomerRepository.java │ │ │ └── model │ │ │ └── Customer.java │ │ └── spring-geode-samples-boot-configuration.gradle ├── caching │ ├── inline │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── schema.sql │ │ │ │ ├── application.properties │ │ │ │ └── data.sql │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── caching │ │ │ │ └── inline │ │ │ │ ├── model │ │ │ │ └── Operator.java │ │ │ │ ├── BootGeodeInlineCachingApplication.java │ │ │ │ └── repo │ │ │ │ └── CalculatorRepository.java │ │ └── spring-geode-samples-caching-inline.gradle │ ├── near │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application-server.properties │ │ │ │ ├── application.properties │ │ │ │ ├── application-client-one.properties │ │ │ │ ├── application-client-two.properties │ │ │ │ └── application-client.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── caching │ │ │ │ └── near │ │ │ │ └── client │ │ │ │ └── model │ │ │ │ └── Person.java │ │ └── spring-geode-samples-caching-near.gradle │ ├── inline-async │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── schema.sql │ │ │ │ ├── application-client.properties │ │ │ │ └── application-server.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── caching │ │ │ │ └── inline │ │ │ │ └── async │ │ │ │ └── client │ │ │ │ └── repo │ │ │ │ └── GolferRepository.java │ │ └── spring-geode-samples-caching-inline-async.gradle │ ├── multi-site │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application-client-site1.properties │ │ │ │ ├── application-client-site2.properties │ │ │ │ ├── application.properties │ │ │ │ ├── application-server-site1.properties │ │ │ │ └── application-server-site2.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── caching │ │ │ │ └── multisite │ │ │ │ └── client │ │ │ │ └── model │ │ │ │ └── Customer.java │ │ └── spring-geode-samples-caching-multisite.gradle │ ├── look-aside │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── application.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── caching │ │ │ │ └── lookaside │ │ │ │ └── config │ │ │ │ └── GeodeConfiguration.java │ │ └── spring-geode-samples-caching-lookaside.gradle │ └── http-session │ │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── templates │ │ │ │ └── index.html │ │ │ └── java │ │ │ └── example │ │ │ └── app │ │ │ └── caching │ │ │ └── session │ │ │ └── http │ │ │ └── BootGeodeHttpSessionCachingApplication.java │ │ └── spring-geode-samples-caching-httpsession.gradle ├── intro │ ├── getting-started │ │ ├── lombok.config │ │ ├── src │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── geode │ │ │ │ │ └── bin │ │ │ │ │ ├── start-cluster.sh │ │ │ │ │ ├── stop-cluster.sh │ │ │ │ │ ├── stop-cluster.gfsh │ │ │ │ │ └── start-cluster.gfsh │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── crm │ │ │ │ ├── repo │ │ │ │ └── CustomerRepository.java │ │ │ │ ├── model │ │ │ │ └── Customer.java │ │ │ │ └── config │ │ │ │ └── CustomerConfiguration.java │ │ ├── manifest.yml │ │ ├── spring-geode-samples-getting-started.gradle │ │ └── pom.xml │ └── quick-start │ │ ├── lombok.config │ │ ├── spring-geode-samples-quick-start.gradle │ │ └── src │ │ └── test │ │ └── java │ │ └── example │ │ └── app │ │ └── user │ │ └── UserApplicationIntegrationTests.java ├── spring-geode-samples.gradle └── src │ └── main │ └── templates │ └── intro │ └── getting-started │ └── pom.xml.tmpl ├── spring-geode-tests └── smoke-tests │ ├── multi-store │ ├── lombok.config │ ├── src │ │ ├── test │ │ │ └── resources │ │ │ │ ├── data.sql │ │ │ │ ├── schema.sql │ │ │ │ ├── application.properties │ │ │ │ └── logback.xml │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── app │ │ │ └── repo │ │ │ └── ContactRepository.java │ └── spring-geode-smoke-tests-multi-store.gradle │ ├── mock-session-caching │ ├── lombok.config │ ├── spring-geode-smoke-tests-mock-session-caching.gradle │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── springframework │ │ └── security │ │ └── AuthenticationException.java │ ├── function-execution-on-region │ ├── lombok.config │ ├── src │ │ ├── test │ │ │ └── resources │ │ │ │ └── logback.xml │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── app │ │ │ └── petclinic │ │ │ ├── repo │ │ │ └── PetRepository.java │ │ │ └── function │ │ │ └── PetServiceFunctionExecutions.java │ └── spring-geode-smoke-tests-function-execution-on-region.gradle │ ├── locator-application │ ├── src │ │ ├── main │ │ │ ├── resources │ │ │ │ └── gemfire.properties │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── app │ │ │ │ └── geode │ │ │ │ └── locator │ │ │ │ └── ApacheGeodeLocatorApplication.java │ │ └── test │ │ │ └── resources │ │ │ └── test.properties │ └── spring-geode-smoke-tests-locator-application.gradle │ ├── spring-initializer │ ├── etc │ │ └── spring-4-apache-geode-initializer.zip │ ├── spring-geode-smoke-tests-initializer.gradle │ └── src │ │ └── test │ │ └── resources │ │ └── logback.xml │ ├── logging │ ├── src │ │ ├── main │ │ │ └── resources │ │ │ │ └── spring-geode-logging.properties │ │ └── test │ │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── geode │ │ │ └── context │ │ │ └── logging │ │ │ └── SpringDataGemFireCacheLogLevelApplicationPropertyIntegrationTests.java │ └── spring-geode-smoke-tests-logging.gradle │ └── peer-cache-application │ └── spring-geode-smoke-tests-peer-cache-application.gradle ├── ci ├── cleanupArtifacts.sh ├── build.sh ├── check.sh ├── cleanupGemFiles.sh ├── setup.sh ├── deployDocs.sh ├── pipeline.properties ├── deployArtifacts.sh └── build-local.txt ├── .gitignore ├── gradle.properties ├── CI.adoc ├── settings.gradle └── CONTRIBUTING.adoc /spring-geode-project/spring-geode/src/test/resources/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO customers (id, name) VALUES (16, 'Pie Doe'); 2 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/cassandra-data.cql: -------------------------------------------------------------------------------- 1 | INSERT INTO "Customers" (id, name) VALUES (16, 'Pie Doe'); 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline-async/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/quick-start/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/mock-session-caching/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-session-local.properties: -------------------------------------------------------------------------------- 1 | #spring.session.data.gemfire.cache.client.region.shortcut=LOCAL 2 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/data-example-jondoe.json: -------------------------------------------------------------------------------- 1 | { 2 | "@type": "example.app.crm.model.Customer", 3 | "id": 1, 4 | "name": "Jon Doe" 5 | } 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS customers ( 2 | id BIGINT PRIMARY KEY, 3 | name VARCHAR(256) NOT NULL 4 | ); 5 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/function-execution-on-region/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/resources/application-server.properties: -------------------------------------------------------------------------------- 1 | # Temperature Service server application configuration properties 2 | 3 | server.port=8181 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/resources/java-util-logging.properties: -------------------------------------------------------------------------------- 1 | # java.util.logging (JUL) configuration 2 | 3 | org.apache=ERROR 4 | org.springframework=ERROR 5 | -------------------------------------------------------------------------------- /spring-geode-project/apache-geode-jetty11/src/main/resources/META-INF/services/org.apache.geode.internal.cache.CacheService: -------------------------------------------------------------------------------- 1 | org.springframework.geode.cache.service.Jetty11HttpService 2 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/java-util-logging.properties: -------------------------------------------------------------------------------- 1 | # java.util.logging (JUL) configuration 2 | 3 | org.apache=ERROR 4 | org.springframework=ERROR 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for testing 2 | 3 | example.app.property=FROM-APPLICATION-PROPERTIES 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/java-util-logging.properties: -------------------------------------------------------------------------------- 1 | # java.util.logging (JUL) configuration 2 | 3 | org.apache=ERROR 4 | org.springframework=ERROR 5 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/src/test/resources/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO contacts (name, email_address, phone_number) VALUES ('Fro Doe', 'frodoe@home.com', '503-555-1234'); 2 | -------------------------------------------------------------------------------- /ci/cleanupArtifacts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | #rm -Rf ./.gradle 4 | #rm -Rf ./.m2 5 | rm -Rf `find . -name "build" | grep -v "src"` 6 | rm -Rf `find . -name "target" | grep -v "src"` 7 | exit 0 8 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/java-util-logging.properties: -------------------------------------------------------------------------------- 1 | # java.util.logging (JUL) configuration 2 | 3 | org.apache=ERROR 4 | org.springframework=ERROR 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/stop-cluster.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script to stop the cluster 2 | 3 | stop server --name=ServerOne 4 | stop locator --name=LocatorOne 5 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline-async/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS golfers ( 2 | name VARCHAR(256) PRIMARY KEY, 3 | hole NUMERIC(10), 4 | score NUMERIC(10) 5 | ); 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/data-golfers.json: -------------------------------------------------------------------------------- 1 | { 2 | "@type" : "example.app.golf.model.Golfer", 3 | "id" : 1, 4 | "name" : "John Blum", 5 | "handicap" : 9 6 | } 7 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/test.properties: -------------------------------------------------------------------------------- 1 | # Test Properties used to configure Spring Boot and Apache Geode during test execution 2 | 3 | system.gemfire.ignoreJTA=true 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/stop-cluster.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | gfsh -e "run --file=@samples-dir@/boot/configuration/src/main/resources/geode/bin/stop-cluster.gfsh" 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/src/main/resources/shiro.properties: -------------------------------------------------------------------------------- 1 | # Assign user 'jdoe' the role of 'viewer' having 'DATA:WRITE' permissions. 2 | user.jdoe = p@55w0rd, viewer 3 | role.viewer = DATA:WRITE 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/src/main/resources/trusted.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-samples/boot/security/src/main/resources/trusted.keystore -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/resources/geode/bin/start-cluster.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | gfsh -e "run --file=@samples-dir@/intro/getting-started/src/main/resources/geode/bin/start-cluster.gfsh" 4 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/resources/geode/bin/stop-cluster.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | gfsh -e "run --file=@samples-dir@/intro/getting-started/src/main/resources/geode/bin/stop-cluster.gfsh" 4 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/locator-application/src/main/resources/gemfire.properties: -------------------------------------------------------------------------------- 1 | # Apache Geode properties 2 | 3 | enable-cluster-configuration=false; 4 | http-service-port=0 5 | #locators=localhost[10334] 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/docinfo-footer.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/setenv.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script to set the environment 2 | 3 | set variable --name=SBDG_HOME --value=@project-dir@ 4 | echo --string=${SBDG_HOME} 5 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/src/main/resources/application-server.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for the Apache Geode CacheServer application. 2 | 3 | spring.application.name=YellowPagesServer 4 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-session-remote.properties: -------------------------------------------------------------------------------- 1 | #spring.data.gemfire.pool.subscription-enabled=true 2 | #spring.session.data.gemfire.cache.client.region.shortcut=PROXY 3 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/start-secure-cluster.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | gfsh -e "run --file=@samples-dir@/boot/configuration/build/resources/main/geode/bin/start-secure-cluster.gfsh" 4 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/start-simple-cluster.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | gfsh -e "run --file=@samples-dir@/boot/configuration/src/main/resources/geode/bin/start-simple-cluster.gfsh" 4 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/src/test/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS contacts ( 2 | name VARCHAR(256) PRIMARY KEY, 3 | email_address VARCHAR(256), 4 | phone_number VARCHAR(256) 5 | ); 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-actuator-autoconfigure/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Spring Boot Auto-configuration 2 | # See /META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 3 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/resources/application-client.properties: -------------------------------------------------------------------------------- 1 | # Temperature Service client application configuration properties 2 | 3 | server.port=9191 4 | spring.data.gemfire.management.use-http=false 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Cluster.png -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for both the Apache Geode ClientCache and CacheServer applications. 2 | 3 | spring.data.gemfire.cache.log-level=config 4 | -------------------------------------------------------------------------------- /ci/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | set -eou pipefail 4 | 5 | GRADLE_OPTS="-Duser.name=jenkins -Duser.home=/opt/jenkins -Djava.io.tmpdir=/tmp" \ 6 | ./gradlew -Pjenkins=true --no-daemon --refresh-dependencies --stacktrace clean build 7 | -------------------------------------------------------------------------------- /ci/check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | set -eou pipefail 4 | 5 | GRADLE_OPTS="-Duser.name=jenkins -Duser.home=/opt/jenkins -Djava.io.tmpdir=/tmp" \ 6 | ./gradlew -Pjenkins=true --no-daemon --refresh-dependencies --stacktrace clean check 7 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-cloud/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bindings.boot.BindingsPropertiesProcessor=\ 2 | org.springframework.geode.cloud.bindings.boot.GeodeBindingsPropertiesProcessor 3 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/src/main/resources/spring-geode-logging.properties: -------------------------------------------------------------------------------- 1 | # Spring (Boot) for Apache Geode Logging configuration properties 2 | 3 | spring.geode.logging.appender-ref=CONSOLE 4 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/resources/geode/bin/stop-cluster.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script to stop the cluster. 2 | 3 | stop server --name=ServerTwo 4 | stop server --name=ServerOne 5 | stop locator --name=LocatorOne 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/membership-api-uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/membership-api-uml.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-cf-cli-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-cf-cli-start.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/scripts/doc-regex.txt: -------------------------------------------------------------------------------- 1 | # Useful Regular Expressions (REGEX) to search for documentation problems 2 | 3 | # Searches for class definitions without the 'class' keyword. 4 | public [class]{0}\w* \{ 5 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/example-trusted-keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-samples/boot/configuration/src/main/resources/example-trusted-keystore.jks -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/src/main/resources/application-client-site1.properties: -------------------------------------------------------------------------------- 1 | server.port=8080 2 | spring.application.name=BootGeodeMultiSiteCachingClientApplication-Site1 3 | spring.data.gemfire.pool.locators=localhost[11235] 4 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/src/main/resources/application-client-site2.properties: -------------------------------------------------------------------------------- 1 | server.port=9090 2 | spring.application.name=BootGeodeMultiSiteCachingClientApplication-Site2 3 | spring.data.gemfire.pool.locators=localhost[12480] 4 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Test Spring Boot application.properties for Multi-Store Spring Data Repositories 2 | 3 | spring.jpa.show-sql=true 4 | spring.jpa.hibernate.ddl-auto=none 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.geode.boot.actuate.autoconfigure.GeodeHealthIndicatorAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/test-trusted.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-autoconfigure/src/test/resources/test-trusted.keystore -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/testcontainers.properties: -------------------------------------------------------------------------------- 1 | # Configuration Properties for Testcontainers 2 | 3 | image.substitutor=example.app.crm.config.testcontainers.VmwHarborProxyImageNameSubstitutor 4 | pull.pause.timeout=5 5 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/src/main/resources/application-client-one.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for the Apache Geode ClientCache One application. 2 | 3 | server.port=8181 4 | spring.application.name=ClientApplicationOne 5 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/src/main/resources/application-client-two.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for the Apache Geode ClientCache Two application. 2 | 3 | server.port=8282 4 | spring.application.name=ClientApplicationTwo 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/PCCDemo-app-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/PCCDemo-app-screenshot.png -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS calculations ( 2 | operand INTEGER NOT NULL, 3 | operator VARCHAR(256) NOT NULL, 4 | result INTEGER NOT NULL, 5 | PRIMARY KEY (operand, operator) 6 | ); 7 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/spring-initializer/etc/spring-4-apache-geode-initializer.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-tests/smoke-tests/spring-initializer/etc/spring-4-apache-geode-initializer.zip -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HTTP-Session-Caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HTTP-Session-Caching.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Inline-Caching-Layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Inline-Caching-Layer.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Inline-Caching-Pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Inline-Caching-Pattern.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Pattern.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/application-inline-caching-database.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for RDBMS (Database) configuration of Inline Caching 2 | 3 | spring.jpa.show-sql=true 4 | spring.jpa.hibernate.ddl-auto=none 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Inline-Caching-Overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Inline-Caching-Overview.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-five-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-five-after.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-five-before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-five-before.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-four-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-four-after.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-four-before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/factorial-of-four-before.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/example-cups.json: -------------------------------------------------------------------------------- 1 | { "locators": [ "10.99.199.24[10334]" ], "urls": { "gfsh": "https://10.99.199.24:8080/gemfire/v1" }, "users": [{ "password": "admin", "roles": [ "cluster_operator" ], "username": "admin" }] } 2 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/start-simple-cluster.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script to start a simple GemFire/Geode cluster 2 | 3 | start locator --name=LocatorOne --log-level=config 4 | start server --name=ServerOne --log-level=config 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Asynchronous-Inline-Caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Asynchronous-Inline-Caching.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Look-Aside-Caching-Pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Look-Aside-Caching-Pattern.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Pattern.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Synchronous-Inline-Caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Synchronous-Inline-Caching.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-apps.png -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/src/main/resources/application-client.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for the Apache Geode ClientCache application 2 | 3 | spring.application.name=ClientApplication 4 | spring.data.gemfire.pool.subscription-enabled=true 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/spring-initializer-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/spring-initializer-screenshot.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/PCCDemo-app-book-by-isbn-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/PCCDemo-app-book-by-isbn-screenshot.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/flattened-cups.json-tmpl: -------------------------------------------------------------------------------- 1 | { "locators": [ "[]" ], "urls": { "gfsh": "https:///gemfire/v1" }, "users": [{ "password": "", "roles": [ "cluster_operator" ], "username": "" }] } 2 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/LookAsideCachingApplication-Ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/LookAsideCachingApplication-Ping.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Small-Database-To-Big-Database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Small-Database-To-Big-Database.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/client-actuator-health-endpoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/client-actuator-health-endpoints.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/getting-started-crm-app-homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/getting-started-crm-app-homepage.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-endpoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-endpoints.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-app-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-app-logs.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-services.png -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline-async/src/main/resources/application-client.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties configuration for the golf client application 2 | 3 | spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 4 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/look-aside/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for the Look-Aside Caching example. 2 | 3 | spring.application.name=LookAsideCachingApplication 4 | spring.data.gemfire.cache.log-level=${gemfire.log-level:error} 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Node-To-Single-Node-Cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Node-To-Single-Node-Cluster.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/client-actuator-health-cq-endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/client-actuator-health-cq-endpoint.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-app-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-app-overview.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/cups.json-tmpl: -------------------------------------------------------------------------------- 1 | { 2 | "locators": [ "[]" ], 3 | "urls": { "gfsh": "https:///gemfire/v1" }, 4 | "users": [{ "password": "", "roles": [ "cluster_operator" ], "username": "" }] 5 | } 6 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Temperature Service application configuration properties 2 | 3 | management.endpoint.health.show-details=always 4 | #management.endpoints.web.exposure.include=env 5 | spring.data.gemfire.cache.log-level=error 6 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Configuration for Apache Geode using Spring Boot and Spring Data for Apache Geode (SDG) properties 2 | 3 | spring.application.name=CustomerServiceApplication 4 | spring.data.gemfire.cache.log-level=error 5 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/logging/src/main/resources/spring-geode-logging.properties: -------------------------------------------------------------------------------- 1 | # Example spring-geode-logging.properties 2 | 3 | #CONSOLE_LOG_PATTERN=TEST - %msg%n 4 | LOG_FILE=tests.log 5 | spring.geode.logging.appender-ref=CONSOLE 6 | #spring.geode.logging.appender-ref=geode 7 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Spring-Session-Framework-Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Spring-Session-Framework-Architecture.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/customer-service-application-jondoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/customer-service-application-jondoe.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Asynchronous-Inline-Caching-Application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Asynchronous-Inline-Caching-Application.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Read-JonDoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Read-JonDoe.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/client-actuator-health-region-endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/client-actuator-health-region-endpoint.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/getting-started-crm-app-getallcustomers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/getting-started-crm-app-getallcustomers.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-indexes-endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-indexes-endpoint.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-region-endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-region-endpoint.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-service-boundapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-service-boundapps.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Create-JonDoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Create-JonDoe.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Reload-JonDoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Reload-JonDoe.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Update-JonDoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Near-Caching-Example-Webapp-Update-JonDoe.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-app-settings-envvars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-app-settings-envvars.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "regions" : [ 3 | { 4 | "name": "One", 5 | "data": [ 6 | {} 7 | ] 8 | }, 9 | { 10 | "name": "Two", 11 | "data": [ 12 | {} 13 | ] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-security-hybrid.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties used in server for testing Apache Geode Security in a hybrid cloud context. 2 | 3 | test.security.context.username=phantom 4 | test.security.context.password=s3cr3t 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication-SpringSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication-SpringSession.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Look-Aside--Near--Inline--Multi-Site-Caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Look-Aside--Near--Inline--Multi-Site-Caching.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Home.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-cacheserver-endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/server-actuator-health-cacheserver-endpoint.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-service-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/images/pcfdev-appsmanager-org-space-service-configuration.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-security-local-server.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties used in server for testing Apache Geode Security in a local context. 2 | 3 | test.security.context.username=ghostrider 4 | test.security.context.password=p@55w0rd 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-service.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-start.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/spring-initializer-explore-project-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/spring-initializer-explore-project-screenshot.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-overview.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-settings.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/data-customers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "@type": "example.app.crm.model.Customer", 4 | "id": 1, 5 | "name": "Jon Doe" 6 | }, 7 | { 8 | "@type": "example.app.crm.model.Customer", 9 | "id": 2, 10 | "name": "Jane Doe" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-logs-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/pvtl-appsmanager-org-space-apps-crm-app-logs-output.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-security-local-client.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties used in client for testing Apache Geode Security in a local context. 2 | 3 | spring.data.gemfire.security.username=ghostrider 4 | spring.data.gemfire.security.password=p@55w0rd 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication-ServletContainerSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication-ServletContainerSession.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-security-multi.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties used in server for testing Apache Geode Security in a multi-cloud cache service instance context. 2 | 3 | test.security.context.username=master 4 | test.security.context.password=p@55w0rd 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/application-inline-caching-cassandra.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for Apache Cassandra configuration of Inline Caching 2 | 3 | spring.cassandra.keyspace-name=CustomerService 4 | spring.cassandra.local-datacenter=datacenter1 5 | spring.cassandra.schema-action=none 6 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot client application.properties 2 | 3 | spring.data.gemfire.management.use-http=false 4 | spring.data.gemfire.security.username = jdoe 5 | spring.data.gemfire.security.password = p@55w0rd 6 | spring.data.gemfire.security.ssl.keystore.password=s3cr3t 7 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot main application.properties for Multi-Site (WAN) Caching Example 2 | 3 | spring.profiles.group.server-site1=locator-manager,gateway-receiver,gateway-sender 4 | spring.profiles.group.server-site2=locator-manager,gateway-receiver,gateway-sender 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication-ServletContainerSessionExpiration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/HttpSessionCachingApplication-ServletContainerSessionExpiration.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Customer-JonDoe-CacheHit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Customer-JonDoe-CacheHit.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-2-Customer-JonDoe-CacheHit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-2-Customer-JonDoe-CacheHit.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Spring Boot for Apache Geode Application Listeners 2 | org.springframework.context.ApplicationListener=\ 3 | org.springframework.geode.context.logging.GeodeLoggingApplicationListener,\ 4 | org.springframework.geode.context.logging.EnvironmentLoggingApplicationListener 5 | -------------------------------------------------------------------------------- /ci/cleanupGemFiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | rm -Rf `find . -name "BACKUPDEFAULT*"` 4 | rm -Rf `find . -name "ConfigDiskDir*"` 5 | rm -Rf `find . -name "locator*" | grep -v "src" | grep -v "locator-application"` 6 | rm -Rf `find . -name "newDB"` 7 | rm -Rf `find . -name "server" | grep -v "src"` 8 | rm -Rf `find . -name "*.log"` 9 | exit 0 10 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Customer-JaneDoe-CacheHit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Customer-JaneDoe-CacheHit.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Customer-JonDoe-CacheMiss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-1-Customer-JonDoe-CacheMiss.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-2-Customer-JaneDoe-CacheMiss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/Multi-Site-Caching-Client-Application-2-Customer-JaneDoe-CacheMiss.png -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/connect.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script used to connect to a secure cluster 2 | # Connect to a secure Locator with Authentication and SSL enabled 3 | 4 | connect --security-properties-file=${SBDG_HOME}/spring-geode-samples/boot/configuration/build/resources/main/geode/config/gemfire.properties 5 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/manifest.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: security-app 4 | memory: 768M 5 | instances: 1 6 | path: ./build/libs/spring-geode-samples-boot-security-1.3.0.BUILD-SNAPSHOT.jar 7 | services: 8 | - pccServiceOne 9 | buildpacks: 10 | - https://github.com/cloudfoundry/java-buildpack.git -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/resources/geode/bin/start-cluster.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script to start an Apache Geode cluster with 1 Locator and 2 Servers. 2 | 3 | start locator --name=LocatorOne --log-level=config 4 | start server --name=ServerOne --log-level=config 5 | start server --name=ServerTwo --log-level=config --server-port=50505 6 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties to configure the Inline Caching Example Application 2 | 3 | spring.application.name=InlineCachingApplication 4 | spring.data.gemfire.cache.log-level=${gemfire.log-level:error} 5 | spring.jpa.hibernate.ddl-auto=none 6 | spring.jpa.show-sql=false 7 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: crm-app 4 | memory: 768M 5 | instances: 1 6 | path: ./build/libs/spring-geode-samples-getting-started-1.4.0-SNAPSHOT.jar 7 | services: 8 | - pccServiceOne 9 | buildpacks: 10 | - https://github.com/cloudfoundry/java-buildpack.git 11 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-ssl.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for testing Apache Geode SSL 2 | 3 | spring.boot.data.gemfire.security.ssl.keystore.name=test-trusted.keystore 4 | spring.data.gemfire.security.ssl.keystore.password=s3cr3t 5 | spring.data.gemfire.security.ssl.truststore.password=s3cr3t 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-bom/spring-geode-bom.gradle: -------------------------------------------------------------------------------- 1 | import io.spring.gradle.convention.SpringModulePlugin 2 | 3 | apply plugin: 'io.spring.convention.maven-bom' 4 | 5 | dependencies { 6 | constraints { 7 | project.rootProject.allprojects { p -> 8 | p.plugins.withType(SpringModulePlugin) { 9 | api p 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/cassandra-schema.cql: -------------------------------------------------------------------------------- 1 | CREATE KEYSPACE IF NOT EXISTS CustomerService WITH replication = { 'class':'SimpleStrategy', 'replication_factor':1 }; 2 | USE CustomerService; 3 | CREATE TABLE IF NOT EXISTS "Customers" (id BIGINT PRIMARY KEY, name TEXT); 4 | CREATE INDEX IF NOT EXISTS CustomerNameIdx ON "Customers"(name); 5 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/BootGeodeAsyncInlineCachingClientApplication-IntelliJ-IDEA-Run-Configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-boot-data-geode/HEAD/spring-geode-project/spring-geode-docs/src/docs/asciidoc/guides/images/BootGeodeAsyncInlineCachingClientApplication-IntelliJ-IDEA-Run-Configuration.png -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-actuator/spring-geode-starter-actuator.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Actuator Starter for Apache Geode" 4 | 5 | dependencies { 6 | 7 | api project(":spring-geode-starter") 8 | api project(":spring-geode-actuator-autoconfigure") 9 | 10 | } 11 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline-async/src/main/resources/application-server.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties configuration for the golfer server application. 2 | # RBMS (Database) configuration properties. 3 | 4 | #spring.autoconfigure.exclude=org.springframework.geode.boot.autoconfigure.RepositoriesAutoConfiguration 5 | spring.jpa.show-sql=true 6 | spring.jpa.hibernate.ddl-auto=none 7 | -------------------------------------------------------------------------------- /ci/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | # User ID 1001 is "jenkins" 4 | # Group ID 1001 is "jenkins" 5 | # Syntax: `chown -R userId:groupId .` 6 | 7 | echo "Logged into Jenkins CI as user [$USER] with home directory [$HOME] in the current working directory [$PWD]" 8 | chown -R 1001:1001 . 9 | #echo "Logging into Docker..." 10 | #docker login --username ${DOCKER_HUB_USR} --password ${DOCKER_HUB_PSW} 11 | exit 0 12 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/cassandra-init.cql: -------------------------------------------------------------------------------- 1 | CREATE KEYSPACE IF NOT EXISTS CustomerService WITH replication = { 'class':'SimpleStrategy', 'replication_factor':1 }; 2 | USE CustomerService; 3 | CREATE TABLE IF NOT EXISTS "Customers" (id BIGINT PRIMARY KEY, name TEXT); 4 | CREATE INDEX IF NOT EXISTS CustomerNameIdx ON "Customers"(name); 5 | INSERT INTO "Customers" (id, name) VALUES (16, 'Pie Doe'); 6 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-test/spring-geode-starter-test.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Test Starter for Apache Geode" 4 | 5 | dependencies { 6 | 7 | api project(':spring-geode-starter') 8 | 9 | api "org.springframework.boot:spring-boot-starter-test" 10 | api 'org.springframework.data:spring-data-geode-test' 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/src/main/resources/application-server-site1.properties: -------------------------------------------------------------------------------- 1 | gemfire.distributed-system-id=10 2 | gemfire.remote-locators=localhost[12480] 3 | geode.distributed-system.remote.id=20 4 | spring.application.name=BootGeodeMultiSiteCachingServerApplication-Site1 5 | #spring.profiles.include=locator-manager,gateway-receiver,gateway-sender 6 | spring.data.gemfire.locator.port=11235 7 | spring.data.gemfire.manager.port=1199 8 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/src/main/resources/application-server-site2.properties: -------------------------------------------------------------------------------- 1 | gemfire.distributed-system-id=20 2 | gemfire.remote-locators=localhost[11235] 3 | geode.distributed-system.remote.id=10 4 | spring.application.name=BootGeodeMultiSiteCachingServerApplication-Site2 5 | #spring.profiles.include=locator-manager,gateway-receiver,gateway-sender 6 | spring.data.gemfire.locator.port=12480 7 | spring.data.gemfire.manager.port=2299 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | bin/ 3 | build/ 4 | out/ 5 | target/ 6 | .bak/ 7 | .idea/ 8 | .settings/ 9 | _site/ 10 | *.dat 11 | .gradle 12 | *.lk 13 | .springBeans 14 | *.iml 15 | *.ipr 16 | *.iws 17 | *.log 18 | .classpath 19 | .project 20 | deps* 21 | 22 | /samples/hello-world/vf.gf.dmn-events.cfg 23 | /samples/hello-world/vf.gf.dmn-license.cfg 24 | /vf.gf.dmn-events.cfg 25 | /vf.gf.dmn-events.txt 26 | /vf.gf.dmn-license.cfg 27 | 28 | /BACKUP* 29 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter/spring-geode-starter.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Starter for Apache Geode" 4 | 5 | dependencies { 6 | 7 | api "org.springframework.boot:spring-boot-starter" 8 | 9 | api project(':spring-geode') 10 | api project(':spring-geode-autoconfigure') 11 | 12 | runtimeOnly 'org.springframework.shell:spring-shell' 13 | 14 | } 15 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/http-session/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for the HTTP Session State Caching Example application. 2 | 3 | spring.application.name=HttpSessionCachingApplication 4 | spring.data.gemfire.cache.log-level=${gemfire.log-level:error} 5 | spring.session.data.gemfire.cache.client.pool.name=DEFAULT 6 | spring.session.data.gemfire.session.region.name=Sessions 7 | server.servlet.session.timeout=15 8 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-session/spring-geode-starter-session.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Starter for Spring Session using Apache Geode" 4 | 5 | dependencies { 6 | 7 | api project(':spring-geode-starter') 8 | 9 | api 'org.springframework.session:spring-session-core' 10 | api 'org.springframework.session:spring-session-data-geode' 11 | 12 | } 13 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/template-cache.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spring-geode-samples/spring-geode-samples.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | 3 | task generateSamplesPoms(type: Copy) { 4 | from('src/main/templates') 5 | into rootProject.projectDir.path + '/spring-geode-samples' 6 | include '**/*.tmpl' 7 | rename { fileName -> "${(fileName - '.tmpl')}" } 8 | expand([ 9 | version: "${version}", 10 | springBootVersion: "${springBootVersion}" 11 | ]) 12 | } 13 | 14 | processResources { 15 | dependsOn generateSamplesPoms 16 | } 17 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for Unit and Integration Tests 2 | 3 | spring.boot.data.gemfire.cache.data.import.active-profiles=IMPORT 4 | spring.boot.data.gemfire.security.ssl.keystore.name=non-existing-trusted.keystore 5 | spring.data.gemfire.logging.level=error 6 | spring.data.gemfire.cache.log-level=${spring.data.gemfire.logging.level:off} 7 | spring.main.allow-bean-definition-overriding=true 8 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/test/resources/application-no-ssl.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties used to ensure Apache Geode is not configured to use SSL network communications. 2 | 3 | javax.net.ssl.keyStore= 4 | javax.net.ssl.keyStoreType= 5 | javax.net.ssl.keyStorePassword= 6 | javax.net.ssl.trustStore= 7 | javax.net.ssl.trustStoreType= 8 | javax.net.ssl.trustStorePassword= 9 | spring.boot.data.gemfire.security.ssl.environment.post-processor.enabled=false 10 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/application-security.properties: -------------------------------------------------------------------------------- 1 | # Security configuration for Apache Geode using Spring Boot and Spring Data for Apache Geode (SDG) properties 2 | 3 | spring.boot.data.gemfire.security.ssl.keystore.name=example-trusted-keystore.jks 4 | spring.data.gemfire.security.username=test 5 | spring.data.gemfire.security.password=test 6 | spring.data.gemfire.security.ssl.keystore.password=s3cr3t 7 | spring.data.gemfire.security.ssl.truststore.password=s3cr3t 8 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO calculations (operand, operator, result) VALUES (5, 'FACTORIAL', 120); 2 | INSERT INTO calculations (operand, operator, result) VALUES (7, 'FACTORIAL', 5040); 3 | INSERT INTO calculations (operand, operator, result) VALUES (9, 'FACTORIAL', 362880); 4 | INSERT INTO calculations (operand, operator, result) VALUES (16, 'SQUARE_ROOT', 4); 5 | INSERT INTO calculations (operand, operator, result) VALUES (64, 'SQUARE_ROOT', 8); 6 | INSERT INTO calculations (operand, operator, result) VALUES (256, 'SQUARE_ROOT', 16); 7 | -------------------------------------------------------------------------------- /ci/deployDocs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | set -eou pipefail 4 | 5 | echo "Deploying docs on host [$HOSTNAME]" 6 | 7 | # User ID 1001 is "jenkins" 8 | # Group ID 1001 is "jenkins" 9 | # Syntax: `chown -R userId:groupId .` 10 | chown -R 1001:1001 . 11 | 12 | GRADLE_OPTS="--add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED -Duser.name=jenkins -Duser.home=/tmp/jenkins-home -Djava.io.tmpdir=/tmp" \ 13 | ./gradlew deployDocs --no-daemon --stacktrace \ 14 | -PdeployDocsSshKeyPath=$DEPLOY_SSH_KEY \ 15 | -PdeployDocsSshUsername=$SPRING_DOCS_USERNAME 16 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/cloudfoundry/bin/cf-commands.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Pivotal CloudFoundry CF CLI commands. 3 | 4 | cf cups apacheGeodeService -t "gemfire, cloudcache, database, pivotal" -p '{ "locators": [ "10.99.199.24[10334]" ], "urls": { "gfsh": "https://10.99.199.24/gemfire/v1" }, "users": [{ "password": "admin", "roles": [ "cluster_operator" ], "username": "admin" }] }' 5 | cf push boot-pcc-demo -u none --no-start -p target/client-0.0.1-SNAPSHOT.jar -b https://github.com/cloudfoundry/java-buildpack.git 6 | cf bind-service boot-pcc-demo apacheGeodeService 7 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/docs/asciidoc/index-docinfo.xml: -------------------------------------------------------------------------------- 1 | Spring Boot for Apache Geode & Pivotal GemFire 2 | {spring-boot-data-geode-version} 3 | 4 | 2020 5 | 6 | 7 | 8 | Copies of this document may be made for your own use and for distribution to 9 | others, provided that you do not charge any fee for such copies and further 10 | provided that each copy contains this Copyright Notice, whether distributed in 11 | print or electronically. 12 | 13 | 14 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/resources/notice.txt: -------------------------------------------------------------------------------- 1 | Spring Boot for Apache Geode, all versions (2017-present) 2 | Copyright (c) [2017-present) VMware, Inc. 3 | 4 | This product is licensed to you under the Apache License, Version 2.0 (the "License"). 5 | You may not use this product except in compliance with the License. 6 | 7 | This product may include a number of subcomponents with 8 | separate copyright notices and license terms. Your use of the source 9 | code for the these subcomponents is subject to the terms and 10 | conditions of the subcomponent's license, as noted in the LICENSE file. 11 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/logging/spring-geode-smoke-tests-logging.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | description = "Smoke Tests to assert that Spring for Apache Geode logging functions as expected." 4 | 5 | dependencies { 6 | 7 | implementation "org.assertj:assertj-core" 8 | 9 | // NOTE: 'spring-geode-starter-logging' must be the first entry on the application/test classpath 10 | implementation project(":spring-geode-starter-logging") 11 | implementation project(':spring-geode-starter') 12 | 13 | testImplementation project(":spring-geode-starter-test") 14 | 15 | } 16 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/geode/bin/start-cluster.gfsh: -------------------------------------------------------------------------------- 1 | #!/bin/gfsh 2 | # Gfsh shell script to configure and bootstrap an Apache Geode cluster. 3 | 4 | start locator --name=LocatorOne --log-level=config --classpath=@project-dir@/apache-geode-extensions/build/libs/apache-geode-extensions-@project-version@.jar --J=-Dgemfire.security-manager=org.springframework.geode.security.TestSecurityManager --J=-Dgemfire.http-service-port=8080 5 | 6 | start server --name=ServerOne --log-level=config --user=admin --password=admin --classpath=@project-dir@/apache-geode-extensions/build/libs/apache-geode-extensions-@project-version@.jar 7 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-session-config-test.properties: -------------------------------------------------------------------------------- 1 | # Spring Session for Apache Geode (SSDG) Test Properties 2 | 3 | spring.session.data.gemfire.cache.client.pool.name=DEAD 4 | spring.session.data.gemfire.cache.client.region.shortcut=LOCAL 5 | spring.session.data.gemfire.cache.server.region.shortcut=REPLICATE 6 | spring.session.data.gemfire.session.attributes.indexable=firstName,lastName 7 | spring.session.data.gemfire.session.expiration.max-inactive-interval-seconds=300 8 | spring.session.data.gemfire.session.region.name=TestSessions 9 | spring.session.data.gemfire.session.serializer.bean-name=MockSessionSerializer 10 | -------------------------------------------------------------------------------- /ci/pipeline.properties: -------------------------------------------------------------------------------- 1 | # Java (JDK) versions 2 | java.main.tag=17.0.8_7-jdk-focal 3 | 4 | # Docker Container Images 5 | docker.container.image.java.main=harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:${java.main.tag} 6 | 7 | # Docker Environment Settings 8 | docker.container.inside.env.basic=-u root -v $HOME:/opt/jenkins -v /tmp:/tmp 9 | docker.container.inside.env.full=-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/opt/jenkins -v /tmp:/tmp 10 | 11 | # Credentials 12 | docker.registry= 13 | docker.credentials=hub.docker.com-springbuildmaster 14 | artifactory.credentials=02bd1690-b54f-4c9f-819d-a77cb7a9822c 15 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/data-books.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "@type": "example.app.books.model.Book", 4 | "@identifier": "isbn", 5 | "author": { 6 | "id": 1, 7 | "name": "Josh Long" 8 | }, 9 | "isbn": "978-1-449-374640-8", 10 | "publishedDate": "2017-08-01", 11 | "title": "Cloud Native Java" 12 | }, 13 | { 14 | "@type": "example.app.books.model.Book", 15 | "@identifier": "isbn", 16 | "author": { 17 | "id": 2, 18 | "name": "Alex Petrov" 19 | }, 20 | "isbn": "978-1-492-04034-7", 21 | "publishedDate": "2019-10-01", 22 | "title": "Database Internals" 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/bin/start-secure-cluster.gfsh: -------------------------------------------------------------------------------- 1 | # Gfsh shell script to start a secure GemFire/Geode cluster 2 | 3 | set variable --name=CLASSPATH --value=${SBDG_HOME}/apache-geode-extensions/build/libs/apache-geode-extensions-@project-version@.jar 4 | set variable --name=GEMFIRE_PROPERTIES --value=${SBDG_HOME}/spring-geode-samples/boot/configuration/build/resources/main/geode/config/gemfire.properties 5 | 6 | start locator --name=LocatorOne --classpath=${CLASSPATH} --properties-file=${GEMFIRE_PROPERTIES} 7 | connect --user=test --password=test 8 | start server --name=ServerOne --classpath=${CLASSPATH} --properties-file=${GEMFIRE_PROPERTIES} 9 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/quick-start/spring-geode-samples-quick-start.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Quick Start for Spring Boot for Apache Geode" 8 | 9 | dependencies { 10 | 11 | implementation project(":spring-geode-starter") 12 | 13 | implementation "org.assertj:assertj-core" 14 | implementation "org.projectlombok:lombok" 15 | 16 | //runtime project(":spring-geode-starter-logging") 17 | 18 | testImplementation project(":spring-geode-starter-test") 19 | 20 | testImplementation "org.springframework.boot:spring-boot-starter-test" 21 | 22 | } 23 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-actuator-autoconfigure/spring-geode-actuator-autoconfigure.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Actuator Auto-Configuration for Apache Geode" 4 | 5 | dependencies { 6 | 7 | api project(":spring-geode-actuator") 8 | api project(":spring-geode-autoconfigure") 9 | 10 | compileOnly "com.google.code.findbugs:jsr305:$findbugsVersion" 11 | 12 | // See additional testImplementation dependencies declared in the testDependencies project extension 13 | // defined in the DependencySetPlugin. 14 | testImplementation "org.springframework.boot:spring-boot-starter-test" 15 | 16 | } 17 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-actuator/spring-geode-actuator.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Actuator for Apache Geode" 4 | 5 | dependencies { 6 | 7 | api project(":spring-geode") 8 | 9 | api "org.springframework.boot:spring-boot-starter-actuator" 10 | 11 | provided "org.apache.geode:geode-logging:$apacheGeodeVersion" 12 | provided "org.apache.geode:geode-serialization:$apacheGeodeVersion" 13 | 14 | // See additional testImplementation dependencies declared in the testDependencies project extension 15 | // defined in the DependencySetPlugin. 16 | testImplementation "org.springframework.boot:spring-boot-starter-test" 17 | 18 | } 19 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/geode/config/gemfire.properties: -------------------------------------------------------------------------------- 1 | # Apache Geode Properties 2 | 3 | log-level=config 4 | security-manager=org.springframework.geode.security.TestSecurityManager 5 | #security-peer-auth-init=org.springframework.geode.security.TestAuthInitialize.create 6 | security-username=test 7 | security-password=test 8 | ssl-enabled-components=locator,server 9 | ssl-require-authentication=false 10 | ssl-keystore=@samples-dir@/boot/configuration/build/resources/main/example-trusted-keystore.jks 11 | ssl-keystore-password=s3cr3t 12 | ssl-keystore-type=JKS 13 | ssl-truststore=@samples-dir@/boot/configuration/build/resources/main/example-trusted-keystore.jks 14 | ssl-truststore-password=s3cr3t 15 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/spring-geode-starter-logging.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Boot Logging Starter for Apache Geode with Logback as the default logging provider and adaptation of JUL and Log4j to SLF4J" 4 | 5 | dependencies { 6 | 7 | api "ch.qos.logback:logback-classic" 8 | api "org.slf4j:jul-to-slf4j" 9 | api "org.apache.logging.log4j:log4j-to-slf4j" 10 | api "org.springframework.boot:spring-boot-starter-logging" 11 | 12 | implementation "org.springframework:spring-core" 13 | implementation "org.codehaus.janino:janino" 14 | 15 | testImplementation project(":spring-geode-starter-test") 16 | 17 | } 18 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/spring-geode-samples-boot-security.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Spring Geode Sample demonstrating Apache Geode security configured with Spring." 8 | 9 | dependencies { 10 | 11 | implementation project(":spring-geode-starter") 12 | implementation project(":spring-geode-starter-test") 13 | 14 | implementation "org.assertj:assertj-core" 15 | implementation "org.projectlombok:lombok" 16 | implementation "org.springframework.boot:spring-boot-starter-web" 17 | 18 | } 19 | 20 | bootJar { 21 | mainClass = 'example.app.security.client.BootGeodeSecurityClientApplication' 22 | } 23 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/locator-application/spring-geode-smoke-tests-locator-application.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | description = "Smoke Tests asserting the proper function of a Spring Boot configured and bootstrapped Apache Geode Locator application." 4 | 5 | dependencies { 6 | 7 | implementation "org.assertj:assertj-core" 8 | 9 | implementation project(':spring-geode-starter') 10 | //implementation project(':spring-geode-starter-logging') 11 | 12 | testImplementation('org.springframework.boot:spring-boot-starter-test') { 13 | exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' 14 | } 15 | 16 | testImplementation project(":spring-geode-starter-test") 17 | 18 | } 19 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-cloud/spring-geode-cloud.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Spring Cloud for Apache Geode" 4 | 5 | repositories { 6 | maven { url "https://repo.spring.io/release" } 7 | } 8 | 9 | dependencies { 10 | 11 | api project(":spring-geode-autoconfigure") 12 | 13 | api "org.springframework.cloud:spring-cloud-bindings:${springCloudBindingsVersion}" 14 | 15 | compileOnly "com.google.code.findbugs:jsr305:$findbugsVersion" 16 | 17 | // See additional testImplementation dependencies declared in the testDependencies project extension 18 | // defined in the DependencySetPlugin. 19 | testImplementation "org.springframework.boot:spring-boot-starter-test" 20 | 21 | } 22 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/src/main/resources/org/springframework/geode/logging/slf4j/logback/properties-include.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8 2 | antlrVersion=2.7.7 3 | apacheGeodeVersion=1.15.1 4 | awaitilityVersion=4.2.0 5 | #eclipseJettyVersion=9.4.39.v20210325 6 | findbugsVersion=3.0.2 7 | #micrometerVersion=1.9.0-SNAPSHOT 8 | multithreadedtcVersion=1.01 9 | pivotalCloudCacheVersion=1.14.9 10 | pivotalGemFireVersion=9.15.9 11 | springVersion=6.0.13 12 | springBootVersion=3.0.13-SNAPSHOT 13 | springCloudBindingsVersion=1.10.0 14 | springDataBomVersion=2022.0.11 15 | springDataGeodeVersion=3.0.0-M6 16 | springDataGeodeTestVersion=1.0.0-M7 17 | springSessionBomVersion=3.0.4 18 | springSessionDataGeodeVersion=3.0.0-M5 19 | springShellVersion=1.2.0.RELEASE 20 | testcontainersVersion=1.19.1 21 | #tomcatVersion=10.1.8 22 | version=2.0.0-SNAPSHOT 23 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/spring-initializer/spring-geode-smoke-tests-initializer.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | description = "Smoke Tests to assert that a Spring for Apache Geode project generated from Spring Initializer is a standard, non-Webapp Spring Boot application." 4 | 5 | dependencies { 6 | 7 | implementation "org.assertj:assertj-core" 8 | 9 | implementation project(':spring-geode-starter') 10 | // implementation "org.springframework.geode:spring-geode-starter:$version" 11 | 12 | testImplementation('org.springframework.boot:spring-boot-starter-test') { 13 | exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' 14 | } 15 | 16 | testImplementation project(":spring-geode-starter-test") 17 | 18 | } 19 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/src/test/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/spring-initializer/src/test/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/function-execution-on-region/src/test/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /CI.adoc: -------------------------------------------------------------------------------- 1 | = Running the Spring Boot for Apache Geode (SBDG) build in Docker container locally 2 | 3 | [source,txt] 4 | ---- 5 | docker run -it --mount type=bind,source="$(pwd)",target=/spring-boot-data-geode-github \ 6 | -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker:/usr/local/bin/docker \ 7 | eclipse-temurin:17.0.6_10-jdk-focal /bin/bash 8 | ---- 9 | 10 | == VMware Harbor Proxy URLs 11 | 12 | * https://harbor-repo.vmware.com/dockerhub-proxy-cache/ 13 | * https://harbor-mirror.spring.vmware.com/dockerhub-proxy-cache/ 14 | * https://harbor-repo.vmware.com/dockerhub-proxy-cache/library/eclipse-temurin:17.0.6_10-jdk-focal 15 | 16 | === Other useful information 17 | 18 | * https://confluence.eng.vmware.com/pages/viewpage.action?spaceKey=AO&title=How+to+access+Corporate+Harbor+UI 19 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Spring Boot Auto-configuration 2 | # See /META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 3 | 4 | # Spring Boot Environment Post Processing 5 | org.springframework.boot.env.EnvironmentPostProcessor=\ 6 | org.springframework.geode.boot.autoconfigure.ClientSecurityAutoConfiguration.AutoConfiguredCloudSecurityEnvironmentPostProcessor,\ 7 | org.springframework.geode.boot.autoconfigure.DataImportExportAutoConfiguration.DisableGemFireShutdownHookEnvironmentPostProcessor,\ 8 | org.springframework.geode.boot.autoconfigure.SpringSessionAutoConfiguration.SpringSessionPropertiesEnvironmentPostProcessor,\ 9 | org.springframework.geode.boot.autoconfigure.SslAutoConfiguration.SslEnvironmentPostProcessor 10 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/spring-geode-samples-caching-multisite.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Spring Geode Sample for Multi-Site Caching." 8 | 9 | dependencies { 10 | 11 | implementation project(":spring-geode-starter") 12 | 13 | implementation "org.assertj:assertj-core" 14 | implementation "org.projectlombok:lombok" 15 | implementation "org.springframework.boot:spring-boot-starter-web" 16 | 17 | testImplementation project(":spring-geode-starter-test") 18 | 19 | testImplementation "org.springframework.boot:spring-boot-starter-test" 20 | 21 | } 22 | 23 | bootJar { 24 | mainClass = 'example.app.caching.multisite.client.BootGeodeMultiSiteCachingClientApplication' 25 | } 26 | -------------------------------------------------------------------------------- /ci/deployArtifacts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | set -eou pipefail 4 | 5 | echo "Deploying artifacts on host [$HOSTNAME]" 6 | 7 | # User ID 1001 is "jenkins" 8 | # Group ID 1001 is "jenkins" 9 | # Syntax: `chown -R userId:groupId .` 10 | chown -R 1001:1001 . 11 | 12 | GRADLE_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home -Djava.io.tmpdir=/tmp" \ 13 | ./gradlew publishArtifacts releasePublishedArtifacts --no-build-cache --no-configuration-cache --no-daemon --stacktrace \ 14 | -PartifactoryUsername=$ARTIFACTORY_USERNAME \ 15 | -PartifactoryPassword=$ARTIFACTORY_PASSWORD \ 16 | -PossrhUsername=$OSSRH_USERNAME \ 17 | -PossrhPassword=$OSSRH_PASSWORD \ 18 | -Psigning.keyId=$SPRING_SIGNING_KEYID \ 19 | -Psigning.password=$SIGNING_PASSWORD \ 20 | -Psigning.secretKeyRingFile=$SIGNING_KEYRING_FILE 21 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/log4j2-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-geode-project/apache-geode-jetty11/apache-geode-jetty11.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Apache Geode Integation with Eclipse Jetty declared and managed by Spring Boot" 4 | 5 | dependencies { 6 | 7 | api project(':apache-geode-extensions') 8 | 9 | api("org.springframework.boot:spring-boot-starter-jetty") { 10 | exclude group: "org.eclipse.jetty.websocket", module: "websocket-jakarta-server" 11 | exclude group: "org.eclipse.jetty.websocket", module: "websocket-jetty-server" 12 | } 13 | 14 | implementation "org.apache.commons:commons-lang3" 15 | implementation "org.apache.tomcat:jakartaee-migration:1.0.0" 16 | implementation "org.eclipse.jetty:jetty-server" 17 | implementation "org.slf4j:slf4j-api" 18 | 19 | runtimeOnly "org.eclipse.jetty:apache-jsp" 20 | 21 | } 22 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/vcap-application.json: -------------------------------------------------------------------------------- 1 | { 2 | "application_id": "c50bb519-2739-4fa3-8750-02c051e35735", 3 | "application_name": "boot-test", 4 | "application_uris": [ "boot-example.apps.tunis.cf-app.com" ], 5 | "application_version": "d34bbbbd-c35c-4057-baf2-6300cb9aa2aa", 6 | "cf_api": "https://api.sys.tunis.cf-app.com", "host": "0.0.0.0", 7 | "instance_id": "babcf301-3b34-4dcf-720e-ccfc", 8 | "instance_index": 0, 9 | "limits": { 10 | "disk": 1024, "fds": 16384, "mem": 1024}, 11 | "name": "boot-example", 12 | "port": 8080, 13 | "space_id": "271cf083-7855-4b5e-be19-65342d099099", 14 | "space_name": "jblum-space", 15 | "uris": [ "boot-example.apps.tunis.cf-app.com" ], 16 | "version": "d34bbbbd-c35c-4057-baf2-6300cb9aa2aa" 17 | } 18 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/look-aside/spring-geode-samples-caching-lookaside.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-sample-boot' 2 | 3 | description = "Spring Geode Sample demonstrating Spring's Cache Abstraction using Apache Geode as the caching provider for Look-Aside Caching." 4 | 5 | dependencies { 6 | 7 | implementation project(":spring-geode-starter") 8 | 9 | implementation "org.springframework.boot:spring-boot-starter-web" 10 | 11 | testImplementation project(":spring-geode-starter-test") 12 | 13 | testImplementation "org.springframework.boot:spring-boot-starter-test" 14 | 15 | } 16 | 17 | bootJar { 18 | mainClass = 'example.app.caching.lookaside.BootGeodeLookAsideCachingApplication' 19 | } 20 | 21 | bootRun { 22 | mainClass = 'example.app.caching.lookaside.BootGeodeLookAsideCachingApplication' 23 | } 24 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/function-execution-on-region/spring-geode-smoke-tests-function-execution-on-region.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-test' 6 | 7 | description = "Smoke Tests asserting the proper execution of an Apache Geode Function using Spring Data for Apache Geode Function annotation support in a Spring Boot context." 8 | 9 | dependencies { 10 | 11 | implementation project(':spring-geode-starter') 12 | 13 | implementation "org.assertj:assertj-core" 14 | implementation "org.projectlombok:lombok" 15 | 16 | testImplementation project(':spring-geode-starter-test') 17 | 18 | testImplementation('org.springframework.boot:spring-boot-starter-test') { 19 | exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/peer-cache-application/spring-geode-smoke-tests-peer-cache-application.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-test' 2 | 3 | description = "Smoke Tests asserting the proper function of a Spring Boot configured and bootstrapped Apache Geode peer Cache application in a simulated forced-disconnect/auto-reconnect scenairo." 4 | 5 | dependencies { 6 | 7 | implementation "org.assertj:assertj-core" 8 | 9 | implementation project(":apache-geode-extensions") 10 | implementation project(':spring-geode-starter') 11 | // implementation project(':spring-geode-starter-logging') 12 | 13 | testImplementation('org.springframework.boot:spring-boot-starter-test') { 14 | exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' 15 | } 16 | 17 | testImplementation project(":spring-geode-starter-test") 18 | 19 | } 20 | -------------------------------------------------------------------------------- /spring-geode-project/apache-geode-extensions/apache-geode-extensions.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-module' 2 | 3 | description = "Apache Geode Extensions" 4 | 5 | dependencies { 6 | 7 | api "org.apache.geode:geode-core:$apacheGeodeVersion" 8 | api "org.apache.geode:geode-cq:$apacheGeodeVersion" 9 | api "org.apache.geode:geode-lucene:$apacheGeodeVersion" 10 | api "org.apache.geode:geode-wan:$apacheGeodeVersion" 11 | 12 | implementation "com.fasterxml.jackson.core:jackson-databind" 13 | 14 | // See additional testImplementation dependencies declared in the testDependencies project extension 15 | // defined in the DependencySetPlugin. 16 | testImplementation "org.apache.geode:geode-membership:$apacheGeodeVersion" 17 | testImplementation "org.apache.geode:geode-serialization:$apacheGeodeVersion" 18 | 19 | } 20 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/mock-session-caching/spring-geode-smoke-tests-mock-session-caching.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-test' 6 | 7 | description = "Smoke Tests to assert (Spring) Session state caching using Apache Geode with Mock Objects auto-configured by Spring Boot." 8 | 9 | dependencies { 10 | 11 | compileOnly "com.google.code.findbugs:jsr305:$findbugsVersion" 12 | 13 | implementation "org.assertj:assertj-core" 14 | implementation "org.springframework.boot:spring-boot-starter-web" 15 | 16 | implementation project(':spring-geode-starter-session') 17 | 18 | implementation('org.springframework.boot:spring-boot-starter-test') { 19 | exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' 20 | } 21 | 22 | testImplementation project(":spring-geode-starter-test") 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/src/main/resources/org/springframework/geode/logging/slf4j/logback/appender-include.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ${SPRING_BOOT_LOG_CHARSET} 9 | ${SPRING_BOOT_LOG_PATTERN} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ${APACHE_GEODE_LOG_CHARSET} 20 | ${APACHE_GEODE_LOG_PATTERN} 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/main/java/org/springframework/geode/boot/autoconfigure/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | /** 18 | * Spring Boot auto-configuration for Apache Geode. 19 | */ 20 | package org.springframework.geode.boot.autoconfigure; 21 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/src/main/resources/org/springframework/geode/logging/slf4j/logback/logger-include.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/http-session/spring-geode-samples-caching-httpsession.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'io.spring.convention.spring-sample-boot' 2 | 3 | description = "Spring Geode Sample demonstrating Spring Session with Apache Geode for HTTP Session Caching." 4 | 5 | dependencies { 6 | 7 | implementation project(":spring-geode-starter") 8 | 9 | implementation "org.springframework.boot:spring-boot-starter-web" 10 | 11 | runtimeOnly "org.springframework.boot:spring-boot-starter-thymeleaf" 12 | 13 | testImplementation project(":spring-geode-starter-session") 14 | testImplementation project(":spring-geode-starter-test") 15 | 16 | testImplementation "org.springframework.boot:spring-boot-starter-test" 17 | 18 | } 19 | 20 | bootJar { 21 | mainClass = 'example.app.caching.session.http.BootGeodeHttpSessionCachingApplication' 22 | } 23 | 24 | bootRun { 25 | mainClass = 'example.app.caching.session.http.BootGeodeHttpSessionCachingApplication' 26 | } 27 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/spring-geode-samples-caching-near.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Spring Geode Sample demonstrating Spring's Cache Abstraction using Apache Geode as the caching provider for Near Caching." 8 | 9 | dependencies { 10 | 11 | implementation project(":apache-geode-extensions") 12 | implementation project(":spring-geode-starter") 13 | 14 | implementation "org.assertj:assertj-core" 15 | implementation "org.projectlombok:lombok" 16 | implementation "org.springframework.boot:spring-boot-starter-web" 17 | 18 | runtimeOnly "org.springframework.boot:spring-boot-starter-jetty" 19 | 20 | testImplementation project (":spring-geode-starter-test") 21 | 22 | testImplementation "org.springframework.boot:spring-boot-starter-test" 23 | 24 | } 25 | 26 | bootJar { 27 | mainClass = 'example.app.caching.near.BootGeodeNearCachingClientCacheApplication' 28 | } 29 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'spring-boot-data-geode-build' 2 | 3 | FileTree buildFiles = fileTree(rootDir) { 4 | include '**/*.gradle' 5 | exclude '/build.gradle', 'settings.gradle', '**/gradle', 'buildSrc', '.*' 6 | } 7 | 8 | String rootDirPath = rootDir.absolutePath + File.separator 9 | 10 | buildFiles.each { File buildFile -> 11 | 12 | boolean isDefaultName = 'build.gradle'.equals(buildFile.name) 13 | 14 | if (isDefaultName) { 15 | 16 | String buildFilePath = buildFile.parentFile.absolutePath 17 | String projectPath = buildFilePath.replace(rootDirPath, '').replaceAll(File.separator, ':') 18 | 19 | include projectPath 20 | } 21 | else { 22 | 23 | String projectName = buildFile.name.replace('.gradle', ''); 24 | String projectPath = ':' + projectName; 25 | 26 | include projectPath 27 | 28 | def project = findProject("${projectPath}") 29 | 30 | project.name = projectName 31 | project.projectDir = buildFile.parentFile 32 | project.buildFileName = buildFile.name 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/spring-geode-samples-boot-actuator.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Spring Geode Sample demonstrating the use of Spring Boot Actuator with Apache Geode." 8 | 9 | dependencies { 10 | 11 | implementation project(":spring-geode-starter-actuator") 12 | implementation project(":spring-geode-starter-test") 13 | 14 | implementation "org.springframework.boot:spring-boot-starter-web" 15 | 16 | } 17 | 18 | task runServer(type: JavaExec) { 19 | classpath = sourceSets.main.runtimeClasspath 20 | jvmArgs '-Dspring.profiles.active=server' 21 | main = "example.app.temp.geode.server.BootGeodeServerApplication" 22 | } 23 | 24 | bootJar { 25 | mainClass = 'example.app.temp.geode.client.BootGeodeClientApplication' 26 | } 27 | 28 | bootRun { 29 | mainClass = 'example.app.temp.geode.client.BootGeodeClientApplication' 30 | args "--spring.profiles.active=client" 31 | } 32 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/example/app/books/NonBeanType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | package example.app.books; 18 | 19 | /** 20 | * The {@link NonBeanType} class is a non-Spring bean, placeholder reference type for classpath component scanning. 21 | * 22 | * @author John Blum 23 | * @since 1.0.0 24 | */ 25 | public class NonBeanType { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/data-example-purchaseorder.json: -------------------------------------------------------------------------------- 1 | { 2 | "@type": "example.app.pos.model.PurchaseOrder", 3 | "id": 1, 4 | "lineItems": [ 5 | { 6 | "@type": "example.app.pos.model.LineItem", 7 | "product": { 8 | "@type": "example.app.pos.model.Product", 9 | "name": "Apple iPad", 10 | "price": 1499.00, 11 | "category": "SHOPPING" 12 | }, 13 | "quantity": 2 14 | }, 15 | { 16 | "@type": "example.app.pos.model.LineItem", 17 | "product": { 18 | "@type": "example.app.pos.model.Product", 19 | "name": "Apple iPhone", 20 | "price": 1249.00, 21 | "category": "SHOPPING" 22 | }, 23 | "quantity": 3 24 | }, 25 | { 26 | "@type": "example.app.pos.model.LineItem", 27 | "product": { 28 | "@type": "example.app.pos.model.Product", 29 | "name": "Apple iPod", 30 | "price": 599.00, 31 | "category": "SHOPPING" 32 | }, 33 | "quantity" : 1 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | 14 | %highlight(%m) %n 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/data-example-doefamily.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "@type": "example.app.crm.model.Customer", 4 | "id": 1, 5 | "name": "Jon Doe" 6 | }, 7 | { 8 | "@type": "example.app.crm.model.Customer", 9 | "id": 2, 10 | "name": "Jane Doe" 11 | }, 12 | { 13 | "@type": "example.app.crm.model.Customer", 14 | "id": 3, 15 | "name": "Cookie Doe" 16 | }, 17 | { 18 | "@type": "example.app.crm.model.Customer", 19 | "id": 4, 20 | "name": "Fro Doe" 21 | }, 22 | { 23 | "@type": "example.app.crm.model.Customer", 24 | "id": 5, 25 | "name": "Ginger Doe" 26 | }, 27 | { 28 | "@type": "example.app.crm.model.Customer", 29 | "id": 6, 30 | "name": "Hoe Doe" 31 | }, 32 | { 33 | "@type": "example.app.crm.model.Customer", 34 | "id": 7, 35 | "name": "Joe Doe" 36 | }, 37 | { 38 | "@type": "example.app.crm.model.Customer", 39 | "id": 8, 40 | "name": "Pie Doe" 41 | }, 42 | { 43 | "@type": "example.app.crm.model.Customer", 44 | "id": 9, 45 | "name": "Sour Doe" 46 | } 47 | ] 48 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/spring-geode-samples-caching-inline.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Spring Geode Sample demonstrating Spring's Cache Abstraction using Apache Geode as the caching provider for Inline Caching." 8 | 9 | dependencies { 10 | 11 | implementation(project(":spring-geode-starter")) { 12 | exclude group: "com.sun.xml.bind", module: "jaxb-impl" 13 | } 14 | 15 | implementation "org.projectlombok:lombok" 16 | implementation "org.springframework.boot:spring-boot-starter-data-jpa" 17 | implementation "org.springframework.boot:spring-boot-starter-web" 18 | 19 | runtimeOnly "org.hsqldb:hsqldb" 20 | 21 | testImplementation project(":spring-geode-starter-test") 22 | 23 | testImplementation "org.springframework.boot:spring-boot-starter-test" 24 | 25 | } 26 | 27 | bootJar { 28 | mainClass = 'example.app.caching.inline.BootGeodeInlineCachingApplication' 29 | } 30 | 31 | bootRun { 32 | mainClass = 'example.app.caching.inline.BootGeodeInlineCachingApplication' 33 | } 34 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/spring-geode-smoke-tests-multi-store.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-test' 6 | 7 | description = "Smoke Tests to assert that a multi-store Spring Data project using JPA for database access and Apache Geode for caching works as expected." 8 | 9 | dependencies { 10 | 11 | implementation(project(":spring-geode-starter")) { 12 | exclude group: "com.sun.xml.bind", module: "jaxb-impl" 13 | } 14 | 15 | implementation "org.assertj:assertj-core" 16 | implementation "org.projectlombok:lombok" 17 | implementation "jakarta.persistence:jakarta.persistence-api" 18 | implementation "org.springframework.boot:spring-boot-starter-data-jpa" 19 | implementation "org.springframework.boot:spring-boot-starter-data-mongodb" 20 | 21 | runtimeOnly "org.hsqldb:hsqldb" 22 | 23 | testImplementation('org.springframework.boot:spring-boot-starter-test') { 24 | exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' 25 | } 26 | 27 | testImplementation project(':spring-geode-starter-test') 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/java/example/app/temp/event/BoilingTemperatureEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | package example.app.temp.event; 18 | 19 | import example.app.temp.model.TemperatureReading; 20 | 21 | @SuppressWarnings("unused") 22 | public class BoilingTemperatureEvent extends TemperatureEvent { 23 | 24 | public BoilingTemperatureEvent(Object source, TemperatureReading temperatureReading) { 25 | super(source, temperatureReading); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/java/example/app/temp/event/FreezingTemperatureEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | package example.app.temp.event; 18 | 19 | import example.app.temp.model.TemperatureReading; 20 | 21 | @SuppressWarnings("unused") 22 | public class FreezingTemperatureEvent extends TemperatureEvent { 23 | 24 | public FreezingTemperatureEvent(Object source, TemperatureReading temperatureReading) { 25 | super(source, temperatureReading); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/spring-geode-samples-boot-configuration.gradle: -------------------------------------------------------------------------------- 1 | import org.apache.tools.ant.filters.ReplaceTokens 2 | 3 | plugins { 4 | id "io.freefair.lombok" version "6.5.1" 5 | } 6 | 7 | apply plugin: 'io.spring.convention.spring-sample-boot' 8 | 9 | description = "Spring Geode Sample demonstrating the use of Spring Boot Auto-Configuration for Apache Geode." 10 | 11 | dependencies { 12 | 13 | implementation project(":spring-geode-starter") 14 | implementation project(":spring-geode-starter-test") 15 | 16 | implementation "org.assertj:assertj-core" 17 | implementation "org.projectlombok:lombok" 18 | 19 | testCompileOnly "com.google.code.findbugs:jsr305:$findbugsVersion" 20 | 21 | testImplementation "org.springframework.boot:spring-boot-starter-test" 22 | 23 | } 24 | 25 | processResources { 26 | eachFile { file -> 27 | if (!file.name.endsWith(".jks")) { 28 | file.filter ReplaceTokens, tokens: [ 29 | 'project-dir' : rootProject.projectDir.path, 30 | 'project-version' : project.version, 31 | 'samples-dir' : rootProject.projectDir.path + '/spring-geode-samples' 32 | ] 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/spring-geode-samples-getting-started.gradle: -------------------------------------------------------------------------------- 1 | import org.apache.tools.ant.filters.ReplaceTokens 2 | 3 | plugins { 4 | id "io.freefair.lombok" version "6.5.1" 5 | } 6 | 7 | apply plugin: 'io.spring.convention.spring-sample-boot' 8 | 9 | description = "Spring Geode Sample for Getting Started with Spring Boot for Apache Geode quickly, easily and reliably." 10 | 11 | dependencies { 12 | 13 | implementation project(":spring-geode-starter") 14 | 15 | implementation "org.assertj:assertj-core" 16 | implementation "org.projectlombok:lombok" 17 | implementation "org.springframework.boot:spring-boot-starter-web" 18 | 19 | testImplementation project(":spring-geode-starter-test") 20 | 21 | testImplementation "org.springframework.boot:spring-boot-starter-test" 22 | 23 | } 24 | 25 | processResources { 26 | eachFile { file -> 27 | if (!file.name.endsWith(".jks")) { 28 | file.filter ReplaceTokens, tokens: [ 29 | 'project-dir' : rootProject.projectDir.path, 30 | 'project-version' : project.version, 31 | 'samples-dir' : rootProject.projectDir.path + '/spring-geode-samples' 32 | ] 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/http-session/src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | HTTP Session Details 5 | 6 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
HttpSession TypeHttpSession CountHttpServletRequest Count
valuevaluevalue
30 |
31 | 32 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/java/example/app/crm/config/EmbeddedTestCassandraConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.config; 17 | 18 | /** 19 | * {@link TestCassandraConfiguration} class for bootstrapping, configuring and starting an Apache Cassandra database 20 | * server instance in an embedded capacity. 21 | * 22 | * @author John Blum 23 | * @see example.app.crm.config.TestCassandraConfiguration 24 | * @since 1.7.6 25 | */ 26 | public class EmbeddedTestCassandraConfiguration extends TestCassandraConfiguration { 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/vcap-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "p-cloudcache": [{ 3 | "credentials": { 4 | "distributed_system_id": "0", 5 | "locators": [ "localhost[55221]" ], 6 | "urls": { "pulse": "https://cloudcache-9defb33a-6b8b-49f0-bd35-cf6f7b2f222f.sys.tunis.cf-app.com/pulse" }, 7 | "users": [ 8 | { 9 | "password": "vaxAi8UuJkBp9csgDvJ5YA", 10 | "roles": ["cluster_operator"], 11 | "username": "cluster_operator_CQhqoDaEIT1gobjLryfpBg" 12 | }, 13 | { 14 | "password": "egSyyyaM5Q5yUMOVZD6pXA", 15 | "roles": ["developer"], 16 | "username": "developer_krCFKddILf8EfWs0laUQ" 17 | } 18 | ], 19 | "wan": { 20 | "sender_credentials": { 21 | "active": { 22 | "password": "tYHFwByaMN675FuBWDZQiQ", 23 | "username": "gateway_sender_UJ0YO1pJBEnQP03yt7sVXQ" 24 | } 25 | } 26 | } 27 | }, 28 | "syslog_drain_url": null, 29 | "volume_mounts": [], 30 | "label": "p-cloudcache", 31 | "provider": null, 32 | "plan": "small", 33 | "name": "jblum-pcc", 34 | "tags": [ "gemfire", "cloudcache", "database", "pivotal" ] 35 | }] 36 | } 37 | -------------------------------------------------------------------------------- /spring-geode-project/apache-geode-extensions/src/main/java/org/springframework/geode/util/function/TupleConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.util.function; 17 | 18 | import java.util.function.Consumer; 19 | 20 | /** 21 | * {@link Consumer} implementation accepting a tuple of {@link InvocationArguments arguments}. 22 | * 23 | * @author John Blum 24 | * @see java.util.function.Consumer 25 | * @see org.springframework.geode.util.function.InvocationArguments 26 | * @since 1.3.0 27 | */ 28 | @SuppressWarnings("unused") 29 | public interface TupleConsumer extends Consumer { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | %d %5p %40.40c:%4L - %m%n 9 | 10 | 11 | 12 | 13 | testFile.log 14 | true 15 | true 16 | 17 | %d [%thread] %logger{35} %-5level -- %msg%n 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /CONTRIBUTING.adoc: -------------------------------------------------------------------------------- 1 | = Contributing to Spring Boot for Apache Geode 2 | 3 | Spring Boot for Apache Geode (SBDG) is released under the Apache 2.0 license. If you would like to contribute something, 4 | or simply want to hack on the code this document should help you get started. 5 | 6 | == Sign the Contributor License Agreement 7 | 8 | If you have not previously done so, please fill out and 9 | submit the https://cla.pivotal.io/sign/spring[Contributor License Agreement]. 10 | 11 | == Code of Conduct 12 | 13 | Please see our https://github.com/spring-projects/.github/blob/master/CODE_OF_CONDUCT.md[code of conduct] 14 | 15 | == Reporting Security Vulnerabilities 16 | 17 | Please see our https://github.com/spring-projects/spring-boot-data-geode/security/policy[Security policy]. 18 | 19 | == Using GitHub issues 20 | 21 | We use GitHub issues to track bugs and enhancements. If you have a general usage question 22 | please ask on https://stackoverflow.com[Stack Overflow]. The Spring Boot team and the 23 | broader community monitor the https://stackoverflow.com/tags/spring-session[`spring-session`] 24 | tag. 25 | 26 | If you are reporting a bug, please help to speed up problem diagnosis by providing as much 27 | information as possible. Ideally, that would include a small sample project that 28 | reproduces the problem. 29 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/java/example/app/temp/event/TemperatureEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.temp.event; 17 | 18 | import lombok.Getter; 19 | 20 | import org.springframework.context.ApplicationEvent; 21 | 22 | import example.app.temp.model.TemperatureReading; 23 | 24 | // tag::class[] 25 | public class TemperatureEvent extends ApplicationEvent { 26 | 27 | @Getter 28 | private final TemperatureReading temperatureReading; 29 | 30 | public TemperatureEvent(Object source, TemperatureReading temperatureReading) { 31 | 32 | super(source); 33 | 34 | this.temperatureReading = temperatureReading; 35 | } 36 | } 37 | // end::class[] 38 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/function-execution-on-region/src/main/java/example/app/petclinic/repo/PetRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.petclinic.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | 20 | import example.app.petclinic.model.Pet; 21 | 22 | /** 23 | * Data Access Object (DAO) containing basic CRUD and simple Query data access operations on {@link Pet} objects. 24 | * 25 | * @author John Blum 26 | * @see org.springframework.data.repository.CrudRepository 27 | * @see example.app.petclinic.model.Pet 28 | * @since 1.2.1 29 | */ 30 | public interface PetRepository extends CrudRepository { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/example/java/lang/IntValueComparisonUnitTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.java.lang; 17 | 18 | import static org.assertj.core.api.Assertions.assertThat; 19 | 20 | import org.junit.Test; 21 | 22 | /** 23 | * Integration Tests testing different comparisons of {@link Integer#TYPE} values. 24 | * 25 | * @author John Blum 26 | * @see java.lang.Integer 27 | * @see org.junit.Test 28 | * @since 2.3.0 29 | */ 30 | public class IntValueComparisonUnitTests { 31 | 32 | @Test 33 | public void zeroIsEqualToNegativeZero() { 34 | // Of course, this better be always 'true'! 35 | assertThat(0).isEqualTo(-0); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ci/build-local.txt: -------------------------------------------------------------------------------- 1 | # Notes on how to build and run the (Jenkins) CI build pipeline locally using Docker. 2 | 3 | 0. Change directory to SBDG project working directory (for example): 4 | 5 | $ cd ~/pivdev/spring-boot-data-geode 6 | 7 | 1. Run... 8 | 9 | One of... 10 | $ docker run -it -v $HOME:/root -v $HOME/Library/Containers/com.docker.docker/Data/docker.raw.sock:/var/run/docker.sock --mount type=bind,source="$(pwd)",target=/spring-boot-data-geode-github eclipse-temurin:17.0.6_10-jdk-focal /bin/bash 11 | $ docker run -it -v $HOME:/root -v $HOME/Library/Containers/com.docker.docker/Data/docker.sock:/var/run/docker.sock --mount type=bind,source="$(pwd)",target=/spring-boot-data-geode-github eclipse-temurin:17.0.6_10-jdk-focal /bin/bash 12 | $ docker run -it -v $HOME:/root -v /var/usr/docker.sock:/var/run/docker.sock --mount type=bind,source="$(pwd)",target=/spring-boot-data-geode-github eclipse-temurin:17.0.6_10-jdk-focal /bin/bash 13 | 14 | $ export GRADLE_OPTS="-Duser.name=root -Duser.home=/root" 15 | $ cd /spring-boot-data-geode-github 16 | (optional) 17 | $ export USER=root 18 | LINUX 19 | $ adduser root daemon 20 | MAC 21 | $ sudo dseditgroups -o edit -a root -t daemon 22 | 23 | 2. Change directory to... 24 | 25 | $ cd spring-boot-data-geode-github 26 | 27 | 3. Run the build... 28 | 29 | $ ./gradlew --no-daemon clean build 30 | $ ./gradlew clean build 31 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/java/org/springframework/geode/core/util/function/FunctionUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.core.util.function; 17 | 18 | import java.util.function.Consumer; 19 | import java.util.function.Function; 20 | 21 | /** 22 | * Utility methods for using Java {@link Function Functions}. 23 | * 24 | * @author John Blum 25 | * @see Function 26 | * @since 1.1.0 27 | */ 28 | @SuppressWarnings("unused") 29 | public abstract class FunctionUtils { 30 | 31 | public static Function toNullReturningFunction(Consumer consumer) { 32 | 33 | return object -> { 34 | consumer.accept(object); 35 | return null; 36 | }; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/java/org/springframework/geode/data/CacheDataImporterExporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.data; 17 | 18 | import org.apache.geode.cache.GemFireCache; 19 | 20 | /** 21 | * Convenient {@link Class#isInterface() interface} to extend when the implementation supports both 22 | * data import and export from/to a {@link GemFireCache}. 23 | * 24 | * @author John Blum 25 | * @see org.apache.geode.cache.GemFireCache 26 | * @see org.springframework.geode.data.CacheDataExporter 27 | * @see org.springframework.geode.data.CacheDataImporter 28 | * @since 1.3.0 29 | */ 30 | public interface CacheDataImporterExporter extends CacheDataExporter, CacheDataImporter { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-starters/spring-geode-starter-logging/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | geodeLoggingContext 5 | 6 | 7 | 8 | 9 | org/springframework/boot/logging/logback/defaults.xml 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/java/org/springframework/geode/data/json/converter/ObjectToJsonConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.data.json.converter; 17 | 18 | import org.springframework.core.convert.converter.Converter; 19 | 20 | /** 21 | * A Spring {@link Converter} interface extension defining a contract to convert 22 | * from an {@link Object} into a {@link String JSON}. 23 | * 24 | * @author John Blum 25 | * @see java.lang.FunctionalInterface 26 | * @see java.lang.Object 27 | * @see java.lang.String 28 | * @see org.springframework.core.convert.converter.Converter 29 | * @since 1.3.0 30 | */ 31 | @FunctionalInterface 32 | public interface ObjectToJsonConverter extends Converter { 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/multi-store/src/main/java/example/app/repo/ContactRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | 20 | import example.app.model.Contact; 21 | 22 | /** 23 | * Spring Data {@link CrudRepository} and Data Access Object (DAO) for performing basic CRUD and simple Query 24 | * data access operations on a {@link Contact}. 25 | * 26 | * @author John Blum 27 | * @see org.springframework.data.repository.CrudRepository 28 | * @see example.app.model.Contact 29 | * @since 1.2.0 30 | */ 31 | //public interface ContactRepository extends JpaRepository { 32 | public interface ContactRepository extends CrudRepository { 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/java/example/app/crm/repo/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | 20 | import example.app.crm.model.Customer; 21 | 22 | /** 23 | * Data Access Object (DAO) used to perform basic CRUD and simple query operations on {@link Customer} objects 24 | * store in Apache Geode 25 | * 26 | * @author John Blum 27 | * @see java.lang.Long 28 | * @see org.springframework.data.repository.CrudRepository 29 | * @see example.app.crm.model.Customer 30 | * @since 1.0.0 31 | */ 32 | // tag::class[] 33 | public interface CustomerRepository extends CrudRepository { 34 | 35 | Customer findByNameLike(String name); 36 | 37 | } 38 | // end::class[] 39 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/java/example/app/crm/repo/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | 20 | import example.app.crm.model.Customer; 21 | 22 | /** 23 | * Spring Data {@link CrudRepository} or Data Access Object (DAO) implementing basic CRUD and simple Query data access 24 | * operations on {@link Customer} objects. 25 | * 26 | * @author John Blum 27 | * @see org.springframework.data.repository.CrudRepository 28 | * @see example.app.crm.model.Customer 29 | * @since 1.2.0 30 | */ 31 | // tag::class[] 32 | public interface CustomerRepository extends CrudRepository { 33 | 34 | Customer findByNameLike(String name); 35 | 36 | } 37 | // end::class[] 38 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/function-execution-on-region/src/main/java/example/app/petclinic/function/PetServiceFunctionExecutions.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.petclinic.function; 17 | 18 | import org.springframework.data.gemfire.function.annotation.FunctionId; 19 | import org.springframework.data.gemfire.function.annotation.OnRegion; 20 | 21 | import example.app.petclinic.model.Pet; 22 | 23 | /** 24 | * Function interface declaring all {@link Pet} services administered by the Pet Clinic. 25 | * 26 | * @author John Blum 27 | * @see example.app.petclinic.model.Pet 28 | * @since 1.2.1 29 | */ 30 | @OnRegion(region = "Pets") 31 | public interface PetServiceFunctionExecutions { 32 | 33 | @FunctionId(("AdministerPetVaccinations")) 34 | void administerPetVaccinations(); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/java/example/app/crm/repo/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | 20 | import example.app.crm.model.Customer; 21 | 22 | /** 23 | * {@link CustomerRepository} is a Spring Data {@link CrudRepository} and Data Access Object (DAO) defining basic CRUD 24 | * and simple query data access operations on {@link Customer} objects. 25 | * 26 | * @author John Blum 27 | * @see java.lang.Long 28 | * @see org.springframework.data.repository.CrudRepository 29 | * @see example.app.crm.model.Customer 30 | * @since 1.1.0 31 | */ 32 | public interface CustomerRepository extends CrudRepository { 33 | 34 | Customer findByName(String name); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline-async/spring-geode-samples-caching-inline-async.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-sample-boot' 6 | 7 | description = "Spring Geode Sample demonstrating Spring's Cache Abstraction using Apache Geode as the caching provider for Asynchronous Inline Caching." 8 | 9 | dependencies { 10 | 11 | compileOnly "com.google.code.findbugs:jsr305:$findbugsVersion" 12 | 13 | implementation(project(":spring-geode-starter")) { 14 | exclude group: "com.sun.xml.bind", module: "jaxb-impl" 15 | } 16 | 17 | implementation "org.projectlombok:lombok" 18 | implementation "jakarta.persistence:jakarta.persistence-api" 19 | implementation "org.springframework.boot:spring-boot-starter-data-jpa" 20 | implementation "org.springframework.boot:spring-boot-starter-web" 21 | 22 | runtimeOnly "org.hsqldb:hsqldb" 23 | 24 | testImplementation project(":spring-geode-starter-test") 25 | 26 | testImplementation "org.awaitility:awaitility:$awaitilityVersion" 27 | testImplementation "org.springframework.boot:spring-boot-starter-test" 28 | 29 | } 30 | 31 | bootJar { 32 | mainClass = 'example.app.caching.inline.async.client.BootGeodeAsyncInlineCachingClientApplication' 33 | } 34 | 35 | bootRun { 36 | mainClass = 'example.app.caching.inline.async.client.BootGeodeAsyncInlineCachingClientApplication' 37 | args "--spring.profiles.active=peer-cache,queue-batch-size,server" 38 | } 39 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/locator-application/src/test/resources/test.properties: -------------------------------------------------------------------------------- 1 | # Test Properties used to configure Spring Boot and Apache Geode during test execution. 2 | 3 | # Setting the following Apache Geode "internal" System property ("gemfire.Buffer.useHeapBuffers") because Apache Geode 4 | # is not fully Java 17 compatible and leads to the following error: 5 | # Caused by: java.lang.reflect.InaccessibleObjectException: 6 | # Unable to make public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: 7 | # module java.base does not "opens java.nio" to unnamed module @2e0fa5d3 8 | # at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) 9 | # at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) 10 | # at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) 11 | # at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) 12 | # at org.apache.geode.internal.net.BufferPool.getPoolableBuffer(BufferPool.java:343) 13 | # ... 69 more 14 | 15 | # The gemfire.BufferPool.useHeapBuffers property should technically be true, but due to an Apache Geode bug, 16 | # it is ignore entirely due to the first condition (#sigh); see https://issues.apache.org/jira/browse/GEODE-10035. 17 | #system.gemfire.BufferPool.useHeapBuffers=true 18 | 19 | # Use this (GemFire) System property instead (effects the "first condition"). 20 | system.p2p.nodirectBuffers=true 21 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/mock-session-caching/src/main/java/org/springframework/security/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.security; 17 | 18 | /** 19 | * {@link RuntimeException} implementation indicating a Security Authentication error. 20 | * 21 | * @author John Blum 22 | * @see java.lang.Runtime 23 | * @since 1.4.0 24 | */ 25 | @SuppressWarnings("unused") 26 | public class AuthenticationException extends RuntimeException { 27 | 28 | public AuthenticationException() { } 29 | 30 | public AuthenticationException(String message) { 31 | super(message); 32 | } 33 | 34 | public AuthenticationException(Throwable cause) { 35 | super(cause); 36 | } 37 | 38 | public AuthenticationException(String message, Throwable cause) { 39 | super(message, cause); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/src/main/java/example/app/caching/inline/model/Operator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.inline.model; 17 | 18 | /** 19 | * An {@link Class enumerated type} enumerating various mathematical operators or functions. 20 | * 21 | * @author John Blum 22 | * @since 1.1.0 23 | */ 24 | // tag::class[] 25 | public enum Operator { 26 | 27 | FACTORIAL("factorial(%1$d) = %2$d"), 28 | SQUARE_ROOT("sqrt(%1$d) = %2$d"); 29 | 30 | private final String representation; 31 | 32 | Operator(String definition) { 33 | this.representation = definition; 34 | } 35 | 36 | @Override 37 | public String toString() { 38 | return this.representation; 39 | } 40 | 41 | public String toString(Object... args) { 42 | return String.format(toString(), args); 43 | } 44 | } 45 | // end::class[] 46 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.geode.boot.autoconfigure.CacheNameAutoConfiguration 2 | org.springframework.geode.boot.autoconfigure.ClientCacheAutoConfiguration 3 | org.springframework.geode.boot.autoconfigure.CachingProviderAutoConfiguration 4 | org.springframework.geode.boot.autoconfigure.ClientSecurityAutoConfiguration 5 | org.springframework.geode.boot.autoconfigure.ContinuousQueryAutoConfiguration 6 | org.springframework.geode.boot.autoconfigure.DataImportExportAutoConfiguration 7 | org.springframework.geode.boot.autoconfigure.EnvironmentSourcedGemFirePropertiesAutoConfiguration 8 | org.springframework.geode.boot.autoconfigure.FunctionExecutionAutoConfiguration 9 | org.springframework.geode.boot.autoconfigure.GemFirePropertiesAutoConfiguration 10 | org.springframework.geode.boot.autoconfigure.LoggingAutoConfiguration 11 | org.springframework.geode.boot.autoconfigure.PdxSerializationAutoConfiguration 12 | org.springframework.geode.boot.autoconfigure.PeerSecurityAutoConfiguration 13 | org.springframework.geode.boot.autoconfigure.RegionTemplateAutoConfiguration 14 | org.springframework.geode.boot.autoconfigure.RepositoriesAutoConfiguration 15 | org.springframework.geode.boot.autoconfigure.SpringSessionAutoConfiguration 16 | org.springframework.geode.boot.autoconfigure.SpringSessionPropertiesAutoConfiguration 17 | org.springframework.geode.boot.autoconfigure.SslAutoConfiguration 18 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline-async/src/main/java/example/app/caching/inline/async/client/repo/GolferRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.inline.async.client.repo; 17 | 18 | import org.springframework.data.jpa.repository.JpaRepository; 19 | 20 | import example.app.caching.inline.async.client.model.Golfer; 21 | 22 | /** 23 | * Spring Data {@link JpaRepository} and Data Access Object (DAO) used to perform basic CRUD and simple SQL query 24 | * data access operations on {@link Golfer Golfers} stored in an RDBMS (database) with JPA (Hibernate). 25 | * 26 | * @author John Blum 27 | * @see org.springframework.data.jpa.repository.JpaRepository 28 | * @see example.app.caching.inline.async.client.model.Golfer 29 | * @since 1.4.0 30 | */ 31 | public interface GolferRepository extends JpaRepository { 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/test/java/example/app/crm/service/CustomerService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.service; 17 | 18 | import org.springframework.cache.annotation.Cacheable; 19 | import org.springframework.stereotype.Service; 20 | 21 | import example.app.crm.model.Customer; 22 | 23 | /** 24 | * {@link CustomerService} is a Spring {@link Service @Service} class servicing {@link Customer Customers}. 25 | * 26 | * @author John Blum 27 | * @see org.springframework.cache.annotation.Cacheable 28 | * @see org.springframework.stereotype.Service 29 | * @see example.app.crm.model.Customer 30 | * @since 1.2.0 31 | */ 32 | @Service 33 | public class CustomerService { 34 | 35 | @Cacheable("CustomersByName") 36 | public Customer findByName(String name) { 37 | return Customer.newCustomer(System.currentTimeMillis(), name); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/java/org/springframework/geode/cache/support/CacheLoaderSupport.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.cache.support; 17 | 18 | import org.apache.geode.cache.CacheLoader; 19 | 20 | /** 21 | * The {@link CacheLoaderSupport} interface is an extension of {@link CacheLoader} and a {@link FunctionalInterface} 22 | * useful in Lambda expressions. 23 | * 24 | * @author John Blum 25 | * @see java.lang.FunctionalInterface 26 | * @see org.apache.geode.cache.CacheLoader 27 | * @since 1.0.0 28 | */ 29 | @FunctionalInterface 30 | public interface CacheLoaderSupport extends CacheLoader { 31 | 32 | /** 33 | * Closes any resources opened and used by this {@link CacheLoader}. 34 | * 35 | * @see org.apache.geode.cache.CacheLoader#close() 36 | */ 37 | @Override 38 | default void close() {} 39 | 40 | } 41 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/java/org/springframework/geode/docs/example/app/docker/repo/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.docs.example.app.docker.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | import org.springframework.geode.docs.example.app.docker.model.Customer; 20 | 21 | /** 22 | * A Spring Data {@link CrudRepository} and Data Access Object (DAO) used to perform basic CRUD and simple Query 23 | * data access operations on {@link Customer Customers}. 24 | * 25 | * @author John Blum 26 | * @see org.springframework.data.repository.CrudRepository 27 | * @see org.springframework.geode.docs.example.app.docker.model.Customer 28 | * @since 1.3.0 29 | */ 30 | public interface CustomerRepository extends CrudRepository { 31 | 32 | Customer findByNameLike(String name); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 4.0.0 7 | 8 | 9 | org.springframework.geode 10 | spring-geode-samples-parent 11 | 2.0.0-SNAPSHOT 12 | ../../pom.xml 13 | 14 | 15 | spring-geode-samples-getting-started-maven 16 | 17 | Getting Started 18 | Getting Started with Spring Boot for Apache Geode (SBDG) using Maven. 19 | 20 | 21 | 22 | 23 | org.springframework.boot 24 | spring-boot-starter-web 25 | 26 | 27 | 28 | org.springframework.geode 29 | spring-geode-starter 30 | 31 | 32 | 33 | org.springframework.geode 34 | spring-geode-starter-test 35 | test 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | org.springframework.boot 44 | spring-boot-maven-plugin 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-vcap-hybrid.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for testing Apache Geode security in a Pivotal CloudFoundry (PCF) context 2 | # without a Pivotal Cloud Cache (PCC) Service Instance. 3 | 4 | VCAP_APPLICATION={"application_id":"c50bb519-2739-4fa3-8750-02c051e35735","application_name":"boot-test","application_uris":["boot-example.apps.skullbox.cf-app.com"],"application_version":"d34bbbbd-c35c-4057-baf2-6300cb9aa2aa","cf_api":"https://api.sys.skullbox.cf-app.com","host":"0.0.0.0","instance_id":"babcf301-3b34-4dcf-720e-ccfc","instance_index":0,"limits":{"disk":1024,"fds":16384,"mem":1024},"name":"boot-example","port":8080,"space_id":"271cf083-7855-4b5e-be19-65342d099099","space_name":"jblum-space","uris":["boot-example.apps.skullbox.cf-app.com"],"version":"d34bbbbd-c35c-4057-baf2-6300cb9aa2aa"} 5 | VCAP_SERVICES={"p-cloudcache":[{ "credentials": { "distributed_system_id": "0", "locators": [ "localhost[54441]" ], "urls": { "pulse": "https://cloudcache-9defb33a-6b8b-49f0-bd35-cf6f7b2f222f.sys.skullbox.cf-app.com/pulse" }, "users": [ { "password": "s3cr3t", "roles": [ "cluster_operator" ], "username": "phantom" }, { "password": "egSyyyaM5Q5yUMOVZD6pXA", "roles": [ "developer" ], "username": "developer_krCFKddILf8EfWs0laUQ" } ], "wan": { "sender_credentials": { "active": { "password": "tYHFwByaMN675FuBWDZQiQ", "username": "gateway_sender_UJ0YO1pJBEnQP03yt7sVXQ" } } } }, "syslog_drain_url": null, "volume_mounts": [ ], "label": "p-cloudcache", "provider": null, "plan": "small", "name": "jblum-pcc", "tags": [ "database", "pivotal" ] }]} 6 | -------------------------------------------------------------------------------- /spring-geode-samples/src/main/templates/intro/getting-started/pom.xml.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 4.0.0 7 | 8 | 9 | org.springframework.geode 10 | spring-geode-samples-parent 11 | ${version} 12 | ../../pom.xml 13 | 14 | 15 | spring-geode-samples-getting-started-maven 16 | 17 | Getting Started 18 | Getting Started with Spring Boot for Apache Geode (SBDG) using Maven. 19 | 20 | 21 | 22 | 23 | org.springframework.boot 24 | spring-boot-starter-web 25 | 26 | 27 | 28 | org.springframework.geode 29 | spring-geode-starter 30 | 31 | 32 | 33 | org.springframework.geode 34 | spring-geode-starter-test 35 | test 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | org.springframework.boot 44 | spring-boot-maven-plugin 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/example/java/net/UrlRevealed.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | package example.java.net; 18 | 19 | import java.net.URL; 20 | 21 | import org.springframework.core.io.ClassPathResource; 22 | 23 | /** 24 | * The {@link UrlRevealed} class is a disclosure of Java's {@link URL} class. 25 | * 26 | * @author John Blum 27 | * @see java.net.URL 28 | * @since 1.0.0 29 | */ 30 | public class UrlRevealed { 31 | 32 | public static void main(String[] args) throws Exception { 33 | 34 | URL url = new URL("jar:file:///www.foo.com/bar/jar.jar!/baz/entry.txt"); 35 | 36 | System.out.printf("URL [%s] {%n \tfile [%s],%n \tpath [%s],%n \tport [%s],%n \tprotocol [%s],%n \tquery [%s]%n}%n%n", 37 | url, url.getFile(), url.getPath(), url.getPort(), url.getProtocol(), url.getQuery()); 38 | 39 | System.out.printf("URI [%s]%n", new ClassPathResource("trusted.keystore").getURL().toURI()); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/resources/application-vcap-cloud.properties: -------------------------------------------------------------------------------- 1 | # Spring Boot application.properties for testing Apache Geode Security in a Pivotal CloudFoundry (PCF) context. 2 | 3 | VCAP_APPLICATION={"application_id":"c50bb519-2739-4fa3-8750-02c051e35735","application_name":"boot-test","application_uris":["boot-example.apps.tunis.cf-app.com"],"application_version":"d34bbbbd-c35c-4057-baf2-6300cb9aa2aa","cf_api":"https://api.sys.tunis.cf-app.com","host":"0.0.0.0","instance_id":"babcf301-3b34-4dcf-720e-ccfc","instance_index":0,"limits":{"disk":1024,"fds":16384,"mem":1024},"name":"boot-example","port":8080,"space_id":"271cf083-7855-4b5e-be19-65342d099099","space_name":"jblum-space","uris":["boot-example.apps.tunis.cf-app.com"],"version":"d34bbbbd-c35c-4057-baf2-6300cb9aa2aa"} 4 | VCAP_SERVICES={"p-cloudcache":[{ "credentials": { "distributed_system_id": "0", "locators": [ "localhost[%LOCATOR_PORT%]" ], "urls": { "pulse": "https://cloudcache-9defb33a-6b8b-49f0-bd35-cf6f7b2f222f.sys.tunis.cf-app.com/pulse" }, "users": [ { "password": "vaxAi8UuJkBp9csgDvJ5YA", "roles": [ "cluster_operator" ], "username": "cluster_operator_CQhqoDaEIT1gobjLryfpBg" }, { "password": "egSyyyaM5Q5yUMOVZD6pXA", "roles": [ "developer" ], "username": "developer_krCFKddILf8EfWs0laUQ" } ], "wan": { "sender_credentials": { "active": { "password": "tYHFwByaMN675FuBWDZQiQ", "username": "gateway_sender_UJ0YO1pJBEnQP03yt7sVXQ" } } } }, "syslog_drain_url": null, "volume_mounts": [ ], "label": "p-cloudcache", "provider": null, "plan": "small", "name": "jblum-pcc", "tags": [ "gemfire", "cloudcache", "database", "pivotal" ] }]} 5 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/src/main/java/example/app/security/client/model/Customer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.security.client.model; 17 | 18 | import lombok.EqualsAndHashCode; 19 | import lombok.Getter; 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.ToString; 23 | import org.springframework.data.annotation.Id; 24 | import org.springframework.data.gemfire.mapping.annotation.Region; 25 | 26 | /** 27 | * An Abstract Data Type (ADT) modeling a {@literal Customer}. 28 | * 29 | * @author John Blum 30 | * @see Id 31 | * @see Region 32 | * @since 1.0.0 33 | */ 34 | // tag::class[] 35 | @Region("Customers") 36 | @EqualsAndHashCode 37 | @ToString(of = "name") 38 | @RequiredArgsConstructor(staticName = "newCustomer") 39 | public class Customer { 40 | 41 | @Id @NonNull @Getter 42 | private Long id; 43 | 44 | @NonNull @Getter 45 | private String name; 46 | 47 | } 48 | // end::class[] 49 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/java/example/app/crm/model/Customer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | import lombok.ToString; 22 | 23 | import org.springframework.data.annotation.Id; 24 | import org.springframework.data.gemfire.mapping.annotation.Region; 25 | 26 | /** 27 | * Abstract Data Type (ADT) modeling a {@link Customer}. 28 | * 29 | * @author John Blum 30 | * @see org.springframework.data.annotation.Id 31 | * @see org.springframework.data.gemfire.mapping.annotation.Region 32 | * @since 1.2.0 33 | */ 34 | // tag::class[] 35 | @Region("Customers") 36 | @Data 37 | @ToString(of = "name") 38 | @NoArgsConstructor 39 | @AllArgsConstructor(staticName = "newCustomer") 40 | public class Customer { 41 | 42 | @Id 43 | private Long id; 44 | 45 | private String name; 46 | 47 | } 48 | // end::class[] 49 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/repository/repo/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.boot.autoconfigure.repository.repo; 17 | 18 | import org.springframework.data.repository.CrudRepository; 19 | import org.springframework.geode.boot.autoconfigure.repository.model.Customer; 20 | 21 | /** 22 | * The {@link CustomerRepository} interface defines a Spring Data {@link CrudRepository} for performing basic CRUD 23 | * and simple query data access operations on {@link Customer} objects stored in Apache Geode. 24 | * 25 | * @author John Blum 26 | * @see org.springframework.data.repository.CrudRepository 27 | * @see org.springframework.geode.boot.autoconfigure.repository.model.Customer 28 | * @since 1.0.0 29 | */ 30 | public interface CustomerRepository extends CrudRepository { 31 | 32 | Customer findByName(String name); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-geode-project/apache-geode-extensions/src/main/java/org/springframework/geode/pdx/PdxFieldNotWritableException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.pdx; 17 | 18 | import org.apache.geode.pdx.PdxInstance; 19 | 20 | /** 21 | * A {@link RuntimeException} thrown to indicate that a PDX field of a {@link PdxInstance} is not writable. 22 | * 23 | * @author John Blum 24 | * @see java.lang.RuntimeException 25 | * @see org.apache.geode.pdx.PdxInstance 26 | * @since 1.3.0 27 | */ 28 | @SuppressWarnings("unused") 29 | public class PdxFieldNotWritableException extends RuntimeException { 30 | 31 | public PdxFieldNotWritableException() { } 32 | 33 | public PdxFieldNotWritableException(String message) { 34 | super(message); 35 | } 36 | 37 | public PdxFieldNotWritableException(Throwable cause) { 38 | super(cause); 39 | } 40 | 41 | public PdxFieldNotWritableException(String message, Throwable cause) { 42 | super(message, cause); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/actuator/src/main/java/example/app/temp/repo/TemperatureReadingRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.temp.repo; 17 | 18 | import java.util.List; 19 | 20 | import org.springframework.data.gemfire.repository.Query; 21 | import org.springframework.data.repository.CrudRepository; 22 | 23 | import example.app.temp.model.TemperatureReading; 24 | 25 | @SuppressWarnings("unused") 26 | // tag::class[] 27 | public interface TemperatureReadingRepository extends CrudRepository { 28 | 29 | List findByTimestampGreaterThanAndTimestampLessThan( 30 | Long timestampLowerBound, Long timestampUpperBound); 31 | 32 | @Query("SELECT count(*) FROM /TemperatureReadings WHERE temperature >= 212") 33 | Integer countBoilingTemperatureReadings(); 34 | 35 | @Query("SELECT count(*) FROM /TemperatureReadings WHERE temperature <= 32") 36 | Integer countFreezingTemperatureReadings(); 37 | 38 | } 39 | // end::class[] 40 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/src/main/java/example/app/caching/inline/BootGeodeInlineCachingApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.inline; 17 | 18 | import org.springframework.boot.SpringApplication; 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | /** 22 | * Spring Boot Web application to demonstrate {@literal Inline Caching}. 23 | * 24 | * @author John Blum 25 | * @see org.springframework.boot.SpringApplication 26 | * @see org.springframework.boot.autoconfigure.SpringBootApplication 27 | * @see org.springframework.data.gemfire.config.annotation.ClientCacheApplication 28 | * @see org.springframework.data.gemfire.config.annotation.EnableCachingDefinedRegions 29 | * @since 1.1.0 30 | */ 31 | @SpringBootApplication 32 | public class BootGeodeInlineCachingApplication { 33 | 34 | public static void main(String[] args) { 35 | SpringApplication.run(BootGeodeInlineCachingApplication.class, args); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/look-aside/src/main/java/example/app/caching/lookaside/config/GeodeConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.lookaside.config; 17 | 18 | import org.springframework.context.annotation.Configuration; 19 | import org.springframework.data.gemfire.config.annotation.EnableCachingDefinedRegions; 20 | import org.springframework.geode.config.annotation.EnableClusterAware; 21 | 22 | /** 23 | * Spring {@link Configuration} class used to configure Apache Geode. 24 | * 25 | * @author John Blum 26 | * @see org.springframework.context.annotation.Configuration 27 | * @see org.springframework.data.gemfire.config.annotation.EnableCachingDefinedRegions 28 | * @see org.springframework.geode.config.annotation.EnableClusterAware 29 | * @since 1.0.0 30 | */ 31 | @SuppressWarnings("unused") 32 | // tag::class[] 33 | @Configuration 34 | @EnableClusterAware 35 | @EnableCachingDefinedRegions 36 | public class GeodeConfiguration { } 37 | // end::class[] 38 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/configuration/src/main/java/example/app/crm/model/Customer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.model; 17 | 18 | import lombok.EqualsAndHashCode; 19 | import lombok.Getter; 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.ToString; 23 | 24 | import org.springframework.data.annotation.Id; 25 | import org.springframework.data.gemfire.mapping.annotation.Region; 26 | 27 | /** 28 | * An Abstract Data Type (ADT) modeling a {@literal Customer}. 29 | * 30 | * @author John Blum 31 | * @see org.springframework.data.annotation.Id 32 | * @see org.springframework.data.gemfire.mapping.annotation.Region 33 | * @since 1.0.0 34 | */ 35 | // tag::class[] 36 | @Region("Customers") 37 | @EqualsAndHashCode 38 | @ToString(of = "name") 39 | @RequiredArgsConstructor(staticName = "newCustomer") 40 | public class Customer { 41 | 42 | @Id @NonNull @Getter 43 | private Long id; 44 | 45 | @NonNull @Getter 46 | private String name; 47 | 48 | } 49 | // end::class[] 50 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/spring-geode.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "io.freefair.lombok" version "6.5.1" 3 | } 4 | 5 | apply plugin: 'io.spring.convention.spring-module' 6 | 7 | description = "Spring Boot for Apache Geode" 8 | 9 | dependencies { 10 | 11 | api project(':apache-geode-extensions') 12 | 13 | api "org.springframework:spring-context-support" 14 | api "org.springframework:spring-jcl" 15 | api "org.springframework.boot:spring-boot-starter" 16 | api "org.springframework.data:spring-data-geode" 17 | 18 | compileOnly "com.google.code.findbugs:jsr305:$findbugsVersion" 19 | 20 | optional "org.springframework:spring-test" 21 | 22 | runtimeOnly "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" 23 | 24 | // See additional testImplementation dependencies declared in the testDependencies project extension 25 | // defined in the DependencySetPlugin. 26 | testImplementation("org.springframework.boot:spring-boot-starter-test") { 27 | exclude group: "org.skyscreamer", module: "jsonassert" 28 | } 29 | 30 | testImplementation "jakarta.persistence:jakarta.persistence-api" 31 | testImplementation "org.springframework.boot:spring-boot-starter-data-jpa" 32 | testImplementation "org.springframework.boot:spring-boot-starter-data-cassandra" 33 | testImplementation "org.springframework.data:spring-data-geode-test" 34 | testImplementation "org.testcontainers:testcontainers" 35 | testImplementation "org.testcontainers:cassandra" 36 | 37 | testRuntimeOnly "org.hsqldb:hsqldb" 38 | 39 | } 40 | 41 | def isJenkins = project.hasProperty('jenkins') 42 | ? project.getProperty('jenkins') 43 | : 'false'; 44 | 45 | test { 46 | systemProperties['jenkins'] = "$isJenkins" 47 | } 48 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/near/src/main/java/example/app/caching/near/client/model/Person.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.near.client.model; 17 | 18 | import lombok.EqualsAndHashCode; 19 | import lombok.Getter; 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.ToString; 23 | 24 | /** 25 | * {@link Person} models a person (human being). 26 | * 27 | * @author John Blum 28 | * @since 1.1.0 29 | */ 30 | // tag::class[] 31 | @Getter 32 | @EqualsAndHashCode(of = "name") 33 | @ToString(of = { "name", "email", "phoneNumber" }) 34 | @RequiredArgsConstructor(staticName = "newPerson") 35 | public class Person { 36 | 37 | @NonNull 38 | private String name; 39 | 40 | private String email; 41 | private String phoneNumber; 42 | 43 | public Person withEmail(String email) { 44 | this.email = email; 45 | return this; 46 | } 47 | 48 | public Person withPhoneNumber(String phoneNumber) { 49 | this.phoneNumber = phoneNumber; 50 | return this; 51 | } 52 | } 53 | // end::class[] 54 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/example/geode/cache/EchoCacheLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.geode.cache; 17 | 18 | import org.apache.geode.cache.CacheLoader; 19 | import org.apache.geode.cache.CacheLoaderException; 20 | import org.apache.geode.cache.LoaderHelper; 21 | 22 | import org.springframework.geode.cache.support.CacheLoaderSupport; 23 | 24 | /** 25 | * The {@link EchoCacheLoader} class is an implementation of {@link CacheLoader} that echos the key as the value. 26 | * 27 | * @author John Blum 28 | * @see org.apache.geode.cache.CacheLoader 29 | * @see org.springframework.geode.cache.support.CacheLoaderSupport 30 | * @since 1.0.0 31 | */ 32 | @SuppressWarnings("unused") 33 | public class EchoCacheLoader implements CacheLoaderSupport { 34 | 35 | public static final EchoCacheLoader INSTANCE = new EchoCacheLoader(); 36 | 37 | @Override 38 | public String load(LoaderHelper helper) throws CacheLoaderException { 39 | return helper.getKey(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/http-session/src/main/java/example/app/caching/session/http/BootGeodeHttpSessionCachingApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.session.http; 17 | 18 | import org.springframework.boot.SpringApplication; 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | import org.springframework.geode.config.annotation.EnableClusterAware; 21 | 22 | /** 23 | * {@link SpringBootApplication} to demo HTTP Session state caching. 24 | * 25 | * @author John Blum 26 | * @see org.springframework.boot.SpringApplication 27 | * @see org.springframework.boot.autoconfigure.SpringBootApplication 28 | * @see org.springframework.geode.config.annotation.EnableClusterAware 29 | * @since 1.1.0 30 | */ 31 | //tag::class[] 32 | @SpringBootApplication 33 | @EnableClusterAware 34 | public class BootGeodeHttpSessionCachingApplication { 35 | 36 | public static void main(String[] args) { 37 | SpringApplication.run(BootGeodeHttpSessionCachingApplication.class, args); 38 | } 39 | } 40 | //end::class[] 41 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/locator-application/src/main/java/example/app/geode/locator/ApacheGeodeLocatorApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.geode.locator; 17 | 18 | import org.apache.geode.distributed.Locator; 19 | import org.apache.geode.distributed.LocatorLauncher; 20 | 21 | /** 22 | * An Apache Geode {@link Locator} application configured and bootstrapped using the Apache Geode API. 23 | * 24 | * @author John Blum 25 | * @see org.apache.geode.distributed.Locator 26 | * @see org.apache.geode.distributed.LocatorLauncher 27 | * @since 1.3.2 28 | */ 29 | public class ApacheGeodeLocatorApplication { 30 | 31 | public static void main(String[] args) { 32 | 33 | LocatorLauncher locatorLauncher = new LocatorLauncher.Builder() 34 | .set("jmx-manager", "true") 35 | .set("jmx-manager-port", "0") 36 | .set("jmx-manager-start", "true") 37 | .setMemberName("ApacheGeodeBasedLocator") 38 | .setPort(0) 39 | .build(); 40 | 41 | locatorLauncher.start(); 42 | 43 | //locatorLauncher.waitOnLocator(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-docs/src/main/java/org/springframework/geode/docs/example/app/docker/model/Customer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.docs.example.app.docker.model; 17 | 18 | import org.springframework.data.annotation.Id; 19 | import org.springframework.data.gemfire.mapping.annotation.Region; 20 | 21 | import lombok.AllArgsConstructor; 22 | import lombok.EqualsAndHashCode; 23 | import lombok.Getter; 24 | import lombok.NoArgsConstructor; 25 | import lombok.NonNull; 26 | import lombok.ToString; 27 | 28 | /** 29 | * An Abstract Data Type (ADT) modeling a Customer. 30 | * 31 | * @author John Blum 32 | * @see org.springframework.data.annotation.Id 33 | * @see org.springframework.data.gemfire.mapping.annotation.Region 34 | * @since 1.3.0 35 | */ 36 | @Region("Customers") 37 | @Getter 38 | @EqualsAndHashCode 39 | @ToString(of = "name") 40 | @NoArgsConstructor 41 | @AllArgsConstructor(staticName = "newCustomer") 42 | public class Customer { 43 | 44 | @Id @NonNull 45 | private Long id; 46 | 47 | @NonNull 48 | private String name; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/quick-start/src/test/java/example/app/user/UserApplicationIntegrationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.user; 17 | 18 | import org.junit.jupiter.api.Test; 19 | 20 | import org.springframework.boot.test.context.SpringBootTest; 21 | import org.springframework.data.gemfire.tests.integration.IntegrationTestsSupport; 22 | import org.springframework.data.gemfire.tests.mock.annotation.EnableGemFireMockObjects; 23 | 24 | /** 25 | * Integration Tests for {@link UserApplication}. 26 | * 27 | * @author John Blum 28 | * @see org.junit.Test 29 | * @see org.springframework.boot.test.context.SpringBootTest 30 | * @see org.springframework.data.gemfire.tests.integration.IntegrationTestsSupport 31 | * @see org.springframework.data.gemfire.tests.mock.annotation.EnableGemFireMockObjects 32 | * @see example.app.user.UserApplication 33 | * @since 1.5.0 34 | */ 35 | @SpringBootTest 36 | @EnableGemFireMockObjects 37 | public class UserApplicationIntegrationTests extends IntegrationTestsSupport { 38 | 39 | @Test 40 | public void contextLoads() { } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/example/app/books/repo/BookRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | package example.app.books.repo; 18 | 19 | import java.util.List; 20 | 21 | import org.springframework.data.repository.CrudRepository; 22 | 23 | import example.app.books.model.Author; 24 | import example.app.books.model.Book; 25 | import example.app.books.model.ISBN; 26 | 27 | /** 28 | * The {@link BookRepository} interface is a Spring Data {@link CrudRepository} defining basic CRUD 29 | * and simple query data access operations on {@link Book} objects to the backing data store. 30 | * 31 | * @author John Blum 32 | * @see example.app.books.model.Book 33 | * @see example.app.books.model.ISBN 34 | * @see org.springframework.data.repository.CrudRepository 35 | * @since 1.0.0 36 | */ 37 | @SuppressWarnings("unused") 38 | public interface BookRepository extends CrudRepository { 39 | 40 | List findByAuthorOrderByAuthorNameAscTitleAsc(Author author); 41 | 42 | Book findByIsbn(ISBN isbn); 43 | 44 | Book findByTitle(String title); 45 | 46 | } 47 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/inline/src/main/java/example/app/caching/inline/repo/CalculatorRepository.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.inline.repo; 17 | 18 | import java.util.Optional; 19 | 20 | import org.springframework.data.repository.CrudRepository; 21 | 22 | import example.app.caching.inline.model.Operator; 23 | import example.app.caching.inline.model.ResultHolder; 24 | 25 | /** 26 | * Spring Data {@link CrudRepository}, a.k.a. Data Access Object (DAO) used to perform basic CRUD and simple query 27 | * data access operations on {@link ResultHolder} objects to/from the backend data store. 28 | * 29 | * @author John Blum 30 | * @see org.springframework.data.repository.CrudRepository 31 | * @see example.app.caching.inline.model.ResultHolder 32 | * @since 1.1.0 33 | */ 34 | @SuppressWarnings("unused") 35 | // tag::class[] 36 | public interface CalculatorRepository 37 | extends CrudRepository { 38 | 39 | Optional findByOperandEqualsAndOperatorEquals(Number operand, Operator operator); 40 | 41 | } 42 | // end::class[] 43 | -------------------------------------------------------------------------------- /spring-geode-samples/caching/multi-site/src/main/java/example/app/caching/multisite/client/model/Customer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.caching.multisite.client.model; 17 | 18 | import org.springframework.data.annotation.Id; 19 | import org.springframework.data.gemfire.mapping.annotation.Region; 20 | 21 | import lombok.EqualsAndHashCode; 22 | import lombok.Getter; 23 | import lombok.NonNull; 24 | import lombok.RequiredArgsConstructor; 25 | import lombok.ToString; 26 | 27 | /** 28 | * {@link Customer} is an Abstract Data Type (ADT) modeling a customer in a customer service application. 29 | * 30 | * @author John Blum 31 | * @see org.springframework.data.annotation.Id 32 | * @see org.springframework.data.gemfire.mapping.annotation.Region 33 | * @since 1.3.0 34 | */ 35 | // tag::class[] 36 | @Region("Customers") 37 | @EqualsAndHashCode 38 | @ToString(of = "name") 39 | @RequiredArgsConstructor(staticName = "newCustomer") 40 | public class Customer { 41 | 42 | @Id @Getter @NonNull 43 | private Long id; 44 | 45 | @Getter @NonNull 46 | private String name; 47 | 48 | } 49 | // end::class[] 50 | -------------------------------------------------------------------------------- /spring-geode-samples/intro/getting-started/src/main/java/example/app/crm/config/CustomerConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.crm.config; 17 | 18 | import org.springframework.context.annotation.Configuration; 19 | import org.springframework.data.gemfire.config.annotation.EnableEntityDefinedRegions; 20 | import org.springframework.geode.config.annotation.EnableClusterAware; 21 | 22 | import example.app.crm.model.Customer; 23 | 24 | /** 25 | * Spring {@link Configuration} class used to configure and initialize Apache Geode for the CRM application 26 | * beyond Spring Boot {@literal auto-configuration}. 27 | * 28 | * @author John Blum 29 | * @see org.springframework.context.annotation.Configuration 30 | * @see org.springframework.data.gemfire.config.annotation.EnableEntityDefinedRegions 31 | * @see org.springframework.geode.config.annotation.EnableClusterAware 32 | * @since 1.2.0 33 | */ 34 | // tag::class[] 35 | @Configuration 36 | @EnableClusterAware 37 | @EnableEntityDefinedRegions(basePackageClasses = Customer.class) 38 | public class CustomerConfiguration { 39 | 40 | } 41 | // end::class[] 42 | -------------------------------------------------------------------------------- /spring-geode-project/apache-geode-extensions/src/main/java/org/springframework/geode/util/GeodeConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.util; 17 | 18 | import org.apache.geode.distributed.ConfigurationProperties; 19 | import org.apache.geode.management.internal.security.ResourceConstants; 20 | 21 | /** 22 | * Interface encapsulating common Apache Geode constants used by SBDG. 23 | * 24 | * @author John Blum 25 | * @see org.apache.geode.distributed.ConfigurationProperties 26 | * @since 1.3.0 27 | */ 28 | public interface GeodeConstants { 29 | 30 | String GEMFIRE_PROPERTY_PREFIX = "gemfire."; 31 | 32 | // Logging Constants (referring to Properties) 33 | String LOG_DISK_SPACE_LIMIT = ConfigurationProperties.LOG_DISK_SPACE_LIMIT; 34 | String LOG_FILE = ConfigurationProperties.LOG_FILE; 35 | String LOG_FILE_SIZE_LIMIT = ConfigurationProperties.LOG_FILE_SIZE_LIMIT; 36 | String LOG_LEVEL = ConfigurationProperties.LOG_LEVEL; 37 | 38 | // Security Constants (referring to Properties) 39 | String PASSWORD = ResourceConstants.PASSWORD; 40 | String USERNAME = ResourceConstants.USER_NAME; 41 | 42 | } 43 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/example/app/library/service/LibraryService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.library.service; 17 | 18 | import java.util.Collections; 19 | import java.util.List; 20 | 21 | import org.springframework.cache.annotation.Cacheable; 22 | import org.springframework.stereotype.Service; 23 | 24 | import example.app.books.model.Author; 25 | import example.app.books.model.Book; 26 | 27 | /** 28 | * The {@link LibraryService} class models a Library. 29 | * 30 | * @author John Blum 31 | * @see org.springframework.cache.annotation.Cacheable 32 | * @see org.springframework.stereotype.Service 33 | * @see example.app.books.model.Author 34 | * @see example.app.books.model.Book 35 | * @since 1.0.0 36 | */ 37 | @Service 38 | @SuppressWarnings("unused") 39 | public class LibraryService { 40 | 41 | @Cacheable("BooksByAuthor") 42 | public List findBooksByAuthor(Author author) { 43 | return Collections.emptyList(); 44 | } 45 | 46 | @Cacheable("BooksByYear") 47 | public List findBooksByYear(int year) { 48 | return Collections.emptyList(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/repository/model/Customer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.boot.autoconfigure.repository.model; 17 | 18 | import org.springframework.data.annotation.Id; 19 | import org.springframework.data.gemfire.mapping.annotation.Region; 20 | 21 | import lombok.Data; 22 | import lombok.NonNull; 23 | import lombok.RequiredArgsConstructor; 24 | 25 | /** 26 | * {@link Customer} class and Abstract Data Type (ADT) modeling a customer. 27 | * 28 | * @author John Blum 29 | * @see lombok 30 | * @see org.springframework.data.annotation.Id 31 | * @see org.springframework.data.gemfire.mapping.annotation.Region 32 | * @since 1.0.0 33 | */ 34 | @Data 35 | @Region("Customers") 36 | @RequiredArgsConstructor(staticName = "newCustomer") 37 | public class Customer { 38 | 39 | @Id 40 | private Long id; 41 | 42 | @NonNull 43 | private String name; 44 | 45 | public boolean isNew() { 46 | return getId() == null; 47 | } 48 | 49 | public Customer identifiedBy(Long id) { 50 | setId(id); 51 | return this; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /spring-geode-samples/boot/security/src/main/java/example/app/security/client/controller/SecurityController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package example.app.security.client.controller; 17 | 18 | import org.springframework.beans.factory.annotation.Autowired; 19 | import org.springframework.core.env.Environment; 20 | import org.springframework.web.bind.annotation.GetMapping; 21 | import org.springframework.web.bind.annotation.RestController; 22 | 23 | import example.app.security.client.BootGeodeSecurityClientApplication; 24 | 25 | /** 26 | * A Spring {@link RestController} used by {@link BootGeodeSecurityClientApplication}. 27 | * 28 | * @author Patrick Johnson 29 | * @see org.springframework.web.bind.annotation.RestController 30 | * @since 1.4.0 31 | */ 32 | // tag::class[] 33 | @RestController 34 | public class SecurityController { 35 | 36 | @Autowired 37 | private Environment environment; 38 | 39 | @GetMapping("/message") 40 | public String getMessage() { 41 | return String.format("I'm using SSL with this Keystore: %s", 42 | this.environment.getProperty("spring.data.gemfire.security.ssl.keystore")); 43 | } 44 | } 45 | // end::class[] 46 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/function/executions/Calculator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.boot.autoconfigure.function.executions; 17 | 18 | import org.springframework.data.gemfire.function.annotation.OnMember; 19 | 20 | /** 21 | * The {@link Calculator} interface defines Apache Geode Functions. 22 | * 23 | * @author John Blum 24 | * @see org.springframework.data.gemfire.function.annotation.OnRegion 25 | * @see org.springframework.data.gemfire.function.annotation.OnMember 26 | * @since 1.0.0 27 | */ 28 | // TODO change Function returns type when SDG properly handles Function method return types/values 29 | @OnMember(groups = "test") 30 | public interface Calculator { 31 | 32 | Object add(double operandOne, double operandTwo); 33 | 34 | Object divide(double numerator, double divisor); 35 | 36 | Object factorial(long number); 37 | 38 | Object multiply(double operandOne, double operandTwo); 39 | 40 | Object squareRoot(double number); 41 | 42 | Object squared(double number); 43 | 44 | Object subtract(double operandOne, double operandTwo); 45 | 46 | } 47 | -------------------------------------------------------------------------------- /spring-geode-project/spring-geode/src/main/java/org/springframework/geode/config/annotation/support/TypelessAnnotationConfigSupport.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.config.annotation.support; 17 | 18 | import java.lang.annotation.Annotation; 19 | 20 | import org.springframework.core.type.AnnotatedTypeMetadata; 21 | import org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport; 22 | 23 | /** 24 | * The {@link TypelessAnnotationConfigSupport} class is an extension of SDG's {@link AbstractAnnotationConfigSupport} 25 | * based class for resolving {@link AnnotatedTypeMetadata}, however, is not based on any specific {@link Annotation}. 26 | * 27 | * @author John Blum 28 | * @see java.lang.annotation.Annotation 29 | * @see org.springframework.core.type.AnnotatedTypeMetadata 30 | * @see org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport 31 | * @since 1.2.0 32 | */ 33 | public class TypelessAnnotationConfigSupport extends AbstractAnnotationConfigSupport { 34 | 35 | @Override 36 | protected Class getAnnotationType() { 37 | return null; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-geode-tests/smoke-tests/logging/src/test/java/org/springframework/geode/context/logging/SpringDataGemFireCacheLogLevelApplicationPropertyIntegrationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-present the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 | * or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | package org.springframework.geode.context.logging; 17 | 18 | import org.junit.runner.RunWith; 19 | 20 | import org.springframework.boot.test.context.SpringBootTest; 21 | import org.springframework.test.context.junit4.SpringRunner; 22 | 23 | /** 24 | * Integration Tests for Apache Geode Logging configured with the {@literal spring.data.gemfire.cache.log-level} property 25 | * in Spring Boot {@literal application.properties}. 26 | * 27 | * @author John Blum 28 | * @see org.junit.Test 29 | * @see org.springframework.boot.test.context.SpringBootTest 30 | * @see AbstractSpringConfiguredLogLevelPropertyIntegrationTests 31 | * @see org.springframework.test.context.junit4.SpringRunner 32 | * @since 1.3.0 33 | */ 34 | @RunWith(SpringRunner.class) 35 | @SpringBootTest(properties = "spring.data.gemfire.cache.log-level=DEBUG") 36 | public class SpringDataGemFireCacheLogLevelApplicationPropertyIntegrationTests 37 | extends AbstractSpringConfiguredLogLevelPropertyIntegrationTests { 38 | 39 | } 40 | --------------------------------------------------------------------------------