In the "Caching" chapter of the ref doc on "Hazelcast", could we please clarify and make it apparent that the spring.cache.type property is to be used specifically for Spring Cache Abstraction, CacheManager implementations, and does not apply (indirectly) to caching providers, such as Hazelcast simply because they are JCache compliant.

By way of example, even if Hazelcast is the only caching provider on the Spring Boot application classapth, and a user explicitly sets the spring.cache.type property to "hazelcast", it leads to the following Exception:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheAutoConfigurationValidator' defined in class path resource [org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.class]: No cache manager could be auto-configured, check your configuration (caching type is 'HAZELCAST')
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory
...
..
.
Caused by: java.lang.IllegalArgumentException: No cache manager could be auto-configured, check your configuration (caching type is 'HAZELCAST')
    at org.springframework.util.Assert.notNull(Assert.java:222)
    at org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration$CacheManagerValidator.afterPropertiesSet(CacheAutoConfiguration.java:105)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1799)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1749)
    ... 93 more

I was anticipating and expecting that Spring Boot's JCache caching auto-configuration would automatically apply since Hazelcast is a JCache caching provider compliant implementation and that the JCache CacheManager bean (here) would subsequently get wrapped by the Spring CacheManager bean implementation (here, for JCache).

But, in fact, when the spring.cache.type property is set to "hazelcast", then Spring Boot auto-configuration expects a Spring CacheManager type and the JCache auto-configuration no longer applies in this case. In other words, the Hazelcast (Spring) HazelcastCacheManager implementation would need to be declared/defined in the Spring context.

NOTE: if the spring.cache.type property is set to "jcache", then the scenario above works as expected with Hazelcast as the caching provider in JCache and Spring's Cache Abstraction. That the Spring Boot auto-configuration for JCache (using Hazecast) works as expected. Of course, the javax.cache:cache-api dependency must be on the application classpath.