Most new customers just want Geode/ GemFire to work - easily - because most projects don't require dealing with PDX. In fact, some explicitly tell me that they don't want to know about PDX because it's a distraction for the simple use-cases. This is, of course, with the caveat that unless they need it. But it is not to Geode's advantage if a new user gets a proprietary PDX object and has to do research to figure out what to do with it.
However, I definitely disagree with this... *> I think that customers would be ok to run PdxInstance.getObject() to get their pojos when required.* On Mon, Mar 27, 2017 at 4:32 PM, John Blum <jb...@pivotal.io> wrote: > I generally don't see a problem with this from the *Spring* side, i.e. SDG > does not care as long as the "default" PdxSerializer (e.g. > ReflectionBasedAutoSerializer or whatever) is "overridable" before cache > initialization! > > However, I definitely disagree with this... > > *> I think that customers would be ok to run PdxInstance.getObject() to > get their pojos when required.* > > IMO, I think (PDX) serialization really ought be treated as an "internal" > concern and really should NOT be exposed to users. This is more of an > implementation detail than anything else, and in an application, as a > developer, I can tell you what I want to manipulate my POJOs. You do not > see Hibernate or other mapping/persistent frameworks having you deal with > the "internal" classes to make an entity "persistent" (i.e. attached vs. > non-attached, etc). > > Longer term, I think the serialization mechanics should be "configurable", > being able to plugin whatever serialization framework (e.g. Avro, Protobuf) > makes sense for my application. > > $0.02 > -j > > > > On Mon, Mar 27, 2017 at 1:15 PM, Udo Kohlmeyer <ukohlme...@pivotal.io> > wrote: > > > +1 I think we should make the default serialization mechanism to be PDX. > > We should not concern ourselves with Java serialization at all anymore. > > > > +1 pdx-read-serialization=true ... I think we should prefer PdxInstance > > objects over customer POJOs. I think that customers would be ok to run > > PdxInstance.getObject() to get their pojos when required. But maybe to > > start having customers use a more "optimal" serialization mechanism and > > approach, a slight nudge into the PDXInstance direction is not that bad. > > > > In addition to that, it might help if our own code expect PdxInstances > > over Pojos. > > > > --Udo > > > > > > On 3/27/17 12:58, Swapnil Bawaskar wrote: > > > >> I believe it would be much better user experience if we just serialized > >> user's domain object without requiring the user to configure anything. > >> Currently, we require that the user specify that they want to use the > >> ReflectionBasedAutoSerializer and the pattern that matches the domain > >> objects. > >> > >> Looking at this code > >> <https://github.com/apache/geode/blob/8bf39571471642beaaa36c > >> 9626a61a90bd3803c2/geode-core/src/main/java/org/apache/ > >> geode/pdx/internal/AutoSerializableManager.java#L213> > >> it > >> looks like the pattern can be made optional. Also, we can go ahead and > >> configure ReflectionBasedAutoSerializer to be set by default on Cache > >> startup (if one is not specified already). We should also set > >> pdx-read-serialized to true in this case. > >> For advanced use cases where the user wishes to exclude certain fields, > >> they can specify the pattern. > >> If the users are using DataSerializable, that should still take > precedence > >> over PDX, so we won't break existing users. > >> > >> Are there any major concerns around this approach? > >> > >> Thanks! > >> Swapnil. > >> > >> > > > > > -- > -John > john.blum10101 (skype) >