@Override public void savePlatformSettings(MotechSettings settings) { savePlatformSettings(settings.asProperties()); }
@Override public Properties exportPlatformSettings() { MotechSettings currentSettings = configLoader.loadMotechSettings(); SettingsRecord settingsRecord = settingService.retrieve("id", 1); SettingsRecord dbSettings = (settingsRecord == null ? new SettingsRecord() : settingsRecord); Properties export = new Properties(); if (currentSettings != null) { export.putAll(currentSettings.asProperties()); } if (dbSettings != null) { export.putAll(dbSettings.getActivemqProperties()); export.put(ConfigurationConstants.LANGUAGE, dbSettings.getLanguage()); } return export; } }
private void syncSettingsWithDb() { try { if (dbSettings.getLastRun() == null) { markPlatformStateAs(FIRST_RUN); } else { markPlatformStateAs(NORMAL_RUN); } if (isFirstRun() || settingsRecord == null || !settingsRecord.getConfigFileChecksum().equals(dbSettings.getConfigFileChecksum())) { LOGGER.info("Updating database startup"); dbSettings.updateSettings(settingsRecord.getConfigFileChecksum(), settingsRecord.getFilePath(), settingsRecord.asProperties()); } try { MessageDigest digest = MessageDigest.getInstance("MD5"); dbSettings.setConfigFileChecksum(new String(digest.digest(dbSettings.asProperties().toString().getBytes()))); } catch (NoSuchAlgorithmException e) { throw new MotechException("MD5 algorithm not available", e); } dbSettings.setLastRun(DateTime.now()); dbSettings.setPlatformInitialized(true); configurationService.savePlatformSettings(dbSettings); } catch (Exception e) { LOGGER.error(e.getMessage(), e); markPlatformStateAs(DB_ERROR); } }