| <?xml version="1.0" ?> |
| <!-- |
| ~ Licensed to the Apache Software Foundation (ASF) under one |
| ~ or more contributor license agreements. See the NOTICE file |
| ~ distributed with this work for additional information |
| ~ regarding copyright ownership. The ASF licenses this file |
| ~ to you under the Apache License, Version 2.0 (the |
| ~ "License"); you may not use this file except in compliance |
| ~ with the License. You may obtain a copy of the License at |
| ~ |
| ~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~ |
| ~ Unless required by applicable law or agreed to in writing, |
| ~ software distributed under the License is distributed on an |
| ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~ KIND, either express or implied. See the License for the |
| ~ specific language governing permissions and limitations |
| ~ under the License. |
| --> |
| |
| <model> |
| <id>configuration</id> |
| <name>Configuration</name> |
| <description> |
| Configuration for the Maven Repository Manager. |
| </description> |
| <defaults> |
| <default> |
| <key>package</key> |
| <value>org.apache.archiva.configuration</value> |
| </default> |
| </defaults> |
| <classes> |
| <class rootElement="true" xml.tagName="configuration"> |
| <name>Configuration</name> |
| <version>1.0.0+</version> |
| <fields> |
| <field> |
| <name>version</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description>This is the version of the configuration format.</description> |
| </field> |
| <field java.adder="false"> |
| <description> |
| @deprecated use managedRepositories or remoteRepositories instead. |
| </description> |
| <name>repositories</name> |
| <version>1.0.0+</version> |
| <association java.generate-add="false" |
| java.generate-remove="false" |
| java.generate-break="false" |
| java.generate-create="false"> |
| <type>V1RepositoryConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>repositoryGroups</name> |
| <version>1.2.0+</version> |
| <association> |
| <type>RepositoryGroupConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description>The list of repository groups.</description> |
| </field> |
| <field> |
| <name>managedRepositories</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>ManagedRepositoryConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description>The list of repositories that this archiva instance uses.</description> |
| </field> |
| <field> |
| <name>remoteRepositories</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>RemoteRepositoryConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description>The list of repositories that this archiva can retrieve from or publish to.</description> |
| </field> |
| <field> |
| <name>proxyConnectors</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>ProxyConnectorConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description>The list of proxy connectors for this archiva instance.</description> |
| </field> |
| <!-- To be introduced later. |
| <field> |
| <name>syncConnectors</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>SyncConnectorConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description>The list of sync connectors for this archiva instance.</description> |
| </field> |
| --> |
| <field> |
| <name>networkProxies</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>NetworkProxyConfiguration</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The list of network proxies to use for outgoing requests. |
| </description> |
| </field> |
| <field> |
| <name>legacyArtifactPaths</name> |
| <version>1.1.0+</version> |
| <association> |
| <type>LegacyArtifactPath</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The list of custom legacy path to artifact. |
| </description> |
| </field> |
| <field> |
| <name>repositoryScanning</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>RepositoryScanningConfiguration</type> |
| <multiplicity>1</multiplicity> |
| </association> |
| <description> |
| The repository scanning configuration. |
| </description> |
| </field> |
| <!-- TODO: remove? can't seem to use ranges to not generate above 1.3.0 --> |
| <field> |
| <name>webapp</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>WebappConfiguration</type> |
| <multiplicity>1</multiplicity> |
| </association> |
| <description> |
| The webapp configuration. |
| </description> |
| </field> |
| <field> |
| <name>organisationInfo</name> |
| <version>1.1.0+</version> |
| <association> |
| <type>OrganisationInformation</type> |
| <multiplicity>1</multiplicity> |
| </association> |
| <description> |
| The organisation info. |
| </description> |
| </field> |
| <field> |
| <name>networkConfiguration</name> |
| <version>1.4.0+</version> |
| <association> |
| <type>NetworkConfiguration</type> |
| <multiplicity>1</multiplicity> |
| </association> |
| <description> |
| The NetworkConfiguration . |
| </description> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.2.0+</version> |
| <code><![CDATA[ |
| private java.util.Map<String, java.util.List<String>> repositoryToGroupMap; |
| |
| public java.util.Map<String, java.util.List<String>> getRepositoryToGroupMap() |
| { |
| if ( repositoryGroups != null ) |
| { |
| java.util.Map<String, java.util.List<String>> map = new java.util.HashMap<String, java.util.List<String>>(); |
| |
| for ( RepositoryGroupConfiguration group : (java.util.List<RepositoryGroupConfiguration>) repositoryGroups ) |
| { |
| for ( String repositoryId : (java.util.List<String>) group.getRepositories() ) |
| { |
| java.util.List<String> groups = map.get( repositoryId ); |
| if ( groups == null ) |
| { |
| groups = new java.util.ArrayList<String>(); |
| map.put( repositoryId, groups ); |
| } |
| groups.add( group.getId() ); |
| } |
| } |
| |
| repositoryToGroupMap = map; |
| } |
| return repositoryToGroupMap; |
| } |
| |
| public java.util.Map<String, RepositoryGroupConfiguration> getRepositoryGroupsAsMap() |
| { |
| java.util.Map<String, RepositoryGroupConfiguration> map = new java.util.HashMap<String, RepositoryGroupConfiguration>(); |
| if ( repositoryGroups != null ) |
| { |
| for ( RepositoryGroupConfiguration group : (java.util.List<RepositoryGroupConfiguration>) repositoryGroups ) |
| { |
| map.put( group.getId(), group ); |
| } |
| } |
| return map; |
| } |
| |
| public RepositoryGroupConfiguration findRepositoryGroupById( String id ) |
| { |
| if ( repositoryGroups != null ) |
| { |
| for ( RepositoryGroupConfiguration group : (java.util.List<RepositoryGroupConfiguration>) repositoryGroups ) |
| { |
| if ( group.getId().equals( id ) ) |
| { |
| return group; |
| } |
| } |
| } |
| return null; |
| } |
| |
| private java.util.Map<String, java.util.List<String>> groupToRepositoryMap; |
| |
| public java.util.Map<String, java.util.List<String>> getGroupToRepositoryMap() |
| { |
| if ( repositoryGroups != null && managedRepositories != null ) |
| { |
| java.util.Map<String, java.util.List<String>> map = new java.util.HashMap<String, java.util.List<String>>(); |
| |
| for ( ManagedRepositoryConfiguration repo : (java.util.List<ManagedRepositoryConfiguration>) managedRepositories ) |
| { |
| for ( RepositoryGroupConfiguration group : (java.util.List<RepositoryGroupConfiguration>) repositoryGroups ) |
| { |
| if ( !group.getRepositories().contains( repo.getId() ) ) |
| { |
| String groupId = group.getId(); |
| java.util.List<String> repos = map.get( groupId ); |
| if ( repos == null ) |
| { |
| repos = new java.util.ArrayList<String>(); |
| map.put( groupId, repos ); |
| } |
| repos.add( repo.getId() ); |
| } |
| } |
| } |
| groupToRepositoryMap = map; |
| } |
| return groupToRepositoryMap; |
| } |
| ]]></code> |
| </codeSegment> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| public java.util.Map<String, NetworkProxyConfiguration> getNetworkProxiesAsMap() |
| { |
| java.util.Map<String, NetworkProxyConfiguration> map = new java.util.HashMap<String, NetworkProxyConfiguration>(); |
| if ( networkProxies != null ) |
| { |
| for ( java.util.Iterator<NetworkProxyConfiguration> i = networkProxies.iterator(); i.hasNext(); ) |
| { |
| NetworkProxyConfiguration proxy = i.next(); |
| map.put( proxy.getId(), proxy ); |
| } |
| } |
| return map; |
| } |
| |
| public java.util.Map<String, java.util.List<ProxyConnectorConfiguration>> getProxyConnectorAsMap() |
| { |
| java.util.Map<String, java.util.List<ProxyConnectorConfiguration>> proxyConnectorMap = |
| new java.util.HashMap<String, java.util.List<ProxyConnectorConfiguration>>(); |
| |
| if( proxyConnectors != null ) |
| { |
| java.util.Iterator<ProxyConnectorConfiguration> it = proxyConnectors.iterator(); |
| while ( it.hasNext() ) |
| { |
| ProxyConnectorConfiguration proxyConfig = it.next(); |
| String key = proxyConfig.getSourceRepoId(); |
| |
| java.util.List<ProxyConnectorConfiguration> connectors = proxyConnectorMap.get( key ); |
| if ( connectors == null ) |
| { |
| connectors = new java.util.ArrayList<ProxyConnectorConfiguration>(); |
| proxyConnectorMap.put( key, connectors ); |
| } |
| |
| connectors.add( proxyConfig ); |
| java.util.Collections.sort( connectors, |
| org.apache.archiva.configuration.functors.ProxyConnectorConfigurationOrderComparator.getInstance() ); |
| } |
| } |
| |
| return proxyConnectorMap; |
| } |
| |
| public java.util.Map<String, RemoteRepositoryConfiguration> getRemoteRepositoriesAsMap() |
| { |
| java.util.Map<String, RemoteRepositoryConfiguration> map = new java.util.HashMap<String, RemoteRepositoryConfiguration>(); |
| if ( remoteRepositories != null ) |
| { |
| for ( java.util.Iterator<RemoteRepositoryConfiguration> i = remoteRepositories.iterator(); i.hasNext(); ) |
| { |
| RemoteRepositoryConfiguration repo = i.next(); |
| map.put( repo.getId(), repo ); |
| } |
| } |
| return map; |
| } |
| |
| public RemoteRepositoryConfiguration findRemoteRepositoryById( String id ) |
| { |
| if ( remoteRepositories != null ) |
| { |
| for ( java.util.Iterator<RemoteRepositoryConfiguration> i = remoteRepositories.iterator(); i.hasNext(); ) |
| { |
| RemoteRepositoryConfiguration repo = i.next(); |
| if ( repo.getId().equals( id ) ) |
| { |
| return repo; |
| } |
| } |
| } |
| return null; |
| } |
| |
| public java.util.Map<String, ManagedRepositoryConfiguration> getManagedRepositoriesAsMap() |
| { |
| java.util.Map<String, ManagedRepositoryConfiguration> map = new java.util.HashMap<String, ManagedRepositoryConfiguration>(); |
| if ( managedRepositories != null ) |
| { |
| for ( java.util.Iterator<ManagedRepositoryConfiguration> i = managedRepositories.iterator(); i.hasNext(); ) |
| { |
| ManagedRepositoryConfiguration repo = i.next(); |
| map.put( repo.getId(), repo ); |
| } |
| } |
| return map; |
| } |
| |
| public ManagedRepositoryConfiguration findManagedRepositoryById( String id ) |
| { |
| if ( managedRepositories != null ) |
| { |
| for ( java.util.Iterator<ManagedRepositoryConfiguration> i = managedRepositories.iterator(); i.hasNext(); ) |
| { |
| ManagedRepositoryConfiguration repo = i.next(); |
| if ( repo.getId().equals( id ) ) |
| { |
| return repo; |
| } |
| } |
| } |
| return null; |
| } |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| |
| <!-- |
| ____ _ _ |
| | _ \ ___ _ __ ___ ___(_) |_ ___ _ __ _ _ |
| | |_) / _ \ '_ \ / _ \/ __| | __/ _ \| '__| | | | |
| | _ < __/ |_) | (_) \__ \ | || (_) | | | |_| | |
| |_| \_\___| .__/ \___/|___/_|\__\___/|_| \__, | |
| |_| |___/ |
| |
| --> |
| |
| <class> |
| <name>AbstractRepositoryConfiguration</name> |
| <version>1.0.0+</version> |
| <abstract>true</abstract> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The repository identifier. |
| </description> |
| </field> |
| <field> |
| <name>name</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The descriptive name of the repository. |
| </description> |
| </field> |
| <field> |
| <name>layout</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The layout of the repository. Valid values are "default" and "legacy". |
| </description> |
| <!-- TODO: should be able to detect this from the repository (perhaps by metadata at the root) --> |
| <defaultValue>default</defaultValue> |
| </field> |
| <field> |
| <name>indexDir</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description> |
| The directory for the indexes of this repository. |
| </description> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| public int hashCode() |
| { |
| int result = 17; |
| result = 37 * result + ( id != null ? id.hashCode() : 0 ); |
| return result; |
| } |
| |
| public boolean equals( Object other ) |
| { |
| if ( this == other ) |
| { |
| return true; |
| } |
| |
| if ( !( other instanceof AbstractRepositoryConfiguration ) ) |
| { |
| return false; |
| } |
| |
| AbstractRepositoryConfiguration that = (AbstractRepositoryConfiguration) other; |
| boolean result = true; |
| result = result && ( getId() == null ? that.getId() == null : getId().equals( that.getId() ) ); |
| return result; |
| } |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>RemoteRepositoryConfiguration</name> |
| <version>1.0.0+</version> |
| <superClass>AbstractRepositoryConfiguration</superClass> |
| <fields> |
| <field> |
| <name>url</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The URL for this repository. |
| </description> |
| </field> |
| <field> |
| <name>username</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description> |
| The Username for this repository. |
| </description> |
| </field> |
| <field> |
| <name>password</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description> |
| The Password for this repository. |
| </description> |
| </field> |
| <field> |
| <name>timeout</name> |
| <version>1.0.1+</version> |
| <type>int</type> |
| <description> |
| Timeout in seconds for connections to this repository |
| </description> |
| <defaultValue>60</defaultValue> |
| </field> |
| <field> |
| <name>refreshCronExpression</name> |
| <version>1.4.0+</version> |
| <type>String</type> |
| <description> |
| When to run the refresh task. |
| Default is every sunday at 8H00. |
| </description> |
| <defaultValue>0 0 08 ? * SUN</defaultValue> |
| </field> |
| <field> |
| <name>downloadRemoteIndex</name> |
| <version>1.4.0+</version> |
| <type>boolean</type> |
| <description> |
| Activate download of remote index if remoteIndexUrl is set too. |
| </description> |
| <defaultValue>false</defaultValue> |
| </field> |
| <field> |
| <name>remoteIndexUrl</name> |
| <version>1.4.0+</version> |
| <type>String</type> |
| <description> |
| Remote Index Url : if not starting with http will be relative to the remote repository url. |
| </description> |
| </field> |
| <field> |
| <name>remoteDownloadNetworkProxyId</name> |
| <version>1.4.0+</version> |
| <type>String</type> |
| <description> |
| Id of the networkProxy to use when downloading remote index. |
| </description> |
| </field> |
| <field> |
| <name>remoteDownloadTimeout</name> |
| <version>1.4.0+</version> |
| <type>int</type> |
| <description> |
| Timeout in seconds for download remote index. Default is more long than artifact download. |
| </description> |
| <defaultValue>300</defaultValue> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| public String toString() |
| { |
| return "RemoteRepositoryConfiguration id:'" + getId() + "',name:'" + getName() +"'"; |
| } |
| |
| |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>ManagedRepositoryConfiguration</name> |
| <version>1.0.0+</version> |
| <superClass>AbstractRepositoryConfiguration</superClass> |
| <fields> |
| <field> |
| <name>location</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The file system location for this repository. |
| </description> |
| </field> |
| <field> |
| <name>stagingLocation</name> |
| <version>1.4.0+</version> |
| <type>String</type> |
| <required>false</required> |
| <description> |
| The file system location for any attached staging repositories. |
| </description> |
| </field> |
| <field> |
| <name>releases</name> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <description>True if this repository contains release versioned artifacts.</description> |
| <defaultValue>true</defaultValue> |
| </field> |
| <field> |
| <name>blockRedeployments</name> |
| <version>1.3.0+</version> |
| <type>boolean</type> |
| <description>True if re-deployment of artifacts already in the repository will be blocked.</description> |
| <defaultValue>false</defaultValue> |
| </field> |
| <field> |
| <name>snapshots</name> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <description>True if this repository contains snapshot versioned artifacts.</description> |
| <defaultValue>false</defaultValue> |
| </field> |
| <field> |
| <name>scanned</name> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <description>True if this repository should be scanned and processed.</description> |
| <defaultValue>true</defaultValue> |
| </field> |
| <field> |
| <name>stagingRequired</name> |
| <version>1.4.0+</version> |
| <type>boolean</type> |
| <description> |
| Whether staging repositories can be created for this repository. |
| </description> |
| </field> |
| <field> |
| <name>refreshCronExpression</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description> |
| When to run the refresh task. |
| Default is every hour |
| </description> |
| <defaultValue>0 0 * * * ?</defaultValue> |
| </field> |
| <field> |
| <name>retentionCount</name> |
| <version>1.0.0+</version> |
| <type>int</type> |
| <description> |
| The total count of the artifact to be retained for each snapshot. |
| </description> |
| <defaultValue>2</defaultValue> |
| </field> |
| <field> |
| <name>daysOlder</name> |
| <version>1.0.0+</version> |
| <type>int</type> |
| <description> |
| The number of days old which will be the basis for removing a snapshot. |
| </description> |
| <defaultValue>100</defaultValue> |
| </field> |
| <field> |
| <name>deleteReleasedSnapshots</name> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <description> |
| True if the released snapshots are to be removed from the repo during repository purge. |
| </description> |
| <defaultValue>false</defaultValue> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>V1RepositoryConfiguration</name> |
| <version>1.0.0+</version> |
| <superClass>ManagedRepositoryConfiguration</superClass> |
| <fields> |
| <field> |
| <name>url</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The URL for this repository. |
| </description> |
| </field> |
| <field> |
| <name>indexed</name> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <required>true</required> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>LegacyArtifactPath</name> |
| <version>1.1.0+</version> |
| <fields> |
| <field> |
| <name>path</name> |
| <version>1.1.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The legacy path. |
| </description> |
| </field> |
| <field> |
| <name>artifact</name> |
| <version>1.1.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The artifact reference, as " [groupId] : [artifactId] : [version] : [classifier] : [type] ". |
| </description> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| public boolean match( String path ) |
| { |
| return path.equals( this.path ); |
| } |
| |
| public String getGroupId() |
| { |
| return artifact.split( ":" )[0]; |
| } |
| |
| public String getArtifactId() |
| { |
| return artifact.split( ":" )[1]; |
| } |
| |
| public String getVersion() |
| { |
| return artifact.split( ":" )[2]; |
| } |
| |
| public String getClassifier() |
| { |
| String classifier = artifact.split( ":" )[3]; |
| return classifier.length() > 0 ? classifier : null; |
| } |
| |
| public String getType() |
| { |
| return artifact.split( ":" )[4]; |
| } |
| |
| @Override |
| public boolean equals( Object o ) |
| { |
| if ( this == o ) |
| { |
| return true; |
| } |
| if ( o == null || getClass() != o.getClass() ) |
| { |
| return false; |
| } |
| |
| LegacyArtifactPath that = (LegacyArtifactPath) o; |
| |
| if ( path != null ? !path.equals( that.path ) : that.path != null ) |
| { |
| return false; |
| } |
| |
| return true; |
| } |
| |
| @Override |
| public int hashCode() |
| { |
| return path != null ? 37 + path.hashCode() : 0; |
| } |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| <class> |
| <name>RepositoryGroupConfiguration</name> |
| <version>1.2.0+</version> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>1.2.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description>The id of the repository group.</description> |
| </field> |
| <field> |
| <name>repositories</name> |
| <version>1.2.0+</version> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description>The list of repository ids under the group.</description> |
| </field> |
| </fields> |
| </class> |
| |
| <!-- |
| ____ _ |
| / ___|___ _ __ _ __ ___ ___| |_ ___ _ __ ___ |
| | | / _ \| '_ \| '_ \ / _ \/ __| __/ _ \| '__/ __| |
| | |__| (_) | | | | | | | __/ (__| || (_) | | \__ \ |
| \____\___/|_| |_|_| |_|\___|\___|\__\___/|_| |___/ |
| |
| --> |
| |
| <class> |
| <name>AbstractRepositoryConnectorConfiguration</name> |
| <abstract>true</abstract> |
| <version>1.0.0+</version> |
| <fields> |
| <field> |
| <name>sourceRepoId</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The Repository Source for this connector. |
| </description> |
| </field> |
| <field> |
| <name>targetRepoId</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <required>true</required> |
| <description> |
| The Repository Target for this connector. |
| </description> |
| </field> |
| <field> |
| <name>proxyId</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description> |
| The network proxy ID to use for this connector. |
| </description> |
| </field> |
| <field> |
| <name>blackListPatterns</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The list of blacklisted patterns for this connector. |
| </description> |
| </field> |
| <field> |
| <name>whiteListPatterns</name> |
| <version>1.0.0+</version> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The list of whitelisted patterns for this connector. |
| </description> |
| </field> |
| <field> |
| <name>policies</name> |
| <version>1.0.0+</version> |
| <type>Map</type> |
| <description>Policy configuration for the connector.</description> |
| <association xml.mapStyle="inline"> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>properties</name> |
| <version>1.0.0+</version> |
| <type>Map</type> |
| <description>Configuration for the connector.</description> |
| <association xml.mapStyle="inline"> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| <field> |
| <name>disabled</name> |
| <version>1.2+</version> |
| <description> |
| If the the repository proxy connector is disabled or not |
| </description> |
| <type>boolean</type> |
| <defaultValue>false</defaultValue> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| /** |
| * Obtain a specific policy from the underlying connector. |
| * |
| * @param policyId the policy id to fetch. |
| * @param defaultValue the default value for the policy id. |
| * @return the configured policy value (or default value if not found). |
| */ |
| public String getPolicy( String policyId, String defaultValue ) |
| { |
| if ( this.getPolicies() == null ) |
| { |
| return null; |
| } |
| |
| Object value = this.getPolicies().get( policyId ); |
| |
| if ( value == null ) |
| { |
| return defaultValue; |
| } |
| |
| return (String) value; |
| } |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| |
| <class> |
| <superClass>AbstractRepositoryConnectorConfiguration</superClass> |
| <name>ProxyConnectorConfiguration</name> |
| <version>1.0.0+</version> |
| <fields> |
| <field> |
| <name>order</name> |
| <version>1.0.0+</version> |
| <description> |
| The order of the proxy connectors. (0 means no order specified) |
| </description> |
| <type>int</type> |
| <defaultValue>0</defaultValue> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| /** |
| * The order id for UNORDERED |
| */ |
| public static final int UNORDERED = 0; |
| |
| /** |
| * The policy key {@link #getPolicies()} for error handling. |
| * See {@link org.apache.archiva.policies.DownloadErrorPolicy} |
| * for details on potential values to this policy key. |
| */ |
| public static final String POLICY_PROPAGATE_ERRORS = "propagate-errors"; |
| |
| /** |
| * The policy key {@link #getPolicies()} for error handling when an artifact is present. |
| * See {@link org.apache.archiva.policies.DownloadErrorPolicy} |
| * for details on potential values to this policy key. |
| */ |
| public static final String POLICY_PROPAGATE_ERRORS_ON_UPDATE = "propagate-errors-on-update"; |
| |
| /** |
| * The policy key {@link #getPolicies()} for snapshot handling. |
| * See {@link org.apache.archiva.policies.SnapshotsPolicy} |
| * for details on potential values to this policy key. |
| */ |
| public static final String POLICY_SNAPSHOTS = "snapshots"; |
| |
| /** |
| * The policy key {@link #getPolicies()} for releases handling. |
| * See {@link org.apache.archiva.policies.ReleasesPolicy} |
| * for details on potential values to this policy key. |
| */ |
| public static final String POLICY_RELEASES = "releases"; |
| |
| /** |
| * The policy key {@link #getPolicies()} for checksum handling. |
| * See {@link org.apache.archiva.policies.ChecksumPolicy} |
| * for details on potential values to this policy key. |
| */ |
| public static final String POLICY_CHECKSUM = "checksum"; |
| |
| /** |
| * The policy key {@link #getPolicies()} for cache-failures handling. |
| * See {@link org.apache.archiva.policies.CachedFailuresPolicy} |
| * for details on potential values to this policy key. |
| */ |
| public static final String POLICY_CACHE_FAILURES = "cache-failures"; |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| |
| <class> |
| <superClass>AbstractRepositoryConnectorConfiguration</superClass> |
| <name>SyncConnectorConfiguration</name> |
| <abstract>true</abstract> |
| <version>1.0.0+</version> |
| <fields> |
| <field> |
| <name>cronExpression</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description>When to run the sync mechanism. Default is every hour on the hour.</description> |
| <defaultValue>0 0 * * * ?</defaultValue> |
| </field> |
| <field> |
| <name>method</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description>The type of synchronization to use.</description> |
| <defaultValue>rsync</defaultValue> |
| </field> |
| </fields> |
| </class> |
| |
| <!-- |
| ____ _ |
| | _ \ _ __ _____ _(_) ___ ___ |
| | |_) | '__/ _ \ \/ / |/ _ \/ __| |
| | __/| | | (_) > <| | __/\__ \ |
| |_| |_| \___/_/\_\_|\___||___/ |
| |
| --> |
| |
| <class> |
| <name>NetworkProxyConfiguration</name> |
| <version>1.0.0+</version> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>1.0.0+</version> |
| <type>String</type> |
| <description> |
| The ID for this proxy. |
| </description> |
| </field> |
| <field> |
| <name>protocol</name> |
| <version>1.0.0+</version> |
| <description> |
| The network protocol to use with this proxy: "http", "socks-4" |
| </description> |
| <type>String</type> |
| <required>true</required> |
| <defaultValue>http</defaultValue> |
| </field> |
| <field> |
| <name>host</name> |
| <version>1.0.0+</version> |
| <description> |
| The proxy host. |
| </description> |
| <type>String</type> |
| <required>true</required> |
| </field> |
| <field> |
| <name>port</name> |
| <version>1.0.0+</version> |
| <description> |
| The proxy port. |
| </description> |
| <type>int</type> |
| <defaultValue>8080</defaultValue> |
| </field> |
| <field> |
| <name>username</name> |
| <version>1.0.0+</version> |
| <description> |
| The proxy user. |
| </description> |
| <type>String</type> |
| </field> |
| <field> |
| <name>password</name> |
| <version>1.0.0+</version> |
| <description> |
| The proxy password. |
| </description> |
| <type>String</type> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| public int hashCode() |
| { |
| int result = 17; |
| result = 37 * result + ( id != null ? id.hashCode() : 0 ); |
| return result; |
| } |
| |
| public boolean equals( Object other ) |
| { |
| if ( this == other ) |
| { |
| return true; |
| } |
| |
| if ( !( other instanceof NetworkProxyConfiguration ) ) |
| { |
| return false; |
| } |
| |
| NetworkProxyConfiguration that = (NetworkProxyConfiguration) other; |
| boolean result = true; |
| result = result && ( getId() == null ? that.getId() == null : getId().equals( that.getId() ) ); |
| return result; |
| } |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| |
| |
| |
| </class> |
| |
| <!-- |
| ____ _ |
| / ___| ___ __ _ _ __ _ __ (_)_ __ __ _ |
| \___ \ / __/ _` | '_ \| '_ \| | '_ \ / _` | |
| ___) | (_| (_| | | | | | | | | | | | (_| | |
| |____/ \___\__,_|_| |_|_| |_|_|_| |_|\__, | |
| |___/ |
| |
| --> |
| <class> |
| <name>RepositoryScanningConfiguration</name> |
| <version>1.0.0+</version> |
| <fields> |
| <field> |
| <name>fileTypes</name> |
| <version>1.0.0+</version> |
| <required>true</required> |
| <association> |
| <type>FileType</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The FileTypes for the repository scanning configuration. |
| </description> |
| </field> |
| <field> |
| <name>knownContentConsumers</name> |
| <version>1.0.0+</version> |
| <required>true</required> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The list of active consumers IDs for known content. |
| </description> |
| </field> |
| <field> |
| <name>invalidContentConsumers</name> |
| <version>1.0.0+</version> |
| <required>true</required> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| <description> |
| The list of active consumer IDs for invalid content. |
| </description> |
| </field> |
| </fields> |
| </class> |
| <class> |
| <name>FileType</name> |
| <version>1.0.0+</version> |
| <description>The FileType object</description> |
| <fields> |
| <field> |
| <name>id</name> |
| <version>1.0.0+</version> |
| <required>true</required> |
| <type>String</type> |
| </field> |
| <field> |
| <name>patterns</name> |
| <version>1.0.0+</version> |
| <required>true</required> |
| <association> |
| <type>String</type> |
| <multiplicity>*</multiplicity> |
| </association> |
| </field> |
| </fields> |
| <codeSegments> |
| <codeSegment> |
| <version>1.0.0+</version> |
| <code><![CDATA[ |
| |
| @Override |
| public boolean equals( Object o ) |
| { |
| if ( this == o ) |
| { |
| return true; |
| } |
| if ( o == null || getClass() != o.getClass() ) |
| { |
| return false; |
| } |
| |
| FileType fileType = (FileType) o; |
| |
| if ( id != null ? !id.equals( fileType.id ) : fileType.id != null ) |
| { |
| return false; |
| } |
| |
| return true; |
| } |
| |
| @Override |
| public int hashCode() |
| { |
| return id != null ? 37 + id.hashCode() : 0; |
| } |
| ]]></code> |
| </codeSegment> |
| </codeSegments> |
| </class> |
| |
| <!-- |
| __ _______ ____ _ ____ ____ |
| \ \ / / ____| __ ) / \ | _ \| _ \ |
| \ \ /\ / /| _| | _ \ / _ \ | |_) | |_) | |
| \ V V / | |___| |_) / ___ \| __/| __/ |
| \_/\_/ |_____|____/_/ \_\_| |_| |
| |
| --> |
| |
| <class> |
| <name>OrganisationInformation</name> |
| <version>1.1.0+</version> |
| <description> |
| The organisation information settings. |
| </description> |
| <fields> |
| <field> |
| <name>name</name> |
| <description>name of the organisation</description> |
| <version>1.1.0+</version> |
| <association> |
| <type>String</type> |
| </association> |
| </field> |
| <field> |
| <name>url</name> |
| <description>name of the organisation</description> |
| <version>1.1.0+</version> |
| <association> |
| <type>String</type> |
| </association> |
| </field> |
| <field> |
| <name>logoLocation</name> |
| <description>name of the organisation</description> |
| <version>1.1.0+</version> |
| <association> |
| <type>String</type> |
| </association> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>WebappConfiguration</name> |
| <version>1.0.0+</version> |
| <description> |
| The webapp configuration settings. |
| </description> |
| <fields> |
| <field> |
| <name>ui</name> |
| <description>options for altering the ui presentation</description> |
| <version>1.0.0+</version> |
| <association> |
| <type>UserInterfaceOptions</type> |
| </association> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>UserInterfaceOptions</name> |
| <version>1.0.0+</version> |
| <description> |
| The user interface configuration settings. |
| </description> |
| <fields> |
| <field> |
| <name>showFindArtifacts</name> |
| <description>true if find artifacts should be enabled</description> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <defaultValue>true</defaultValue> |
| </field> |
| <field> |
| <name>appletFindEnabled</name> |
| <description>true if applet behavior for find artifacts should be enabled</description> |
| <version>1.0.0+</version> |
| <type>boolean</type> |
| <defaultValue>true</defaultValue> |
| </field> |
| <field> |
| <name>disableEasterEggs</name> |
| <version>1.3.0+</version> |
| <type>boolean</type> |
| <defaultValue>false</defaultValue> |
| </field> |
| </fields> |
| </class> |
| |
| <class> |
| <name>NetworkConfiguration</name> |
| <version>1.4.0+</version> |
| <description> |
| The network configuration for external http request to repositories. |
| </description> |
| <fields> |
| <field> |
| <name>maxTotal</name> |
| <description>maximum total external http connections.</description> |
| <version>1.4.0+</version> |
| <type>int</type> |
| <defaultValue>30</defaultValue> |
| </field> |
| <field> |
| <name>maxTotalPerHost</name> |
| <description>maximum total external http connections per host</description> |
| <version>1.4.0+</version> |
| <type>int</type> |
| <defaultValue>30</defaultValue> |
| </field> |
| <field> |
| <name>usePooling</name> |
| <description>use or not http connection pooling default true</description> |
| <version>1.4.0+</version> |
| <type>boolean</type> |
| <defaultValue>true</defaultValue> |
| </field> |
| </fields> |
| </class> |
| </classes> |
| </model> |
| |
| |