[hibernate-dev] Hibernate extension points

Ali H. Ibrahim aibrahim at cs.utexas.edu
Fri Feb 29 11:28:19 EST 2008


Hi,

Sorry about being presumptuous there. I think there are only 3 external 
classes, plus a bunch of inner classes which refer to HbmBinder. The 
inner classes could be converted to non-static inner classes and we 
would just have to pass an instance of HbmBinder to the 3 external 
classes that use it. Shouldn't be too bad.

Regards,

Ali Ibrahim

Emmanuel Bernard wrote:
> I mean 6. HBMBinder is essentially static, there is no real way around 
> that without rewriting a lot of boring code.
>
> On  Feb 28, 2008, at 17:26, Ali H. Ibrahim wrote:
>
>> Hi,
>>
>> I have opened some JIRA improvement issues for the points below. I 
>> assumed you meant forget #7 as that seems to be one that requires a 
>> lot of work. I mistakenly marked one of the issues as major when I 
>> meant minor, but it seems I don't have permission to fix that.
>>
>> Regards,
>>
>> Ali
>>
>> Emmanuel Bernard wrote:
>>> Nice work
>>> Can you open a JIRA issue for each point (forget #6 though, too much 
>>> work) and explain the reason for the need briefly?
>>>
>>> Emmanuel
>>>
>>> On  Feb 26, 2008, at 14:10, Ali H. Ibrahim wrote:
>>>
>>>> Hi,
>>>>
>>>> I have been working on an extension to Hibernate called Autofetch. 
>>>> I ran
>>>> into some pain points and although I have worked around them for 
>>>> now, I
>>>> was wondering which of these I could help make better either through
>>>> patches or JIRA issues. Most of these are pretty selfish in that they
>>>> would have made my life easier by making more code accessible.
>>>>
>>>> 1. AbstractLazyInitializer has the initialize method as final. It 
>>>> can be
>>>> useful to be able to override that method to do stuff. I realize it is
>>>> important to make sure that the method is eventually called.
>>>>
>>>> 2. AbstractPersistentCollection has read and write methods as final.
>>>> Again, it was useful in my extension to be able to override these 
>>>> methods.
>>>>
>>>> 3. DefaultInitializeCollectionListener has 
>>>> initializeCollectionFromCache
>>>> method as private. When I subclassed the 
>>>> DefaultInitializeCollectionListener I would have like to have been 
>>>> able
>>>> to call this method from my subclass instead of copying the code.
>>>>
>>>> 4. The PojoInstantiator's state is all private with no getters. It 
>>>> would
>>>> have nice to be able to subclass it in a meaningful way.
>>>>
>>>> 5. A generally useful class is a delegate interceptor which takes 
>>>> takes
>>>> an interceptor as a constructor argument and by default dispatches
>>>> requests to that interceptor.
>>>>
>>>> 6. Might be nice for HbmBinder not to be a static class.
>>>>
>>>> 7. Right now, the tuplizer extension point allows for very broad 
>>>> changes
>>>> in how entities are instantiated, proxies, etc. However there is no 
>>>> such
>>>> extension point for the PersistentCollection classes. I know you can
>>>> change the underlying collection behavior, but I need to change the
>>>> behavior of the collection classes before the underlying collection is
>>>> instantiated.
>>>>
>>>> Shameless plug for Autofetch:
>>>> http://www.cs.utexas.edu/~aibrahim/autofetch. Basically Autofetch 
>>>> tries
>>>> to automate association fetches for queries, with the goal of
>>>> eliminating the need for programmer provided fetch annotations 
>>>> either in
>>>> the configuration file or in the queries themselves. It does so by
>>>> monitoring a programs traversals and learning the correct fetch 
>>>> profile
>>>> for each class of queries. It differentiates queries not only using 
>>>> the
>>>> query itself, but also the stack trace so that different 
>>>> invocations of
>>>> method containing a query will be treated differently.
>>>>
>>>> Regards,
>>>>
>>>> Ali Ibrahim
>>>>
>>>> _______________________________________________
>>>> hibernate-dev mailing list
>>>> hibernate-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>>
>



More information about the hibernate-dev mailing list