[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