There's two issues with GemfireCache currently:
1. It doesn't yet implement Spring 4.1's putIfAbsent(…)
2. The implementation of Spring 4's get(Object key, Class<T> type) doesn't adhere to the contract specified in Cache. type can be null and the implementation needs to throw an IllegalStateException if the value in the cache doesn't match the type.