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); } }
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); } }