[[new-features]]
= New Features

NOTE: As of the 1.2.0.RELEASE, this project, formerly known as _Spring Pivotal GemFire_, has been renamed to
_Spring Data for Pivotal GemFire_ to reflect that it is now a module of the
http://projects.spring.io/spring-data/[Spring Data] project
and built on https://pivotal.io/pivotal-gemfire[Pivotal GemFire].

[[new-in-1-2-0]]
== New in the 1.2 Release

* Full support for Pivotal GemFire configuration via the SDG *gfe* namespace. Now Pivotal GemFire components may be configured completely without requiring a native *cache.xml* file.
* WAN Gateway support for Pivotal GemFire 6.6.x. See <<bootstrap:gateway>>.
* Spring Data Repository support using a dedicated SDG namespace, *gfe-data*. See <<gemfire-repositories>>
* Namespace support for registering Pivotal GemFire Functions. See <<bootstrap:function>>
* A top-level `<disk-store>` element has been added to the SDG *gfe* namespace to allow sharing of persist stores among Regions,
and other components that support persistent backup or overflow. See <<bootstrap-diskstore>>
+
WARNING: The `<*-region>` elements no longer allow a nested `<disk-store>` element.
+
* Pivotal GemFire Sub-Regions are supported via nested `<*-region>` elements.
* A `<local-region>` element has been added to configure a Local Region.
* Support for the re-designed WAN Gateway in Pivotal GemFire 7.0.

[[new-in-1-3-0]]
== New in the 1.3 Release

* Annotation support for Pivotal GemFire Functions. It is now possible to declare and register Functions written as POJOs using annotations. In addition, Function executions are defined as
annotated interfaces, similar to the way Spring Data Repositories work. See <<function-annotations>>.
* Added a `<datasource>` element to the SDG *gfe-data* namespace to simplify establishing a basic <<data-access:datasource,client connection>> to a Pivotal GemFire data grid.
* Added a `<json-region-autoproxy>` element to the SDG *gfe-data* namespace to <<bootstrap:region:json,support JSON>> features introduced
in Pivotal GemFire 7.0, enabling Spring AOP to perform the necessary conversions automatically on Region operations.
* Upgraded to Pivotal GemFire 7.0.1 and added namespace support for new AsyncEventQueue attributes.
* Added support for setting subscription interest policy on Regions.
* Support for void returns on Function executions.  See <<function-annotations>> for complete details.
* Support for persisting Local Regions. See <<bootstrap:region:local>> and <<bootstrap:region:common:attributes>>.
* Support for entry time-to-live and entry idle-time on a Pivotal GemFire Client Cache. See <<bootstrap:cache:client>>.
* Support for multiple Spring Data for Pivotal GemFire web-based applications using a single Pivotal GemFire cluster, operating concurrently inside tc Server.
* Support for concurrency-checks-enabled on all Pivotal GemFire Cache Region definitions using the SDG *gfe* namespace. See <<bootstrap:region:common:attributes>>.
* Support for Cache Loaders and Cache Writers on Client, Local Regions. See <<bootstrap:region:common:loaders-writers>>.
* Support for registering CacheListeners, AsyncEventQueues and Gateway Senders on Pivotal GemFire Cache Sub-Regions.
* Support for PDX persistent keys in Pivotal GemFire Regions.
* Support for correct Partition Region bean creation in a Spring context when collocation is specified with the *colocated-with* attribute.
* Full support for Pivotal GemFire Cache Sub-Regions using proper, nested `<*-region>` element syntax in the SDG *gfe* namespace.
* Upgraded Spring Data for Pivotal GemFire to Spring Framework 3.2.8.
* Upgraded Spring Data for Pivotal GemFire to Spring Data Commons 1.7.1.

[[new-in-1-4-0]]
== New in the 1.4 Release

