click-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Schellink <sab...@gmail.com>
Subject Re: Cayenne integration question
Date Mon, 26 Apr 2010 22:41:19 GMT
Hi Mike,

On 27/04/2010 07:26, MGargano@escholar.com wrote:
> 
>         I'm trying to into integrate Cayenne into a new Click project
> I'm working on and I have a few questions.  If I have a
> DataContextFilter from the extras configured in my web.xml, how does
> that work with CayenneTemplate from the extras?  It looks like
> DataContextFilter is storing the data context in the user's session
> whereas CayenneTemplate is storing it thread local. 


DataContextFilter always binds the DataContext to the current thread, whether request or session
scoped. See this line in DataContextFilter:

  // Bind DataContext to the request thread
  BaseContext.bindThreadObjectContext(dataContext);


 Are they mutually
> exclusive?  


Yes, although you might want to customize the CayenneTemplate#getDataContext method for your
specific environment. Binding the dataContext to the current thread is well suited for web
applications where multiple requests are handed off to each thread. For a Swing based application
another strategy might be better suited.


Also, I need to create some utilities that will run outside
> the web application server, but will also access the same tables in the
> DB.  Because of this I wanted to break out my Cayenne DB access stuff
> into a common library, but if I'm using CayenneTemplate as the base for
> my DAO's this won't fly in utility programs, will it?  I looked at the
> source for CayenneTemplate and didn't see any "web specific" code in
> there, but all the stuff from Click is meant only for web use, no?


I don't see any issue if you include click-extras.jar in a utility program and use CayenneTemplate
as a base for your DAOs. Alternatively you can copy/paste CayenneTemplate into your utility
program
and customize it further. You can then include your utility jar inside the web application
and use
your custom CayenneTemplate as a base service.

Kind regards

Bob

Mime
View raw message