private void shouldCleanupLibraryIfItCannotConnect(final LibraryConfiguration configuration) { configuration.aeronContext().driverTimeoutMs(50); try { FixLibrary.connect(configuration); } catch (final DriverTimeoutException e) { final File monitoringFile = new File(configuration.monitoringFile()); final File histogramLoggingFile = new File(configuration.histogramLoggingFile()); assertFalse(monitoringFile + " hasn't been deleted", monitoringFile.exists()); assertFalse(histogramLoggingFile + " hasn't been deleted", histogramLoggingFile.exists()); } }
@Test public void shouldCleanupLibraryIfNoAeronCNCFile() { final LibraryConfiguration configuration = newLibraryConfiguration(); // Ensure that we test the CNC file not found path IoUtil.delete(new File(configuration.aeronContext().aeronDirectoryName()), true); shouldCleanupLibraryIfItCannotConnect(configuration); }
@Override public void onStart() { final EngineConfiguration engineConfiguration = new EngineConfiguration() .libraryAeronChannel(IPC_CHANNEL); engineConfiguration .aeronContext() .aeronDirectoryName(AERON_DIRECTORY_NAME); engineConfiguration .aeronArchiveContext() .recordingEventsChannel(RECORDING_EVENTS_CHANNEL) .aeronDirectoryName(AERON_DIRECTORY_NAME); cleanupOldLogFileDir(engineConfiguration); gateway = FixEngine.launch(engineConfiguration); final LibraryConfiguration libraryConfiguration = new LibraryConfiguration() .libraryAeronChannels(singletonList(IPC_CHANNEL)) .libraryConnectHandler(buyer) .sessionAcquireHandler(buyer); libraryConfiguration .aeronContext() .aeronDirectoryName(AERON_DIRECTORY_NAME); library = FixLibrary.connect(libraryConfiguration); }
FixLibrary(final LibraryConfiguration configuration) { this.configuration = configuration; scheduler = configuration.scheduler(); configuration.conclude(); try { scheduler.configure(configuration.aeronContext()); init(configuration); final LibraryTimers timers = new LibraryTimers(configuration.clock()); initMonitoringAgent(timers.all(), configuration); final LibraryTransport transport = new LibraryTransport(configuration, fixCounters, aeron); poller = new LibraryPoller( configuration, timers, fixCounters, transport, this, new SystemEpochClock()); } catch (final Exception e) { try { closeAnythingHoldingFileHandles(); deleteFiles(); } catch (final Exception innerException) { innerException.addSuppressed(e); throw innerException; } throw e; } }
acceptingLibraryConfig.aeronContext().driverTimeoutMs(DRIVER_TIMEOUT_MS); acceptingLibrary = connect(acceptingLibraryConfig); .sessionExistsHandler(initiatingHandler) .libraryAeronChannels(singletonList("aeron:udp?endpoint=localhost:" + libraryAeronPort)); configuration.aeronContext().driverTimeoutMs(DRIVER_TIMEOUT_MS);