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)

> 
> - 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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to