@Override protected void onBeforeProcess(IRuntimeConfig runtimeConfig) throws IOException { super.onBeforeProcess(runtimeConfig); MongodConfig config = getConfig(); File tmpDbDir; if (config.getDatabaseDir() != null) { tmpDbDir = Files.createOrCheckDir(config.getDatabaseDir()); } else { tmpDbDir = Files.createTempDir("embedmongo-db"); dbDirIsTemp = true; } this.dbDir = tmpDbDir; }
@Override public void stop() { synchronized (this) { if (!stopped) { stopped = true; logger.info("try to stop mongos"); if (!sendStopToMongoInstance()) { logger.warning("could not stop mongos with db command, try next"); if (!sendKillToProcess()) { logger.warning("could not stop mongos, try next"); if (!tryKillToProcess()) { logger.warning("could not stop mongos the second time, try one last thing"); } } } stopProcess(); if ((dbDir != null) && (dbDirIsTemp) && (!Files.forceDelete(dbDir))) logger.warning("Could not delete temp db dir: " + dbDir); } } }
public static boolean store(IDownloadConfig runtime, Distribution distribution, File download) { File dir = createOrGetBaseDir(runtime); String artifactFileName = runtime.getPackageResolver().getPath(distribution); File artifactFile = new File(dir, artifactFileName); createOrCheckDir(artifactFile.getParentFile()); if (!Files.moveFile(download, artifactFile)) throw new IllegalArgumentException("Could not move " + download + " to " + artifactFile); File checkFile = new File(dir, artifactFileName); return checkFile.exists() & checkFile.isFile() & checkFile.canRead(); }
@Override protected MongodConfigBuilder createMongodConfigBuilder() throws IOException { MongodConfigBuilder builder = super.createMongodConfigBuilder(); builder .processListener( new ProcessListenerBuilder() .copyDbFilesBeforeStopInto( Files.createTempDir(new PlatformTempDir(), "embedmongo-snapshot")) .build()) .cmdOptions(new MongoCmdOptionsBuilder().syncDelay(1).build()); return builder; }