Currently, the JDBC driver implementation has a lot of dependencies that are not required when querying a local JCR instance (either through JNDI or the ServiceLoader/RepositoryFactory approach). Most of these dependencies are required for the communication with a remote ModeShape instance (via the REST client). We should probably break the JDBC driver into two separate drivers: a local one (that depends solely upon the JCR API and our small extensions to the API), and another that extends the local and adds support for remote communication.
This also will help the JBoss AS deployment, as only the local driver (with its dependencies/classes) needs to be exposed on the global classpath. Doing this would reduce the number of ModeShape classes that are exposed to apps deployed on JBoss AS.
Finally, we need to think about the names of the JARs for these drivers (and perhaps the REST client JAR with dependencies) so that they are self-contained and named appropriately.