Changeset 3604

Show
Ignore:
Timestamp:
07/02/08 16:29:46 (4 years ago)
Author:
michael
Message:

More flexible as a full filter. Refs #3, spent 0.1

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/java/org/sarugo/restlet/jpa/TransactionFilter.java

    r3602 r3604  
    66import javax.persistence.EntityTransaction; 
    77 
    8 import org.restlet.Restlet
     8import org.restlet.Filter
    99import org.restlet.data.Request; 
    1010import org.restlet.data.Response; 
     
    1212 
    1313/** 
    14  * Handle a request to an {@link EntityRouter} by: 
     14 * Provides transation services to an {@link EntityRouter} by: 
    1515 * <ol> 
    1616 * <li>Creating an {@link EntityManager} and beginning a transaction.</li> 
    17  * <li>Sending the request to the {@link EntityRouter}, which matches the 
    18  * request URL against its list.</li> 
     17 * <li>Sending the request to the {@link #getNext() next} restlet (by default 
     18 * the {@link EntityRouter}).</li> 
    1919 * <li>Commiting (or rolling-back) the transaction and clearing the 
    2020 * {@link EntityManager}.</li> 
    2121 * </ol> 
    2222 */ 
    23 public class TransactionFilter extends Restlet
     23public class TransactionFilter extends Filter
    2424 
    2525    private EntityRouter router; 
     
    2828        super(router.getContext()); 
    2929        this.router = router; 
     30        setNext(router); 
    3031    } 
    3132 
    3233    @Override 
    33     public void handle(Request request, Response response) { 
     34    public void doHandle(Request request, Response response) { 
    3435        EntityTransaction t = router.getEntityManager().getTransaction(); 
    3536        t.begin(); 
    3637        try { 
    37             router.handle(request, response); 
     38            super.doHandle(request, response); 
    3839            if (t.isActive() && !t.getRollbackOnly()) { 
    3940                router.getEntityManager().flush();