public static ServerDescription createServerDescription(final ServerAddress serverAddress, final BsonDocument isMasterResult, final ServerVersion serverVersion, final long roundTripTime) { return ServerDescription.builder() .state(CONNECTED) .version(serverVersion) .address(serverAddress) .type(getServerType(isMasterResult)) .canonicalAddress(isMasterResult.containsKey("me") ? isMasterResult.getString("me").getValue() : null) .hosts(listToSet(isMasterResult.getArray("hosts", new BsonArray()))) .passives(listToSet(isMasterResult.getArray("passives", new BsonArray()))) .arbiters(listToSet(isMasterResult.getArray("arbiters", new BsonArray()))) .primary(getString(isMasterResult, "primary")) .maxDocumentSize(getMaxBsonObjectSize(isMasterResult)) .tagSet(getTagSetFromDocument(isMasterResult.getDocument("tags", new BsonDocument()))) .setName(getString(isMasterResult, "setName")) .minWireVersion(getMinWireVersion(isMasterResult)) .maxWireVersion(getMaxWireVersion(isMasterResult)) .electionId(getElectionId(isMasterResult)) .setVersion(getSetVersion(isMasterResult)) .lastWriteDate(getLastWriteDate(isMasterResult)) .roundTripTime(roundTripTime, NANOSECONDS) .logicalSessionTimeoutMinutes(getLogicalSessionTimeoutMinutes(isMasterResult)) .ok(CommandHelper.isCommandOk(isMasterResult)).build(); }
DefaultServer(final ServerId serverId, final ClusterConnectionMode clusterConnectionMode, final ConnectionPool connectionPool, final ConnectionFactory connectionFactory, final ServerMonitorFactory serverMonitorFactory, final ServerListener serverListener, final CommandListener commandListener, final ClusterClock clusterClock) { this.serverListener = notNull("serverListener", serverListener); this.commandListener = commandListener; this.clusterClock = notNull("clusterClock", clusterClock); notNull("serverAddress", serverId); notNull("serverMonitorFactory", serverMonitorFactory); this.clusterConnectionMode = notNull("clusterConnectionMode", clusterConnectionMode); this.connectionFactory = notNull("connectionFactory", connectionFactory); this.connectionPool = notNull("connectionPool", connectionPool); this.serverStateListener = new DefaultServerStateListener(); this.serverId = serverId; serverListener.serverOpening(new ServerOpeningEvent(this.serverId)); description = ServerDescription.builder().state(CONNECTING).address(serverId.getAddress()).build(); serverMonitor = serverMonitorFactory.create(serverStateListener); serverMonitor.start(); }
private ServerDescription getConnectingServerDescription(final ServerAddress serverAddress) { return ServerDescription.builder().state(CONNECTING).address(serverAddress).build(); }
private ServerDescription getConnectingServerDescription(final Throwable exception) { return ServerDescription.builder().type(UNKNOWN).state(CONNECTING).address(serverId.getAddress()).exception(exception).build(); }
@Override public void invalidate() { if (!isClosed()) { serverStateListener.stateChanged(new ChangeEvent<ServerDescription>(description, ServerDescription.builder() .state(CONNECTING) .address(serverId.getAddress()) .build())); connectionPool.invalidate(); connect(); } }
public static ServerDescription createServerDescription(final ServerAddress serverAddress, final BsonDocument isMasterResult, final ServerVersion serverVersion, final long roundTripTime) { return ServerDescription.builder() .state(CONNECTED) .version(serverVersion) .address(serverAddress) .type(getServerType(isMasterResult)) .canonicalAddress(isMasterResult.containsKey("me") ? isMasterResult.getString("me").getValue() : null) .hosts(listToSet(isMasterResult.getArray("hosts", new BsonArray()))) .passives(listToSet(isMasterResult.getArray("passives", new BsonArray()))) .arbiters(listToSet(isMasterResult.getArray("arbiters", new BsonArray()))) .primary(getString(isMasterResult, "primary")) .maxDocumentSize(getMaxBsonObjectSize(isMasterResult)) .tagSet(getTagSetFromDocument(isMasterResult.getDocument("tags", new BsonDocument()))) .setName(getString(isMasterResult, "setName")) .minWireVersion(getMinWireVersion(isMasterResult)) .maxWireVersion(getMaxWireVersion(isMasterResult)) .electionId(getElectionId(isMasterResult)) .setVersion(getSetVersion(isMasterResult)) .lastWriteDate(getLastWriteDate(isMasterResult)) .roundTripTime(roundTripTime, NANOSECONDS) .logicalSessionTimeoutMinutes(getLogicalSessionTimeoutMinutes(isMasterResult)) .ok(CommandHelper.isCommandOk(isMasterResult)).build(); }
DefaultServer(final ServerId serverId, final ClusterConnectionMode clusterConnectionMode, final ConnectionPool connectionPool, final ConnectionFactory connectionFactory, final ServerMonitorFactory serverMonitorFactory, final ServerListener serverListener, final CommandListener commandListener, final ClusterClock clusterClock) { this.serverListener = notNull("serverListener", serverListener); this.commandListener = commandListener; this.clusterClock = notNull("clusterClock", clusterClock); notNull("serverAddress", serverId); notNull("serverMonitorFactory", serverMonitorFactory); this.clusterConnectionMode = notNull("clusterConnectionMode", clusterConnectionMode); this.connectionFactory = notNull("connectionFactory", connectionFactory); this.connectionPool = notNull("connectionPool", connectionPool); this.serverStateListener = new DefaultServerStateListener(); this.serverId = serverId; serverListener.serverOpening(new ServerOpeningEvent(this.serverId)); description = ServerDescription.builder().state(CONNECTING).address(serverId.getAddress()).build(); serverMonitor = serverMonitorFactory.create(serverStateListener); serverMonitor.start(); }
private ServerDescription getConnectingServerDescription(final Throwable exception) { return ServerDescription.builder().type(UNKNOWN).state(CONNECTING).address(serverId.getAddress()).exception(exception).build(); }
private ServerDescription getConnectingServerDescription(final ServerAddress serverAddress) { return ServerDescription.builder().state(CONNECTING).address(serverAddress).build(); }
@Override public void invalidate() { if (!isClosed()) { serverStateListener.stateChanged(new ChangeEvent<ServerDescription>(description, ServerDescription.builder() .state(CONNECTING) .address(serverId.getAddress()) .build())); connectionPool.invalidate(); connect(); } }