We have a commercial software product under development. It supports Oracle, MySQL, and SQL*Server backends (we also use H2 for testing). We do our integration testing against those different database using JDBC drivers of a specific version. Maven handles all this beautifully.
When packaging the application as a WAR, is it ok if we include the JDBC drivers? What is the standard practice?
Since we don't know which database could be used ahead of time, we'd have to include them all. The targeted servlet containers are Tomcat and Jetty, but some customers will also want to run within WebSphere and JBoss.
So the servlet contains and application servers come with their own JDBC drivers? Will ours conflict? Another concern is that we have developed and tested with one version of the driver and if a customer uses another version, we may have problems.
Currently we use Spring data source beans, but are in the process of moving to JNDI lookup for the datasource.