in webindex/modules/integration/src/main/java/webindex/integration/DevServer.java [88:140]
public void start() throws Exception {
log.info("Starting WebIndex development server...");
log.info("Starting MiniAccumuloCluster at {}", baseDir);
MiniAccumuloConfig cfg = new MiniAccumuloConfig(baseDir.toFile(), "secret");
cluster = new MiniAccumuloCluster(cfg);
cluster.start();
FluoConfiguration config = new FluoConfiguration();
AccumuloExportITBase.configureFromMAC(config, cluster);
config.setApplicationName("webindex");
config.setAccumuloTable("webindex");
configureMetrics(config);
String exportTable = "webindex_search";
log.info("Initializing Accumulo & Fluo");
IndexEnv env = new IndexEnv(config, exportTable, "/tmp", TEST_SPLITS, TEST_SPLITS);
env.initAccumuloIndexTable();
env.configureApplication(config, config);
FluoFactory.newAdmin(config).initialize(
new FluoAdmin.InitializationOptions().setClearTable(true).setClearZookeeper(true));
env.setFluoTableSplits();
log.info("Starting web server");
client = new IndexClient(exportTable, cluster.getConnector("root", "secret"));
webServer.start(client, webPort, templatePath);
log.info("Loading data from {}", dataPath);
Gson gson = new Gson();
miniFluo = FluoFactory.newMiniFluo(config);
running.set(true);
try (FluoClient client =
FluoFactory.newClient(configureMetrics(miniFluo.getClientConfiguration()))) {
try (LoaderExecutor le = client.newLoaderExecutor()) {
Files.lines(dataPath).map(json -> Page.fromJson(gson, json)).forEach(page -> {
log.debug("Loading page {} with {} links", page.getUrl(), page.getOutboundLinks().size());
le.execute(PageLoader.updatePage(page));
});
}
log.info("Finished loading data. Waiting for observers to finish...");
miniFluo.waitForObservers();
log.info("Observers finished");
}
}