use of org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry in project archiva by apache.
the class DefaultArchivaConfiguration method createDefaultConfigurationFile.
private Registry createDefaultConfigurationFile() throws RegistryException {
// TODO: may not be needed under commons-configuration 1.4 - check
String contents = "<configuration />";
String fileLocation = userConfigFilename;
if (!writeFile("user configuration", userConfigFilename, contents)) {
fileLocation = altConfigFilename;
if (!writeFile("alternative configuration", altConfigFilename, contents)) {
throw new RegistryException("Unable to create configuration file in either user [" + userConfigFilename + "] or alternative [" + altConfigFilename + "] locations on disk, usually happens when not allowed to write to those locations.");
}
}
// olamy hackish I know :-)
contents = "<configuration><xml fileName=\"" + fileLocation + "\" config-forceCreate=\"true\" config-name=\"org.apache.archiva.user\"/>" + "</configuration>";
((CommonsConfigurationRegistry) registry).setProperties(contents);
registry.initialize();
for (RegistryListener regListener : registryListeners) {
addRegistryChangeListener(regListener);
}
triggerEvent(ConfigurationEvent.SAVED);
Registry section = registry.getSection(KEY + ".user");
return section == null ? new CommonsConfigurationRegistry(new BaseConfiguration()) : section;
}
use of org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry in project archiva by apache.
the class FileTypes method initialize.
@PostConstruct
public void initialize() {
// TODO: why is this done by hand?
// TODO: ideally, this would be instantiated by configuration instead, and not need to be a component
String errMsg = "Unable to load default archiva configuration for FileTypes: ";
try {
CommonsConfigurationRegistry commonsRegistry = new CommonsConfigurationRegistry();
// Configure commonsRegistry
Field fld = commonsRegistry.getClass().getDeclaredField("configuration");
fld.setAccessible(true);
fld.set(commonsRegistry, new CombinedConfiguration());
commonsRegistry.addConfigurationFromResource("org/apache/archiva/configuration/default-archiva.xml");
// Read configuration as it was intended.
ConfigurationRegistryReader configReader = new ConfigurationRegistryReader();
Configuration defaultConfig = configReader.read(commonsRegistry);
initialiseTypeMap(defaultConfig);
} catch (RegistryException e) {
throw new RuntimeException(errMsg + e.getMessage(), e);
} catch (SecurityException e) {
throw new RuntimeException(errMsg + e.getMessage(), e);
} catch (NoSuchFieldException e) {
throw new RuntimeException(errMsg + e.getMessage(), e);
} catch (IllegalArgumentException e) {
throw new RuntimeException(errMsg + e.getMessage(), e);
} catch (IllegalAccessException e) {
throw new RuntimeException(errMsg + e.getMessage(), e);
}
this.archivaConfiguration.addChangeListener(this);
}
Aggregations