{"id":14972952,"url":"https://github.com/spring-projects/spring-data-geode","last_synced_at":"2025-10-19T11:30:17.559Z","repository":{"id":22779102,"uuid":"88178114","full_name":"spring-projects/spring-data-geode","owner":"spring-projects","description":"Spring Data support for Apache Geode","archived":false,"fork":false,"pushed_at":"2024-06-04T17:39:13.000Z","size":14530,"stargazers_count":52,"open_issues_count":59,"forks_count":38,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-01-29T14:23:02.670Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spring-projects.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.adoc","support":null,"governance":null}},"created_at":"2017-04-13T15:12:55.000Z","updated_at":"2024-10-28T06:47:32.000Z","dependencies_parsed_at":"2023-02-16T06:15:48.821Z","dependency_job_id":"56dce734-e63a-46e2-8e35-31d64fdb432b","html_url":"https://github.com/spring-projects/spring-data-geode","commit_stats":null,"previous_names":[],"tags_count":166,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-data-geode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-data-geode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-data-geode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-data-geode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spring-projects","download_url":"https://codeload.github.com/spring-projects/spring-data-geode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237116305,"owners_count":19258227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:47:48.674Z","updated_at":"2025-10-19T11:30:16.894Z","avatar_url":"https://github.com/spring-projects.png","language":"Java","readme":"image:https://spring.io/badges/spring-data-geode/ga.svg[Spring Data Geode,link=https://projects.spring.io/spring-data-geode#quick-start] image:https://spring.io/badges/spring-data-geode/snapshot.svg[Spring Data Geode,link=https://projects.spring.io/spring-data-geode#quick-start]\n\n= Spring Data for Apache Geode image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-geode%2Fmain\u0026subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-geode/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]]\n\nSpring Data for Apache Geode brings the full power of the Spring Framework to your Apache Geode applications.\n\n[[notice]]\n== NOTICE\n\n[[notice-2023-january]]\n*2023-January-17*:\n\nAt the end of 2022, VMware https://tanzu.vmware.com/content/blog/spring-for-vmware-gemfire-is-now-available[announced]\nthe general availability of the Spring for VMware GemFire portfolio of projects.\n\nWhile these Spring based projects for VMware GemFire are open source and a succession to the Spring for Apache Geode\nprojects, they are not a replacement. VMware GemFire forked from the Apache Geode project and is not open source.\nAdditionally, newer Apache Geode and VMware GemFire clients are not backwards compatible with older Apache Geode\nand VMware GemFire servers. You can begin the transition by starting https://docs.vmware.com/en/Spring-Data-for-VMware-GemFire/index.html[here].\n\nAlternatively, the Spring portfolio provides first-class https://docs.spring.io/spring-boot/docs/current/reference/html/io.html#io.caching.provider[integration]\nwith other comparable caching providers. Also, see https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#cache-store-configuration[here]\nand https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#cache-plug[here].\n\nFinally, keep in mind, the Spring for Apache Geode projects will still be maintained until OSS and commercial support\nends. Maintenance will only include CVE and critical fixes. No new features or major enhancements will be made.\nThe Spring Data for Apache Geode support timelines can be viewed https://spring.io/projects/spring-data-geode#support[here].\n\n[[notice-2022-october]]\n*2022-October-24*:\n\nAs of Spring Data `2022.0.0-RC1` (_Turing_-RC1) / `3.0.0-RC1`, the _Spring Data for Apache Geode_ (SDG) module\nhas been removed from the Spring Data BOM and Spring Data release train. SDG will no longer continue in\nthe `3.0` generation from this point forward.\n\nIn summary, VMware (VMW) made a https://markmail.org/message/oafksl5iufmqhuyg[decision] to discontinue all contributions\nto the Apache Geode project at the Apache Software Foundation (ASF). VMware has committed to the Apache Geode project\nuntil the end of October 2022. However, the plan is to transition the Apache Geode project responsibilities to another\nentity or group of individuals who are members of the PMC and are willing to maintain and manage the project going\nforward.\n\nUnfortunately, as of 2022-October-24, the Apache Geode project failed to secure at least 3 voting members on the PMC\nrequired to maintain and manage the project. So, a https://markmail.org/message/dfdkfmxcawcl4q7r[VOTE] was cast to move\nthe Apache Geode project to the Attic at the Apache Software Foundation. Clearly, this puts the _Spring Data for\nApache Geode_ (SDG) project at odds with the Apache Geode project, especially with respect to\nhttps://spring.io/projects/spring-data-geode#support[support timelines].\n\n_Spring Data for Apache Geode_ (SDG) `2.7.x` is already GA and based on Apache Geode `1.14.x`. Across the Spring\nportfolio there was no plan for a Spring Data `2.8` and a subsequent Spring Boot `2.8` to pick up Spring Data `2.8`.\nSDG `2.8` would have been the earliest opportunity to build support for Apache Geode `1.15`\n(See https://geode.apache.org/releases/[releases]).\n\nSince Spring Data / Spring Boot `2.7` are the last minor releases in our `2.x` release series, SDG `3.0` was then\nimmediately targeted for Apache Geode `1.15`. Although, given VMW's decision, we decided to cancel SDG `3.0` because\nit would extend our support timelines significantly past the October 2022 date committed to by VMW. As a result, support\nfor Apache Geode `1.15` was going to move into an extended SDG `2.8` release and proceed with a series of milestones\nand release candidates leading up to a final `2.8.0` GA in a relatively compressed timeframe.\n\nNow that this https://markmail.org/message/dfdkfmxcawcl4q7r[VOTE] has been cast, we have changed our decision\nand the Spring team will no longer proceed with SDG `2.8`. In addition, although we will honor our SDG project\ncommitments and https://spring.io/projects/spring-data-geode#support[support timelines], where SDG `2.7.x` OSS EOL\nends on 2023-May-05 and commercial EOL ends on 2024-Sept-01, the SDG project will now go into minimal maintenance\nmode where only CVEs and critical bugs will be addressed. No new features or enhancements to the SDG project will occur.\n\nFinally, VMW has intentions of resurrecting the _Spring Data for VMware GemFire_ (SDG) https://spring.io/projects/spring-data-gemfire[project],\nwhich will become the eventual successor of the _Spring Data for Apache Geode_ project. However, _Spring Data for VMware GemFire_\nwill be managed as an external, community-led project. _Spring Data for VMware GemFire_ will not be included in\nthe Spring Data BOM, will not be released as part of the Spring Data release train and will not be maintained by\nthe Spring (Data) team any longer.\n\nSpecifics of the _Spring Data for VMware GemFire_ project and timeframe are beyond the scope this notice, but more\ndetails will be provided in a blog post in the near future.\n\n\n[[features]]\n== Features\n\n* XML namespace to https://docs.spring.io/spring-data-geode/docs/current/reference/html/#bootstrap[configure and initialize Apache Geode resources declaratively with Spring]\n* Annotation model to https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config[quickly and easily get started with Apache Geode out-of-the-box]\n* Simplifies https://docs.spring.io/spring-data/geode/docs/current/reference/html/#apis[development with Apache Geode APIs]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#apis:spring-cache-abstraction[Spring Cache Abstraction backed by Apache Geode]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#mapping[Spring Data Mapping infrastructure applied to POJOs stored in Apache Geode]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#gemfire-repositories[Spring Data Repositories backed by Apache Geode]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#apis:transaction-management[Apache Geode Cache Transactions using Spring's Declarative Transaction Management]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#apis:global-transaction-management[Additional support for using Apache Geode in Global, JTA Transactions using Spring's Declarative Transaction Management]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#serialization[Enhanced support for Apache Geode Serialization]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#function-annotations[Annotations for Function Executions \u0026 Implementations]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#apis:continuous-query[Support for Continuous Query]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap:lucene[Enhanced support for Apache Lucene Integration]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#gemfire-bootstrap[Bootstrapping a Spring Context within Apache Geode]\n* https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config-security[Support for configuring Apache Geode Security with Apache Shiro]\n* Spring Tool Suite https://docs.spring.io/sts/nan/v310/NewAndNoteworthy.html[Spring Project Templates for Apache Geode]\n\n\n[[code-of-conduct]]\n== Code of Conduct\n\nThis project is governed by the https://github.com/spring-projects/.github/blob/e3cc2ff230d8f1dca06535aa6b5a4a23815861d4/CODE_OF_CONDUCT.md[Spring Code of Conduct].\nBy participating, you are expected to uphold this code of conduct. Please report unacceptable behavior to\nspring-code-of-conduct@pivotal.io.\n\n\n[[getting-started]]\n== Getting Started\n\nHere is a quick teaser of a Spring application using Spring Data Repositories in Java:\n\n[source,java]\n----\npackage com.example.app.model;\n\n@Region(\"People\")\npublic class Customer {\n\n\tprivate String firstName;\n\tprivate Strign lastName;\n\n\t// Getters and Setter omitted\n}\n\npackage com.example.app.repo;\n\npublic interface CustomerRepository extends CrudRepository\u003cCustomer, Long\u003e {\n\n  List\u003cPerson\u003e findByLastnameLike(String lastname);\n\n  List\u003cPerson\u003e findByFirstname(String firstname);\n}\n\npackage com.example.app.service;\n\n@Service\npublic class CustomereService {\n\n  private final CustomerRepository repository;\n\n  public MyService(CustomereService repository) {\n    this.repository = repository;\n  }\n\n  public void doWork() {\n\n    repository.deleteAll();\n\n    Customer customer = new Customer();\n    customer.setFirstname(\"John\");\n    customer.setLastname(\"Blum\");\n\n    repository.save(customer);\n\n    List\u003cCustomer\u003e lastNameResults = repository.findByLastnameLike(\"B%\");\n    List\u003cCustomer\u003e firstNameResults = repository.findByFirstname(\"John\");\n }\n}\n----\n\nConfigure an Apache Geode cache and Region (REPLICATE, PARTITION and so on):\n\n[source,xml]\n----\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n  xmlns:gfe=\"http://www.springframework.org/schema/gemfire\"\n\txmlns:gfe-data=\"http://www.springframework.org/schema/data/gemfire\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\n  xsi:schemaLocation=\"\n    http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd\n    http://www.springframework.org/schema/geode https://www.springframework.org/schema/geode/spring-geode.xsd\n\thttp://www.springframework.org/schema/data/gemfire https://www.springframework.org/schema/data/geode/spring-data-gemfire.xsd\"\u003e\n\n  \u003cgfe:client-cache/\u003e\n\n  \u003cgfe:client-region id=\"People\" shortcut=\"LOCAL\"\u003e\n\n  \u003cbean id=\"gemfireTemplate\" class=\"org.springframework.data.gemfire.GemfireTemplate\" p:region-ref=\"ExampleRegion\"/\u003e\n\t\u003cgfe-data:repositories base-package=\"example.app\"/\u003e\n\u003c/beans\u003e\n----\n\n=== Maven configuration\n\nAdd the Maven dependency:\n\n[source,xml]\n----\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.springframework.data\u003c/groupId\u003e\n  \u003cartifactId\u003espring-data-geode\u003c/artifactId\u003e\n  \u003cversion\u003e${version}.RELEASE\u003c/version\u003e\n\u003c/dependency\u003e\n----\n\nIf you'd rather use the latest snapshots of the upcoming major/minor version, use our Maven snapshot repository\nand declare the appropriate dependency version:\n\n[source,xml]\n----\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.springframework.data\u003c/groupId\u003e\n  \u003cartifactId\u003espring-data-geode\u003c/artifactId\u003e\n  \u003cversion\u003e${version}.BUILD-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003crepository\u003e\n  \u003cid\u003espring-snapshot\u003c/id\u003e\n  \u003cname\u003eSpring Snapshot Repository\u003c/name\u003e\n  \u003curl\u003ehttps://repo.spring.io/snapshot\u003c/url\u003e\n\u003c/repository\u003e\n----\n\n\n[[help]]\n== Getting Help\n\nHaving trouble with Spring Data? We’d love to help!\n\n* Check the\nhttps://docs.spring.io/spring-data/geode/docs/current/reference/html/[reference documentation], and https://docs.spring.io/spring-data/geode/docs/current/api/[Javadocs].\n* Learn the Spring basics – Spring Data builds on Spring Framework, check the https://spring.io[spring.io] web-site for a wealth of reference documentation.\nIf you are just starting out with Spring, try one of the https://spring.io/guides[guides].\n* If you are upgrading, check out the https://docs.spring.io/spring-data/geode/docs/current/changelog.txt[changelog] for \"`new and noteworthy`\" features.\n* Ask a question - we monitor https://stackoverflow.com[stackoverflow.com] for questions tagged with https://stackoverflow.com/tags/spring-data[`spring-data-geode`].\nYou can also chat with the community on https://gitter.im/spring-projects/spring-data[Gitter].\n* Report bugs with Spring Data for Apache Geode at https://github.com/spring-projects/spring-data-geode/issues[github.com/spring-projects/spring-data-geode/issues].\n\n\n[[issues]]\n== Reporting Issues\n\nSpring Data uses GitHub Issues as the issue tracking system to record bugs and feature requests. If you want to raise an issue, please follow the recommendations below:\n\n* Before you log a bug, please search\nhttps://github.com/spring-projects/spring-data-geode/issues[GitHub Issues] to see if someone has already reported the problem.\n* If the issue does not already exist, https://github.com/spring-projects/spring-data-geode/issues[create a new issue].\n* Please provide as much information as possible with the issue report, we like to know the version of Spring Data that you are using and JVM version.\n* If you need to paste code, or include a stack trace use markdown {backtick}{backtick}{backtick} escapes before and after your text.\n* If possible try to create a test case or project that reproduces the issue. Attach a link to your code or a compressed file containing your code.\n\n\n[[building-from-source]]\n== Building from Source\n\nYou don’t need to build from source to use Spring Data (binaries in https://repo.spring.io[repo.spring.io]), but if you want to try out the latest and greatest, Spring Data can be easily built with the https://github.com/takari/maven-wrapper[maven wrapper].\nYou also need JDK 1.8.\n\n[source,bash]\n----\n $ ./mvnw clean install\n----\n\nIf you want to build with the regular `mvn` command, you will need https://maven.apache.org/run-maven/index.html[Maven v3.5.0 or above].\n\n_Also see link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] if you wish to submit pull requests, and in particular please sign the https://cla.pivotal.io/sign/spring[Contributor’s Agreement] before your first non-trivial change._\n\n\n[[building-ref-doc]]\n=== Building reference documentation\n\nBuilding the documentation builds also the project without running tests.\n\n[source,bash]\n----\n $ ./mvnw clean install -Pdistribute\n----\n\nThe generated documentation is available from `target/site/reference/html/index.html`.\n\n\n[[license]]\n== License\n\nSpring Data for Apache Geode is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-projects%2Fspring-data-geode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspring-projects%2Fspring-data-geode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-projects%2Fspring-data-geode/lists"}