@Ignore @Override public void updateSettings(final String configFileChecksum, String filePath, Properties platformSettings) { setConfigFileChecksum(configFileChecksum); this.filePath = filePath; updateFromProperties(platformSettings); }
private SettingsRecord loadSettingsFromStream(org.springframework.core.io.Resource motechSettings) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); try (DigestInputStream dis = new DigestInputStream(motechSettings.getInputStream(), digest)) { //load configFileSettings and calculate MD5 hash SettingsRecord settingsRecord = new SettingsRecord(); settingsRecord.load(dis); settingsRecord.setConfigFileChecksum(new String(digest.digest())); return settingsRecord; // startup loaded } catch (IOException e) { throw new MotechException("Error loading configuration", e); } } catch (NoSuchAlgorithmException e) { throw new MotechException("MD5 algorithm not available", e); } }
private SettingsRecord loadSettingsFromStream(Resource motechSettings) { try { MessageDigest digest = MessageDigest.getInstance("MD5"); try (DigestInputStream dis = new DigestInputStream(motechSettings.getInputStream(), digest)) { //load configFileSettings and calculate MD5 hash SettingsRecord settingsRecord = new SettingsRecord(); settingsRecord.load(dis); settingsRecord.setConfigFileChecksum(new String(digest.digest())); return settingsRecord; // startup loaded } catch (IOException e) { throw new MotechException("Error loading configuration", e); } } catch (NoSuchAlgorithmException e) { throw new MotechException("MD5 algorithm not available", e); } }
@Override public void savePlatformSettings(Properties settings) { SettingsRecord dbSettings = getSettings(); dbSettings.setPlatformInitialized(true); dbSettings.setLastRun(DateTime.now()); dbSettings.updateFromProperties(settings); dbSettings.removeDefaults(defaultConfig); try { MessageDigest digest = MessageDigest.getInstance("MD5"); dbSettings.setConfigFileChecksum(new String(digest.digest( MapUtils.toProperties(dbSettings.asProperties()).toString().getBytes()))); } catch (NoSuchAlgorithmException e) { throw new MotechException("MD5 algorithm not available", e); } addOrUpdateSettings(dbSettings); }
private void syncSettingsWithDb() { try { AllSettings allSettings = new AllSettings(couchDbManager.getConnector(SETTINGS_DB)); SettingsRecord dbSettings = allSettings.getSettings(); if (dbSettings.getLastRun() == null) { platformState = MotechPlatformState.FIRST_RUN; } else { platformState = MotechPlatformState.NORMAL_RUN; } if (platformState == MotechPlatformState.FIRST_RUN || !Arrays.equals(configFileSettings.getMd5checkSum(), dbSettings.getConfigFileChecksum())) { LOGGER.info("Updating database startup"); dbSettings.updateSettings(configFileSettings); } dbSettings.setLastRun(DateTime.now()); dbSettings.setConfigFileChecksum(configFileSettings.getMd5checkSum()); allSettings.addOrUpdateSettings(dbSettings); } catch (Exception e) { LOGGER.error(e.getMessage(), e); platformState = MotechPlatformState.DB_ERROR; } }
public void addOrUpdateSettings(SettingsRecord settingsRecord) { SettingsRecord record = settingService.retrieve("id", 1); if (record == null) { settingService.create(settingsRecord); } else { record.setConfigFileChecksum(settingsRecord.getConfigFileChecksum()); record.setFilePath(settingsRecord.getFilePath()); record.setPlatformInitialized(settingsRecord.isPlatformInitialized()); record.setPlatformSettings(settingsRecord.getPlatformSettings()); settingService.update(record); } }