* Upgrades to Pivotal GemFire 7.0.2.
* Upgrades to _Spring Data Commons_ 1.8.x.RELEASE.
* Upgrades to _Spring Framework_ 3.2.x.RELEASE.
* Integrates _Spring Data for Pivotal GemFire_ with _Spring Boot_, which includes both a *spring-boot-starter-data-gemfire* POM
along with a _Spring Boot_ sample application demonstrating Pivotal GemFire Cache Transactions configured with SDG
and bootstrapped with _Spring Boot_.
* Support for bootstrapping a Spring `ApplicationContext` in a Pivotal GemFire Server when started from _Gfsh_.
See <<gemfire-bootstrap>> for more details.
* Support for persisting application domain object/entities to multiple Pivotal GemFire Cache Regions.
See <<mapping.entities>> for more details.
* Support for persisting application domain object/entities to Pivotal GemFire Cache Sub-Regions, avoiding collisions
when Sub-Regions are uniquely identifiable, but identically named.
See <<mapping.entities>> for more details.
* Adds strict XSD type rules to, and full support for, Data Policies and Region Shortcuts
on all Pivotal GemFire Cache Region types.
* Changed the default behavior of SDG `<*-region>` elements from lookup to always create a new Region
along with an option to restore old behavior using the *ignore-if-exists* attribute.
See <<bootstrap:region:common:attributes, Common Region Attributes>>
and <<bootstrap:region:common:regions-subregions-lookups-caution>>
for more details.
* _Spring Data for Pivotal GemFire_ can now be fully built and ran on JDK 7 and JDK 8.

CAUTION: Pivotal GemFire has not yet been fully tested and certified to run JDK 8; See
http://gemfire.docs.pivotal.io/docs-gemfire/supported_configs/supported_configs_and_system_reqs.html[Pivotal GemFire User Guide]
for additional details.

[[new-in-1-5-0]]
== New in the 1.5 Release

* Maintains support for Pivotal GemFire 7.0.2.
* Upgrades to _Spring Data Commons_ 1.9.x.RELEASE.
* Upgrades to _Spring Framework_ 4.0.x.RELEASE.
* Reference Guide migrated to Asciidoc.
* Renewed support for deploying _Spring Data for Pivotal GemFire_ in an OSGi container.
* Removed all default values in the _Spring Data for Pivotal GemFire_ XML namespace Region-type elements to
rely on Pivotal GemFire defaults instead.
* Added convenience to automatically create Disk Store directory locations.
* SDG annotated Function implementations can now be executed from _Gfsh_.
* Enable Pivotal GemFire `GatewayReceivers` to be started manually.
* Support for Auto Region Lookups.  See <<bootstrap:region:auto-lookup>> for further details.
* Support for Region Templates.  See <<bootstrap:region:common:region-templates>> for further details.

[[new-in-1-6-0]]
== New in the 1.6 Release

* Upgrades to Pivotal GemFire 8.0.0.
* Upgrades to _Spring Data Commons_ 1.10.x.RELEASE.
* Maintains support on _Spring Framework_ 4.0.x.RELEASE.
* Adds support for Pivotal GemFire 8's new Cluster-based Configuration.
* Enables 'auto-reconnect' functionality to be employed in Spring-configured Pivotal GemFire Servers.
* Allows the creation of concurrent and parallel Async Event Queues and Gateway Senders.
* Adds support for Pivotal GemFire 8's Region data compression.
* Adds attributes to set both critical and warning percentages on Disk Store usage.
* Supports the capability to add the new EventSubstitutionFilters to GatewaySenders.

[[new-in-1-7-0]]
== New in the 1.7 Release

* Upgrades to Pivotal GemFire 8.1.0.
* Upgrades to _Spring Data Commons_ 1.11.x.RELEASE.
* Upgrades to _Spring Framework_ 4.1.x.RELEASE.
* Early access support for Pivotal GemFire.
* Support for adding _Spring_-defined Cache Listeners, Loaders and Writers on "existing" Pivotal GemFire Regions
configured in _Spring_ XML, `cache.xml` or even with Pivotal GemFire's _Cluster Config_.
* _Spring_ JavaConfig support added to `SpringContextBootstrappingInitializer`.
* Support for custom `ClassLoaders` in `SpringContextBootstrappingInitializer` to load _Spring_-defined bean classes.
* Support for `LazyWiringDeclarableSupport` re-initialization and complete replacement for `WiringDeclarableSupport`.
* Adds `locators` and `servers` attributes to the `<gfe:pool>` element allowing variable Locator/Server
endpoint lists configured with _Spring's_ property placeholders.
* Enables the use of `<gfe-data:datasource>` element with non-_Spring_ configured Pivotal GemFire Servers.
* Multi-Index definition and creation support.
* <<bootstrap:region:expiration:annotation>>
* <<gemfire-repositories:oql-extensions>>
* <<bootstrap:snapshot>>

