private ClientConfiguration initDiContainer() throws Exception { if (!Files.exists(DATABASE_FILE) && !Files.exists(DATABASE_FILE.getParent())) { Files.createDirectories(DATABASE_FILE.getParent()); } Persistence<String> persistence = new SQLitePersistence(DATABASE_FILE.toFile().getAbsolutePath()); transferManager = new MonitoredTransferManager(new DefaultTransferManager()); customProperties.put("loadManager", transferManager); customProperties.put("transferManager", transferManager); customProperties.put("persistence", persistence); customProperties.put("dropUrlGenerator", new DropUrlGenerator("https://qdrop.prae.me")); identityRepository = new PersistenceIdentityRepository(persistence); customProperties.put("identityRepository", identityRepository); PersistenceAccountRepository accountRepository = new PersistenceAccountRepository(persistence); customProperties.put("accountRepository", accountRepository); contactRepository = new PersistenceContactRepository(persistence); customProperties.put("contactRepository", contactRepository); dropMessageRepository = new PersistenceDropMessageRepository(persistence); customProperties.put("dropMessageRepository", dropMessageRepository); customProperties.put("dropConnector", dropConnector); customProperties.put("reportHandler", new HockeyApp()); ClientConfiguration clientConfig = getClientConfiguration(persistence, identityRepository, accountRepository); if (!clientConfig.hasDeviceId()) { clientConfig.setDeviceId(generateDeviceId()); } PersistenceContactRepository contactRepository = new PersistenceContactRepository(persistence); customProperties.put("contactRepository", contactRepository); customProperties.put("clientConfiguration", clientConfig); customProperties.put("primaryStage", primaryStage); rendererFactory.setFallbackRenderer(new PlaintextMessageRenderer()); customProperties.put("messageRendererFactory", rendererFactory); Injector.setConfigurationSource(customProperties::get); Injector.setInstanceSupplier(new RecursiveInjectionInstanceSupplier(customProperties)); return clientConfig; }