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)

Reply via email to