Hi Parin- Thank you for the kind words; means a lot to me and I definitely appreciate it.
So, good news! I do have an example (several, actually) of using the new Apache Geode Security Model (e.g. SecurityManager) with *Spring Data Geode*. In fact that was the central theme in the last release of SDG 1.0.0.INCUBATING-RELEASE. See my blog post here <https://spring.io/blog/2016/11/10/spring-data-geode-1-0-0-incubating-release-released> [1] (the "*Security*" piece starts a couple of sections down after "*What's New* "). The actual code I built <https://github.com/jxblum/contacts-application/blob/apache-geode/security-example/src/test/java/example/app/geode/security/GeodeSecurityIntegrationTests.java> [2] when writing the blog post is part of (what will eventually become) the *Reference Implementation* (RI) of *Spring Data GemFire/Geode*. Unfortunately, I have not had a lot of time to document this yet either in SDG Ref Guide or in READMEs associated with the RI repo. But, hopefully, the blog post helps and the code is self-explanatory; docs are coming, I promise. However, I have since then added automated tests <https://github.com/spring-projects/spring-data-geode/tree/master/src/test/java/org/springframework/data/gemfire/config/annotation> [3] for the Security bits based on this example, since it is important to have both the client as well as the server-side of the Security equation. In the example, I think I setup a secure server manually where as the tests actually configure and fork one. Anyway, if you questions, please do let me know. As for the new release.... Great question and one that seems to be of most interests to the community right now where *Spring* and Geode intersect. This was recently asked on *StackOverflow* <https://stackoverflow.com/questions/44204043/spring-support-for-apache-geode-spring-data-geode> [4] as well. My answer to the SO post was somewhat verbose, so let me recap here for everyones benefit... I am planning a *Spring Data Geode* *1.1.0.RELEASE* that builds on Apache Geode *1.1.1*. The 2 central themes in this are... 1. Early *Lucene* support. As you may know, Apache Geode now integrates with Apache Lucene to create Lucene Indexes for textual based searches on data in GemFire Regions. I added first class support in SDG <http://docs.spring.io/spring-data-gemfire/docs/2.0.0.M3/reference/html/#bootstrap:lucene> [5] above and beyond what even Apache Geode is capable of (e.g. projections/mapping based on *Spring Data Commons* infrastructure) for this new API/integration. This is *done*. 2. *Annotation config* model extensions. Some people are already familiar and even using with the new, *Spring Boot* style Annotation support I added in SDG. However, 1 of the initial limitations of the Annotation config was having the ability to "dynamically" configure aspects of Geode (e.g. port numbers <https://github.com/spring-projects/spring-data-geode/blob/master/src/main/java/org/springframework/data/gemfire/config/annotation/EnableCacheServer.java#L134> [6]) when the Annotations are used. My goal was to preserve the "type-safe" nature of the Annotation attributes while still allowing those attributes to be dynamically configured. Of course, I could have used Spring property placeholders and SpEL expressions, but that would have required me to give up type safety and make all the Annotation attributes Strings... blah, no! So, instead, I am introducing Configurers and well-known, document properties that users can set in an application.properties file that correspond to Annotation attributes where the precedence is... *Annotation attribute* -> *Property* -> *XYZConfigurer* (e.g. CacheServerConfigurer <https://github.com/spring-projects/spring-data-geode/blob/master/src/main/java/org/springframework/data/gemfire/config/annotation/CacheServerConfigurer.java> [7]). Since the Annotations create *Spring* beans for Geode components for you, with very little effort (i.e. using OOTB defaults when attributes are not customized), the Configurers give you a way to access the "configuration" (on the appropriate Spring FactoryBean) before the Geode component is created. To use a Configurer, you register it like any other Spring bean, which then gives you the ability to also use Spring property placeholder and SpEL expressions in those JavaConfig bean definitions, therefore kill 2 birds with 1 stone (sorry, that sounds cruel; figure of speech). Here is an example <https://github.com/spring-projects/spring-data-geode/blob/master/src/test/java/org/springframework/data/gemfire/config/annotation/CacheServerConfigurerIntegrationTests.java#L87-L114> [8]. So, the Configurers are *done*, the Well-Known/Documented Properties are a *WIP*, as well as the Ref Guide documentation, phew. This dynamic configuration support using Annotations was requested and needed by several members of the Geode community that use *Spring*, like *Roger Vandusen* from *Mastercard*. I have not forgotten about you my friend. I *sincerely apologize to the community* that this new feature support and the next release of SDG for Apache Geode 1.1.1 has taken so long. Anyway, once I get the last bit done, I will push 1 *final* *Spring Data Geode* *1.1.0.RELEASE* based on Apache Geode 1.1.1. I say "*final*" because *Spring Data Geode* is becoming a new, *top-level* *Spring Data* module in the *Spring Data* portfolio <http://projects.spring.io/spring-data/> [9] (like *Spring Data GemFire*, but separate now, yay). I am super excited about this and I hope the community will be too. It already has a new GitHub Repo home, here <https://github.com/spring-projects/spring-data-geode> [10]. So, *Spring Data Geode* will be part of the *Spring Data Release Train <https://github.com/spring-projects/spring-data-commons/wiki>* [11] (from *Kay* onward; see right-side nav bar on Wiki page), which means SD Geode will have predictable and regular releases, and will be based on Apache Geode *1.2.0*. However, it also means that Apache Geode 1.2.0 needs to be released before SD Geode can be added to the train. And, it also means several other important things... 1. I will *not* be doing individual releases of SD Geode going forward after SD Geode is added to the train. 2. SD Geode will be at version 2.0.0 (based on Apache Geode 1.2.0); so the version numbers between Apache Geode and SD Geode will not longer align (which is actually the same as *Spring Data GemFire* for Pivotal GemFire, too), partly because... 3. SDG also builds on *Spring* *5*, with the major themes being *Java 8*, *Reactive* and *Functional programming* support, so we are bumping the major version for all SD modules. Anyway, I hope this helps and clears up the muddy waters on what has been happening on *Spring Data Geode*. I am also involved in several other things, like... 1. Moving the *Spring Boot* auto-configuration support for Apache Geode/Pivotal GemFire I built into *Spring Boot* to a new home <https://github.com/spring-projects/spring-boot-data-gemfire> [12], a major WIP. 2. Moving the *Spring Session Data Geode/GemFire* support to its new home <https://github.com/spring-projects/spring-session-data-geode> [13], as of *Spring Session* 2.0, also a major WIP. 3. And, building *Spring* support in PCF for Pivotal GemFire/Apache Geode. Let me know if you have other questions. Cheers my friend, John [1] https://spring.io/blog/2016/11/10/spring-data-geode-1-0-0-incubating-release-released [2] https://github.com/jxblum/contacts-application/blob/apache-geode/security-example/src/test/java/example/app/geode/security/GeodeSecurityIntegrationTests.java [3] https://github.com/spring-projects/spring-data-geode/tree/master/src/test/java/org/springframework/data/gemfire/config/annotation [4] https://stackoverflow.com/questions/44204043/spring-support-for-apache-geode-spring-data-geode [5] http://docs.spring.io/spring-data-gemfire/docs/2.0.0.M3/reference/html/#bootstrap:lucene [6] https://github.com/spring-projects/spring-data-geode/blob/master/src/main/java/org/springframework/data/gemfire/config/annotation/EnableCacheServer.java#L134 [7] https://github.com/spring-projects/spring-data-geode/blob/master/src/main/java/org/springframework/data/gemfire/config/annotation/CacheServerConfigurer.java [8] https://github.com/spring-projects/spring-data-geode/blob/master/src/test/java/org/springframework/data/gemfire/config/annotation/CacheServerConfigurerIntegrationTests.java#L87-L114 [9] http://projects.spring.io/spring-data/ [10] https://github.com/spring-projects/spring-data-geode [11] https://github.com/spring-projects/spring-data-commons/wiki [12] https://github.com/spring-projects/spring-boot-data-gemfire [13] https://github.com/spring-projects/spring-session-data-geode On Sat, Jun 3, 2017 at 12:12 AM, Parin dazz <[email protected]> wrote: > Hi, > > Do we have any example on how to use/implement security manager with > spring-data-geode? > > More, haven't heard anything for new release of spring-data-geode :) Very > much excited for the new features and hard work john is doing. Any news on > release date? > > > Regards, > Parin > -- -John john.blum10101 (skype)
