----- Original Message -----
> 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
> 

Have you looked at the method "parsePoolProperties" on the DataSourceFactory 
class?

  public static PoolConfiguration parsePoolProperties(Properties properties)

You could load your configuration into a Properties object, create you first 
pool configuration with "parsePoolProperties", alter the Properties object and 
then call "parsePoolProperties" on the modified Properties object to create 
your second pool configuration.

Dan



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to