[[new-in-1-8-0]]
== New in the 1.8 Release

* Upgrades to Pivotal GemFire 8.2.0.
* Upgrades to _Spring Data Commons_ 1.12.x.RELEASE.
* Upgrades to _Spring Framework_ 4.2.x.RELEASE.
* Adds Maven POM to build SDG with Maven.
* Adds support for CDI.
* Enables a `ClientCache` to be configured without a `Pool`.
* `<gfe:cache>` and `<gfe:client-cache>` elements `use-bean-factory-locator` attributes now default to *false*.
* Adds `durable-client-id` and `durable-client-timeout` attributes to `<gfe:client-cache>`.
* GemfirePersistentProperty now properly handles other non-entity, scalar-like types (e.g. `BigDecimal`, `BigInteger`).
* Prevents SDG-defined `Pools` from being destroyed before `Regions` that use those `Pools`.
* Handles case-insensitive Pivotal GemFire OQL queries defined as _Repository_ query methods.
* Changes `Pivotal GemFireCache.evict(key)` to call `Region.remove(key)` in SDG's _Spring Cache Abstraction_ support.
* Fixes `RegionNotFoundException` with _Repository_ queries on a client `Region` associated with a specific `Pool`
configured for Pivotal GemFire server groups.
* Changes `Gateway Senders/Receivers` to no longer be tied to the _Spring_ container.

[[new-in-1-9-0]]
== New in the 1.9 Release

* Upgrades to Pivotal GemFire 8.2.4.
* Upgrades to _Spring Data Commons_ 1.13.x.RELEASE.
* Upgrades to _Spring Framework_ 4.3.x.RELEASE.
* Introduces an entirely new Annotation-based configuration model inspired by _Spring Boot_.
* Adds support for suspend and resume in the `GemfireTransactionManager`.
* Adds support in _Repositories_ to use the bean `id` property as the Region key when the `@Id` annotation
is not present.
* Uses `MappingPdxSerializer` as the default Pivotal GemFire serialization strategy when `@EnablePdx` is used.
* Enables `GemfireCacheManager` to explicitly list Region names to be used in the _Spring's Caching Abstraction_.
* Configure Pivotal GemFire Caches, CacheServers, Locators, Pools, Regions, Indexes, DiskStores, Expiration, Eviction,
Statistics, Mcast, HttpService, Auth, SSL, Logging, System Properties.
* Repository support with multiple _Spring Data_ modules on the classpath.

[[new-in-2-0-0]]
== New in the 2.0 Release

* Upgrades to Pivotal GemFire 9.0.x.
* Upgrades to _Spring Data Commons_ 2.0.x.RELEASE.
* Upgrades to _Spring Framework_ 5.0.x.RELEASE.
* Reorganizes the SDG codebase by better packaging different classes and components by concern.
* Adds extensive support for Java 8 types, particularly in the SD _Repository_ abstraction.
* Changes to the _Repository_ interface and abstraction, e.g. IDs are no longer required to be `java.io.Serializable`.
* Sets `@EnableEntityDefinedRegions` annotation `ignoreIfExists` attribute to *true* by default.
* Sets `@Indexed` annotation `override` attribute to *false* by default.
* Renames `@EnableIndexes` to `@EnableIndexing`.
* Introduces a `InterestsBuilder` class to easily and conveniently express Interests in keys/values between client
and server when using JavaConfig.
* Adds support for Off-Heap, Redis Adapter and Pivotal GemFire's new Security framework to the Annotation configuration model.
