public synchronized boolean applyConfiguration() { getLogger().debug("Applying Nexus Configuration..."); ConfigurationPrepareForSaveEvent prepare = new ConfigurationPrepareForSaveEvent(this); eventBus.post(prepare); if (!prepare.isVetoed()) { logApplyConfiguration(prepare.getChanges()); eventBus.post(new ConfigurationCommitEvent(this)); eventBus.post(new ConfigurationChangeEvent(this, prepare.getChanges(), getCurrentUserId())); return true; } else { getLogger() .info( vetoFormatter.format( new VetoFormatterRequest(prepare, getLogger().isDebugEnabled()))); eventBus.post(new ConfigurationRollbackEvent(this)); return false; } }
public synchronized void loadConfiguration(boolean force) throws ConfigurationException, IOException { if (force || configurationSource.getConfiguration() == null) { getLogger().info("Loading Nexus Configuration..."); configurationSource.loadConfiguration(); boolean modified = false; for (ConfigurationModifier modifier : configurationModifiers) { modified |= modifier.apply(configurationSource.getConfiguration()); } if (modified) { configurationSource.backupConfiguration(); configurationSource.storeConfiguration(); } globalLocalStorageContext = new DefaultLocalStorageContext(null); // create global remote ctx // this one has no parent globalRemoteStorageContext = new DefaultRemoteStorageContext(null); globalRemoteConnectionSettings.configure(this); globalRemoteStorageContext.setRemoteConnectionSettings(globalRemoteConnectionSettings); remoteProxySettingsConfiguration.configure(this); globalRemoteStorageContext.setRemoteProxySettings(remoteProxySettingsConfiguration); ConfigurationPrepareForLoadEvent loadEvent = new ConfigurationPrepareForLoadEvent(this); eventBus.post(loadEvent); if (loadEvent.isVetoed()) { getLogger() .info( vetoFormatter.format( new VetoFormatterRequest(loadEvent, getLogger().isDebugEnabled()))); throw new ConfigurationException("The Nexus configuration is invalid!"); } applyConfiguration(); // we successfully loaded config eventBus.post(new ConfigurationLoadEvent(this)); } }