[infinispan-dev] Dynamic Externalizers sorted for ISPN-986 - looking for some feedback

Galder Zamarreño galder at redhat.com
Tue Apr 12 03:17:09 EDT 2011


On Apr 11, 2011, at 12:06 PM, Galder Zamarreño wrote:

> Guys, any thoughts on this? I want this in for BETA2...
> 
> On Apr 1, 2011, at 5:54 PM, Galder Zamarreño wrote:
> 
>> Hi,
>> 
>> Re: https://issues.jboss.org/browse/ISPN-986
>> 
>> As indicated in my comments, there's two room for two types of serialization mechanisms: one for end users and the other for SPIs.
>> 
>> I've got a solution for this in https://github.com/galderz/infinispan/commit/09096f7998c0d0a5aae76d55bf59c72fe1cb510e and wanted to give a heads up to everyone on what it involves:
>> 
>> - Two separate externalizer interfaces: Externalizer (which currently, to disrupt as little code as possible, is named EndUserExternalier) and ExternalizerSpi or ServiceProviderExternalizer (currently named Externalizer). The first API is basic read/write methods and the second one with a couple of more methods for more specialised behaivour. Do people like these names? Or can someone come up with better names? More detailed info on the use cases in the JIRA.
> 
> I'm currently leaning towards: Externalizer (only readObject/writeObject methods) and ExternalizerSpi (would contain the current https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/marshall/Externalizer.java)

Actually, I don't like ExternalizerSpi name, it makes configuration getters ackward: getExternalizerSpis...

Instead I'm leaning for: Externalizer and AdvancedExternalizer which maps very nicely with Cache and AdvancedCache and makes getters more readable: getAdvancedExternalizers.... much clearer :)

> 
>> 
>> - A related factor here would be to find a better name for the XML/programmatic configuration, i.e. getServiceProviderExternalizers()? <serviceProviderExternalzer> or getExternalizeSpis() <externalizerSpi>? This is one thing and the other is that I'd want this XML and programmatic configuration to be a bit hidden away cos it's specialised or for edge cases. The obvious route the average Infinispan user should be annotation and implement Infinispan's Externalizer interface. However, I'm don't think there's anything special that can be done in the current architechture of Infinispan without rethinking end user and spi configuration.
> 
> Since the XML is only relevant for the SPI version, the programmatic API would go along the lines of getExternalizerSpis() and <externalizerSpi> - Naming methods like this gives a direct link to the interface name while not being too verbose
> 
>> 
>> - To hide JBoss Marshaller details away and to simplify some of the API it provides, I've created a new @MarshallableBy annotation that maps directly to what JBMAR's @Externalizer does. To get an idea of the differences for the end users, see https://github.com/galderz/infinispan/commit/09096f7998c0d0a5aae76d55bf59c72fe1cb510e#diff-10 as opposed to https://github.com/galderz/infinispan/commit/09096f7998c0d0a5aae76d55bf59c72fe1cb510e#diff-9. Are people happy with the annotation name? The cool thing is that if someone wants to really use JBoss Marshaller Externalizers, they can, but I think the majority will be happy with just a read/write object method.
>> 
>> And that's about it! Afterwards it just needs proper documentation in wiki and javadocs, but right now I'm mostly focused at getting naming right. Thoughts?
>> 
>> Ideally I'd like to get this into BETA1 (release date next Tuesday, 5th April), but I'll prob hold till BETA2 to get the naming right.
>> 
>> Cheers,
>> --
>> Galder Zamarreño
>> Sr. Software Engineer
>> Infinispan, JBoss Cache
>> 
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> --
> Galder Zamarreño
> Sr. Software Engineer
> Infinispan, JBoss Cache
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache




More information about the infinispan-dev mailing list