+1 for Externalizer/AdvancedExternalizer.

Dan


On Tue, Apr 12, 2011 at 10:17 AM, Galder Zamarreño <gal...@redhat.com> wrote:
>
> 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@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
>
> --
> 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
>

_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to