public void start()

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");
    }
  }