|John Blum||Jan 24, 2018 12:31 pm|
|Subject:||Roadmap and Upcoming Features for Spring Data for Apache Geode 2.1 (SD Lovelace)...|
|From:||John Blum (jbl...@pivotal.io)|
|Date:||Jan 24, 2018 12:31:07 pm|
Hi Apache Geode Community-
Now that SDG 2.0 is fairly stable (entering its 3rd service release already now) and I have resolved all known issues, particularly with the new SDG Annotation configuration, I figured I would take this opportunity to let you all know about some of the features I have planned for the next SD Release Train, Lovelace , after Ada Lovelace .
First, let me clarify that I am not planning any new significant enhancements or additions in the 2.0 line going forward; it will mostly consist of bug fixes and minor enhancements, i.e. be in full maintenance mode.
However, I will just add that I am particularly proud of the new SDG Annotation config, largely introduced in 2.0, but technically started in Spring Data GemFire 1.9. It has paid dividends not only in developing new (compound) features in SDG quickly, building on a solid, highly reusable foundation, but it is greatly simplified my testing efforts. Expect this only to improve with time your feedback.
So, in SD Lovelace, I plan to...
1. Repository Query Projections - SGF-523.  2. Repository Paging Support - SGF-524.  (NOTE: Sorting is already supported) 3. Support for Function Executions on Repositories (i.e. *@OnRegion*) - SGF-452.  4. Reactive Repository Support, think Repository query invocations returning a CQ wrapped with a Flux - SGF-377.  5. POJO Annotated Cache Callbacks - SGF-453. 
In addition, some other notables include...
6. AEQ + Listener Annotation configuration support - SGF-551.  7. Gateway Sender/Receiver Annotation configuration support - SGF-521 & SGF-550.  &  8. Integration with Spring Security - SGF-684.  9. Integration with Micrometer (which Spring Boot 2.0's new Actuator is based on) - SGF-671.  10. (Possible) Integration with Pivotal Cloud Foundry's New Function Service (Serverless with PFS) 
You can see more highlights and a summary of what came to be in Spring Data Kay as well as the plan for Spring Data Lovelace in my ~30 min *SpringOne Platform 2017* talk, "*Simplifying Apache Geode with Spring Data*". 
Along with SDG, I also have 2 new projects I am simultaneously launching...
1. *Spring Boot for Apache Geode* (or *Spring Boot Data Geode*) - building on SDG's Annotation configuration model, but without need to explicitly declare the Annotations, using auto-configuration and CLASSPATH dependency detection/enablement. 
This work is particularly important for PCF/PCC (Pivotal Cloud Cache) integration making moving between PCF and your local dev environment seamless, the goal being, 0 to very little configuration changes, i.e. it should just work! PCC on PCF really is the best way to manage Apache Geode/Pivotal GemFire.
2. *Spring Data Tests 4 Pivotal GemFire/Apache Geode* - I have started development/work on a test framework to simplify both Unit and Integration Testing of Apache Geode applications in *Spring* context, using *Spring's* TestContext framework  along with JUnit 5, Mockito and a few other things. Technically, this development began long ago (in a galaxy far far away ;-) in SDG and I am just uplifting, refactoring and polishing this code into a proper test framework that all Spring/Apache Geode users can leverage.
Many people have asked me about this; I (eventually) plan to deliver, ;-).
You can follow this project here .
3. I am exploring enhancements to *Spring Session for Apache Geode* as well, things such as fixed-length expiration along with TTL. See here  for more details.
4. Finally, I am also planning on an major overhaul of the examples  along with making further improvements to the documentation  & , adding more Guides on spring.io/guides , etc.
I do keep the *Contacts Application* Reference Implementation (RI)  up-to-date and it is a very good reference for the latest developments in SDG.
Clearly, there is no shortage of things to do. All feedback and contributions are welcomed.
 https://github.com/spring-projects/spring-data-commons/wiki/Release-Train-Lovelace  https://en.wikipedia.org/wiki/Ada_Lovelace  https://jira.spring.io/browse/SGF-523  https://jira.spring.io/browse/SGF-524  https://jira.spring.io/browse/SGF-452  https://jira.spring.io/browse/SGF-377  https://jira.spring.io/browse/SGF-453  https://jira.spring.io/browse/SGF-551  https://jira.spring.io/browse/SGF-521  https://jira.spring.io/browse/SGF-5510  https://jira.spring.io/browse/SGF-684  https://jira.spring.io/browse/SGF-671  https://pivotal.io/platform/pivotal-function-service  https://www.youtube.com/watch?v=OvY5wzCtOV0  https://github.com/spring-projects/spring-boot-data-geode#spring-boot-for-apache-geode  https://docs.spring.io/spring/docs/5.0.2.RELEASE/spring-framework-reference/testing.html#testing  https://github.com/jxblum/spring-data-tests-4-gemfire  https://github.com/spring-projects/spring-session-data-geode/issues  https://github.com/spring-projects/spring-gemfire-examples  https://docs.spring.io/spring-data/geode/docs/current/reference/html/  https://docs.spring.io/spring-data/geode/docs/current/api/  https://spring.io/guides  https://github.com/jxblum/contacts-application