We are creating an XPages application with an MySQL backend. Application will be used by several customers. Each has their own NSF database and a corresponding MySQL database. Each customer will have their own MySQL username. We are using the Extension Library JDBC components (ConnectionManager
).
We were planning to store the username and password in a NotesDocument
. This way the NSF's design can be easily updated from NTF template without affecting this data. However, the ConnectionManager component and @GetJdbcConnection
SSJS function both read the username, password and other connection info from a file stored in WEB-INF/jdbc folder. Files stored there will be overwritten when the NSF design is updated, thus losing the customer-specific information.
There seems to be no way of making these files dynamic (WEB-INF is by specification read-only) or to include dynamic elements inside them (see my previous question).
We could use a dynamic JDBC URL in the ConnectionManager
, however the ExtLib book warns against this practice. It seems that we then lose the connection pooling. And besides, the @GetJdbcConnection
function does not accept JDBC URLS.
So, what is the best way of storing NSF-specific JDBC connection information?
EDIT: SOLVED
I created a subclass of the jdbcConnectionManager component. The procedure is detailed here: http://lazynotesguy.net/blog/2013/08/09/subclassing-an-extlib-component/