Yeah, Cayenne DataNode obtains DataSource once and stores it for future use. Not sure if a better long-term strategy would be to do JNDI lookups every time ? (maybe not), but for now you may either (1) write your own factory that creates a simple DataSource wrapper that grabs a fresh DS via JNDI every time a connection is requested, or (2) call DataNode.setDataSource(..) during your environment reset process.
Andrus On Mar 21, 2011, at 2:12 PM, Hans Pikkemaat wrote: > Hi, > > I have a unit test where I use jndi to determine my connection parameters. > > When I run one unit test which uses a specific jndi setup and it calls > cayenne then > all works fine (i use org.apache.cayenne.conf.JNDIDataSourceFactory) > > I then clear my jndi container and repopulate it with different connection > details > (different database). > > Running cayenne again still uses the earlier connection. Recreating a data > context > doesn't seem to help. I also tried > Configuration.getSharedConfiguration().shutdown() > but this also doesn't help. > > Maybe the connections are re-used? If so, is there a way to clear those? > > In general, is there a way to reset cayenne in such a way that my above unit > testing will work? > > tx > > Hans > >
