net.databinder.hib
Class DataRequestCycle

java.lang.Object
  extended by org.apache.wicket.RequestCycle
      extended by org.apache.wicket.protocol.http.WebRequestCycle
          extended by net.databinder.ExceptionFilteringRequestCycle
              extended by net.databinder.CookieRequestCycle
                  extended by net.databinder.hib.DataRequestCycle
All Implemented Interfaces:
HibernateRequestCycle
Direct Known Subclasses:
DataConversationRequestCycle

public class DataRequestCycle
extends CookieRequestCycle
implements HibernateRequestCycle

Opens Hibernate sessions and transactions as required and closes them at a request's end. Uncomitted transactions are rolled back. Uses keyed Hibernate session factories from Databinder service.

Author:
Nathan Hamblen
See Also:
Databinder

Field Summary
protected  java.util.HashSet<java.lang.Object> keys
          Keys for session factories that have been opened for this request
 
Fields inherited from class org.apache.wicket.RequestCycle
application, processor, request, response
 
Constructor Summary
DataRequestCycle(org.apache.wicket.protocol.http.WebApplication application, org.apache.wicket.protocol.http.WebRequest request, org.apache.wicket.Response response)
           
 
Method Summary
protected  void closeSession(java.lang.Object key)
          Roll back active transactions and close session.
 void dataSessionRequested(java.lang.Object key)
          Called by DataStaticService when a session is needed and does not already exist.
protected  void onEndRequest()
          Closes all Hibernate sessions opened for this request.
 org.apache.wicket.Page onRuntimeException(org.apache.wicket.Page page, java.lang.RuntimeException e)
          Closes and reopens sessions for this request cycle.
protected  org.hibernate.classic.Session openHibernateSession(java.lang.Object key)
          Open a session and begin a transaction for the keyed session factory.
 
Methods inherited from class net.databinder.CookieRequestCycle
applyScope, clearCookie, getCookie, getCookies
 
Methods inherited from class net.databinder.ExceptionFilteringRequestCycle
logRuntimeException, setWarnOnlySource
 
Methods inherited from class org.apache.wicket.protocol.http.WebRequestCycle
getProcessor, getWebRequest, getWebResponse, getWebSession, isRedirect, newClientInfo, redirectTo
 
Methods inherited from class org.apache.wicket.RequestCycle
detach, get, getApplication, getClientInfo, getMetaData, getOriginalResponse, getPageParameters, getRedirect, getRequest, getRequestTarget, getResponse, getResponsePage, getResponsePageClass, getSession, getStartTime, isUrlForNewWindowEncoding, onBeginRequest, request, request, request, set, setAutomaticallyClearFeedbackMessages, setMetaData, setRedirect, setRequest, setRequestTarget, setResponse, setResponsePage, setResponsePage, setResponsePage, setResponsePage, setUrlForNewWindowEncoding, toString, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, wasHandled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

keys

protected java.util.HashSet<java.lang.Object> keys
Keys for session factories that have been opened for this request

Constructor Detail

DataRequestCycle

public DataRequestCycle(org.apache.wicket.protocol.http.WebApplication application,
                        org.apache.wicket.protocol.http.WebRequest request,
                        org.apache.wicket.Response response)
Method Detail

closeSession

protected void closeSession(java.lang.Object key)
Roll back active transactions and close session.


dataSessionRequested

public void dataSessionRequested(java.lang.Object key)
Called by DataStaticService when a session is needed and does not already exist. Opens a new thread-bound Hibernate session.

Specified by:
dataSessionRequested in interface HibernateRequestCycle

openHibernateSession

protected org.hibernate.classic.Session openHibernateSession(java.lang.Object key)
Open a session and begin a transaction for the keyed session factory.

Parameters:
key - object, or null for the default factory
Returns:
newly opened session

onEndRequest

protected void onEndRequest()
Closes all Hibernate sessions opened for this request. If a transaction has not been committed, it will be rolled back before closing the session.

Overrides:
onEndRequest in class org.apache.wicket.RequestCycle
See Also:
DataForm.onSubmit()

onRuntimeException

public org.apache.wicket.Page onRuntimeException(org.apache.wicket.Page page,
                                                 java.lang.RuntimeException e)
Closes and reopens sessions for this request cycle. Unrelated models may try to load themselves after this point.

Overrides:
onRuntimeException in class org.apache.wicket.RequestCycle


Copyright © 2005-2008 Nathan Hamblen. All Rights Reserved.