KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jac > aspects > hibernate > EndPersistentSessionWrapper


1 /*
2   Copyright (C) 2001-2003 Lionel Seinturier <Lionel.Seinturier@lip6.fr>
3
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU Lesser General Public License as
6   published by the Free Software Foundation; either version 2 of the
7   License, or (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12   GNU Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public License
15   along with this program; if not, write to the Free Software
16   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */

17
18 package org.objectweb.jac.aspects.hibernate;
19
20 import net.sf.hibernate.HibernateException;
21 import net.sf.hibernate.Transaction;
22
23 import org.aopalliance.intercept.ConstructorInvocation;
24 import org.aopalliance.intercept.MethodInvocation;
25 import org.objectweb.jac.core.AspectComponent;
26 import org.objectweb.jac.core.Interaction;
27 import org.objectweb.jac.core.Wrapper;
28
29 /**
30  * This wrapper delimits the end of a persistent session.
31  *
32  * @author Lionel Seinturier <Lionel.Seinturier@lip6.fr>
33  * @version 1.0
34  */

35 public class EndPersistentSessionWrapper extends Wrapper {
36
37     /** The gateway instance to Hibernate. */
38     private HibernateHelper hh = HibernateHelper.get();
39     
40     public EndPersistentSessionWrapper( AspectComponent ac ) {
41         super(ac);
42     }
43     
44     /**
45      * Wrapping method around pointcuts
46      * where a persistent session ends.
47      */

48     public Object JavaDoc invoke( MethodInvocation invocation ) {
49         Interaction interaction = (Interaction) invocation;
50         
51         Object JavaDoc ret = proceed(interaction);
52         
53         try {
54             Transaction tx = hh.getTx();
55             tx.commit();
56             return ret;
57         } catch (HibernateException e1) {
58             e1.printStackTrace();
59             System.exit(1);
60         }
61         return null;
62     }
63
64     public Object JavaDoc construct(ConstructorInvocation invocation)
65         throws Throwable JavaDoc {
66         throw new Exception JavaDoc("This wrapper does not support constructor wrapping");
67     }
68 }
69
Popular Tags