diff --git a/spring-boot-samples/spring-boot-sample-cache/README.adoc b/spring-boot-samples/spring-boot-sample-cache/README.adoc
index 7bc450fb39..9debe16c56 100644
--- a/spring-boot-samples/spring-boot-sample-cache/README.adoc
+++ b/spring-boot-samples/spring-boot-sample-cache/README.adoc
@@ -15,8 +15,8 @@ abstraction is supported by many caching libraries, including:
* Generic provider based on `org.springframework.Cache` bean definition(s)
The sample defines a simple `CountryService` that caches countries by ISO code. When
-the application starts a client invokes the service with a random code every 500ms. You
-can look at the `/metrics` endpoint to review the cache statistics if your chosen
+the application starts a client invokes the service with a random code every 500ms.
+You can look at the `/metrics` endpoint to review the cache statistics if your chosen
caching provider is supported.
@@ -26,30 +26,31 @@ The sample uses Spring's cache annotation. If you want to use the JSR-107 annota
instead, simply add the `javax.cache:cache-api` dependency to the project. No further
configuration is necessary.
-NOTE: You can use the JSR-107 annotations with _any_ cache provider; a JSR-107 compliant
-cache provider is not necessary.
+NOTE: You can use the JSR-107 annotations with _any_ cache provider; a JSR-107
+compliant cache provider is not necessary.
== Using a different cache provider
Initially, the project does not define any caching library so the abstraction works
-on simple `ConcurrentHashMap`-based caches. You can try out your favorite caching library
-as explained below.
+on simple `ConcurrentHashMap`-based caches. You can try out your favorite caching
+library as explained below.
=== JCache (JSR-107)
-If you want to configure your cache infrastructure via the standard, you need a compliant
-implementation and the JSR-107 api. You first need to add `javax.cache:cache-api` to your
-project. Then you could try the following:
+If you want to configure your cache infrastructure via the standard, you need a
+compliant implementation and the JSR-107 api. You first need to add
+`javax.cache:cache-api` to your project. Then you could try the following:
* `EhCache 3`: add `org.ehcache:ehcache`
* `Hazelcast`: add `com.hazelcast:hazelcast`
* `Infinispan`: add `org.infinispan:infinispan-jcache`
-TIP: Certain cache providers do not create a default cache on-the-fly if it does not exist
-so you might need to update the sample to create the caches on startup or specify the
-location to the provider-specific file via the `spring.cache.jcache.config` property.
+TIP: Certain cache providers do not create a default cache on-the-fly if it does not
+exist so you might need to update the sample to create the caches on startup or
+specify the location to the provider-specific file via the
+`spring.cache.jcache.config` property.
NOTE: Any other JSR-107 compliant provider is also supported but Spring Boot may not
offer a dependency management entry for it. You will have to add it with the version
@@ -59,39 +60,55 @@ of the library that you want to use.
=== EhCache 2.x
Simply add the `net.sf.ehcache:ehcache` dependency to the project. Since there is a
-default `ehcache.xml` configuration file at the root of the classpath, it is automatically
-used to configure the underlying `CacheManager`. Note that EhCache 3 uses a different
-format and doesn't default to `ehcache.xml` anymore. Check
-http://www.ehcache.org/documentation/3.0/xml.html[the documentation] for more details.
+default `ehcache.xml` configuration file at the root of the classpath,
+it is automatically used to configure the underlying `CacheManager`.
+Note that EhCache 3 uses a different format and doesn't default to `ehcache.xml`
+anymore. Check http://www.ehcache.org/documentation/3.0/xml.html[the documentation]
+for more details.
+
+TIP: Run sample cache application using EhCache with
+`$mvn spring-boot:run -Pehcache2`.
=== Hazelcast
-Both `com.hazelcast:hazelcast` and `com.hazelcast:hazelcast-spring` should be added to
-the project to enable support for Hazelcast. Since there is a default `hazelcast.xml`
-configuration file at the root of the classpath, it is used to automatically configure
-the underlying `HazelcastInstance`.
+Both `com.hazelcast:hazelcast` and `com.hazelcast:hazelcast-spring` should be added
+to the project to enable support for Hazelcast. Since there is a default
+`hazelcast.xml` configuration file at the root of the classpath, it is used to
+automatically configure the underlying `HazelcastInstance`.
+
+TIP: Run sample cache application using Hazelcast with
+`$mvn spring-boot:run -Phazelcast`.
=== Infinispan
Add the `org.infinispan:infinispan-spring4-embedded` dependency to enable support for
-Infinispan. There is no default location that Infinispan uses to look for a config file
-so if you don't specify anything it will bootstrap on a hardcoded default. You can set
-the `spring.cache.infinispan.config` property to use the provided `infinispan.xml`
-configuration instead.
+Infinispan. There is no default location that Infinispan uses to look for a config
+file so if you don't specify anything it will bootstrap on a hardcoded default. You
+can set the `spring.cache.infinispan.config` property to use the provided
+`infinispan.xml` configuration instead.
+
+TIP: Run sample cache application using Hazelcast with
+`$mvn spring-boot:run -Pinfinispan`.
=== Couchbase
-Add the `java-client` and `couchbase-spring-cache` dependencies and make sure that you
-have setup at least a `spring.couchbase.bootstrap-hosts` property.
+Add the `java-client` and `couchbase-spring-cache` dependencies and make sure that
+you have setup at least a `spring.couchbase.bootstrap-hosts` property.
+
+TIP: Run sample cache application using Hazelcast with
+`$mvn spring-boot:run -Pcouchbase`.
=== Redis
-Add the `spring-boot-starter-data-redis` and make sure it is configured properly (by default,
-a redis instance with the default settings is expected on your local box).
+Add the `spring-boot-starter-data-redis` and make sure it is configured properly (by
+default, a redis instance with the default settings is expected on your local box).
+
+TIP: Run sample cache application using Hazelcast with
+`$mvn spring-boot:run -Predis`.
@@ -100,10 +117,16 @@ Simply add the `com.github.ben-manes.caffeine:caffeine` dependency to enable sup
for Caffeine. You can customize how caches are created in different ways, see
`application.properties` for an example and the documentation for more details.
+TIP: Run sample cache application using Hazelcast with
+`$mvn spring-boot:run -Pcaffeine`.
+
=== Guava
-Spring Boot does not provide any dependency management for _Guava_ so you'll have to add
-the `com.google.guava:guava` dependency with a version. You can customize how caches are
-created in different ways, see `application.properties` for an example and the
-documentation for more details.
+Spring Boot does not provide any dependency management for _Guava_ so you'll have to
+add the `com.google.guava:guava` dependency with a version. You can customize how
+caches are created in different ways, see `application.properties` for an example and
+the documentation for more details.
+
+TIP: Run sample cache application using Hazelcast with
+`$mvn spring-boot:run -Pguava`.
\ No newline at end of file
diff --git a/spring-boot-samples/spring-boot-sample-cache/pom.xml b/spring-boot-samples/spring-boot-sample-cache/pom.xml
index 8a5eb6c092..8dfb924f40 100644
--- a/spring-boot-samples/spring-boot-sample-cache/pom.xml
+++ b/spring-boot-samples/spring-boot-sample-cache/pom.xml
@@ -33,78 +33,6 @@
org.springframework.boot
spring-boot-starter-actuator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
org.springframework.boot
@@ -120,4 +48,104 @@
+
+
+ jcache
+
+
+ javax.cache
+ cache-api
+
+
+
+
+ caffeine
+
+
+ com.github.ben-manes.caffeine
+ caffeine
+
+
+
+
+ couchbase
+
+
+ com.couchbase.client
+ java-client
+
+
+ com.couchbase.client
+ couchbase-spring-cache
+
+
+
+
+ ehcache2
+
+
+ net.sf.ehcache
+ ehcache
+
+
+
+
+ ehcache
+
+
+ javax.cache
+ cache-api
+
+
+ org.ehcache
+ ehcache
+
+
+
+
+ hazelcast
+
+
+ com.hazelcast
+ hazelcast
+
+
+ com.hazelcast
+ hazelcast-spring
+
+
+
+
+ infinispan
+
+
+ org.infinispan
+ infinispan-spring4-embedded
+
+
+ org.infinispan
+ infinispan-jcache
+
+
+
+
+ redis
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+
+ guava
+
+
+ com.google.guava
+ guava
+ 18.0
+
+
+
+