|
There is number of public Interfaces with default implementations used in driver code. But there is no ability to change the desired implementation (to inject users extended versions).
For example:
DefaultClusterFactory implements ClusterFactory
is directly instantiating by name at Mongo.java line 682.
But as mongo-java-driver user I want to have ability to specify my own ClusterFatory implementation (may be providing class name in MongoClientOptions, or using java SPI, or etc).
Some of the desired interfaces:
ClusterFactory -> DefaultClusterFactory
ClusterableServerFactory -> DefaultClusterableServerFactory
ServerMonitorFactory -> DefaultServerMonitorFactory
ConnectionPool -> DefaultConnectionPool
ServerMonitor -> DefaultServerMonitor
To have ability to integrate with your code and to override some unnecessary behavior.
|