code: protected InternalDriver createRoutingDriver( SecurityPlan securityPlan, BoltServerAddress address, ConnectionPool connectionPool,
              EventExecutorGroup eventExecutorGroup, RoutingSettings routingSettings, RetryLogic retryLogic, MetricsProvider metricsProvider, Config config )
      {
          if ( !securityPlan.isRoutingCompatible() )
          {
              throw new IllegalArgumentException( "The chosen security plan is not compatible with a routing driver" );
          }
          ConnectionProvider connectionProvider = createLoadBalancer( address, connectionPool, eventExecutorGroup,
                  config, routingSettings );
          SessionFactory sessionFactory = createSessionFactory( connectionProvider, retryLogic, config );
          InternalDriver driver = createDriver( securityPlan, sessionFactory, metricsProvider, config );
          Logger log = config.logging().getLog( Driver.class.getSimpleName() );
          log.info( "Routing driver instance %s created for server address %s", driver.hashCode(), address );
          return driver;
      }
docs: Creates new a new driver for "neo4j" scheme.
  <p>
  <b>This method is protected only for testing</b>