From 0c6c6a79b176352744270b19daf41fa09bef82a7 Mon Sep 17 00:00:00 2001 From: John Blum Date: Tue, 30 Apr 2019 23:05:12 -0700 Subject: [PATCH] Edit Spring Boot Actuator Sample Guide. --- .../docs/asciidoc/guides/boot-actuator.adoc | 120 ++++++++++-------- 1 file changed, 70 insertions(+), 50 deletions(-) diff --git a/spring-geode-docs/src/docs/asciidoc/guides/boot-actuator.adoc b/spring-geode-docs/src/docs/asciidoc/guides/boot-actuator.adoc index c63f8069..6ac7860d 100644 --- a/spring-geode-docs/src/docs/asciidoc/guides/boot-actuator.adoc +++ b/spring-geode-docs/src/docs/asciidoc/guides/boot-actuator.adoc @@ -1,14 +1,18 @@ [[geode-samples-boot-actuator]] = Spring Boot Actuator for Apache Geode & Pivotal GemFire +:apache-geode-version: 16 +:apache-geode-docs:https://geode.apache.org/docs/guide/{apache-geode-version} +:spring-boot-docs: https://docs.spring.io/spring-boot/docs/current/reference/html +:spring-framework-docs: https://docs.spring.io/spring/docs/current/spring-framework-reference -This guide walks through using {spring-boot-docs-html}/production-ready.html[Spring Boot Actuator] to assess the state +This guide walks through using {spring-boot-docs}/production-ready.html[Spring Boot Actuator] to assess the state of your running Apache Geode or Pivotal GemFire, Spring Boot application. -The goal for SBDG's Spring Boot Actuator integration is to enable users to effectively monitor and manage their +The goal for SBDG's Spring Boot Actuator integration is to enable users to effectively manage and monitor their Spring Boot applications using Apache Geode or Pivotal GemFire in a production environment. In particular, SBDG's integration with Spring Boot Actuator currently focuses on enabling -{spring-boot-docs-html}/production-ready-endpoints.html#production-ready-health[Health Information] +{spring-boot-docs}/production-ready-endpoints.html#production-ready-health[Health Information] for your application. In the future, SBDG will provide dedicated support for http://micrometer.io/[Micrometer] metrics. This guide assumes you are already familiar with Spring Boot and Apache Geode (or Pivotal GemFire). @@ -19,10 +23,10 @@ This guide assumes you are already familiar with Spring Boot and Apache Geode (o This guide additionally provides a working {github-samples-url}/boot/actuator[example application] to review some of the Actuator Health Endpoints. -Our application demos a simple Temperature Monitoring Service, similar to a real-world, Internet of Things (IOT) -Use Case (UC). Essentially, the application collects `TemperatureReadings` from different temperature sensors (devices) -and uses the readings to monitor fluctuations in temperatures. The sensor devices could be located around the world -in multiple locations of the planet's oceans. +The example application is a simple Temperature Monitoring Service, simulating a real-world, Internet of Things (IOT) +Use Case (UC). Essentially, the application collects temperature readings from different temperature sensors (devices) +and uses the readings to monitor fluctuations in temperatures so that someone or something can respond accordingly. +The sensor devices could be located around the world in multiple locations in the planet's oceans. [[geode-samples-boot-actuator-example-temperaturereading]] === TemperatureReading @@ -33,7 +37,7 @@ for when the reading was measured. Clearly, a more practical example would store the temperature measurement as a `double` or `BigDecimal` along with the ability to support different scales (Celsius, Fahrenheit, Kelvin). -However in this case, we simply modeled the `TemperatureReading` as: +However in this case, we simply model the `TemperatureReading` as: .TemperatureReading class [source,java] @@ -41,6 +45,9 @@ However in this case, we simply modeled the `TemperatureReading` as: include::{samples-dir}boot/actuator/src/main/java/example/app/temp/model/TemperatureReading.java[tags=class] ---- +The `TemperatureReading` class is annotated with SDG's `@Region` mapping annotation to declare the Apache Geode Region +in which `TemperatureReadings` will be persisted. + [[geode-samples-boot-actuator-example-temperatureevent]] === TemperatureEvent @@ -55,22 +62,26 @@ For that, we introduce the simple `TemperatureEvent` base class: include::{samples-dir}boot/actuator/src/main/java/example/app/temp/event/TemperatureEvent.java[tags=class] ---- +`TemperatureEvent` is a Spring `ApplicationEvent` capable of being published to to Spring `@EventListeners` registered +in the Spring application context. + Additionally, we provide 2 subclasses: `BoilingTemperatureEvent` and `FreezingTemperatureEvent` to further classify -the temperature changes. +temperature changes. [[geode-samples-boot-actuator-example-temperaturereadingrepository]] === TemperatureReadingRepository To perform basic data access operations (e.g. CRUD) and simple queries on `TemperatureReadings`, we create -a Spring Data Repository: +a Spring Data _Repository_: -.TemperatureEvent class +.TemperatureReadingRepository interface [source,java] ---- include::{samples-dir}boot/actuator/src/main/java/example/app/temp/repo/TemperatureReadingRepository.java[tags=class] ---- -The _Repository_ showcases a few examples of derived query methods. +The _Repository_ showcases a an example, derived query methods, `findByTimestampGreaterThanAndTimestampLessThan(..)` +along with 2 `@Query` annotated query methods using raw OQL queries. [[geode-samples-boot-actuator-example-temperaturemonitor]] === TemperatureMonitor service class @@ -82,8 +93,8 @@ With Apache Geode (or Pivotal GemFire) you can register an (OQL) Query with the continuously, sending notifications back to the client anytime data changes to match the predicate in our query, or queries. -For our purposes, we will simply monitor the temperature anytime it rises above boiling (°F) or drops below -freezing (°F): +For our purposes, we will simply monitor the temperature anytime it rises above boiling (212 °F) +or drops below freezing (32 °F): .TemperatureMonitor class [source,java] @@ -92,15 +103,17 @@ include::{samples-dir}boot/actuator/src/main/java/example/app/temp/service/Tempe ---- When the temperature changes, triggering our queries, we receive an event and publish an appropriate `TemperatureEvent` -by using the Spring container's `ApplicationEventPublisher`, which has been injected into the monitor. +by using the Spring container's `ApplicationEventPublisher`, which has been injected into the monitor class. The 2 OQL queries have been defined to query the "TemperatureReadings" Region and fire anytime the temperature -rises is above 212 °F (boiling) or drops below 32 °F (freezing). +rises is above boiling (212 °F) or drops below freezing (32 °F). [[geode-samples-boot-actuator-example-temperaturesensor]] === TemperatureSensor service class -Of course, we need a simulator to generate temperatures. For that we have the `TemperatureSensor` class: +Of course, we need a simulator to generate temperatures. + +For that we have the `TemperatureSensor` class: .TemperatureSensor class [source,java] @@ -111,14 +124,13 @@ include::{samples-dir}boot/actuator/src/main/java/example/app/temp/service/Tempe To generate a stream of temperatures, we use Spring's {spring-framework-docs}/integration.html#scheduling[Scheduling Service] along with a `Random` stream of `ints` provided via an `Iterator`, as seen in the `readTemperature()` method. -The `readTemperature()` method is then storing the *new* `TemperatureReading` in the "TemperatureReadings` Region -of the Apache Geode cache, as designated by our `TemperatureReading` model class's, `@Region` annotation declaration: +The `readTemperature()` method is then storing the *new* `TemperatureReading` in the "TemperatureReadings" Region +as designated by our `TemperatureReading` model class's, `@Region` annotation declaration: .@Region declaration [source,java] ---- @Region("TemperatureReadings") -... public class TemperatureReading { ... } ---- @@ -128,9 +140,9 @@ data access operations. [[geode-samples-boot-actuator-example-server]] === Server -Now, we need a couple of drivers, or main application classes to actually have the application do something. +Now, we need a couple of main application classes to actually have the application do something useful. -We start with an Spring Boot, Apache Geode Server application to function as the temperature sensor (device) +We start with an Spring Boot, Apache Geode Server application functioning as the temperature sensor (device) using the `TemperatureSensor` class: .BootGeodeServerApplication main class @@ -139,12 +151,12 @@ using the `TemperatureSensor` class: include::{samples-dir}boot/actuator/src/main/java/example/app/temp/geode/server/BootGeodeServerApplication.java[tags=class] ---- -This class is annotated with `@SpringBootApplication`, so it is a proper Spring Boot application. It uses Spring Boot's +This class is annotated with `@SpringBootApplication` making it a proper Spring Boot application. It uses Spring Boot's `SpringApplicationBuilder` to configure and bootstrap the server application. This class is also annotated with SDG's `@CacheServerApplication` making it a proper Apache Geode Server with a peer -`Cache` instance along with a `CacheServer` to accept client connections. This effectively overrides SBDG's default, -provided `ClientCache` instance. +`Cache` instance along with a `CacheServer` to accept client connections. This effectively overrides SBDG's default +`ClientCache` instance. Additionally, the class enables several other features, such as Spring's _Scheduling Service_, Apache Geode Statistics, and entity-defined Regions making the creation of our server-side, partitioned "TemperatureReadings" Region simple. @@ -156,18 +168,18 @@ Because we have enabled scheduling (with `@EnableScheduling`) and declared the ` in the Spring application context, the application will immediately start generating temperature readings, which are recorded to the "TemperatureReadings" Region. -Finally, our class register a few Apache Geode Region Indexes to make the Actuator `HealthIndicator` information more -interesting, particularly since we are running continuous queries. +Finally, our class registers a couple Apache Geode Region Indexes to make the Actuator `HealthIndicator` information +more interesting, particularly since we are running continuous queries. This is a Servlet-based application as well since our Actuator, `HealthIndicator` endpoints are exposed via HTTP. -NOTE: There are multiple ways to configure and bootstrap an Apache Geode Server, and the server-side of our application. +TIP: There are multiple ways to configure and bootstrap an Apache Geode Server, and the server-side of our application. Using Spring Boot is one of the easier ways. [[geode-samples-boot-actuator-example-client]] === Client -Next, we need a client to act as the "monitor" in our Temperature Service application. +Next, we need a client functioning as the "monitor" in our Temperature Service application. .BootGeodeClientApplication main class [source,java] @@ -178,15 +190,15 @@ include::{samples-dir}boot/actuator/src/main/java/example/app/temp/geode/client/ Again, this class is also annotated with `@SpringBootApplication` making it a proper Spring Boot application. It too uses Spring Boot's `SpringApplicationBuilder` class to configure and bootstrap the client application. -Unlike our server, this class is not annotated with any SDG `@*Cache*Application` annotation since SBDG provides us +Unlike our server, this class is not annotated with any SDG `@*Cache*Application` annotations since SBDG provides us a `ClientCache` instance by default. We want this application to be a client in our setup. Like our server, we enable entity-defined Regions to easily and quickly create the client `PROXY` Region -for "TemperatureReadings", which will send/receive data from the server-side Region by the same name. +for "TemperatureReadings", which will send/receive data to/from the server-side Region by the same name. And, like our server application, we declare a bean of type `TemperatureMonitor` in the Spring application context to receive the `TemperatureReading` events. This enables the CQ registration and event handlers -and sets things in motion. +to sets things in motion. Probably the most interesting part is that we an `@EventListener` to receive the `TemperatureEvents` to log the `TemperatureReadings` to `System.err`. @@ -194,14 +206,15 @@ the `TemperatureReadings` to `System.err`. [[geode-samples-boot-actuator-example-run]] == Run the Example -Now it is time to run the example. +It is time to run the example. First, we start the server: .Run the server [source,txt] ---- -/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin/java -server -ea -Dspring.profiles.active=server "-javaagent:/Applications/IntelliJ IDEA 18 CE.app/Contents/lib/idea_rt.jar=56485:/Applications/IntelliJ IDEA 18 CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/tools.jar:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-samples/boot/actuator/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-samples/boot/actuator/out/production/resources:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-actuator-autoconfigure/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-actuator-autoconfigure/out/production/resources:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-autoconfigure/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-autoconfigure/out/production/resources:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-actuator/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode/out/production/resources:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-web/2.0.9.RELEASE/33ad96c247eefaf77c7ac7aab667e3633c20e165/spring-boot-starter-web-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-geode-test/0.0.1.RC1/5054cd749bd14e7b8a6ff47717d2b40068c6acb9/spring-data-geode-test-0.0.1.RC1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-json/2.0.9.RELEASE/f60574b14eef00eb71147e814981707219c08227/spring-boot-starter-json-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-actuator/2.0.9.RELEASE/ec864649db0ff57032ec2a9ed8bd17212d6b152f/spring-boot-starter-actuator-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/2.0.9.RELEASE/6c48e487ea69248b4970d423ee2f2278a9b9cf51/spring-boot-starter-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-tomcat/2.0.9.RELEASE/e1b56a3e6f029c8a8dd1ac06f19ab7f69efafad2/spring-boot-starter-tomcat-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.hibernate.validator/hibernate-validator/6.0.16.Final/ad9557c558972093c0567a2a1f224f318c00f650/hibernate-validator-6.0.16.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.0.13.RELEASE/fdde041963535ef3c746b9c93e1ef2c90a6873e2/spring-webmvc-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-geode/2.0.14.RELEASE/e13a69082be48e9a7454c783a35d5639ef580aa4/spring-data-geode-2.0.14.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.0.13.RELEASE/8e66504c87cc26109204b08cf7b6530951265483/spring-web-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/edu.umd.cs.mtc/multithreadedtc/1.01/43fbc1110d7e43cf79e415ef32036975ad85944c/multithreadedtc-1.01.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.9.1/c5ce126b15f28d56cd8f960c1a6a058b9c9aea87/assertj-core-3.9.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/2.27.0/835fc3283b481f4758b8ef464cd560c649c08b00/mockito-core-2.27.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.0.13.RELEASE/6558aba528b690efcd04cef853862e66d7ad1fab/spring-test-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.cache/cache-api/1.1.0/77bdcff7814076dfa61611b0db88487c515150b6/cache-api-1.1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.shell/spring-shell/1.2.0.RELEASE/d94047721f292bd5334b5654e8600cef4b845049/spring-shell-1.2.0.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator-autoconfigure/2.0.9.RELEASE/62c52f0aec37d7109b8239603f32f50f78f00b25/spring-boot-actuator-autoconfigure-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.0.9.RELEASE/b86eab18a95cc453c3c3519ffc214def3a46364e/spring-boot-autoconfigure-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator/2.0.9.RELEASE/bdc4548baa5c39a7127a2b9fc3d8efb64dd04010/spring-boot-actuator-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.0.9.RELEASE/8c5fde7ba7c753f5f99ce934d27fc19d8a30de46/spring-boot-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/2.0.9.RELEASE/eb98d1ab880292492285ffc302db069c86c7bf1e/spring-boot-starter-logging-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.3.2/934c04d3cfef185a8008e7bf34331b79730a9d43/javax.annotation-api-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context-support/5.0.13.RELEASE/3458907eaafda275ea38a6ddad5f7ca58c66dd07/spring-context-support-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.0.13.RELEASE/a8442e8d2c11fd6a64f0c5476fa0416bb20463fa/spring-tx-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.0.14.RELEASE/2836d20873ef3211311bbb49d46c71ccc8f274ac/spring-data-commons-2.0.14.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.0.13.RELEASE/16f61ac3bf75131034d4ace1ac24b199e03c6ba1/spring-context-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.0.13.RELEASE/eb756b27d894d4de9491513a7f641e1ad2effcab/spring-aop-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.0.13.RELEASE/13880e7cd21df626736d6a4f5decd17b42cdeaca/spring-beans-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.0.13.RELEASE/eb4651b7c53be5a74f45717f262106758e58b681/spring-expression-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.0.13.RELEASE/5a306ec429a43ce126dae5df85927bc91e395894/spring-core-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.9.8/bcd02aa9195390e23747ed40bf76be869ad3a2fb/jackson-datatype-jdk8-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.9.8/28ad1bced632ba338e51c825a652f6e11a8e6eac/jackson-datatype-jsr310-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-parameter-names/2.9.8/c4eef0e6e20d60fb27af4bc4770dba7bcc3f6de6/jackson-module-parameter-names-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-lucene/1.2.1/3d22a050bd4eb64bd8c82a74677f45c070f102d5/geode-lucene-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-core/1.2.1/fe853317e33dd2a1c291f29cee3c4be549f75a69/geode-core-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.9.8/11283f21cc480aa86c4df7a0a3243ec508372ed2/jackson-databind-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/8.5.39/ef8346273e26fa014c4c1be7cdfc945de312c5e/tomcat-embed-websocket-8.5.39.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/8.5.39/4d9de8c6e2894e290e8563c44c650f3ea71266db/tomcat-embed-core-8.5.39.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/8.5.39/a2179cbbcfeaa9a2321f34f086ad8b5682137bdd/tomcat-embed-el-8.5.39.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.validation/validation-api/2.0.1.Final/cb855558e6271b1b32e716d24cb85c7f583ce09e/validation-api-2.0.1.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.3.2.Final/3789d00e859632e6c6206adc0c71625559e6e3b0/jboss-logging-3.3.2.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.3.4/3d5f48f10bbe4eb7bd862f10c0583be2e0053c6/classmate-1.3.4.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.9.10/211a2b4d3df1eeef2a6cacf78d74a1f725e7a840/byte-buddy-1.9.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.9.10/9674aba5ee793e54b864952b001166848da0f26b/byte-buddy-agent-1.9.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/2.6/639033469776fd37c08358c6b92a4761feb2af4b/objenesis-2.6.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-cq/1.2.1/69873d6b956ba13b55c894a13e72106fb552e840/geode-cq-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-wan/1.2.1/df0dd8516e1af17790185255ff21a54b56d94344/geode-wan-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.shiro/shiro-spring/1.3.2/281a6b565f6cf3aebd31ddb004632008d7106f2d/shiro-spring-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.aspectj/aspectjweaver/1.8.14/d95689587d8f39c1ae35523eadac06fe760b2697/aspectjweaver-1.8.14.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.9.0/7c10d545325e3a6e72e06381afe469fd40eb701/jackson-annotations-2.9.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.26/8031352b2bb0a49e67818bf04c027aa92e645d5c/jul-to-slf4j-1.7.26.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.shiro/shiro-web/1.3.2/725be023e1c65a0fd70c01b8c0c13a2936c23315/shiro-web-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.shiro/shiro-core/1.3.2/b5dede9d890f335998a8ebf479809fe365b927fc/shiro-core-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.26/77100a62c2e6f04b53977b9f541044d7d722693d/slf4j-api-1.7.26.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.0.13.RELEASE/db00d2cd65e1b556229104cc95ece433a83c72fe/spring-jcl-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/17.0/9c6ef172e8de35fd8d4d8783e4821e57cdef7445/guava-17.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/jline/jline/2.12/ce9062c6a125e0f9ad766032573c041ae8ecc986/jline-2.12.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/2852e6e05fbb95076fc091f6d1780f1f8fe35e0f/commons-io-2.5.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.9.8/f5a654e4675769c716e5b387830d19b501ca191/jackson-core-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.github.stephenc.findbugs/findbugs-annotations/1.3.9-1/a6b11447635d80757d64b355bed3c00786d86801/findbugs-annotations-1.3.9-1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.jgroups/jgroups/3.6.10.Final/fc0ff5a8a9de27ab62939956f705c2909bf86bc2/jgroups-3.6.10.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/ce1edb914c94ebc388f086c6827e8bdeec71ac2/commons-lang-2.6.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.1.0/9835253257524c1be7ab50c057aa2d418fb72082/fastutil-7.1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.resource/javax.resource-api/1.7/ae40e0864eb1e92c48bf82a2a3399cbbf523fb79/javax.resource-api-1.7.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.5.2/35d000afbaa4ed425d91873b40f4df9b8236875b/jna-4.5.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.3/cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a/jopt-simple-5.0.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.10.0/c90b597163cd28ab6d9687edd53db601b6ea75a1/log4j-core-2.10.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.10.0/fec5797a55b786184a537abd39c3fa1449d752d6/log4j-api-2.10.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-beanutils/commons-beanutils/1.9.3/c845703de334ddc6b4b3cd26835458cb1cba1f3d/commons-beanutils-1.9.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/io.github.lukehutch/fast-classpath-scanner/2.0.11/ae34a7a5e6de8ad1f86e12f6f7ae1869fcfe9987/fast-classpath-scanner-2.0.11.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-common/1.2.1/9db253081d33f424f6e3ce0cde4b306e23e3420b/geode-common-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-json/1.2.1/bdb4c262e4ce6bb3b22e0f511cfb133a65fa0c04/geode-json-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-analyzers-common/6.4.1/c6f0f593503080204e9d33189cdc59320f55db37/lucene-analyzers-common-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-queryparser/6.4.1/1fc5795a072770a2c47dce11a3c85a80f3437af6/lucene-queryparser-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-queries/6.4.1/6de41d984c16185a244b52c4d069b00f5b2b120f/lucene-queries-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-core/6.4.1/2a18924b9e0ed86b318902cb475a0b9ca4d7be5b/lucene-core-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-core/1.0.10/bbcca61673a10429b0afc756de3bbbb8b0c7c966/micrometer-core-1.0.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.3/864344400c3d4d92dfeb0a305dc87d953677c03c/logback-core-1.2.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.transaction/javax.transaction-api/1.2/d81aff979d603edd90dcd8db2abc1f4ce6479e3e/javax.transaction-api-1.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-collections/commons-collections/3.2.2/8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5/commons-collections-3.2.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.hdrhistogram/HdrHistogram/2.1.10/9e1ac84eed220281841b75e72fb9de5a297fbf04/HdrHistogram-2.1.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.latencyutils/LatencyUtils/2.0.3/769c0b82cb2421c8256300e907298a9410a2a3d3/LatencyUtils-2.0.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-jetty/2.0.9.RELEASE/a04f026c43f795f53d1bd31f6dad4f157c0a7577/spring-boot-starter-jetty-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.16.22/e555426550f54284fefb09065f2123a1d9be0b73/lombok-1.16.22.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-servlets/9.4.15.v20190215/403606e16c41c38ce0ca753cd9fb78c4a692c88e/jetty-servlets-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/javax-websocket-server-impl/9.4.15.v20190215/25d0b8223c038fb85263f32d35c5cba2022ab622/javax-websocket-server-impl-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-annotations/9.4.15.v20190215/157606ae508a24c20cb26151b6d0469d7bb1e72f/jetty-annotations-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-plus/9.4.15.v20190215/ff5d8dad04cb47cf29956c7a602131bb2c2bb6db/jetty-plus-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-webapp/9.4.15.v20190215/6ff93c67227fb443b8e63c03c7d5c11066d983b3/jetty-webapp-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-server/9.4.15.v20190215/ee410ccfdd692a5e44a04bfa0e2b8c2e8fc524f2/websocket-server-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.mortbay.jasper/apache-el/8.5.35.1/e89dd4e0d4f396b07fc5b7dc8d430493bc54d4c/apache-el-8.5.35.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.19/2d998d3d674b172a588e54ab619854d073f555b5/snakeyaml-1.19.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-continuation/9.4.15.v20190215/f9c708af00b0984a98b53ff3a031d35517e5ebbc/jetty-continuation-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/javax-websocket-client-impl/9.4.15.v20190215/c78916a1c3632a54f33a6def4ce11a349b318a1b/javax-websocket-client-impl-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-client/9.4.15.v20190215/237038ee1a544a28fe88ee5eef326511b3ba8a60/websocket-client-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-client/9.4.15.v20190215/b3c92b6bc7f98d5bd5210b3285a740b9f206add7/jetty-client-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-servlet/9.4.15.v20190215/6c680a4a05986ea0ae0a686df7b3da7378554127/jetty-servlet-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-security/9.4.15.v20190215/bfb074a843d7961111143a193c846040bd089365/jetty-security-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-server/9.4.15.v20190215/c3c67bd8ec3fe328de9e888e2e619362905a56ab/jetty-server-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-http/9.4.15.v20190215/b6ccda5ec5580914ff2fcbd0b9a7e3327e11ba01/jetty-http-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-common/9.4.15.v20190215/9c17801e6c5070ba14509deee338ebad9003f91f/websocket-common-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-io/9.4.15.v20190215/e9f3cb0e56ff0bf15c42fd977d220e494e66c61c/jetty-io-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-xml/9.4.15.v20190215/9cb76241d67690bc1d5a5ede99e7eb35c3918d53/jetty-xml-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-util/9.4.15.v20190215/842cb29911d32c18c9e6fa377cabfbc4685f4bb2/jetty-util-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-servlet/9.4.15.v20190215/544090f9a7083fe7794d4669893f7f7e593d0534/websocket-servlet-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.websocket/javax.websocket-api/1.0/fc843b649d4a1dcb0497669d262befa3918c7ba8/javax.websocket-api-1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-api/9.4.15.v20190215/166ba3d41032268c9f3537c00db36b72abb5ccd7/websocket-api-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.servlet/javax.servlet-api/3.1.0/3cd63d075497751784b2fa84be59432f4905bf7c/javax.servlet-api-3.1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/7.0/478006d07b7c561ae3a92ddc1829bca81ae0cdd1/asm-commons-7.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/7.0/4b310d20d6f1c6b7197a75f1b5d69f169bc8ac1f/asm-analysis-7.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/7.0/29bc62dcb85573af6e62e5b2d735ef65966c4180/asm-tree-7.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/7.0/d74d4ba0dee443f68fb2dcb7fcdb945a2cd89912/asm-7.0.jar example.app.temp.geode.server.BootGeodeServerApplication +/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin/java -server -ea -Dspring.profiles.active=server + ... example.app.temp.geode.server.BootGeodeServerApplication . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ @@ -225,7 +238,8 @@ After the server starts and begins to log temperature readings (as shown above), .Run the client [source,txt] ---- -/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin/java -server -ea -Dspring.profiles.active=client "-javaagent:/Applications/IntelliJ IDEA 18 CE.app/Contents/lib/idea_rt.jar=56506:/Applications/IntelliJ IDEA 18 CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/lib/tools.jar:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-samples/boot/actuator/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-samples/boot/actuator/out/production/resources:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-actuator-autoconfigure/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-actuator-autoconfigure/out/production/resources:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-autoconfigure/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-autoconfigure/out/production/resources:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode-actuator/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode/out/production/classes:/Users/jblum/pivdev/spring-boot-data-geode/spring-geode/out/production/resources:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-web/2.0.9.RELEASE/33ad96c247eefaf77c7ac7aab667e3633c20e165/spring-boot-starter-web-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-geode-test/0.0.1.RC1/5054cd749bd14e7b8a6ff47717d2b40068c6acb9/spring-data-geode-test-0.0.1.RC1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-json/2.0.9.RELEASE/f60574b14eef00eb71147e814981707219c08227/spring-boot-starter-json-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-actuator/2.0.9.RELEASE/ec864649db0ff57032ec2a9ed8bd17212d6b152f/spring-boot-starter-actuator-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/2.0.9.RELEASE/6c48e487ea69248b4970d423ee2f2278a9b9cf51/spring-boot-starter-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-tomcat/2.0.9.RELEASE/e1b56a3e6f029c8a8dd1ac06f19ab7f69efafad2/spring-boot-starter-tomcat-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.hibernate.validator/hibernate-validator/6.0.16.Final/ad9557c558972093c0567a2a1f224f318c00f650/hibernate-validator-6.0.16.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-webmvc/5.0.13.RELEASE/fdde041963535ef3c746b9c93e1ef2c90a6873e2/spring-webmvc-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-geode/2.0.14.RELEASE/e13a69082be48e9a7454c783a35d5639ef580aa4/spring-data-geode-2.0.14.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-web/5.0.13.RELEASE/8e66504c87cc26109204b08cf7b6530951265483/spring-web-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/edu.umd.cs.mtc/multithreadedtc/1.01/43fbc1110d7e43cf79e415ef32036975ad85944c/multithreadedtc-1.01.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.9.1/c5ce126b15f28d56cd8f960c1a6a058b9c9aea87/assertj-core-3.9.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/2.27.0/835fc3283b481f4758b8ef464cd560c649c08b00/mockito-core-2.27.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/5.0.13.RELEASE/6558aba528b690efcd04cef853862e66d7ad1fab/spring-test-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.cache/cache-api/1.1.0/77bdcff7814076dfa61611b0db88487c515150b6/cache-api-1.1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.shell/spring-shell/1.2.0.RELEASE/d94047721f292bd5334b5654e8600cef4b845049/spring-shell-1.2.0.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator-autoconfigure/2.0.9.RELEASE/62c52f0aec37d7109b8239603f32f50f78f00b25/spring-boot-actuator-autoconfigure-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.0.9.RELEASE/b86eab18a95cc453c3c3519ffc214def3a46364e/spring-boot-autoconfigure-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator/2.0.9.RELEASE/bdc4548baa5c39a7127a2b9fc3d8efb64dd04010/spring-boot-actuator-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.0.9.RELEASE/8c5fde7ba7c753f5f99ce934d27fc19d8a30de46/spring-boot-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/2.0.9.RELEASE/eb98d1ab880292492285ffc302db069c86c7bf1e/spring-boot-starter-logging-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.3.2/934c04d3cfef185a8008e7bf34331b79730a9d43/javax.annotation-api-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context-support/5.0.13.RELEASE/3458907eaafda275ea38a6ddad5f7ca58c66dd07/spring-context-support-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-tx/5.0.13.RELEASE/a8442e8d2c11fd6a64f0c5476fa0416bb20463fa/spring-tx-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-commons/2.0.14.RELEASE/2836d20873ef3211311bbb49d46c71ccc8f274ac/spring-data-commons-2.0.14.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.0.13.RELEASE/16f61ac3bf75131034d4ace1ac24b199e03c6ba1/spring-context-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.0.13.RELEASE/eb756b27d894d4de9491513a7f641e1ad2effcab/spring-aop-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.0.13.RELEASE/13880e7cd21df626736d6a4f5decd17b42cdeaca/spring-beans-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.0.13.RELEASE/eb4651b7c53be5a74f45717f262106758e58b681/spring-expression-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.0.13.RELEASE/5a306ec429a43ce126dae5df85927bc91e395894/spring-core-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.9.8/bcd02aa9195390e23747ed40bf76be869ad3a2fb/jackson-datatype-jdk8-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.9.8/28ad1bced632ba338e51c825a652f6e11a8e6eac/jackson-datatype-jsr310-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-parameter-names/2.9.8/c4eef0e6e20d60fb27af4bc4770dba7bcc3f6de6/jackson-module-parameter-names-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-lucene/1.2.1/3d22a050bd4eb64bd8c82a74677f45c070f102d5/geode-lucene-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-core/1.2.1/fe853317e33dd2a1c291f29cee3c4be549f75a69/geode-core-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.9.8/11283f21cc480aa86c4df7a0a3243ec508372ed2/jackson-databind-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-websocket/8.5.39/ef8346273e26fa014c4c1be7cdfc945de312c5e/tomcat-embed-websocket-8.5.39.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/8.5.39/4d9de8c6e2894e290e8563c44c650f3ea71266db/tomcat-embed-core-8.5.39.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-el/8.5.39/a2179cbbcfeaa9a2321f34f086ad8b5682137bdd/tomcat-embed-el-8.5.39.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.validation/validation-api/2.0.1.Final/cb855558e6271b1b32e716d24cb85c7f583ce09e/validation-api-2.0.1.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.3.2.Final/3789d00e859632e6c6206adc0c71625559e6e3b0/jboss-logging-3.3.2.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.3.4/3d5f48f10bbe4eb7bd862f10c0583be2e0053c6/classmate-1.3.4.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.9.10/211a2b4d3df1eeef2a6cacf78d74a1f725e7a840/byte-buddy-1.9.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.9.10/9674aba5ee793e54b864952b001166848da0f26b/byte-buddy-agent-1.9.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/2.6/639033469776fd37c08358c6b92a4761feb2af4b/objenesis-2.6.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-cq/1.2.1/69873d6b956ba13b55c894a13e72106fb552e840/geode-cq-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-wan/1.2.1/df0dd8516e1af17790185255ff21a54b56d94344/geode-wan-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.shiro/shiro-spring/1.3.2/281a6b565f6cf3aebd31ddb004632008d7106f2d/shiro-spring-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.aspectj/aspectjweaver/1.8.14/d95689587d8f39c1ae35523eadac06fe760b2697/aspectjweaver-1.8.14.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.9.0/7c10d545325e3a6e72e06381afe469fd40eb701/jackson-annotations-2.9.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/1.7.26/8031352b2bb0a49e67818bf04c027aa92e645d5c/jul-to-slf4j-1.7.26.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.shiro/shiro-web/1.3.2/725be023e1c65a0fd70c01b8c0c13a2936c23315/shiro-web-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.shiro/shiro-core/1.3.2/b5dede9d890f335998a8ebf479809fe365b927fc/shiro-core-1.3.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.26/77100a62c2e6f04b53977b9f541044d7d722693d/slf4j-api-1.7.26.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.0.13.RELEASE/db00d2cd65e1b556229104cc95ece433a83c72fe/spring-jcl-5.0.13.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/17.0/9c6ef172e8de35fd8d4d8783e4821e57cdef7445/guava-17.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/jline/jline/2.12/ce9062c6a125e0f9ad766032573c041ae8ecc986/jline-2.12.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/2852e6e05fbb95076fc091f6d1780f1f8fe35e0f/commons-io-2.5.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.9.8/f5a654e4675769c716e5b387830d19b501ca191/jackson-core-2.9.8.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/com.github.stephenc.findbugs/findbugs-annotations/1.3.9-1/a6b11447635d80757d64b355bed3c00786d86801/findbugs-annotations-1.3.9-1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.jgroups/jgroups/3.6.10.Final/fc0ff5a8a9de27ab62939956f705c2909bf86bc2/jgroups-3.6.10.Final.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/antlr/antlr/2.7.7/83cd2cd674a217ade95a4bb83a8a14f351f48bd0/antlr-2.7.7.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/ce1edb914c94ebc388f086c6827e8bdeec71ac2/commons-lang-2.6.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.1.0/9835253257524c1be7ab50c057aa2d418fb72082/fastutil-7.1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.resource/javax.resource-api/1.7/ae40e0864eb1e92c48bf82a2a3399cbbf523fb79/javax.resource-api-1.7.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.5.2/35d000afbaa4ed425d91873b40f4df9b8236875b/jna-4.5.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.3/cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a/jopt-simple-5.0.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.10.0/c90b597163cd28ab6d9687edd53db601b6ea75a1/log4j-core-2.10.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.10.0/fec5797a55b786184a537abd39c3fa1449d752d6/log4j-api-2.10.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-beanutils/commons-beanutils/1.9.3/c845703de334ddc6b4b3cd26835458cb1cba1f3d/commons-beanutils-1.9.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/io.github.lukehutch/fast-classpath-scanner/2.0.11/ae34a7a5e6de8ad1f86e12f6f7ae1869fcfe9987/fast-classpath-scanner-2.0.11.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-common/1.2.1/9db253081d33f424f6e3ce0cde4b306e23e3420b/geode-common-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.geode/geode-json/1.2.1/bdb4c262e4ce6bb3b22e0f511cfb133a65fa0c04/geode-json-1.2.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-analyzers-common/6.4.1/c6f0f593503080204e9d33189cdc59320f55db37/lucene-analyzers-common-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-queryparser/6.4.1/1fc5795a072770a2c47dce11a3c85a80f3437af6/lucene-queryparser-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-queries/6.4.1/6de41d984c16185a244b52c4d069b00f5b2b120f/lucene-queries-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.apache.lucene/lucene-core/6.4.1/2a18924b9e0ed86b318902cb475a0b9ca4d7be5b/lucene-core-6.4.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-core/1.0.10/bbcca61673a10429b0afc756de3bbbb8b0c7c966/micrometer-core-1.0.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.2.3/864344400c3d4d92dfeb0a305dc87d953677c03c/logback-core-1.2.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.transaction/javax.transaction-api/1.2/d81aff979d603edd90dcd8db2abc1f4ce6479e3e/javax.transaction-api-1.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/commons-collections/commons-collections/3.2.2/8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5/commons-collections-3.2.2.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.hdrhistogram/HdrHistogram/2.1.10/9e1ac84eed220281841b75e72fb9de5a297fbf04/HdrHistogram-2.1.10.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.latencyutils/LatencyUtils/2.0.3/769c0b82cb2421c8256300e907298a9410a2a3d3/LatencyUtils-2.0.3.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-jetty/2.0.9.RELEASE/a04f026c43f795f53d1bd31f6dad4f157c0a7577/spring-boot-starter-jetty-2.0.9.RELEASE.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.16.22/e555426550f54284fefb09065f2123a1d9be0b73/lombok-1.16.22.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-servlets/9.4.15.v20190215/403606e16c41c38ce0ca753cd9fb78c4a692c88e/jetty-servlets-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/javax-websocket-server-impl/9.4.15.v20190215/25d0b8223c038fb85263f32d35c5cba2022ab622/javax-websocket-server-impl-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-annotations/9.4.15.v20190215/157606ae508a24c20cb26151b6d0469d7bb1e72f/jetty-annotations-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-plus/9.4.15.v20190215/ff5d8dad04cb47cf29956c7a602131bb2c2bb6db/jetty-plus-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-webapp/9.4.15.v20190215/6ff93c67227fb443b8e63c03c7d5c11066d983b3/jetty-webapp-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-server/9.4.15.v20190215/ee410ccfdd692a5e44a04bfa0e2b8c2e8fc524f2/websocket-server-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.mortbay.jasper/apache-el/8.5.35.1/e89dd4e0d4f396b07fc5b7dc8d430493bc54d4c/apache-el-8.5.35.1.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.19/2d998d3d674b172a588e54ab619854d073f555b5/snakeyaml-1.19.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-continuation/9.4.15.v20190215/f9c708af00b0984a98b53ff3a031d35517e5ebbc/jetty-continuation-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/javax-websocket-client-impl/9.4.15.v20190215/c78916a1c3632a54f33a6def4ce11a349b318a1b/javax-websocket-client-impl-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-client/9.4.15.v20190215/237038ee1a544a28fe88ee5eef326511b3ba8a60/websocket-client-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-client/9.4.15.v20190215/b3c92b6bc7f98d5bd5210b3285a740b9f206add7/jetty-client-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-servlet/9.4.15.v20190215/6c680a4a05986ea0ae0a686df7b3da7378554127/jetty-servlet-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-security/9.4.15.v20190215/bfb074a843d7961111143a193c846040bd089365/jetty-security-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-server/9.4.15.v20190215/c3c67bd8ec3fe328de9e888e2e619362905a56ab/jetty-server-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-http/9.4.15.v20190215/b6ccda5ec5580914ff2fcbd0b9a7e3327e11ba01/jetty-http-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-common/9.4.15.v20190215/9c17801e6c5070ba14509deee338ebad9003f91f/websocket-common-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-io/9.4.15.v20190215/e9f3cb0e56ff0bf15c42fd977d220e494e66c61c/jetty-io-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-xml/9.4.15.v20190215/9cb76241d67690bc1d5a5ede99e7eb35c3918d53/jetty-xml-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-util/9.4.15.v20190215/842cb29911d32c18c9e6fa377cabfbc4685f4bb2/jetty-util-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-servlet/9.4.15.v20190215/544090f9a7083fe7794d4669893f7f7e593d0534/websocket-servlet-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.websocket/javax.websocket-api/1.0/fc843b649d4a1dcb0497669d262befa3918c7ba8/javax.websocket-api-1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty.websocket/websocket-api/9.4.15.v20190215/166ba3d41032268c9f3537c00db36b72abb5ccd7/websocket-api-9.4.15.v20190215.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/javax.servlet/javax.servlet-api/3.1.0/3cd63d075497751784b2fa84be59432f4905bf7c/javax.servlet-api-3.1.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/7.0/478006d07b7c561ae3a92ddc1829bca81ae0cdd1/asm-commons-7.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/7.0/4b310d20d6f1c6b7197a75f1b5d69f169bc8ac1f/asm-analysis-7.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/7.0/29bc62dcb85573af6e62e5b2d735ef65966c4180/asm-tree-7.0.jar:/Users/jblum/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/7.0/d74d4ba0dee443f68fb2dcb7fcdb945a2cd89912/asm-7.0.jar example.app.temp.geode.client.BootGeodeClientApplication +/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin/java -server -ea -Dspring.profiles.active=client + ... example.app.temp.geode.client.BootGeodeClientApplication . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ @@ -246,37 +260,37 @@ COLD TEMPERATURE READING [-4 °F] ... ---- -You should only see boiling and freezing temperatures logged to the client's console. That is because our client -only "monitors" and logs temperature readings above (boiling) or below (freezing) our thresholds, as defined by -the CQs. Pretty cool, eh? +You should only see boiling and freezing temperatures logged to the client's console. This is because our client +only "monitors" and logs temperature readings above or below our thresholds (boiling/freezing), as defined by +the Continuous Queries (CQ). -Both the server and client will continue to run, generating and logging temperatures, until you stop them. +Both the server and client will continue to run, generating and logging temperatures, until you stop the JVM processes. [[geode-samples-boot-actuator-example-monitor]] == Monitoring our Example with Spring Boot Actuator, HealthIndicator Endpoints After the application has been running for some time, we can inspect the Spring Boot Actuator, HealthIndicator Endpoints -provided by SBDG to monitor our application's health and runtime performance along with basic configuration meta-data -used to configure Apache Geode at runtime. +provided by SBDG to monitor our application's health and runtime performance in addition to basic configuration +meta-data used to configure Apache Geode at runtime. [[geode-samples-boot-actuator-example-monitor-client]] === Client Health Information -To navigate to the client applications Actuator Health endpoint, open a Web Browser (e.g. Google Chrome) to: +To navigate to the client applications Actuator Health endpoints, open a Web Browser (e.g. Google Chrome) to: `http://localhost:9191/actuator/health` This will output a JSON document similar to: -image::client-actuator-health-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/client-actuator-health-endpoint.png[] We can see details on our client "TemperatureReadings" Region: -image::client-actuator-health-region-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/client-actuator-health-region-endpoint.png[] As well as our CQs: -image::client-actuator-health-cq-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/client-actuator-health-cq-endpoint.png[] When you hit refresh, the metrics will update. @@ -289,19 +303,19 @@ To navigate to the server applications Actuator Health endpoint, open a Web Brow This will output a JSON document similar to: -image::server-actuator-health-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/server-actuator-health-endpoint.png[] We can see details of the server "TemperatureReadings" Region: -image::server-actuator-health-region-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/server-actuator-health-region-endpoint.png[] As well as our Indexes: -image::server-actuator-health-indexes-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/server-actuator-health-indexes-endpoint.png[] And our CacheServer serving clients: -image::server-actuator-health-cacheserver-endpoint.png[] +image::{docs-dir}/src/docs/asciidoc/guides/server-actuator-health-cacheserver-endpoint.png[] When you hit refresh, the metrics will update. @@ -328,5 +342,11 @@ management.endpoint.health.show-details=always ---- [[geode-samples-boot-actuator-conclusion]] -= Conclusion +== Conclusion +Hopefully this guide has shown you how to use the Spring Boot Actuator feature for Apache Geode and Pivotal GemFire. + +You are encouraged to read more about {spring-boot-docs}/production-ready.html[Spring Boot's Actuator] functionality. + +Additonally, you can find out more about Apache Geode Statistics +in the {apache-geode-docs}/managing/statistics/chapter_overview.html[User Guide].