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; } }
private void launch( final int initialSequenceNumber, final Runnable beforeConnect, final boolean resetSequenceNumbersOnLogon) { mediaDriver = launchMediaDriver(mediaDriverContext( TestFixtures.TERM_BUFFER_LENGTH, dirsDeleteOnStart)); final EngineConfiguration config = acceptingConfig(port, ACCEPTOR_ID, INITIATOR_ID); config.sessionPersistenceStrategy(logon -> INDEXED); config.printErrorMessages(printErrorMessages); acceptingEngine = FixEngine.launch(config); final EngineConfiguration initiatingConfig = initiatingConfig(libraryAeronPort); initiatingConfig.printErrorMessages(printErrorMessages); initiatingEngine = FixEngine.launch(initiatingConfig); // Use so that the SharedLibraryScheduler is integration tested final DynamicLibraryScheduler libraryScheduler = new DynamicLibraryScheduler(); acceptingLibrary = connect(acceptingLibraryConfig(acceptingHandler).scheduler(libraryScheduler)); initiatingLibrary = connect(initiatingLibraryConfig(libraryAeronPort, initiatingHandler) .scheduler(libraryScheduler)); testSystem = new TestSystem(acceptingLibrary, initiatingLibrary); beforeConnect.run(); connectPersistingSessions(initialSequenceNumber, resetSequenceNumbersOnLogon); }