-<!--\r
- ~ Licensed to the Apache Software Foundation (ASF) under one\r
- ~ or more contributor license agreements. See the NOTICE file\r
- ~ distributed with this work for additional information\r
- ~ regarding copyright ownership. The ASF licenses this file\r
- ~ to you under the Apache License, Version 2.0 (the\r
- ~ "License"); you may not use this file except in compliance\r
- ~ with the License. You may obtain a copy of the License at\r
- ~\r
- ~ http://www.apache.org/licenses/LICENSE-2.0\r
- ~\r
- ~ Unless required by applicable law or agreed to in writing,\r
- ~ software distributed under the License is distributed on an\r
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r
- ~ KIND, either express or implied. See the License for the\r
- ~ specific language governing permissions and limitations\r
- ~ under the License.\r
- -->\r
-\r
-<model>\r
- <id>configuration</id>\r
- <name>Configuration</name>\r
- <description>\r
- Configuration for the Maven Repository Manager.\r
- </description>\r
- <defaults>\r
- <default>\r
- <key>package</key>\r
- <value>org.apache.maven.archiva.configuration</value>\r
- </default>\r
- </defaults>\r
- <classes>\r
- <class rootElement="true" xml.tagName="configuration">\r
- <name>Configuration</name>\r
- <version>1.0.0</version>\r
- <fields>\r
- <field>\r
- <name>repositories</name>\r
- <version>1.0.0</version>\r
- <association>\r
- <type>RepositoryConfiguration</type>\r
- <multiplicity>*</multiplicity>\r
- </association>\r
- </field>\r
- <field>\r
- <name>proxiedRepositories</name>\r
- <version>1.0.0</version>\r
- <association>\r
- <type>ProxiedRepositoryConfiguration</type>\r
- <multiplicity>*</multiplicity>\r
- </association>\r
- </field>\r
- <field>\r
- <name>syncedRepositories</name>\r
- <version>1.0.0</version>\r
- <association>\r
- <type>SyncedRepositoryConfiguration</type>\r
- <multiplicity>*</multiplicity>\r
- </association>\r
- </field>\r
- <field>\r
- <name>localRepository</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <description>\r
- The location of the local repository.\r
- </description>\r
- </field>\r
- <field>\r
- <name>indexPath</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <description>\r
- The location of the Lucene index to use for the repository. The default is the .index subdirectory of\r
- the repository.\r
- </description>\r
- </field>\r
- <field>\r
- <name>minimalIndexPath</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <description>\r
- The location of the reduced Lucene index to use for the repository. The default is the .small-index\r
- subdirectory of the repository.\r
- </description>\r
- </field>\r
- <field>\r
- <name>dataRefreshCronExpression</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <description>When to run the data refresh task. Default is every 30 mins (translated as every 0 and 30 minute reading of every hour)</description>\r
- <defaultValue>0 0,30 * * * ?</defaultValue>\r
+<!--
+ ~ 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.maven.archiva.configuration</value>
+ </default>
+ </defaults>
+ <classes>
+ <class rootElement="true" xml.tagName="configuration">
+ <name>Configuration</name>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>repositories</name>
+ <version>1.0.0</version>
+ <association>
+ <type>RepositoryConfiguration</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>proxiedRepositories</name>
+ <version>1.0.0</version>
+ <association>
+ <type>ProxiedRepositoryConfiguration</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>syncedRepositories</name>
+ <version>1.0.0</version>
+ <association>
+ <type>SyncedRepositoryConfiguration</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>localRepository</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>
+ The location of the local repository.
+ </description>
+ </field>
+ <field>
+ <name>indexPath</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>
+ The location of the Lucene index to use for the repository. The default is the .index subdirectory of
+ the repository.
+ </description>
+ </field>
+ <field>
+ <name>minimalIndexPath</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>
+ The location of the reduced Lucene index to use for the repository. The default is the .small-index
+ subdirectory of the repository.
+ </description>
+ </field>
+ <field>
+ <name>dataRefreshCronExpression</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>When to run the data refresh task. Default is every 30 mins (translated as every 0 and 30 minute reading of every hour)</description>
+ <defaultValue>0 0,30 * * * ?</defaultValue>
</field>
<!--
- <field>\r
- <name>globalBlackListPatterns</name>\r
- <version>1.0.0</version>\r
- <description>Blacklisted patterns in the discovery process</description>\r
- <association>\r
- <type>String</type>\r
- <multiplicity>*</multiplicity>\r
- </association>\r
- </field>
- -->\r
- <field>\r
- <name>proxy</name>\r
- <version>1.0.0</version>\r
- <association>\r
- <type>Proxy</type>\r
- </association>\r
- <description>The network proxy to use for outgoing requests.</description>\r
- </field>\r
- </fields>\r
- <codeSegments>\r
- <codeSegment>\r
- <version>1.0.0</version>\r
- <code><![CDATA[\r
- public Configuration()\r
- {\r
- localRepository = new java.io.File( System.getProperty( "user.home" ), ".m2/repository" ).getAbsolutePath();\r
- }\r
-\r
- public boolean isValid()\r
- {\r
- boolean valid = true;\r
-\r
- if ( indexPath == null )\r
- {\r
- valid = false;\r
- }\r
- else if ( getRepositories().isEmpty() )\r
- {\r
- valid = false;\r
- }\r
- return valid;\r
- }\r
-\r
- /**\r
- * Perform any Upgrades and Adjustments needed to bring configuration up to the\r
- * current configuration format.\r
- */\r
- public void sanitize()\r
- {\r
- for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )\r
- {\r
- RepositoryConfiguration repo = (RepositoryConfiguration) i.next();\r
-\r
- // Ensure that the repo.urlName is set.\r
- if ( org.codehaus.plexus.util.StringUtils.isEmpty( repo.getUrlName() ) )\r
- {\r
- repo.setUrlName( repo.getId() );\r
- }\r
- }\r
- }\r
-\r
- public RepositoryConfiguration getRepositoryByUrlName( String urlName )\r
- {\r
- for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )\r
- {\r
- RepositoryConfiguration repository = (RepositoryConfiguration) i.next();\r
- if ( urlName != null ? urlName.equals( repository.getUrlName() ) : repository.getUrlName() == null )\r
- {\r
- return repository;\r
- }\r
- }\r
- return null;\r
- }\r
- \r
- public RepositoryConfiguration getRepositoryById( String id )\r
- {\r
- for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )\r
- {\r
- RepositoryConfiguration repository = (RepositoryConfiguration) i.next();\r
- if ( id != null ? id.equals( repository.getId() ) : repository.getId() == null )\r
- {\r
- return repository;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public SyncedRepositoryConfiguration getSyncedRepositoryById( String id )\r
- {\r
- for ( java.util.Iterator i = getSyncedRepositories().iterator(); i.hasNext(); )\r
- {\r
- SyncedRepositoryConfiguration repository = (SyncedRepositoryConfiguration) i.next();\r
- if ( id != null ? id.equals( repository.getId() ) : repository.getId() == null )\r
- {\r
- return repository;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- public ProxiedRepositoryConfiguration getProxiedRepositoryById( String id )\r
- {\r
- for ( java.util.Iterator i = getProxiedRepositories().iterator(); i.hasNext(); )\r
- {\r
- ProxiedRepositoryConfiguration repository = (ProxiedRepositoryConfiguration) i.next();\r
- if ( id != null ? id.equals( repository.getId() ) : repository.getId() == null )\r
- {\r
- return repository;\r
- }\r
- }\r
- return null;\r
- }\r
-\r
- private java.util.Map repositoriesMap;\r
-\r
- public java.util.Map getRepositoriesMap()\r
- {\r
- if ( repositoriesMap == null )\r
- {\r
- repositoriesMap = new java.util.HashMap();\r
- for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )\r
- {\r
- RepositoryConfiguration repository = (RepositoryConfiguration) i.next();\r
- repositoriesMap.put( repository.getId(), repository );\r
- }\r
- }\r
- return repositoriesMap;\r
- }\r
-\r
- private java.util.Map proxiedRepositoriesMap;\r
-\r
- public java.util.Map getProxiedRepositoriesMap()\r
- {\r
- if ( proxiedRepositoriesMap == null )\r
- {\r
- proxiedRepositoriesMap = new java.util.HashMap();\r
- for ( java.util.Iterator i = getProxiedRepositories().iterator(); i.hasNext(); )\r
- {\r
- ProxiedRepositoryConfiguration repository = (ProxiedRepositoryConfiguration) i.next();\r
- proxiedRepositoriesMap.put( repository.getId(), repository );\r
- }\r
- }\r
- return proxiedRepositoriesMap;\r
- }\r
-\r
- private java.util.Map syncedRepositoriesMap;\r
-\r
- public java.util.Map getSyncedRepositoriesMap()\r
- {\r
- if ( syncedRepositoriesMap == null )\r
- {\r
- syncedRepositoriesMap = new java.util.HashMap();\r
- for ( java.util.Iterator i = getSyncedRepositories().iterator(); i.hasNext(); )\r
- {\r
- SyncedRepositoryConfiguration repository = (SyncedRepositoryConfiguration) i.next();\r
- syncedRepositoriesMap.put( repository.getId(), repository );\r
- }\r
- }\r
- return syncedRepositoriesMap;\r
- }\r
- ]]></code>\r
- </codeSegment>\r
- </codeSegments>\r
- </class>\r
- <class>\r
- <name>AbstractRepositoryConfiguration</name>\r
- <abstract>true</abstract>\r
- <version>1.0.0</version>\r
- <fields>\r
- <field>\r
- <name>id</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <required>true</required>\r
- <description>\r
- The repository identifier.\r
- </description>\r
- </field>\r
- <field>\r
- <name>name</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <required>true</required>\r
- <description>\r
- The descriptive name of the repository.\r
- </description>\r
- </field>\r
- <field>\r
- <name>layout</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <required>true</required>\r
- <description>\r
- The layout of the repository. Valid values are "default" and "legacy".\r
- </description>\r
- <!-- TODO: should be able to detect this from the repository (perhaps by metadata at the root) -->\r
- <defaultValue>default</defaultValue>\r
- </field>\r
- </fields>\r
- <codeSegments>\r
- <codeSegment>\r
- <version>1.0.0</version>\r
- <code><![CDATA[\r
- public String toString()\r
- {\r
- return name + " (" + id + ")";\r
- }\r
- ]]></code>\r
- </codeSegment>\r
- </codeSegments>\r
- </class>\r
- <class>\r
- <superClass>AbstractRepositoryConfiguration</superClass>\r
- <name>RepositoryConfiguration</name>\r
- <version>1.0.0</version>\r
- <fields>\r
- <field>\r
- <name>urlName</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <required>true</required>\r
- <description>\r
- The URL name for this repository.\r
- Used to create the WebDAV URL for the repository such like - http://hostname.com/repository/${urlName}/\r
- </description>\r
- </field>\r
- <field>\r
- <name>directory</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <required>true</required>\r
- <description>\r
- The location of the repository to monitor.\r
- </description>\r
- </field>\r
- <field>\r
- <name>includeSnapshots</name>\r
- <version>1.0.0</version>\r
- <type>boolean</type>\r
- <description>Whether to include snapshot versions in the discovery process</description>\r
- <defaultValue>false</defaultValue>\r
- </field>\r
- <field>\r
- <name>indexed</name>\r
- <version>1.0.0</version>\r
- <type>boolean</type>\r
- <description>Whether to index the artifacts in this repository.</description>\r
- <defaultValue>true</defaultValue>\r
- </field>\r
- <field>\r
- <name>blackListPatterns</name>\r
- <version>1.0.0</version>\r
- <description>Blacklisted patterns in the discovery process</description>\r
- <association>\r
- <type>String</type>\r
- <multiplicity>*</multiplicity>\r
- </association>\r
- </field>\r
- </fields>\r
- </class>\r
- <class>\r
- <superClass>AbstractRepositoryConfiguration</superClass>\r
- <name>ProxiedRepositoryConfiguration</name>\r
- <version>1.0.0</version>\r
- <fields>\r
- <field>\r
- <name>url</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <required>true</required>\r
- <description>\r
- The URL of the remote repository to proxy.\r
- </description>\r
- </field>\r
- <!-- TODO: would be much easier to have an association here, as long as it could be specified as a reference -->\r
- <field>\r
- <name>managedRepository</name>\r
- <version>1.0.0</version>\r
- <required>true</required>\r
- <type>String</type>\r
- <description>\r
- The ID of the managed repository to use as the local storage for proxied artifacts.\r
- </description>\r
- </field>\r
- <field>\r
- <name>snapshotsPolicy</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <defaultValue>disabled</defaultValue>\r
- <description>\r
- The policy for snapshots: one of disabled, daily, hourly, interval, never\r
- (allow snapshots, but never update once retrieved).\r
- </description>\r
- </field>\r
- <field>\r
- <name>snapshotsInterval</name>\r
- <version>1.0.0</version>\r
- <type>int</type>\r
- <description>\r
- The interval in minutes before updating snapshots if the policy is set to 'interval'.\r
- </description>\r
- </field>\r
- <field>\r
- <name>releasesPolicy</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <defaultValue>daily</defaultValue>\r
- <description>\r
- The policy for releases: one of disabled, daily, hourly, interval, never\r
- (allow releases, but never update once retrieved).\r
- </description>\r
- </field>\r
- <field>\r
- <name>releasesInterval</name>\r
- <version>1.0.0</version>\r
- <type>int</type>\r
- <description>\r
- The interval in minutes before updating releases if the policy is set to 'interval'.\r
- </description>\r
- </field>\r
- <field>\r
- <name>useNetworkProxy</name>\r
- <version>1.0.0</version>\r
- <type>boolean</type>\r
- <defaultValue>false</defaultValue>\r
- <description>\r
- Whether to use the network proxy, if one is configured for the protocol of this repository.\r
- </description>\r
- </field>\r
- <field>\r
- <name>cacheFailures</name>\r
- <version>1.0.0</version>\r
- <type>boolean</type>\r
- <defaultValue>false</defaultValue>\r
- <description>\r
- Whether to cache failures to avoid re-attempting them over the network. The cache will last for the duration\r
- of the intervals specified above depending on whether it a release or snapshot.\r
- </description>\r
- </field>\r
- <field>\r
- <name>hardFail</name>\r
- <version>1.0.0</version>\r
- <type>boolean</type>\r
- <defaultValue>false</defaultValue>\r
- <description>\r
- Whether to cause the entire request to fail if attempts to retrieve from this proxy fail.\r
- </description>\r
- </field>\r
- </fields>\r
- </class>\r
- <class>\r
- <superClass>AbstractRepositoryConfiguration</superClass>\r
- <name>SyncedRepositoryConfiguration</name>\r
- <abstract>true</abstract>\r
- <version>1.0.0</version>\r
- <fields>\r
- <!-- TODO: would be much easier to have an association here, as long as it could be specified as a reference -->\r
- <field>\r
- <name>managedRepository</name>\r
- <version>1.0.0</version>\r
- <required>true</required>\r
- <type>String</type>\r
- <description>\r
- The ID of the managed repository to use as the local storage for proxied artifacts.\r
- </description>\r
- </field>\r
- <field>\r
- <name>cronExpression</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <description>When to run the sync mechanism. Default is every hour on the hour.</description>\r
- <defaultValue>0 0 * * * ?</defaultValue>\r
- </field>\r
- <field>\r
- <name>method</name>\r
- <version>1.0.0</version>\r
- <type>String</type>\r
- <description>The type of synchronization to use.</description>\r
- <defaultValue>rsync</defaultValue>\r
- </field>\r
- <field>\r
- <name>properties</name>\r
- <version>1.0.0</version>\r
- <type>Properties</type>\r
- <description>Configuration for the repository synchronization.</description>\r
- <association xml.mapStyle="inline">\r
- <type>String</type>\r
- <multiplicity>*</multiplicity>\r
- </association>\r
- </field>\r
- </fields>\r
- </class>\r
- <class>\r
- <name>Proxy</name>\r
- <version>1.0.0</version>\r
- <fields>\r
- <field>\r
- <name>protocol</name>\r
- <version>1.0.0</version>\r
- <description><![CDATA[The proxy protocol.]]></description>\r
- <type>String</type>\r
- <defaultValue>http</defaultValue>\r
- </field>\r
- <field>\r
- <name>username</name>\r
- <version>1.0.0</version>\r
- <description><![CDATA[The proxy user.]]></description>\r
- <type>String</type>\r
- </field>\r
- <field>\r
- <name>password</name>\r
- <version>1.0.0</version>\r
- <description><![CDATA[The proxy password.]]></description>\r
- <type>String</type>\r
- </field>\r
- <field>\r
- <name>port</name>\r
- <version>1.0.0</version>\r
- <description><![CDATA[The proxy port.]]></description>\r
- <type>int</type>\r
- <defaultValue>8080</defaultValue>\r
- </field>\r
- <field>\r
- <name>host</name>\r
- <version>1.0.0</version>\r
- <description><![CDATA[The proxy host.]]></description>\r
- <type>String</type>\r
- <required>true</required>\r
- </field>\r
- <field>\r
- <name>nonProxyHosts</name>\r
- <version>1.0.0</version>\r
- <description><![CDATA[\r
- The list of non-proxied hosts (delimited by |).\r
- ]]></description>\r
- <type>String</type>\r
- </field>\r
- </fields>\r
- </class>\r
- </classes>\r
-</model>\r
-\r
-\r
+ <field>
+ <name>globalBlackListPatterns</name>
+ <version>1.0.0</version>
+ <description>Blacklisted patterns in the discovery process</description>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ -->
+ <field>
+ <name>proxy</name>
+ <version>1.0.0</version>
+ <association>
+ <type>Proxy</type>
+ </association>
+ <description>The network proxy to use for outgoing requests.</description>
+ </field>
+ </fields>
+ <codeSegments>
+ <codeSegment>
+ <version>1.0.0</version>
+ <code><![CDATA[
+ public Configuration()
+ {
+ localRepository = new java.io.File( System.getProperty( "user.home" ), ".m2/repository" ).getAbsolutePath();
+ }
+
+ public boolean isValid()
+ {
+ boolean valid = true;
+
+ if ( indexPath == null )
+ {
+ valid = false;
+ }
+ else if ( getRepositories().isEmpty() )
+ {
+ valid = false;
+ }
+ return valid;
+ }
+
+ /**
+ * Perform any Upgrades and Adjustments needed to bring configuration up to the
+ * current configuration format.
+ */
+ public void sanitize()
+ {
+ for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )
+ {
+ RepositoryConfiguration repo = (RepositoryConfiguration) i.next();
+
+ // Ensure that the repo.urlName is set.
+ if ( org.codehaus.plexus.util.StringUtils.isEmpty( repo.getUrlName() ) )
+ {
+ repo.setUrlName( repo.getId() );
+ }
+ }
+ }
+
+ public RepositoryConfiguration getRepositoryByUrlName( String urlName )
+ {
+ for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )
+ {
+ RepositoryConfiguration repository = (RepositoryConfiguration) i.next();
+ if ( urlName != null ? urlName.equals( repository.getUrlName() ) : repository.getUrlName() == null )
+ {
+ return repository;
+ }
+ }
+ return null;
+ }
+
+ public RepositoryConfiguration getRepositoryById( String id )
+ {
+ for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )
+ {
+ RepositoryConfiguration repository = (RepositoryConfiguration) i.next();
+ if ( id != null ? id.equals( repository.getId() ) : repository.getId() == null )
+ {
+ return repository;
+ }
+ }
+ return null;
+ }
+
+ public SyncedRepositoryConfiguration getSyncedRepositoryById( String id )
+ {
+ for ( java.util.Iterator i = getSyncedRepositories().iterator(); i.hasNext(); )
+ {
+ SyncedRepositoryConfiguration repository = (SyncedRepositoryConfiguration) i.next();
+ if ( id != null ? id.equals( repository.getId() ) : repository.getId() == null )
+ {
+ return repository;
+ }
+ }
+ return null;
+ }
+
+ public ProxiedRepositoryConfiguration getProxiedRepositoryById( String id )
+ {
+ for ( java.util.Iterator i = getProxiedRepositories().iterator(); i.hasNext(); )
+ {
+ ProxiedRepositoryConfiguration repository = (ProxiedRepositoryConfiguration) i.next();
+ if ( id != null ? id.equals( repository.getId() ) : repository.getId() == null )
+ {
+ return repository;
+ }
+ }
+ return null;
+ }
+
+ private java.util.Map repositoriesMap;
+
+ public java.util.Map getRepositoriesMap()
+ {
+ if ( repositoriesMap == null )
+ {
+ repositoriesMap = new java.util.HashMap();
+ for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); )
+ {
+ RepositoryConfiguration repository = (RepositoryConfiguration) i.next();
+ repositoriesMap.put( repository.getId(), repository );
+ }
+ }
+ return repositoriesMap;
+ }
+
+ private java.util.Map proxiedRepositoriesMap;
+
+ public java.util.Map getProxiedRepositoriesMap()
+ {
+ if ( proxiedRepositoriesMap == null )
+ {
+ proxiedRepositoriesMap = new java.util.HashMap();
+ for ( java.util.Iterator i = getProxiedRepositories().iterator(); i.hasNext(); )
+ {
+ ProxiedRepositoryConfiguration repository = (ProxiedRepositoryConfiguration) i.next();
+ proxiedRepositoriesMap.put( repository.getId(), repository );
+ }
+ }
+ return proxiedRepositoriesMap;
+ }
+
+ private java.util.Map syncedRepositoriesMap;
+
+ public java.util.Map getSyncedRepositoriesMap()
+ {
+ if ( syncedRepositoriesMap == null )
+ {
+ syncedRepositoriesMap = new java.util.HashMap();
+ for ( java.util.Iterator i = getSyncedRepositories().iterator(); i.hasNext(); )
+ {
+ SyncedRepositoryConfiguration repository = (SyncedRepositoryConfiguration) i.next();
+ syncedRepositoriesMap.put( repository.getId(), repository );
+ }
+ }
+ return syncedRepositoriesMap;
+ }
+ ]]></code>
+ </codeSegment>
+ </codeSegments>
+ </class>
+ <class>
+ <name>AbstractRepositoryConfiguration</name>
+ <abstract>true</abstract>
+ <version>1.0.0</version>
+ <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>
+ </fields>
+ <codeSegments>
+ <codeSegment>
+ <version>1.0.0</version>
+ <code><![CDATA[
+ public String toString()
+ {
+ return name + " (" + id + ")";
+ }
+ ]]></code>
+ </codeSegment>
+ </codeSegments>
+ </class>
+ <class>
+ <superClass>AbstractRepositoryConfiguration</superClass>
+ <name>RepositoryConfiguration</name>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>urlName</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The URL name for this repository.
+ Used to create the WebDAV URL for the repository such like - http://hostname.com/repository/${urlName}/
+ </description>
+ </field>
+ <field>
+ <name>directory</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The location of the repository to monitor.
+ </description>
+ </field>
+ <field>
+ <name>includeSnapshots</name>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ <description>Whether to include snapshot versions in the discovery process</description>
+ <defaultValue>false</defaultValue>
+ </field>
+ <field>
+ <name>indexed</name>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ <description>Whether to index the artifacts in this repository.</description>
+ <defaultValue>true</defaultValue>
+ </field>
+ <field>
+ <name>blackListPatterns</name>
+ <version>1.0.0</version>
+ <description>Blacklisted patterns in the discovery process</description>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <superClass>AbstractRepositoryConfiguration</superClass>
+ <name>ProxiedRepositoryConfiguration</name>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>url</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The URL of the remote repository to proxy.
+ </description>
+ </field>
+ <!-- TODO: would be much easier to have an association here, as long as it could be specified as a reference -->
+ <field>
+ <name>managedRepository</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The ID of the managed repository to use as the local storage for proxied artifacts.
+ </description>
+ </field>
+ <field>
+ <name>snapshotsPolicy</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <defaultValue>disabled</defaultValue>
+ <description>
+ The policy for snapshots: one of disabled, daily, hourly, interval, never
+ (allow snapshots, but never update once retrieved).
+ </description>
+ </field>
+ <field>
+ <name>snapshotsInterval</name>
+ <version>1.0.0</version>
+ <type>int</type>
+ <description>
+ The interval in minutes before updating snapshots if the policy is set to 'interval'.
+ </description>
+ </field>
+ <field>
+ <name>releasesPolicy</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <defaultValue>daily</defaultValue>
+ <description>
+ The policy for releases: one of disabled, daily, hourly, interval, never
+ (allow releases, but never update once retrieved).
+ </description>
+ </field>
+ <field>
+ <name>checksumPolicy</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <defaultValue>fail</defaultValue>
+ <description>
+ The policy for checksum: one of fail, warn, ignore.
+ </description>
+ </field>
+ <field>
+ <name>releasesInterval</name>
+ <version>1.0.0</version>
+ <type>int</type>
+ <description>
+ The interval in minutes before updating releases if the policy is set to 'interval'.
+ </description>
+ </field>
+ <field>
+ <name>useNetworkProxy</name>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ <description>
+ Whether to use the network proxy, if one is configured for the protocol of this repository.
+ </description>
+ </field>
+ <field>
+ <name>cacheFailures</name>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ <description>
+ Whether to cache failures to avoid re-attempting them over the network. The cache will last for the duration
+ of the intervals specified above depending on whether it a release or snapshot.
+ </description>
+ </field>
+ <field>
+ <name>hardFail</name>
+ <version>1.0.0</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ <description>
+ Whether to cause the entire request to fail if attempts to retrieve from this proxy fail.
+ </description>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <superClass>AbstractRepositoryConfiguration</superClass>
+ <name>SyncedRepositoryConfiguration</name>
+ <abstract>true</abstract>
+ <version>1.0.0</version>
+ <fields>
+ <!-- TODO: would be much easier to have an association here, as long as it could be specified as a reference -->
+ <field>
+ <name>managedRepository</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The ID of the managed repository to use as the local storage for proxied artifacts.
+ </description>
+ </field>
+ <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>
+ <field>
+ <name>properties</name>
+ <version>1.0.0</version>
+ <type>Properties</type>
+ <description>Configuration for the repository synchronization.</description>
+ <association xml.mapStyle="inline">
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>Proxy</name>
+ <version>1.0.0</version>
+ <fields>
+ <field>
+ <name>protocol</name>
+ <version>1.0.0</version>
+ <description><![CDATA[The proxy protocol.]]></description>
+ <type>String</type>
+ <defaultValue>http</defaultValue>
+ </field>
+ <field>
+ <name>username</name>
+ <version>1.0.0</version>
+ <description><![CDATA[The proxy user.]]></description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>password</name>
+ <version>1.0.0</version>
+ <description><![CDATA[The proxy password.]]></description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>port</name>
+ <version>1.0.0</version>
+ <description><![CDATA[The proxy port.]]></description>
+ <type>int</type>
+ <defaultValue>8080</defaultValue>
+ </field>
+ <field>
+ <name>host</name>
+ <version>1.0.0</version>
+ <description><![CDATA[The proxy host.]]></description>
+ <type>String</type>
+ <required>true</required>
+ </field>
+ <field>
+ <name>nonProxyHosts</name>
+ <version>1.0.0</version>
+ <description><![CDATA[
+ The list of non-proxied hosts (delimited by |).
+ ]]></description>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ </classes>
+</model>
+
+
+
+