package org.dcm4chee.archive.conf.defaults; import org.dcm4che3.conf.api.upgrade.ScriptVersion; import org.dcm4che3.conf.api.upgrade.UpgradeScript; import org.dcm4che3.conf.api.hl7.HL7Configuration; import org.dcm4che3.conf.core.api.ConfigurationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * This script initializes default archive configuration in case there are no devices yet in the config * * @author Roman K */ @ScriptVersion("08.2015") public class DefaultArchiveConfigInitScript implements UpgradeScript { private static final Logger LOG = LoggerFactory.getLogger(DefaultArchiveConfigInitScript.class); @Override public void upgrade(UpgradeContext upgradeContext) throws ConfigurationException { LOG.info("Running default config init script. Last executed version is " + upgradeContext.getUpgradeScriptMetadata().getLastVersionExecuted()); // run only if no version is specified if (upgradeContext.getFromVersion().equals(NO_VERSION)) { LOG.info("Persisting default devices..."); try { DefaultArchiveConfigurationFactory.FactoryParams params = new DefaultArchiveConfigurationFactory.FactoryParams(); params.baseStoragePath=upgradeContext.getProperties().getProperty("org.dcm4che.config.init.baseStorageDir", "/var/local/dcm4chee-arc/"); if (upgradeContext.getProperties().containsKey("timeout")) { params.socketTimeout = Integer.valueOf(upgradeContext.getProperties().getProperty("timeout")); } params.useGroupBasedTCConfig = true; new DefaultDicomConfigInitializer() .persistDefaultConfig( upgradeContext.getDicomConfiguration(), upgradeContext.getDicomConfiguration().getDicomConfigurationExtension(HL7Configuration.class), params); } catch (Exception e) { throw new ConfigurationException("Cannot initialize default config",e); } } else { LOG.info("Configuration version is non-null ({}), not persisting any devices", upgradeContext.getFromVersion()); }; } }