use of org.apache.archiva.configuration.model.RemoteRepositoryConfiguration in project archiva by apache.
the class DefaultArchivaConfiguration method load.
@SuppressWarnings("unchecked")
private Configuration load() {
// TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties)
Registry subset = registry.getSubset(KEY);
if (subset.getString("version") == null) {
if (subset.getSubset("repositoryScanning").isEmpty()) {
// only for empty
subset = readDefaultConfiguration();
} else {
throw new RuntimeException("No version tag found in configuration. Archiva configuration version 1.x is not longer supported.");
}
}
Configuration config = new ConfigurationRegistryReader().read(subset);
// Resolving data and repositories directories
// If the config entries are absolute, the path is used as it is
// if the config entries are empty, they are resolved:
// dataDirectory = ${appserver.base}/data
// repositoryDirectory = ${dataDirectory}/repositories
// If the entries are relative they are resolved
// relative to the appserver.base, for dataDirectory
// relative to dataDirectory for repositoryBase
String dataDir = config.getArchivaRuntimeConfiguration().getDataDirectory();
if (StringUtils.isEmpty(dataDir)) {
dataDirectory = getAppServerBaseDir().resolve("data");
} else {
Path tmpDataDir = Paths.get(dataDir);
if (tmpDataDir.isAbsolute()) {
dataDirectory = tmpDataDir;
} else {
dataDirectory = getAppServerBaseDir().resolve(tmpDataDir);
}
}
config.getArchivaRuntimeConfiguration().setDataDirectory(dataDirectory.normalize().toString());
String repoBaseDir = config.getArchivaRuntimeConfiguration().getRepositoryBaseDirectory();
if (StringUtils.isEmpty(repoBaseDir)) {
repositoryBaseDirectory = dataDirectory.resolve("repositories");
} else {
Path tmpRepoBaseDir = Paths.get(repoBaseDir);
if (tmpRepoBaseDir.isAbsolute()) {
repositoryBaseDirectory = tmpRepoBaseDir;
} else {
dataDirectory.resolve(tmpRepoBaseDir);
}
}
String remoteRepoBaseDir = config.getArchivaRuntimeConfiguration().getRemoteRepositoryBaseDirectory();
if (StringUtils.isEmpty(remoteRepoBaseDir)) {
remoteRepositoryBaseDirectory = dataDirectory.resolve("remotes");
} else {
Path tmpRemoteRepoDir = Paths.get(remoteRepoBaseDir);
if (tmpRemoteRepoDir.isAbsolute()) {
remoteRepositoryBaseDirectory = tmpRemoteRepoDir;
} else {
dataDirectory.resolve(tmpRemoteRepoDir);
}
}
String repositoryGroupBaseDir = config.getArchivaRuntimeConfiguration().getRepositoryGroupBaseDirectory();
if (StringUtils.isEmpty(repositoryGroupBaseDir)) {
repositoryGroupBaseDirectory = dataDirectory.resolve("groups");
} else {
Path tmpGroupDir = Paths.get(repositoryGroupBaseDir);
if (tmpGroupDir.isAbsolute()) {
repositoryGroupBaseDirectory = tmpGroupDir;
} else {
dataDirectory.resolve(tmpGroupDir);
}
}
config.getRepositoryGroups();
config.getRepositoryGroupsAsMap();
if (!CollectionUtils.isEmpty(config.getRemoteRepositories())) {
List<RemoteRepositoryConfiguration> remoteRepos = config.getRemoteRepositories();
for (RemoteRepositoryConfiguration repo : remoteRepos) {
// [MRM-582] Remote Repositories with empty <username> and <password> fields shouldn't be created in configuration.
if (StringUtils.isBlank(repo.getUsername())) {
repo.setUsername(null);
}
if (StringUtils.isBlank(repo.getPassword())) {
repo.setPassword(null);
}
}
}
if (!config.getProxyConnectors().isEmpty()) {
// Fix Proxy Connector Settings.
// Create a copy of the list to read from (to prevent concurrent modification exceptions)
List<ProxyConnectorConfiguration> proxyConnectorList = new ArrayList<>(config.getProxyConnectors());
// Remove the old connector list.
config.getProxyConnectors().clear();
for (ProxyConnectorConfiguration connector : proxyConnectorList) {
// Fix policies
boolean connectorValid = true;
Map<String, String> policies = new HashMap<>();
// Make copy of policies
policies.putAll(connector.getPolicies());
// Clear out policies
connector.getPolicies().clear();
// Work thru policies. cleaning them up.
for (Entry<String, String> entry : policies.entrySet()) {
String policyId = entry.getKey();
String setting = entry.getValue();
// Upgrade old policy settings.
if ("releases".equals(policyId) || "snapshots".equals(policyId)) {
if ("ignored".equals(setting)) {
setting = AbstractUpdatePolicy.ALWAYS.getId();
} else if ("disabled".equals(setting)) {
setting = AbstractUpdatePolicy.NEVER.getId();
}
} else if ("cache-failures".equals(policyId)) {
if ("ignored".equals(setting)) {
setting = CachedFailuresPolicy.NO.getId();
} else if ("cached".equals(setting)) {
setting = CachedFailuresPolicy.YES.getId();
}
} else if ("checksum".equals(policyId)) {
if ("ignored".equals(setting)) {
setting = ChecksumPolicy.IGNORE.getId();
}
}
// Validate existance of policy key.
connector.addPolicy(policyId, setting);
}
if (connectorValid) {
config.addProxyConnector(connector);
}
}
// Normalize the order fields in the proxy connectors.
Map<String, java.util.List<ProxyConnectorConfiguration>> proxyConnectorMap = config.getProxyConnectorAsMap();
for (List<ProxyConnectorConfiguration> connectors : proxyConnectorMap.values()) {
// Sort connectors by order field.
Collections.sort(connectors, ProxyConnectorConfigurationOrderComparator.getInstance());
// Normalize the order field values.
int order = 1;
for (ProxyConnectorConfiguration connector : connectors) {
connector.setOrder(order++);
}
}
}
this.defaultLocale = Locale.forLanguageTag(config.getArchivaRuntimeConfiguration().getDefaultLanguage());
this.languagePriorities = Locale.LanguageRange.parse(config.getArchivaRuntimeConfiguration().getLanguageRange());
return config;
}
use of org.apache.archiva.configuration.model.RemoteRepositoryConfiguration in project archiva by apache.
the class ConfigurationRegistryReader method readConfiguration.
private Configuration readConfiguration(String prefix, Registry registry) {
Configuration value = new Configuration();
// String version = registry.getString( prefix + "version", value.getVersion() );
List<String> versionList = registry.getList(prefix + "version");
String version = value.getVersion();
if (versionList != null && !versionList.isEmpty()) {
StringBuilder sb = new StringBuilder();
for (int i = 0, size = versionList.size(); i < size; i++) {
sb.append(versionList.get(i));
if (i < size - 1) {
sb.append(',');
}
}
version = sb.toString();
}
value.setVersion(version);
// String metadataStore = registry.getString( prefix + "metadataStore", value.getMetadataStore() );
List<String> metadataStoreList = registry.getList(prefix + "metadataStore");
String metadataStore = value.getMetadataStore();
if (metadataStoreList != null && !metadataStoreList.isEmpty()) {
StringBuilder sb = new StringBuilder();
for (int i = 0, size = metadataStoreList.size(); i < size; i++) {
sb.append(metadataStoreList.get(i));
if (i < size - 1) {
sb.append(',');
}
}
metadataStore = sb.toString();
}
value.setMetadataStore(metadataStore);
java.util.List repositoryGroups = new java.util.ArrayList();
List repositoryGroupsSubsets = registry.getSubsetList(prefix + "repositoryGroups.repositoryGroup");
for (Iterator i = repositoryGroupsSubsets.iterator(); i.hasNext(); ) {
RepositoryGroupConfiguration v = readRepositoryGroupConfiguration("", (Registry) i.next());
repositoryGroups.add(v);
}
value.setRepositoryGroups(repositoryGroups);
java.util.List managedRepositories = new java.util.ArrayList();
List managedRepositoriesSubsets = registry.getSubsetList(prefix + "managedRepositories.managedRepository");
for (Iterator i = managedRepositoriesSubsets.iterator(); i.hasNext(); ) {
ManagedRepositoryConfiguration v = readManagedRepositoryConfiguration("", (Registry) i.next());
managedRepositories.add(v);
}
value.setManagedRepositories(managedRepositories);
java.util.List remoteRepositories = new java.util.ArrayList();
List remoteRepositoriesSubsets = registry.getSubsetList(prefix + "remoteRepositories.remoteRepository");
for (Iterator i = remoteRepositoriesSubsets.iterator(); i.hasNext(); ) {
RemoteRepositoryConfiguration v = readRemoteRepositoryConfiguration("", (Registry) i.next());
remoteRepositories.add(v);
}
value.setRemoteRepositories(remoteRepositories);
java.util.List proxyConnectors = new java.util.ArrayList();
List proxyConnectorsSubsets = registry.getSubsetList(prefix + "proxyConnectors.proxyConnector");
for (Iterator i = proxyConnectorsSubsets.iterator(); i.hasNext(); ) {
ProxyConnectorConfiguration v = readProxyConnectorConfiguration("", (Registry) i.next());
proxyConnectors.add(v);
}
value.setProxyConnectors(proxyConnectors);
java.util.List networkProxies = new java.util.ArrayList();
List networkProxiesSubsets = registry.getSubsetList(prefix + "networkProxies.networkProxy");
for (Iterator i = networkProxiesSubsets.iterator(); i.hasNext(); ) {
NetworkProxyConfiguration v = readNetworkProxyConfiguration("", (Registry) i.next());
networkProxies.add(v);
}
value.setNetworkProxies(networkProxies);
java.util.List legacyArtifactPaths = new java.util.ArrayList();
List legacyArtifactPathsSubsets = registry.getSubsetList(prefix + "legacyArtifactPaths.legacyArtifactPath");
for (Iterator i = legacyArtifactPathsSubsets.iterator(); i.hasNext(); ) {
LegacyArtifactPath v = readLegacyArtifactPath("", (Registry) i.next());
legacyArtifactPaths.add(v);
}
value.setLegacyArtifactPaths(legacyArtifactPaths);
RepositoryScanningConfiguration repositoryScanning = readRepositoryScanningConfiguration(prefix + "repositoryScanning.", registry);
value.setRepositoryScanning(repositoryScanning);
WebappConfiguration webapp = readWebappConfiguration(prefix + "webapp.", registry);
value.setWebapp(webapp);
OrganisationInformation organisationInfo = readOrganisationInformation(prefix + "organisationInfo.", registry);
value.setOrganisationInfo(organisationInfo);
NetworkConfiguration networkConfiguration = readNetworkConfiguration(prefix + "networkConfiguration.", registry);
value.setNetworkConfiguration(networkConfiguration);
RedbackRuntimeConfiguration redbackRuntimeConfiguration = readRedbackRuntimeConfiguration(prefix + "redbackRuntimeConfiguration.", registry);
value.setRedbackRuntimeConfiguration(redbackRuntimeConfiguration);
ArchivaRuntimeConfiguration archivaRuntimeConfiguration = readArchivaRuntimeConfiguration(prefix + "archivaRuntimeConfiguration.", registry);
value.setArchivaRuntimeConfiguration(archivaRuntimeConfiguration);
java.util.List proxyConnectorRuleConfigurations = new java.util.ArrayList();
List proxyConnectorRuleConfigurationsSubsets = registry.getSubsetList(prefix + "proxyConnectorRuleConfigurations.proxyConnectorRuleConfiguration");
for (Iterator i = proxyConnectorRuleConfigurationsSubsets.iterator(); i.hasNext(); ) {
ProxyConnectorRuleConfiguration v = readProxyConnectorRuleConfiguration("", (Registry) i.next());
proxyConnectorRuleConfigurations.add(v);
}
value.setProxyConnectorRuleConfigurations(proxyConnectorRuleConfigurations);
ArchivaDefaultConfiguration archivaDefaultConfiguration = readArchivaDefaultConfiguration(prefix + "archivaDefaultConfiguration.", registry);
value.setArchivaDefaultConfiguration(archivaDefaultConfiguration);
return value;
}
use of org.apache.archiva.configuration.model.RemoteRepositoryConfiguration in project archiva by apache.
the class ConfigurationRegistryWriter method writeConfiguration.
private void writeConfiguration(String prefix, Configuration value, Registry registry) {
if (value != null) {
if (value.getVersion() != null) {
String version = "version";
registry.setString(prefix + version, value.getVersion());
}
if (value.getMetadataStore() != null && !value.getMetadataStore().equals("jcr")) {
String metadataStore = "metadataStore";
registry.setString(prefix + metadataStore, value.getMetadataStore());
}
if (value.getRepositoryGroups() != null && value.getRepositoryGroups().size() > 0) {
registry.removeSubset(prefix + "repositoryGroups");
int count = 0;
for (Iterator iter = value.getRepositoryGroups().iterator(); iter.hasNext(); count++) {
String name = "repositoryGroups.repositoryGroup(" + count + ")";
RepositoryGroupConfiguration o = (RepositoryGroupConfiguration) iter.next();
writeRepositoryGroupConfiguration(prefix + name + ".", o, registry);
}
}
if (value.getManagedRepositories() != null && value.getManagedRepositories().size() > 0) {
registry.removeSubset(prefix + "managedRepositories");
int count = 0;
for (Iterator iter = value.getManagedRepositories().iterator(); iter.hasNext(); count++) {
String name = "managedRepositories.managedRepository(" + count + ")";
ManagedRepositoryConfiguration o = (ManagedRepositoryConfiguration) iter.next();
writeManagedRepositoryConfiguration(prefix + name + ".", o, registry);
}
}
if (value.getRemoteRepositories() != null && value.getRemoteRepositories().size() > 0) {
registry.removeSubset(prefix + "remoteRepositories");
int count = 0;
for (Iterator iter = value.getRemoteRepositories().iterator(); iter.hasNext(); count++) {
String name = "remoteRepositories.remoteRepository(" + count + ")";
RemoteRepositoryConfiguration o = (RemoteRepositoryConfiguration) iter.next();
writeRemoteRepositoryConfiguration(prefix + name + ".", o, registry);
}
}
if (value.getProxyConnectors() != null && value.getProxyConnectors().size() > 0) {
registry.removeSubset(prefix + "proxyConnectors");
int count = 0;
for (Iterator iter = value.getProxyConnectors().iterator(); iter.hasNext(); count++) {
String name = "proxyConnectors.proxyConnector(" + count + ")";
ProxyConnectorConfiguration o = (ProxyConnectorConfiguration) iter.next();
writeProxyConnectorConfiguration(prefix + name + ".", o, registry);
}
}
if (value.getNetworkProxies() != null && value.getNetworkProxies().size() > 0) {
registry.removeSubset(prefix + "networkProxies");
int count = 0;
for (Iterator iter = value.getNetworkProxies().iterator(); iter.hasNext(); count++) {
String name = "networkProxies.networkProxy(" + count + ")";
NetworkProxyConfiguration o = (NetworkProxyConfiguration) iter.next();
writeNetworkProxyConfiguration(prefix + name + ".", o, registry);
}
}
if (value.getLegacyArtifactPaths() != null && value.getLegacyArtifactPaths().size() > 0) {
registry.removeSubset(prefix + "legacyArtifactPaths");
int count = 0;
for (Iterator iter = value.getLegacyArtifactPaths().iterator(); iter.hasNext(); count++) {
String name = "legacyArtifactPaths.legacyArtifactPath(" + count + ")";
LegacyArtifactPath o = (LegacyArtifactPath) iter.next();
writeLegacyArtifactPath(prefix + name + ".", o, registry);
}
}
if (value.getRepositoryScanning() != null) {
writeRepositoryScanningConfiguration(prefix + "repositoryScanning.", value.getRepositoryScanning(), registry);
}
if (value.getWebapp() != null) {
writeWebappConfiguration(prefix + "webapp.", value.getWebapp(), registry);
}
if (value.getOrganisationInfo() != null) {
writeOrganisationInformation(prefix + "organisationInfo.", value.getOrganisationInfo(), registry);
}
if (value.getNetworkConfiguration() != null) {
writeNetworkConfiguration(prefix + "networkConfiguration.", value.getNetworkConfiguration(), registry);
}
if (value.getRedbackRuntimeConfiguration() != null) {
writeRedbackRuntimeConfiguration(prefix + "redbackRuntimeConfiguration.", value.getRedbackRuntimeConfiguration(), registry);
}
if (value.getArchivaRuntimeConfiguration() != null) {
writeArchivaRuntimeConfiguration(prefix + "archivaRuntimeConfiguration.", value.getArchivaRuntimeConfiguration(), registry);
}
if (value.getProxyConnectorRuleConfigurations() != null && value.getProxyConnectorRuleConfigurations().size() > 0) {
registry.removeSubset(prefix + "proxyConnectorRuleConfigurations");
int count = 0;
for (Iterator iter = value.getProxyConnectorRuleConfigurations().iterator(); iter.hasNext(); count++) {
String name = "proxyConnectorRuleConfigurations.proxyConnectorRuleConfiguration(" + count + ")";
ProxyConnectorRuleConfiguration o = (ProxyConnectorRuleConfiguration) iter.next();
writeProxyConnectorRuleConfiguration(prefix + name + ".", o, registry);
}
}
if (value.getArchivaDefaultConfiguration() != null) {
writeArchivaDefaultConfiguration(prefix + "archivaDefaultConfiguration.", value.getArchivaDefaultConfiguration(), registry);
}
}
}
use of org.apache.archiva.configuration.model.RemoteRepositoryConfiguration in project archiva by apache.
the class ConfigurationTest method createRemoteRepository.
private RemoteRepositoryConfiguration createRemoteRepository(String id, String name, String url) {
RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration();
repo.setId(id);
repo.setName(name);
repo.setLayout("default");
repo.setUrl(url);
return repo;
}
use of org.apache.archiva.configuration.model.RemoteRepositoryConfiguration in project archiva by apache.
the class ConfigurationTest method testRemoteRepositoryRetrieval.
@Test
public void testRemoteRepositoryRetrieval() {
RemoteRepositoryConfiguration repo1 = createRemoteRepository("id1", "name 1", "url 1");
configuration.addRemoteRepository(repo1);
RemoteRepositoryConfiguration repo2 = createRemoteRepository("id2", "name 2", "url 2");
configuration.addRemoteRepository(repo2);
Map<String, RemoteRepositoryConfiguration> map = configuration.getRemoteRepositoriesAsMap();
assertNotNull(map);
assertEquals(2, map.size());
assertEquals(new HashSet<String>(Arrays.asList("id1", "id2")), map.keySet());
assertEquals(new HashSet<RemoteRepositoryConfiguration>(Arrays.asList(repo1, repo2)), new HashSet<RemoteRepositoryConfiguration>(map.values()));
assertEquals(repo1, configuration.findRemoteRepositoryById("id1"));
assertEquals(repo2, configuration.findRemoteRepositoryById("id2"));
assertNull(configuration.findRemoteRepositoryById("id3"));
}
Aggregations