This is an automated email from the ASF dual-hosted git repository.
martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git
The following commit(s) were added to refs/heads/master by this push:
new 363c4c9 Switching to enum for policy options
363c4c9 is described below
commit 363c4c96083a5e4e80766c87fe15912866dc568f
Author: Martin Stockhammer <[email protected]>
AuthorDate: Fri Sep 6 21:14:28 2019 +0200
Switching to enum for policy options
---
.../configuration/DefaultArchivaConfiguration.java | 12 ++---
.../configuration/MavenProxyPropertyLoader.java | 4 +-
.../apache/archiva/policies/AbstractPolicy.java | 10 ++---
.../archiva/policies/AbstractUpdatePolicy.java | 16 +++----
.../archiva/policies/CachedFailuresPolicy.java | 12 ++---
.../{ReleasesPolicy.java => ChecksumOption.java} | 50 +++++++++------------
.../apache/archiva/policies/ChecksumPolicy.java | 14 +++---
...apshotsPolicy.java => DownloadErrorOption.java} | 50 +++++++++------------
.../archiva/policies/DownloadErrorPolicy.java | 2 +-
.../apache/archiva/policies/DownloadPolicy.java | 2 +-
.../java/org/apache/archiva/policies/Policy.java | 8 ++--
.../{DownloadPolicy.java => PolicyOption.java} | 29 ++++--------
.../{DownloadPolicy.java => PolicyUtil.java} | 28 ++++--------
.../policies/PropagateErrorsDownloadPolicy.java | 15 ++++---
.../PropagateErrorsOnUpdateDownloadPolicy.java | 12 ++---
.../apache/archiva/policies/ReleasesPolicy.java | 2 +-
.../apache/archiva/policies/SnapshotsPolicy.java | 2 +-
.../{ReleasesPolicy.java => StandardOption.java} | 51 +++++++++-------------
.../{ReleasesPolicy.java => UpdateOption.java} | 50 +++++++++------------
.../archiva/policies/CachedFailuresPolicyTest.java | 10 ++---
.../archiva/policies/ChecksumPolicyTest.java | 19 ++++----
.../PropagateErrorsDownloadPolicyTest.java | 14 +++---
.../PropagateErrorsOnUpdateDownloadPolicyTest.java | 10 ++---
.../apache/archiva/policies/ReleasePolicyTest.java | 26 +++++------
.../archiva/policies/SnapshotsPolicyTest.java | 26 +++++------
.../proxy/DefaultRepositoryProxyHandler.java | 19 ++++----
.../archiva/proxy/AbstractProxyTestCase.java | 33 ++++++--------
.../apache/archiva/proxy/ErrorHandlingTest.java | 12 ++---
.../archiva/proxy/HttpProxyTransferTest.java | 12 ++---
.../repository/metadata/MetadataToolsTest.java | 8 ++--
.../archiva/rest/api/model/PolicyInformation.java | 16 ++++---
.../AbstractRepositoryServletProxiedTestCase.java | 21 ++++-----
...toryServletProxiedPluginSnapshotPolicyTest.java | 5 ++-
.../RepositoryServletProxiedReleasePolicyTest.java | 5 ++-
...RepositoryServletProxiedSnapshotPolicyTest.java | 5 ++-
...ervletProxiedTimestampedSnapshotPolicyTest.java | 5 ++-
36 files changed, 272 insertions(+), 343 deletions(-)
diff --git
a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
index fb940af..b8b78d3 100644
---
a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
+++
b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
@@ -323,19 +323,19 @@ public class DefaultArchivaConfiguration
// Upgrade old policy settings.
if ("releases".equals(policyId) ||
"snapshots".equals(policyId)) {
if ("ignored".equals(setting)) {
- setting = AbstractUpdatePolicy.ALWAYS;
+ setting = AbstractUpdatePolicy.ALWAYS.getId();
} else if ("disabled".equals(setting)) {
- setting = AbstractUpdatePolicy.NEVER;
+ setting = AbstractUpdatePolicy.NEVER.getId();
}
} else if ("cache-failures".equals(policyId)) {
if ("ignored".equals(setting)) {
- setting = CachedFailuresPolicy.NO;
+ setting = CachedFailuresPolicy.NO.getId();
} else if ("cached".equals(setting)) {
- setting = CachedFailuresPolicy.YES;
+ setting = CachedFailuresPolicy.YES.getId();
}
} else if ("checksum".equals(policyId)) {
if ("ignored".equals(setting)) {
- setting = ChecksumPolicy.IGNORE;
+ setting = ChecksumPolicy.IGNORE.getId();
}
}
@@ -344,7 +344,7 @@ public class DefaultArchivaConfiguration
Policy policy = findPolicy(policyId);
// Does option exist?
if (!policy.getOptions().contains(setting)) {
- setting = policy.getDefaultOption();
+ setting = policy.getDefaultOption().getId();
}
connector.addPolicy(policyId, setting);
} else {
diff --git
a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/MavenProxyPropertyLoader.java
b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/MavenProxyPropertyLoader.java
index 5f9de19..20e3f34 100644
---
a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/MavenProxyPropertyLoader.java
+++
b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/MavenProxyPropertyLoader.java
@@ -104,8 +104,8 @@ public class MavenProxyPropertyLoader
proxyConnector.setTargetRepoId( key );
proxyConnector.setProxyId( proxyKey );
// TODO: convert cachePeriod to closest "daily" or "hourly"
- proxyConnector.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.DAILY );
- proxyConnector.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ALWAYS );
+ proxyConnector.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.DAILY.getId() );
+ proxyConnector.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ALWAYS.getId() );
configuration.addProxyConnector( proxyConnector );
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractPolicy.java
index 2c61886..daf4541 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractPolicy.java
@@ -82,17 +82,17 @@ public abstract class AbstractPolicy implements Policy {
@Override
public String getDescription(Locale locale) {
return
MessageFormat.format(getBundle(locale).getString(getPolicyPrefix() +
"description")
- , getOptions().stream().collect(Collectors.joining(",")));
+ , getOptions().stream().map(o ->
o.getId()).collect(Collectors.joining(",")));
}
@Override
- public String getOptionDescription(Locale locale, String option) {
- return
getBundle(locale).getString(getOptionPrefix()+option+".description");
+ public String getOptionDescription(Locale locale, PolicyOption option) {
+ return
getBundle(locale).getString(getOptionPrefix()+option.getId()+".description");
}
@Override
- public String getOptionName(Locale locale, String option) {
- return getBundle(locale).getString(getOptionPrefix()+option+".name");
+ public String getOptionName(Locale locale, PolicyOption option) {
+ return
getBundle(locale).getString(getOptionPrefix()+option.getId()+".name");
}
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractUpdatePolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractUpdatePolicy.java
index ef2bc7b..f8259ed 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractUpdatePolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/AbstractUpdatePolicy.java
@@ -43,12 +43,12 @@ public abstract class AbstractUpdatePolicy
/**
* The ALWAYS policy setting means that the artifact is always updated
from the remote repo.
*/
- public static final String ALWAYS = "always";
+ public static final PolicyOption ALWAYS = UpdateOption.ALWAYS;
/**
* The NEVER policy setting means that the artifact is never updated from
the remote repo.
*/
- public static final String NEVER = "never";
+ public static final PolicyOption NEVER = UpdateOption.NEVER;
/**
* <p>
@@ -60,7 +60,7 @@ public abstract class AbstractUpdatePolicy
* <li>The local artifact has a last modified timestamp older than (now -
1 day).</li>
* </ul>
*/
- public static final String DAILY = "daily";
+ public static final UpdateOption DAILY = UpdateOption.DAILY;
/**
* <p>
@@ -72,16 +72,16 @@ public abstract class AbstractUpdatePolicy
* <li>The local artifact has a last modified timestamp older than (now -
1 hour).</li>
* </ul>
*/
- public static final String HOURLY = "hourly";
+ public static final UpdateOption HOURLY = UpdateOption.HOURLY;
/**
* The ONCE policy means that the artifact retrieval occurs only if the
* local artifact is not present. This means that the retrieval can only
* occur once.
*/
- public static final String ONCE = "once";
+ public static final UpdateOption ONCE = UpdateOption.ONCE;
- private List<String> options = new ArrayList<>( 5 );
+ private List<PolicyOption> options = new ArrayList<>( 5 );
public AbstractUpdatePolicy()
{
@@ -99,13 +99,13 @@ public abstract class AbstractUpdatePolicy
protected abstract String getUpdateMode();
@Override
- public List<String> getOptions()
+ public List<PolicyOption> getOptions()
{
return options;
}
@Override
- public void applyPolicy( String policySetting, Properties request,
StorageAsset localFile )
+ public void applyPolicy( PolicyOption policySetting, Properties request,
StorageAsset localFile )
throws PolicyViolationException, PolicyConfigurationException
{
if ( !StringUtils.equals( request.getProperty( "filetype" ),
"artifact" ) )
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/CachedFailuresPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/CachedFailuresPolicy.java
index 98176fb..6f010ab 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/CachedFailuresPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/CachedFailuresPolicy.java
@@ -45,18 +45,18 @@ public class CachedFailuresPolicy
* The NO policy setting means that the the existence of old failures is
<strong>not</strong> checked.
* All resource requests are allowed thru to the remote repo.
*/
- public static final String NO = "no";
+ public static final StandardOption NO = StandardOption.NO;
/**
* The YES policy setting means that the existence of old failures is
checked, and will
* prevent the request from being performed against the remote repo.
*/
- public static final String YES = "yes";
+ public static final StandardOption YES = StandardOption.YES;
@Inject
private UrlFailureCache urlFailureCache;
- private List<String> options = new ArrayList<>( 2 );
+ private List<PolicyOption> options = new ArrayList<>( 2 );
public CachedFailuresPolicy()
{
@@ -66,7 +66,7 @@ public class CachedFailuresPolicy
}
@Override
- public void applyPolicy( String policySetting, Properties request,
StorageAsset localFile )
+ public void applyPolicy( PolicyOption policySetting, Properties request,
StorageAsset localFile )
throws PolicyViolationException, PolicyConfigurationException
{
if ( !options.contains( policySetting ) )
@@ -99,7 +99,7 @@ public class CachedFailuresPolicy
}
@Override
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return NO;
}
@@ -112,7 +112,7 @@ public class CachedFailuresPolicy
@Override
- public List<String> getOptions()
+ public List<PolicyOption> getOptions()
{
return options;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java
similarity index 58%
copy from
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
copy to
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java
index bd863a5..f4629eb 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java
@@ -19,46 +19,38 @@ package org.apache.archiva.policies;
* under the License.
*/
-
-import org.springframework.stereotype.Service;
-
/**
- * {@link PreDownloadPolicy} to apply for released versions.
- *
+ * Options for checksum policy
*
+ * @author Martin Stockhammer <[email protected]>
*/
-@Service("preDownloadPolicy#releases")
-public class ReleasesPolicy
- extends AbstractUpdatePolicy
- implements PreDownloadPolicy
-{
+public enum ChecksumOption implements PolicyOption {
- private static final String ID = "releases";
- /**
- * Defaults to {@link AbstractUpdatePolicy#HOURLY}
- */
- @Override
- public String getDefaultOption()
- {
- return AbstractUpdatePolicy.HOURLY;
+ IGNORE("ignore"),FAIL("fail"),FIX("fix");
+
+ private final String id;
+
+ ChecksumOption(String id) {
+ this.id=id;
}
@Override
- protected boolean isSnapshotPolicy()
- {
- return false;
+ public String getId() {
+ return id;
}
-
+
@Override
- protected String getUpdateMode()
- {
- return "releases";
+ public PolicyOption ofId(String id) {
+ for (StandardOption option : StandardOption.values()) {
+ if (option.getId().equals(id)) {
+ return option;
+ }
+ }
+ return StandardOption.NOOP;
}
@Override
- public String getId()
- {
- return ID;
+ public String toString() {
+ return id;
}
-
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumPolicy.java
index 940e54c..94e8e45 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumPolicy.java
@@ -55,25 +55,25 @@ public class ChecksumPolicy
* the state of, contents of, or validity of the checksum files are not
* checked.
*/
- public static final String IGNORE = "ignore";
+ public static final ChecksumOption IGNORE = ChecksumOption.IGNORE;
/**
* The FAIL policy indicates that if the checksum does not match the
* downloaded file, then remove the downloaded artifact, and checksum
* files, and fail the transfer to the client side.
*/
- public static final String FAIL = "fail";
+ public static final ChecksumOption FAIL = ChecksumOption.FAIL;
/**
* The FIX policy indicates that if the checksum does not match the
* downloaded file, then fix the checksum file locally, and return
* to the client side the corrected checksum.
*/
- public static final String FIX = "fix";
+ public static final ChecksumOption FIX = ChecksumOption.FIX;
private List<ChecksumAlgorithm> algorithms = Arrays.asList(
ChecksumAlgorithm.SHA256, ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 );
- private List<String> options = new ArrayList<>( 3 );
+ private List<PolicyOption> options = new ArrayList<>( 3 );
public ChecksumPolicy()
{
@@ -84,7 +84,7 @@ public class ChecksumPolicy
}
@Override
- public void applyPolicy( String policySetting, Properties request,
StorageAsset localFile )
+ public void applyPolicy( PolicyOption policySetting, Properties request,
StorageAsset localFile )
throws PolicyViolationException, PolicyConfigurationException
{
if ( "resource".equals( request.getProperty( "filetype" ) ) )
@@ -169,7 +169,7 @@ public class ChecksumPolicy
}
@Override
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return FIX;
}
@@ -181,7 +181,7 @@ public class ChecksumPolicy
}
@Override
- public List<String> getOptions()
+ public List<PolicyOption> getOptions()
{
return options;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java
similarity index 57%
copy from
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
copy to
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java
index 2c37b80..f1021b1 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java
@@ -1,5 +1,4 @@
package org.apache.archiva.policies;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,47 +18,38 @@ package org.apache.archiva.policies;
* under the License.
*/
-
-import org.springframework.stereotype.Service;
-
/**
- * {@link PreDownloadPolicy} to apply for snapshot versions.
- *
+ * Options for download error update policies
*
+ * @author Martin Stockhammer <[email protected]>
*/
-@Service("preDownloadPolicy#snapshots")
-public class SnapshotsPolicy
- extends AbstractUpdatePolicy
- implements PreDownloadPolicy
-{
+public enum DownloadErrorOption implements PolicyOption {
- private static final String ID = "snapshots";
+ STOP("stop"),QUEUE("queue-error"),IGNORE("ignore"),ALWAYS("always"),
NOT_PRESENT("not-present");
- /**
- * Defaults to {@link AbstractUpdatePolicy#HOURLY}
- */
- @Override
- public String getDefaultOption()
- {
- return AbstractUpdatePolicy.HOURLY;
+ private final String id;
+
+ DownloadErrorOption(String id) {
+ this.id = id;
}
@Override
- protected boolean isSnapshotPolicy()
- {
- return true;
+ public String getId() {
+ return id;
}
-
+
@Override
- protected String getUpdateMode()
- {
- return "snapshots";
+ public PolicyOption ofId(String id) {
+ for (StandardOption option : StandardOption.values()) {
+ if (option.getId().equals(id)) {
+ return option;
+ }
+ }
+ return StandardOption.NOOP;
}
@Override
- public String getId()
- {
- return ID;
+ public String toString() {
+ return id;
}
-
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorPolicy.java
index 63111a3..5b37ac3 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorPolicy.java
@@ -44,7 +44,7 @@ public interface DownloadErrorPolicy
* @return True, if the exception should be processed, False if the
exception should be ignored.
* @throws PolicyConfigurationException if the policy is improperly
configured
*/
- boolean applyPolicy( String policySetting, Properties request,
StorageAsset localFile, Exception exception,
+ boolean applyPolicy( PolicyOption policySetting, Properties request,
StorageAsset localFile, Exception exception,
Map<String, Exception> previousExceptions )
throws PolicyConfigurationException;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
index 1ee2713..169dbb9 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
@@ -41,6 +41,6 @@ public interface DownloadPolicy
*
* @throws PolicyViolationException if the policy has been violated.
*/
- void applyPolicy( String policySetting, Properties request, StorageAsset
localFile )
+ void applyPolicy( PolicyOption policySetting, Properties request,
StorageAsset localFile )
throws PolicyViolationException, PolicyConfigurationException;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/Policy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/Policy.java
index 3b3d066..66dd579 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/Policy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/Policy.java
@@ -38,14 +38,14 @@ public interface Policy
*
* @return the list of options for this policy.
*/
- List<String> getOptions();
+ List<PolicyOption> getOptions();
/**
* Get the default option for this policy.
*
* @return the default policy for this policy.
*/
- String getDefaultOption();
+ PolicyOption getDefaultOption();
/**
* Get the id for this policy.
@@ -82,7 +82,7 @@ public interface Policy
* @return A description of the option in the requested language.
* @throws MissingResourceException if the option is not known by this
policy.
*/
- String getOptionDescription(Locale locale, String option) throws
MissingResourceException;
+ String getOptionDescription(Locale locale, PolicyOption option) throws
MissingResourceException;
/**
* Returns a name for the given option.
@@ -91,5 +91,5 @@ public interface Policy
* @return A name in the requested language.
* @throws MissingResourceException if the option is not known by this
policy.
*/
- String getOptionName(Locale locale, String option) throws
MissingResourceException;
+ String getOptionName(Locale locale, PolicyOption option) throws
MissingResourceException;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyOption.java
similarity index 58%
copy from
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
copy to
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyOption.java
index 1ee2713..55334c1 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyOption.java
@@ -1,5 +1,4 @@
package org.apache.archiva.policies;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,28 +18,16 @@ package org.apache.archiva.policies;
* under the License.
*/
-import org.apache.archiva.repository.storage.StorageAsset;
-
-import java.util.Properties;
-
/**
- * DownloadPolicy
- *
+ * Interface for all policy options. Normally they are enums.
+ * The id is a unique identifier. It is used for configuration and
serialization.
*
+ * Implementations should always implement the #toString() method and return
the id.
*/
-public interface DownloadPolicy
- extends Policy
-{
+public interface PolicyOption {
+
+ String getId();
+
+ PolicyOption ofId(String id);
- /**
- * Apply the download policy.
- *
- * @param policySetting the policy setting.
- * @param request the list of request properties that the policy might use.
- * @param localFile
- *
- * @throws PolicyViolationException if the policy has been violated.
- */
- void applyPolicy( String policySetting, Properties request, StorageAsset
localFile )
- throws PolicyViolationException, PolicyConfigurationException;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java
similarity index 58%
copy from
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
copy to
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java
index 1ee2713..755cae2 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java
@@ -19,28 +19,16 @@ package org.apache.archiva.policies;
* under the License.
*/
-import org.apache.archiva.repository.storage.StorageAsset;
-
-import java.util.Properties;
-
/**
- * DownloadPolicy
- *
+ * Utility for policies.
*
+ * @author Martin Stockhammer <[email protected]>
*/
-public interface DownloadPolicy
- extends Policy
-{
- /**
- * Apply the download policy.
- *
- * @param policySetting the policy setting.
- * @param request the list of request properties that the policy might use.
- * @param localFile
- *
- * @throws PolicyViolationException if the policy has been violated.
- */
- void applyPolicy( String policySetting, Properties request, StorageAsset
localFile )
- throws PolicyViolationException, PolicyConfigurationException;
+public class PolicyUtil {
+
+ public static PolicyOption findOption(final String id, final Policy
policy) {
+ return policy.getOptions().stream().filter(o ->
o.getId().equals(id)).findFirst().orElse(policy.getDefaultOption());
+ }
+
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicy.java
index a3ea381..3852d7d 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicy.java
@@ -40,22 +40,23 @@ public class PropagateErrorsDownloadPolicy
private Logger log = LoggerFactory.getLogger(
PropagateErrorsDownloadPolicy.class );
private static final String ID = "propagate-errors";
+
/**
* Signifies any error should stop searching for other proxies.
*/
- public static final String STOP = "stop";
+ public static final DownloadErrorOption STOP = DownloadErrorOption.STOP;
/**
* Propagate errors at the end after all are gathered, if there was no
successful download from other proxies.
*/
- public static final String QUEUE = "queue-error";
+ public static final DownloadErrorOption QUEUE = DownloadErrorOption.QUEUE;
/**
* Ignore errors and treat as if it were not found.
*/
- public static final String IGNORE = "ignore";
+ public static final DownloadErrorOption IGNORE =
DownloadErrorOption.IGNORE;
- private List<String> options = new ArrayList<>( 3 );
+ private List<PolicyOption> options = new ArrayList<>( 3 );
public PropagateErrorsDownloadPolicy()
{
@@ -65,7 +66,7 @@ public class PropagateErrorsDownloadPolicy
}
@Override
- public boolean applyPolicy( String policySetting, Properties request,
StorageAsset localFile, Exception exception,
+ public boolean applyPolicy( PolicyOption policySetting, Properties
request, StorageAsset localFile, Exception exception,
Map<String, Exception> previousExceptions )
throws PolicyConfigurationException
{
@@ -101,7 +102,7 @@ public class PropagateErrorsDownloadPolicy
}
@Override
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return QUEUE;
}
@@ -113,7 +114,7 @@ public class PropagateErrorsDownloadPolicy
}
@Override
- public List<String> getOptions()
+ public List<PolicyOption> getOptions()
{
return options;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java
index 5799806..d299fd6 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicy.java
@@ -40,14 +40,14 @@ public class PropagateErrorsOnUpdateDownloadPolicy
/**
* Signifies any error should cause a failure whether the artifact is
already present or not.
*/
- public static final String ALWAYS = "always";
+ public static final DownloadErrorOption ALWAYS =
DownloadErrorOption.ALWAYS;
/**
* Signifies any error should cause a failure only if the artifact is not
already present.
*/
- public static final String NOT_PRESENT = "artifact-not-present";
+ public static final DownloadErrorOption NOT_PRESENT =
DownloadErrorOption.NOT_PRESENT;
- private static final List<String> options = new ArrayList<>( 2 );
+ private static final List<PolicyOption> options = new ArrayList<>( 2 );
public PropagateErrorsOnUpdateDownloadPolicy()
{
@@ -56,7 +56,7 @@ public class PropagateErrorsOnUpdateDownloadPolicy
}
@Override
- public boolean applyPolicy( String policySetting, Properties request,
StorageAsset localFile, Exception exception,
+ public boolean applyPolicy( PolicyOption policySetting, Properties
request, StorageAsset localFile, Exception exception,
Map<String, Exception> previousExceptions )
throws PolicyConfigurationException
{
@@ -85,7 +85,7 @@ public class PropagateErrorsOnUpdateDownloadPolicy
}
@Override
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return NOT_PRESENT;
}
@@ -98,7 +98,7 @@ public class PropagateErrorsOnUpdateDownloadPolicy
@Override
- public List<String> getOptions()
+ public List<PolicyOption> getOptions()
{
return options;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
index bd863a5..029ff74 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
@@ -38,7 +38,7 @@ public class ReleasesPolicy
* Defaults to {@link AbstractUpdatePolicy#HOURLY}
*/
@Override
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return AbstractUpdatePolicy.HOURLY;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
index 2c37b80..69e1cbc 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/SnapshotsPolicy.java
@@ -39,7 +39,7 @@ public class SnapshotsPolicy
* Defaults to {@link AbstractUpdatePolicy#HOURLY}
*/
@Override
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return AbstractUpdatePolicy.HOURLY;
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/StandardOption.java
similarity index 58%
copy from
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
copy to
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/StandardOption.java
index bd863a5..24e7821 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/StandardOption.java
@@ -1,5 +1,4 @@
package org.apache.archiva.policies;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,46 +18,38 @@ package org.apache.archiva.policies;
* under the License.
*/
-
-import org.springframework.stereotype.Service;
-
/**
- * {@link PreDownloadPolicy} to apply for released versions.
- *
+ * Standard Options for policies.
*
+ * @author Martin Stockhammer <[email protected]>
*/
-@Service("preDownloadPolicy#releases")
-public class ReleasesPolicy
- extends AbstractUpdatePolicy
- implements PreDownloadPolicy
-{
+public enum StandardOption implements PolicyOption {
- private static final String ID = "releases";
- /**
- * Defaults to {@link AbstractUpdatePolicy#HOURLY}
- */
- @Override
- public String getDefaultOption()
- {
- return AbstractUpdatePolicy.HOURLY;
+ NOOP("noop"),YES("yes"),NO("no");
+
+ private final String id;
+
+ StandardOption(String id) {
+ this.id = id;
}
@Override
- protected boolean isSnapshotPolicy()
- {
- return false;
+ public String getId() {
+ return id;
}
-
+
@Override
- protected String getUpdateMode()
- {
- return "releases";
+ public PolicyOption ofId(String id) {
+ for (StandardOption option : StandardOption.values()) {
+ if (option.getId().equals(id)) {
+ return option;
+ }
+ }
+ return NOOP;
}
@Override
- public String getId()
- {
- return ID;
+ public String toString() {
+ return id;
}
-
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java
similarity index 58%
copy from
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
copy to
archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java
index bd863a5..1b20f67 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ReleasesPolicy.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java
@@ -1,5 +1,4 @@
package org.apache.archiva.policies;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,46 +18,37 @@ package org.apache.archiva.policies;
* under the License.
*/
-
-import org.springframework.stereotype.Service;
-
/**
- * {@link PreDownloadPolicy} to apply for released versions.
- *
+ * Options for update policies
*
+ * @author Martin Stockhammer <[email protected]>
*/
-@Service("preDownloadPolicy#releases")
-public class ReleasesPolicy
- extends AbstractUpdatePolicy
- implements PreDownloadPolicy
-{
+public enum UpdateOption implements PolicyOption {
+ ALWAYS("always"), NEVER("never"), DAILY("daily"), HOURLY("hourly"),
ONCE("once");
- private static final String ID = "releases";
- /**
- * Defaults to {@link AbstractUpdatePolicy#HOURLY}
- */
- @Override
- public String getDefaultOption()
- {
- return AbstractUpdatePolicy.HOURLY;
+ private final String id;
+
+ UpdateOption(String id) {
+ this.id=id;
}
@Override
- protected boolean isSnapshotPolicy()
- {
- return false;
+ public String getId() {
+ return id;
}
-
+
@Override
- protected String getUpdateMode()
- {
- return "releases";
+ public PolicyOption ofId(String id) {
+ for (StandardOption option : StandardOption.values()) {
+ if (option.getId().equals(id)) {
+ return option;
+ }
+ }
+ return StandardOption.NOOP;
}
@Override
- public String getId()
- {
- return ID;
+ public String toString() {
+ return id;
}
-
}
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/CachedFailuresPolicyTest.java
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/CachedFailuresPolicyTest.java
index f103f94..27cda97 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/CachedFailuresPolicyTest.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/CachedFailuresPolicyTest.java
@@ -127,12 +127,12 @@ public class CachedFailuresPolicyTest
DownloadPolicy policy = lookupPolicy();
assertEquals("Cache Failures Policy", policy.getName());
assertTrue(policy.getDescription(Locale.US).contains("if download
failures will be cached"));
- assertEquals("Yes", policy.getOptionName(Locale.US, "yes"));
- assertEquals("No", policy.getOptionName(Locale.US, "no"));
- assertTrue(policy.getOptionDescription(Locale.US,
"yes").contains("failures are cached and download is not attempted"));
- assertTrue(policy.getOptionDescription(Locale.US,
"no").contains("failures are not cached"));
+ assertEquals("Yes", policy.getOptionName(Locale.US,
StandardOption.YES));
+ assertEquals("No", policy.getOptionName(Locale.US, StandardOption.NO));
+ assertTrue(policy.getOptionDescription(Locale.US,
StandardOption.YES).contains("failures are cached and download is not
attempted"));
+ assertTrue(policy.getOptionDescription(Locale.US,
StandardOption.NO).contains("failures are not cached"));
try {
- policy.getOptionName(Locale.US, "xxxx");
+ policy.getOptionName(Locale.US, StandardOption.NOOP);
// Exception should be thrown
assertTrue(false);
} catch (MissingResourceException e) {
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ChecksumPolicyTest.java
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ChecksumPolicyTest.java
index e136645..d4c131c 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ChecksumPolicyTest.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ChecksumPolicyTest.java
@@ -19,6 +19,7 @@ package org.apache.archiva.policies;
* under the License.
*/
+import org.apache.archiva.checksum.Checksum;
import org.apache.archiva.common.filelock.DefaultFileLockManager;
import org.apache.archiva.repository.storage.FilesystemStorage;
import org.apache.archiva.repository.storage.StorageAsset;
@@ -305,11 +306,11 @@ public class ChecksumPolicyTest
}
}
- private String createMessage( String settingType, String md5State, String
sha1State )
+ private String createMessage( PolicyOption settingType, String md5State,
String sha1State )
{
StringBuilder msg = new StringBuilder();
msg.append( "Expected result of ChecksumPolicy.apply(" );
- msg.append( settingType.toUpperCase() );
+ msg.append( settingType.getId().toUpperCase() );
msg.append( ") when working with " );
if ( md5State == null )
{
@@ -388,14 +389,14 @@ public class ChecksumPolicyTest
PostDownloadPolicy policy = lookupPolicy();
assertEquals("Checksum Policy", policy.getName());
assertTrue(policy.getDescription(Locale.US).contains("if the
downloaded checksum of a artifact does not match"));
- assertEquals("Fail, if no match", policy.getOptionName(Locale.US,
"fail"));
- assertEquals("Fix, if no match", policy.getOptionName(Locale.US,
"fix"));
- assertEquals("Ignore, if no match", policy.getOptionName(Locale.US,
"ignore"));
- assertTrue(policy.getOptionDescription(Locale.US,
"fail").contains("download fails"));
- assertTrue(policy.getOptionDescription(Locale.US,
"fix").contains("artifact will remain"));
- assertTrue(policy.getOptionDescription(Locale.US,
"ignore").contains("error will be ignored"));
+ assertEquals("Fail, if no match", policy.getOptionName(Locale.US,
ChecksumOption.FAIL));
+ assertEquals("Fix, if no match", policy.getOptionName(Locale.US,
ChecksumOption.FIX));
+ assertEquals("Ignore, if no match", policy.getOptionName(Locale.US,
ChecksumOption.IGNORE));
+ assertTrue(policy.getOptionDescription(Locale.US,
ChecksumOption.FAIL).contains("download fails"));
+ assertTrue(policy.getOptionDescription(Locale.US,
ChecksumOption.FIX).contains("artifact will remain"));
+ assertTrue(policy.getOptionDescription(Locale.US,
ChecksumOption.IGNORE).contains("error will be ignored"));
try {
- policy.getOptionName(Locale.US, "xxxx");
+ policy.getOptionName(Locale.US, StandardOption.NOOP);
// Exception should be thrown
assertTrue(false);
} catch (MissingResourceException e) {
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicyTest.java
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicyTest.java
index c169361..4aff8c7 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicyTest.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsDownloadPolicyTest.java
@@ -124,14 +124,14 @@ public class PropagateErrorsDownloadPolicyTest
DownloadErrorPolicy policy = lookupPolicy();
assertEquals("Propagate Download Errors Policy", policy.getName());
assertTrue(policy.getDescription(Locale.US).contains("error occurs
during download"));
- assertEquals("Stop on error", policy.getOptionName(Locale.US, "stop"));
- assertEquals("Continue on error", policy.getOptionName(Locale.US,
"queue-error"));
- assertEquals("Ignore errors", policy.getOptionName(Locale.US,
"ignore"));
- assertTrue(policy.getOptionDescription(Locale.US,
"stop").contains("Stops the artifact download"));
- assertTrue(policy.getOptionDescription(Locale.US,
"queue-error").contains("Checks further"));
- assertTrue(policy.getOptionDescription(Locale.US,
"ignore").contains("not found"));
+ assertEquals("Stop on error", policy.getOptionName(Locale.US,
DownloadErrorOption.STOP));
+ assertEquals("Continue on error", policy.getOptionName(Locale.US,
DownloadErrorOption.QUEUE));
+ assertEquals("Ignore errors", policy.getOptionName(Locale.US,
DownloadErrorOption.IGNORE));
+ assertTrue(policy.getOptionDescription(Locale.US,
DownloadErrorOption.STOP).contains("Stops the artifact download"));
+ assertTrue(policy.getOptionDescription(Locale.US,
DownloadErrorOption.QUEUE).contains("Checks further"));
+ assertTrue(policy.getOptionDescription(Locale.US,
DownloadErrorOption.IGNORE).contains("not found"));
try {
- policy.getOptionName(Locale.US, "xxxx");
+ policy.getOptionName(Locale.US, StandardOption.NOOP);
// Exception should be thrown
assertTrue(false);
} catch (MissingResourceException e) {
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicyTest.java
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicyTest.java
index 303e7a0..9c09bd9 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicyTest.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/PropagateErrorsOnUpdateDownloadPolicyTest.java
@@ -117,12 +117,12 @@ public class PropagateErrorsOnUpdateDownloadPolicyTest
DownloadErrorPolicy policy = lookupPolicy();
assertEquals("Propagate Errors on Update Policy", policy.getName());
assertTrue(policy.getDescription(Locale.US).contains("during download
of an artifact that exists already"));
- assertEquals("Propagate always", policy.getOptionName(Locale.US,
"always"));
- assertEquals("Propagate only, if not exists",
policy.getOptionName(Locale.US, "not-present"));
- assertTrue(policy.getOptionDescription(Locale.US,
"always").contains("even if the file exists"));
- assertTrue(policy.getOptionDescription(Locale.US,
"not-present").contains("if the file does not exist"));
+ assertEquals("Propagate always", policy.getOptionName(Locale.US,
DownloadErrorOption.ALWAYS));
+ assertEquals("Propagate only, if not exists",
policy.getOptionName(Locale.US, DownloadErrorOption.NOT_PRESENT));
+ assertTrue(policy.getOptionDescription(Locale.US,
DownloadErrorOption.ALWAYS).contains("even if the file exists"));
+ assertTrue(policy.getOptionDescription(Locale.US,
DownloadErrorOption.NOT_PRESENT).contains("if the file does not exist"));
try {
- policy.getOptionName(Locale.US, "xxxx");
+ policy.getOptionName(Locale.US, StandardOption.NOOP);
// Exception should be thrown
assertTrue(false);
} catch (MissingResourceException e) {
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ReleasePolicyTest.java
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ReleasePolicyTest.java
index 92d2ece..6b9efa2 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ReleasePolicyTest.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/ReleasePolicyTest.java
@@ -327,7 +327,7 @@ public class ReleasePolicyTest
assertReleasesPolicy( ReleasesPolicy.ONCE, PATH_VERSION_METADATA,
WITH_LOCAL );
}
- private void assertReleasesPolicy( String setting, String path, boolean
createLocalFile )
+ private void assertReleasesPolicy( PolicyOption setting, String path,
boolean createLocalFile )
throws Exception
{
PreDownloadPolicy policy = lookupPolicy();
@@ -360,7 +360,7 @@ public class ReleasePolicyTest
policy.applyPolicy( setting, request, localFile );
}
- private void assertReleasesPolicyViolation( String setting, String path,
boolean createLocalFile )
+ private void assertReleasesPolicyViolation( PolicyOption setting, String
path, boolean createLocalFile )
throws Exception
{
try
@@ -394,18 +394,18 @@ public class ReleasePolicyTest
PreDownloadPolicy policy = lookupPolicy();
assertEquals("Release Artifact Update Policy", policy.getName());
assertTrue(policy.getDescription(Locale.US).contains("when a release
artifact will be updated"));
- assertEquals("Update always", policy.getOptionName(Locale.US,
"always"));
- assertEquals("Do not download from remote",
policy.getOptionName(Locale.US, "never"));
- assertEquals("Update, if older than a day",
policy.getOptionName(Locale.US, "daily"));
- assertEquals("Update, if older than a hour",
policy.getOptionName(Locale.US, "hourly"));
- assertEquals("Download only once", policy.getOptionName(Locale.US,
"once"));
- assertTrue(policy.getOptionDescription(Locale.US,
"always").contains("each download"));
- assertTrue(policy.getOptionDescription(Locale.US,
"never").contains("never from the remote"));
- assertTrue(policy.getOptionDescription(Locale.US,
"daily").contains("older than one day"));
- assertTrue(policy.getOptionDescription(Locale.US,
"hourly").contains("older than one hour"));
- assertTrue(policy.getOptionDescription(Locale.US, "once").contains("if
it does not exist"));
+ assertEquals("Update always", policy.getOptionName(Locale.US,
UpdateOption.ALWAYS));
+ assertEquals("Do not download from remote",
policy.getOptionName(Locale.US, UpdateOption.NEVER));
+ assertEquals("Update, if older than a day",
policy.getOptionName(Locale.US, UpdateOption.DAILY));
+ assertEquals("Update, if older than a hour",
policy.getOptionName(Locale.US, UpdateOption.HOURLY));
+ assertEquals("Download only once", policy.getOptionName(Locale.US,
UpdateOption.ONCE));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.ALWAYS).contains("each download"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.NEVER).contains("never from the remote"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.DAILY).contains("older than one day"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.HOURLY).contains("older than one hour"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.ONCE).contains("if it does not exist"));
try {
- policy.getOptionName(Locale.US, "xxxx");
+ policy.getOptionName(Locale.US, StandardOption.NOOP);
// Exception should be thrown
assertTrue(false);
} catch (MissingResourceException e) {
diff --git
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/SnapshotsPolicyTest.java
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/SnapshotsPolicyTest.java
index 39a8afe..635d216 100644
---
a/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/SnapshotsPolicyTest.java
+++
b/archiva-modules/archiva-base/archiva-policies/src/test/java/org/apache/archiva/policies/SnapshotsPolicyTest.java
@@ -326,7 +326,7 @@ public class SnapshotsPolicyTest
assertSnapshotPolicy( SnapshotsPolicy.ONCE, PATH_VERSION_METADATA,
WITH_LOCAL );
}
- private void assertSnapshotPolicy( String setting, String path, boolean
createLocalFile )
+ private void assertSnapshotPolicy( PolicyOption setting, String path,
boolean createLocalFile )
throws Exception
{
PreDownloadPolicy policy = lookupPolicy();
@@ -359,7 +359,7 @@ public class SnapshotsPolicyTest
policy.applyPolicy( setting, request, localFile );
}
- private void assertSnapshotPolicyViolation( String setting, String path,
boolean createLocalFile )
+ private void assertSnapshotPolicyViolation( PolicyOption setting, String
path, boolean createLocalFile )
throws Exception
{
try
@@ -393,18 +393,18 @@ public class SnapshotsPolicyTest
PreDownloadPolicy policy = lookupPolicy();
assertEquals("Snapshot Artifact Update Policy", policy.getName());
assertTrue(policy.getDescription(Locale.US).contains("when a snapshot
artifact will be updated"));
- assertEquals("Update always", policy.getOptionName(Locale.US,
"always"));
- assertEquals("Do not download from remote",
policy.getOptionName(Locale.US, "never"));
- assertEquals("Update, if older than a day",
policy.getOptionName(Locale.US, "daily"));
- assertEquals("Update, if older than a hour",
policy.getOptionName(Locale.US, "hourly"));
- assertEquals("Download only once", policy.getOptionName(Locale.US,
"once"));
- assertTrue(policy.getOptionDescription(Locale.US,
"always").contains("each download"));
- assertTrue(policy.getOptionDescription(Locale.US,
"never").contains("never from the remote"));
- assertTrue(policy.getOptionDescription(Locale.US,
"daily").contains("older than one day"));
- assertTrue(policy.getOptionDescription(Locale.US,
"hourly").contains("older than one hour"));
- assertTrue(policy.getOptionDescription(Locale.US, "once").contains("if
it does not exist"));
+ assertEquals("Update always", policy.getOptionName(Locale.US,
UpdateOption.ALWAYS));
+ assertEquals("Do not download from remote",
policy.getOptionName(Locale.US, UpdateOption.NEVER));
+ assertEquals("Update, if older than a day",
policy.getOptionName(Locale.US, UpdateOption.DAILY));
+ assertEquals("Update, if older than a hour",
policy.getOptionName(Locale.US, UpdateOption.HOURLY));
+ assertEquals("Download only once", policy.getOptionName(Locale.US,
UpdateOption.ONCE));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.ALWAYS).contains("each download"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.NEVER).contains("never from the remote"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.DAILY).contains("older than one day"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.HOURLY).contains("older than one hour"));
+ assertTrue(policy.getOptionDescription(Locale.US,
UpdateOption.ONCE).contains("if it does not exist"));
try {
- policy.getOptionName(Locale.US, "xxxx");
+ policy.getOptionName(Locale.US, StandardOption.NOOP);
// Exception should be thrown
assertTrue(false);
} catch (MissingResourceException e) {
diff --git
a/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/archiva/proxy/DefaultRepositoryProxyHandler.java
b/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/archiva/proxy/DefaultRepositoryProxyHandler.java
index c524524..f954158 100644
---
a/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/archiva/proxy/DefaultRepositoryProxyHandler.java
+++
b/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/archiva/proxy/DefaultRepositoryProxyHandler.java
@@ -711,9 +711,9 @@ public abstract class DefaultRepositoryProxyHandler
implements RepositoryProxyHa
* @param policies the map of policies to execute. (Map of String policy
keys, to {@link DownloadPolicy} objects)
* @param settings the map of settings for the policies to execute. (Map
of String policy keys, to String policy
* setting)
- * @param request the request properties (utilized by the {@link
DownloadPolicy#applyPolicy(String, Properties, StorageAsset)}
+ * @param request the request properties (utilized by the {@link
DownloadPolicy#applyPolicy(PolicyOption, Properties, StorageAsset)}
* )
- * @param localFile the local file (utilized by the {@link
DownloadPolicy#applyPolicy(String, Properties, StorageAsset)})
+ * @param localFile the local file (utilized by the {@link
DownloadPolicy#applyPolicy(PolicyOption, Properties, StorageAsset)})
* @throws PolicyViolationException
*/
private void validatePolicies( Map<String, ? extends DownloadPolicy>
policies, Map<String, String> settings,
@@ -726,14 +726,12 @@ public abstract class DefaultRepositoryProxyHandler
implements RepositoryProxyHa
// so substring after last # to get the hint as with plexus
String key = StringUtils.substringAfterLast( entry.getKey(), "#" );
DownloadPolicy policy = entry.getValue();
- String defaultSetting = policy.getDefaultOption();
+ PolicyOption option = PolicyUtil.findOption(settings.get(key),
policy);
- String setting = StringUtils.defaultString( settings.get( key ),
defaultSetting );
-
- log.debug( "Applying [{}] policy with [{}]", key, setting );
+ log.debug( "Applying [{}] policy with [{}]", key, option );
try
{
- policy.applyPolicy( setting, request, localFile );
+ policy.applyPolicy( option, request, localFile );
}
catch ( PolicyConfigurationException e )
{
@@ -755,14 +753,13 @@ public abstract class DefaultRepositoryProxyHandler
implements RepositoryProxyHa
// so substring after last # to get the hint as with plexus
String key = StringUtils.substringAfterLast( entry.getKey(), "#" );
DownloadErrorPolicy policy = entry.getValue();
- String defaultSetting = policy.getDefaultOption();
- String setting = StringUtils.defaultString( settings.get( key ),
defaultSetting );
+ PolicyOption option = PolicyUtil.findOption(settings.get(key),
policy);
- log.debug( "Applying [{}] policy with [{}]", key, setting );
+ log.debug( "Applying [{}] policy with [{}]", key, option );
try
{
// all policies must approve the exception, any can cancel
- process = policy.applyPolicy( setting, request, localFile,
exception, previousExceptions );
+ process = policy.applyPolicy( option, request, localFile,
exception, previousExceptions );
if ( !process )
{
break;
diff --git
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java
index fad8c7d..3331525 100644
---
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java
+++
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java
@@ -21,12 +21,7 @@ package org.apache.archiva.proxy;
import net.sf.ehcache.CacheManager;
import org.apache.archiva.configuration.*;
-import org.apache.archiva.policies.CachedFailuresPolicy;
-import org.apache.archiva.policies.ChecksumPolicy;
-import org.apache.archiva.policies.PropagateErrorsDownloadPolicy;
-import org.apache.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy;
-import org.apache.archiva.policies.ReleasesPolicy;
-import org.apache.archiva.policies.SnapshotsPolicy;
+import org.apache.archiva.policies.*;
import org.apache.archiva.proxy.model.RepositoryProxyHandler;
import org.apache.archiva.repository.*;
import org.apache.archiva.repository.storage.StorageAsset;
@@ -352,35 +347,35 @@ public abstract class AbstractProxyTestCase
CachedFailuresPolicy.NO, disabled );
}
- protected void saveConnector( String sourceRepoId, String targetRepoId,
String checksumPolicy, String releasePolicy,
- String snapshotPolicy, String
cacheFailuresPolicy, boolean disabled )
+ protected void saveConnector( String sourceRepoId, String targetRepoId,
PolicyOption checksumPolicy, PolicyOption releasePolicy,
+ PolicyOption snapshotPolicy, PolicyOption
cacheFailuresPolicy, boolean disabled )
{
saveConnector( sourceRepoId, targetRepoId, checksumPolicy,
releasePolicy, snapshotPolicy, cacheFailuresPolicy,
PropagateErrorsDownloadPolicy.QUEUE, disabled );
}
- protected void saveConnector( String sourceRepoId, String targetRepoId,
String checksumPolicy, String releasePolicy,
- String snapshotPolicy, String
cacheFailuresPolicy, String errorPolicy,
+ protected void saveConnector( String sourceRepoId, String targetRepoId,
PolicyOption checksumPolicy, PolicyOption releasePolicy,
+ PolicyOption snapshotPolicy, PolicyOption
cacheFailuresPolicy, PolicyOption errorPolicy,
boolean disabled )
{
saveConnector( sourceRepoId, targetRepoId, checksumPolicy,
releasePolicy, snapshotPolicy, cacheFailuresPolicy,
errorPolicy,
PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT, disabled );
}
- protected void saveConnector( String sourceRepoId, String targetRepoId,
String checksumPolicy, String releasePolicy,
- String snapshotPolicy, String
cacheFailuresPolicy, String errorPolicy,
- String errorOnUpdatePolicy, boolean disabled
)
+ protected void saveConnector(String sourceRepoId, String targetRepoId,
PolicyOption checksumPolicy, PolicyOption releasePolicy,
+ PolicyOption snapshotPolicy, PolicyOption
cacheFailuresPolicy, PolicyOption errorPolicy,
+ PolicyOption errorOnUpdatePolicy, boolean
disabled )
{
ProxyConnectorConfiguration connectorConfig = new
ProxyConnectorConfiguration();
connectorConfig.setSourceRepoId( sourceRepoId );
connectorConfig.setTargetRepoId( targetRepoId );
connectorConfig.setProxyId(sourceRepoId);
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CHECKSUM, checksumPolicy );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, releasePolicy );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, snapshotPolicy );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, cacheFailuresPolicy );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS, errorPolicy );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS_ON_UPDATE,
errorOnUpdatePolicy );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CHECKSUM, checksumPolicy.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, releasePolicy.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, snapshotPolicy.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, cacheFailuresPolicy.getId());
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS, errorPolicy.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS_ON_UPDATE,
errorOnUpdatePolicy.getId() );
connectorConfig.setDisabled( disabled );
int count = config.getConfiguration().getProxyConnectors().size();
diff --git
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/ErrorHandlingTest.java
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/ErrorHandlingTest.java
index 6aeaddf..8bafb42 100644
---
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/ErrorHandlingTest.java
+++
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/ErrorHandlingTest.java
@@ -19,13 +19,7 @@ package org.apache.archiva.proxy;
* under the License.
*/
-import org.apache.archiva.policies.CachedFailuresPolicy;
-import org.apache.archiva.policies.ChecksumPolicy;
-import org.apache.archiva.policies.PropagateErrorsDownloadPolicy;
-import org.apache.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy;
-import org.apache.archiva.policies.ProxyDownloadException;
-import org.apache.archiva.policies.ReleasesPolicy;
-import org.apache.archiva.policies.SnapshotsPolicy;
+import org.apache.archiva.policies.*;
import org.apache.archiva.repository.LayoutException;
import org.apache.archiva.repository.storage.StorageAsset;
import org.apache.maven.wagon.ResourceDoesNotExistException;
@@ -530,14 +524,14 @@ public class ErrorHandlingTest
// HELPER METHODS
// ------------------------------------------
- private void createMockedProxyConnector( String id, String name, String
errorPolicy )
+ private void createMockedProxyConnector( String id, String name,
PolicyOption errorPolicy )
{
saveRemoteRepositoryConfig( id, name, "test://bad.machine.com/repo/",
"default" );
saveConnector( ID_DEFAULT_MANAGED, id, ChecksumPolicy.FIX,
ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS,
CachedFailuresPolicy.NO, errorPolicy, false );
}
- private void createMockedProxyConnector( String id, String name, String
errorPolicy, String errorOnUpdatePolicy )
+ private void createMockedProxyConnector( String id, String name,
PolicyOption errorPolicy, PolicyOption errorOnUpdatePolicy )
{
saveRemoteRepositoryConfig( id, name, "test://bad.machine.com/repo/",
"default" );
saveConnector( ID_DEFAULT_MANAGED, id, ChecksumPolicy.FIX,
ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS,
diff --git
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java
index 98a6f2d..90cb217 100644
---
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java
+++
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java
@@ -235,14 +235,14 @@ public class HttpProxyTransferTest
connectorConfig.setProxyId( PROXY_ID );
connectorConfig.setSourceRepoId( MANAGED_ID );
connectorConfig.setTargetRepoId( PROXIED_ID );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.FIX );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ONCE );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.ONCE );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, CachedFailuresPolicy.NO );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.FIX.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ONCE.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.ONCE.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES,
CachedFailuresPolicy.NO.getId() );
connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS,
- PropagateErrorsDownloadPolicy.QUEUE );
+ PropagateErrorsDownloadPolicy.QUEUE.getId()
);
connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS_ON_UPDATE,
-
PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT );
+
PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT.getId() );
int count = config.getConfiguration().getProxyConnectors().size();
config.getConfiguration().addProxyConnector( connectorConfig );
diff --git
a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/metadata/MetadataToolsTest.java
b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/metadata/MetadataToolsTest.java
index 3897b30..c9ed2bf 100644
---
a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/metadata/MetadataToolsTest.java
+++
b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/metadata/MetadataToolsTest.java
@@ -588,10 +588,10 @@ public class MetadataToolsTest
ProxyConnectorConfiguration connectorConfig = new
ProxyConnectorConfiguration();
connectorConfig.setSourceRepoId( sourceRepoId );
connectorConfig.setTargetRepoId( targetRepoId );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.IGNORE );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ALWAYS );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.ALWAYS );
- connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, CachedFailuresPolicy.NO );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CHECKSUM, ChecksumPolicy.IGNORE.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_RELEASES, ReleasesPolicy.ALWAYS.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_SNAPSHOTS, SnapshotsPolicy.ALWAYS.getId() );
+ connectorConfig.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES,
CachedFailuresPolicy.NO.getId() );
int count = config.getConfiguration().getProxyConnectors().size();
config.getConfiguration().addProxyConnector( connectorConfig );
diff --git
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java
index 9880885..fd2bfd6 100644
---
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java
+++
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/PolicyInformation.java
@@ -18,6 +18,8 @@ package org.apache.archiva.rest.api.model;
* under the License.
*/
+import org.apache.archiva.policies.PolicyOption;
+
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.List;
@@ -30,9 +32,9 @@ import java.util.List;
public class PolicyInformation
implements Serializable
{
- private List<String> options;
+ private List<PolicyOption> options;
- private String defaultOption;
+ private PolicyOption defaultOption;
private String id;
@@ -43,7 +45,7 @@ public class PolicyInformation
// no op
}
- public PolicyInformation( List<String> options, String defaultOption,
String id, String name )
+ public PolicyInformation(List<PolicyOption> options, PolicyOption
defaultOption, String id, String name )
{
this.options = options;
this.defaultOption = defaultOption;
@@ -51,22 +53,22 @@ public class PolicyInformation
this.name = name;
}
- public List<String> getOptions()
+ public List<PolicyOption> getOptions()
{
return options;
}
- public void setOptions( List<String> options )
+ public void setOptions( List<PolicyOption> options )
{
this.options = options;
}
- public String getDefaultOption()
+ public PolicyOption getDefaultOption()
{
return defaultOption;
}
- public void setDefaultOption( String defaultOption )
+ public void setDefaultOption( PolicyOption defaultOption )
{
this.defaultOption = defaultOption;
}
diff --git
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java
index aa231cb..3637bc4 100644
---
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java
+++
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletProxiedTestCase.java
@@ -24,10 +24,7 @@ import com.gargoylesoftware.htmlunit.WebClient;
import org.apache.archiva.common.utils.FileUtils;
import org.apache.archiva.configuration.ProxyConnectorConfiguration;
import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
-import org.apache.archiva.policies.CachedFailuresPolicy;
-import org.apache.archiva.policies.ChecksumPolicy;
-import org.apache.archiva.policies.ReleasesPolicy;
-import org.apache.archiva.policies.SnapshotsPolicy;
+import org.apache.archiva.policies.*;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.Server;
@@ -187,16 +184,16 @@ public abstract class
AbstractRepositoryServletProxiedTestCase
}
- private void setupConnector( String repoId, RemoteRepoInfo remoteRepo,
String releasesPolicy,
- String snapshotsPolicy )
+ private void setupConnector( String repoId, RemoteRepoInfo remoteRepo,
PolicyOption releasesPolicy,
+ PolicyOption snapshotsPolicy )
{
ProxyConnectorConfiguration connector = new
ProxyConnectorConfiguration();
connector.setSourceRepoId( repoId );
connector.setTargetRepoId( remoteRepo.id );
- connector.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES,
releasesPolicy );
- connector.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS,
snapshotsPolicy );
- connector.addPolicy( ProxyConnectorConfiguration.POLICY_CHECKSUM,
ChecksumPolicy.IGNORE );
- connector.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, CachedFailuresPolicy.NO );
+ connector.addPolicy( ProxyConnectorConfiguration.POLICY_RELEASES,
releasesPolicy.getId() );
+ connector.addPolicy( ProxyConnectorConfiguration.POLICY_SNAPSHOTS,
snapshotsPolicy.getId() );
+ connector.addPolicy( ProxyConnectorConfiguration.POLICY_CHECKSUM,
ChecksumPolicy.IGNORE.getId() );
+ connector.addPolicy(
ProxyConnectorConfiguration.POLICY_CACHE_FAILURES,
CachedFailuresPolicy.NO.getId() );
archivaConfiguration.getConfiguration().addProxyConnector( connector );
}
@@ -261,12 +258,12 @@ public abstract class
AbstractRepositoryServletProxiedTestCase
setupConnector( repoId, remoteRepo, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS );
}
- protected void setupReleaseConnector( String managedRepoId, RemoteRepoInfo
remoteRepo, String releasePolicy )
+ protected void setupReleaseConnector( String managedRepoId, RemoteRepoInfo
remoteRepo, PolicyOption releasePolicy )
{
setupConnector( managedRepoId, remoteRepo, releasePolicy,
SnapshotsPolicy.ALWAYS );
}
- protected void setupSnapshotConnector( String managedRepoId,
RemoteRepoInfo remoteRepo, String snapshotsPolicy )
+ protected void setupSnapshotConnector( String managedRepoId,
RemoteRepoInfo remoteRepo, PolicyOption snapshotsPolicy )
{
setupConnector( managedRepoId, remoteRepo, ReleasesPolicy.ALWAYS,
snapshotsPolicy );
}
diff --git
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java
index fd7f18c..67d112f 100644
---
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java
+++
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedPluginSnapshotPolicyTest.java
@@ -23,6 +23,7 @@ package org.apache.archiva.webdav;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.WebResponse;
import org.apache.archiva.configuration.ProxyConnectorConfiguration;
+import org.apache.archiva.policies.PolicyOption;
import org.apache.archiva.policies.SnapshotsPolicy;
import org.junit.Test;
@@ -153,14 +154,14 @@ public class
RepositoryServletProxiedPluginSnapshotPolicyTest
assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS,
SnapshotsPolicy.ONCE, NO_MANAGED_COPY );
}
- private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
String snapshotsPolicy,
+ private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
PolicyOption snapshotsPolicy,
boolean
hasManagedCopy )
throws Exception
{
assertGetProxiedSnapshotsArtifactWithPolicy( expectation,
snapshotsPolicy, hasManagedCopy, 0 );
}
- private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
String snapshotsPolicy,
+ private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
PolicyOption snapshotsPolicy,
boolean
hasManagedCopy, long deltaManagedToRemoteTimestamp )
throws Exception
{
diff --git
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java
index 87fd62a..25643a0 100644
---
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java
+++
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedReleasePolicyTest.java
@@ -22,6 +22,7 @@ package org.apache.archiva.webdav;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.WebResponse;
import org.apache.archiva.configuration.ProxyConnectorConfiguration;
+import org.apache.archiva.policies.PolicyOption;
import org.apache.archiva.policies.ReleasesPolicy;
import org.junit.Test;
@@ -149,14 +150,14 @@ public class RepositoryServletProxiedReleasePolicyTest
assertGetProxiedReleaseArtifactWithPolicy( EXPECT_REMOTE_CONTENTS,
ReleasesPolicy.ONCE, NO_MANAGED_COPY );
}
- private void assertGetProxiedReleaseArtifactWithPolicy( int expectation,
String releasePolicy,
+ private void assertGetProxiedReleaseArtifactWithPolicy( int expectation,
PolicyOption releasePolicy,
boolean
hasManagedCopy )
throws Exception
{
assertGetProxiedReleaseArtifactWithPolicy( expectation, releasePolicy,
hasManagedCopy, 0 );
}
- private void assertGetProxiedReleaseArtifactWithPolicy( int expectation,
String releasePolicy,
+ private void assertGetProxiedReleaseArtifactWithPolicy( int expectation,
PolicyOption releasePolicy,
boolean
hasManagedCopy, long deltaManagedToRemoteTimestamp )
throws Exception
{
diff --git
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java
index 9388c45..67e5088 100644
---
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java
+++
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedSnapshotPolicyTest.java
@@ -23,6 +23,7 @@ import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.WebResponse;
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.ProxyConnectorConfiguration;
+import org.apache.archiva.policies.PolicyOption;
import org.apache.archiva.policies.SnapshotsPolicy;
import org.junit.After;
import org.junit.Before;
@@ -174,14 +175,14 @@ public class RepositoryServletProxiedSnapshotPolicyTest
assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS,
SnapshotsPolicy.ONCE, NO_MANAGED_COPY );
}
- private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
String snapshotsPolicy,
+ private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
PolicyOption snapshotsPolicy,
boolean
hasManagedCopy )
throws Exception
{
assertGetProxiedSnapshotsArtifactWithPolicy( expectation,
snapshotsPolicy, hasManagedCopy, 0 );
}
- private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
String snapshotsPolicy,
+ private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
PolicyOption snapshotsPolicy,
boolean
hasManagedCopy,
long
deltaManagedToRemoteTimestamp )
throws Exception
diff --git
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
index 202b34f..58fe15b 100644
---
a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
+++
b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletProxiedTimestampedSnapshotPolicyTest.java
@@ -22,6 +22,7 @@ package org.apache.archiva.webdav;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.WebResponse;
import org.apache.archiva.configuration.ProxyConnectorConfiguration;
+import org.apache.archiva.policies.PolicyOption;
import org.apache.archiva.policies.SnapshotsPolicy;
import org.junit.After;
import org.junit.Before;
@@ -170,14 +171,14 @@ public class
RepositoryServletProxiedTimestampedSnapshotPolicyTest
assertGetProxiedSnapshotsArtifactWithPolicy( EXPECT_REMOTE_CONTENTS,
SnapshotsPolicy.ONCE, NO_MANAGED_COPY );
}
- private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
String snapshotsPolicy,
+ private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
PolicyOption snapshotsPolicy,
boolean
hasManagedCopy )
throws Exception
{
assertGetProxiedSnapshotsArtifactWithPolicy( expectation,
snapshotsPolicy, hasManagedCopy, 0 );
}
- private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
String snapshotsPolicy,
+ private void assertGetProxiedSnapshotsArtifactWithPolicy( int expectation,
PolicyOption snapshotsPolicy,
boolean
hasManagedCopy,
long
deltaManagedToRemoteTimestamp )
throws Exception