Hello.

I have an use case in which I would want to copy an
`org.apache.tomcat.jdbc.pool.DataSource`, to have two disjoint connection
pools, with some pool properties changed.

My first thought was to do something like this:

PoolProperties props = new
PoolProperties(baseDataSource.getPoolProperties());
// set custom props ...
DataSource newDataSource = new DataSource(props);


The problem is that the PoolProperties class doesn't have such constructor.
Another option could be to share the PoolProperties object, but, for what
I've looked into the code, it doesn't seem safe.

The PoolProperties class implements the Cloneable interface, so I guess
it's ok to use its clone method. The problem I have with this option is
that DataSource#getPoolProperties() returns a PoolConfiguration which
doesn't implements Cloneable. In my case I think it would be safe to cast
the PoolConfiguration to PoolProperties, but it doesn't seem safe for the
general case.

What would be the correct way to create a new separated DataSource from
another one having some properties changed?

I'm using tomcat-jdbc 7.0.29 as a standalone library.

Thank you.

Regards,
Germán

Reply via email to