public LumongoNode(MongoConfig mongoConfig, String localServer, int instance) throws Exception { log.info("Using mongo <" + mongoConfig.getServerAddresses() + ">"); MongoClient mongo = new MongoClient(mongoConfig.getServerAddresses()); ClusterHelper clusterHelper = new ClusterHelper(mongo, mongoConfig.getDatabaseName()); LocalNodeConfig localNodeConfig = clusterHelper.getNodeConfig(localServer, instance); ClusterConfig clusterConfig = clusterHelper.getClusterConfig(); log.info("Loaded cluster config: <" + clusterConfig + ">"); MongoDirectory.setMaxIndexBlocks(clusterConfig.getMaxIndexBlocks()); this.indexManager = new LumongoIndexManager(mongo, mongoConfig, clusterConfig); this.externalServiceServer = new ExternalServiceServer(localNodeConfig, indexManager); this.internalServiceServer = new InternalServiceServer(localNodeConfig, indexManager); if (localNodeConfig.hasRestPort()) { this.restServiceManager = new RestServiceManager(localNodeConfig, indexManager); } else { this.restServiceManager = null; } Nodes nodes = clusterHelper.getNodes(); this.hazelcastManager = HazelcastManager .createHazelcastManager(localNodeConfig, indexManager, nodes.getHazelcastNodes(), mongoConfig.getDatabaseName()); }