+1

On Mon, Feb 13, 2012 at 10:31 AM, Denis Gervalle <[email protected]> wrote:
> Hi Devs,
>
> I would like to commit the following change on the internal API of the
> hibernate store:
>
> Deprecate
>    public boolean beginTransaction(boolean withTransaction, XWikiContext
> context)
>    public boolean beginTransaction(SessionFactory sfactory, boolean
> withTransaction, XWikiContext context)
> in favor of
>    public boolean beginTransaction(SessionFactory sfactory, XWikiContext
> context)
>
> Deprecate
>    public void endTransaction(XWikiContext context, boolean commit,
> boolean withTransaction)
>    public <T> T execute(XWikiContext context, boolean bTransaction,
> boolean doCommit, HibernateCallback<T> cb)
> in favor of
>    public <T> T execute(XWikiContext context, boolean doCommit,
> HibernateCallback<T> cb)
> and add new method
>    public <T> T failSafeExecute(XWikiContext context, boolean doCommit,
> HibernateCallback<T> cb)
>
> Deprecate
>    public <T> T executeRead(XWikiContext context, boolean bTransaction,
> HibernateCallback<T> cb) throws XWikiException
> in favor of
>    public <T> T executeRead(XWikiContext context, HibernateCallback<T> cb)
> throws XWikiException
> and add new method
>    public <T> T executeFailSafeRead(XWikiContext context,
> HibernateCallback<T> cb)
>
> Deprecate
>    public <T> T executeWrite(XWikiContext context, boolean bTransaction,
> HibernateCallback<T> cb)
> in favor of
>    public <T> T executeWrite(XWikiContext context, HibernateCallback<T>
> cb) throws XWikiException
> and add new method
>    public <T> T failSafeExecuteWrite(XWikiContext context,
> HibernateCallback<T> cb)
>
> My motivation:
>  - reduce confusion, since the current signature let you think that
> sub-transaction are possible, and these are not, since the withTransaction
> argument is unused.
>  - provide an easy way to run potentially failing transaction, that will
> not do logging and neither throw. It is the responsability of the caller to
> manager the situation.
>
> The later could be use to easily check the state of the database during a
> migration for example. Is a table exists ? is column exists ? could be done
> by simple fail safe selection, if these fail, you are almost sure the table
> or column is missing.
>
> Anything against these changes ?
>
> --
> Denis Gervalle
> SOFTEC sa - CEO
> eGuilde sarl - CTO
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to