From 363c4c96083a5e4e80766c87fe15912866dc568f Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Fri, 6 Sep 2019 21:14:28 +0200 Subject: [PATCH] Switching to enum for policy options --- .../DefaultArchivaConfiguration.java | 12 ++-- .../MavenProxyPropertyLoader.java | 4 +- .../archiva/policies/AbstractPolicy.java | 10 ++-- .../policies/AbstractUpdatePolicy.java | 16 +++--- .../policies/CachedFailuresPolicy.java | 12 ++-- .../archiva/policies/ChecksumOption.java | 56 +++++++++++++++++++ .../archiva/policies/ChecksumPolicy.java | 14 ++--- .../archiva/policies/DownloadErrorOption.java | 55 ++++++++++++++++++ .../archiva/policies/DownloadErrorPolicy.java | 2 +- .../archiva/policies/DownloadPolicy.java | 2 +- .../org/apache/archiva/policies/Policy.java | 8 +-- .../apache/archiva/policies/PolicyOption.java | 33 +++++++++++ .../apache/archiva/policies/PolicyUtil.java | 34 +++++++++++ .../PropagateErrorsDownloadPolicy.java | 15 ++--- ...PropagateErrorsOnUpdateDownloadPolicy.java | 12 ++-- .../archiva/policies/ReleasesPolicy.java | 2 +- .../archiva/policies/SnapshotsPolicy.java | 2 +- .../archiva/policies/StandardOption.java | 55 ++++++++++++++++++ .../apache/archiva/policies/UpdateOption.java | 54 ++++++++++++++++++ .../policies/CachedFailuresPolicyTest.java | 10 ++-- .../archiva/policies/ChecksumPolicyTest.java | 19 ++++--- .../PropagateErrorsDownloadPolicyTest.java | 14 ++--- ...agateErrorsOnUpdateDownloadPolicyTest.java | 10 ++-- .../archiva/policies/ReleasePolicyTest.java | 26 ++++----- .../archiva/policies/SnapshotsPolicyTest.java | 26 ++++----- .../proxy/DefaultRepositoryProxyHandler.java | 19 +++---- .../archiva/proxy/AbstractProxyTestCase.java | 33 +++++------ .../archiva/proxy/ErrorHandlingTest.java | 12 +--- .../archiva/proxy/HttpProxyTransferTest.java | 12 ++-- .../metadata/MetadataToolsTest.java | 8 +-- .../rest/api/model/PolicyInformation.java | 16 +++--- ...tractRepositoryServletProxiedTestCase.java | 21 +++---- ...ervletProxiedPluginSnapshotPolicyTest.java | 5 +- ...sitoryServletProxiedReleasePolicyTest.java | 5 +- ...itoryServletProxiedSnapshotPolicyTest.java | 5 +- ...tProxiedTimestampedSnapshotPolicyTest.java | 5 +- 36 files changed, 461 insertions(+), 183 deletions(-) create mode 100644 archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java create mode 100644 archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java create mode 100644 archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyOption.java create mode 100644 archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java create mode 100644 archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/StandardOption.java create mode 100644 archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java 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 fb940af02..b8b78d3b1 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 5f9de1910..20e3f34cf 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 2c6188687..daf45413b 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 ef2bc7bff..f8259edb8 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; /** *

@@ -60,7 +60,7 @@ public abstract class AbstractUpdatePolicy *

  • The local artifact has a last modified timestamp older than (now - 1 day).
  • * */ - public static final String DAILY = "daily"; + public static final UpdateOption DAILY = UpdateOption.DAILY; /** *

    @@ -72,16 +72,16 @@ public abstract class AbstractUpdatePolicy *

  • The local artifact has a last modified timestamp older than (now - 1 hour).
  • * */ - 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 options = new ArrayList<>( 5 ); + private List options = new ArrayList<>( 5 ); public AbstractUpdatePolicy() { @@ -99,13 +99,13 @@ public abstract class AbstractUpdatePolicy protected abstract String getUpdateMode(); @Override - public List getOptions() + public List 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 98176fb2a..6f010abf0 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 not 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 options = new ArrayList<>( 2 ); + private List 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 getOptions() + public List getOptions() { return options; } diff --git a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java new file mode 100644 index 000000000..f4629eb86 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/ChecksumOption.java @@ -0,0 +1,56 @@ +package org.apache.archiva.policies; + +/* + * 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. + */ + +/** + * Options for checksum policy + * + * @author Martin Stockhammer + */ +public enum ChecksumOption implements PolicyOption { + + IGNORE("ignore"),FAIL("fail"),FIX("fix"); + + private final String id; + + ChecksumOption(String id) { + this.id=id; + } + + @Override + public String getId() { + return id; + } + + @Override + public PolicyOption ofId(String id) { + for (StandardOption option : StandardOption.values()) { + if (option.getId().equals(id)) { + return option; + } + } + return StandardOption.NOOP; + } + + @Override + 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 940e54cf1..94e8e45a5 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 algorithms = Arrays.asList( ChecksumAlgorithm.SHA256, ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 ); - private List options = new ArrayList<>( 3 ); + private List 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 getOptions() + public List getOptions() { return options; } diff --git a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java new file mode 100644 index 000000000..f1021b1b0 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/DownloadErrorOption.java @@ -0,0 +1,55 @@ +package org.apache.archiva.policies; +/* + * 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. + */ + +/** + * Options for download error update policies + * + * @author Martin Stockhammer + */ +public enum DownloadErrorOption implements PolicyOption { + + STOP("stop"),QUEUE("queue-error"),IGNORE("ignore"),ALWAYS("always"), NOT_PRESENT("not-present"); + + private final String id; + + DownloadErrorOption(String id) { + this.id = id; + } + + @Override + public String getId() { + return id; + } + + @Override + public PolicyOption ofId(String id) { + for (StandardOption option : StandardOption.values()) { + if (option.getId().equals(id)) { + return option; + } + } + return StandardOption.NOOP; + } + + @Override + 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 63111a32e..5b37ac346 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 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 1ee2713db..169dbb9c5 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 3b3d06692..66dd57982 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 getOptions(); + List 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/PolicyOption.java b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyOption.java new file mode 100644 index 000000000..55334c14e --- /dev/null +++ b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyOption.java @@ -0,0 +1,33 @@ +package org.apache.archiva.policies; +/* + * 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. + */ + +/** + * 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 PolicyOption { + + String getId(); + + PolicyOption ofId(String id); + +} diff --git a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java new file mode 100644 index 000000000..755cae2e5 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/PolicyUtil.java @@ -0,0 +1,34 @@ +package org.apache.archiva.policies; + +/* + * 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. + */ + +/** + * Utility for policies. + * + * @author Martin Stockhammer + */ + +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 a3ea38186..3852d7d9c 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 options = new ArrayList<>( 3 ); + private List 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 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 getOptions() + public List 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 579980607..d299fd67e 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 options = new ArrayList<>( 2 ); + private static final List 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 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 getOptions() + public List 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 bd863a529..029ff7411 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 2c37b80e2..69e1cbcf7 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/StandardOption.java b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/StandardOption.java new file mode 100644 index 000000000..24e7821b8 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/StandardOption.java @@ -0,0 +1,55 @@ +package org.apache.archiva.policies; +/* + * 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. + */ + +/** + * Standard Options for policies. + * + * @author Martin Stockhammer + */ +public enum StandardOption implements PolicyOption { + + NOOP("noop"),YES("yes"),NO("no"); + + private final String id; + + StandardOption(String id) { + this.id = id; + } + + @Override + public String getId() { + return id; + } + + @Override + public PolicyOption ofId(String id) { + for (StandardOption option : StandardOption.values()) { + if (option.getId().equals(id)) { + return option; + } + } + return NOOP; + } + + @Override + public String toString() { + return id; + } +} diff --git a/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java new file mode 100644 index 000000000..1b20f6736 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-policies/src/main/java/org/apache/archiva/policies/UpdateOption.java @@ -0,0 +1,54 @@ +package org.apache.archiva.policies; +/* + * 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. + */ + +/** + * Options for update policies + * + * @author Martin Stockhammer + */ +public enum UpdateOption implements PolicyOption { + ALWAYS("always"), NEVER("never"), DAILY("daily"), HOURLY("hourly"), ONCE("once"); + + private final String id; + + UpdateOption(String id) { + this.id=id; + } + + @Override + public String getId() { + return id; + } + + @Override + public PolicyOption ofId(String id) { + for (StandardOption option : StandardOption.values()) { + if (option.getId().equals(id)) { + return option; + } + } + return StandardOption.NOOP; + } + + @Override + 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 f103f94bb..27cda9728 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 e13664547..d4c131c8e 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 c169361fe..4aff8c7ab 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 303e7a09c..9c09bd92f 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 92d2ece89..6b9efa20f 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 39a8afe4a..635d216c4 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 c524524f9..f954158c6 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 policies, Map 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 fad8c7d82..3331525ad 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 6aeaddf7b..8bafb426d 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 98a6f2dcd..90cb2174c 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 3897b30be..c9ed2bf2f 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 9880885b6..fd2bfd64e 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 options; + private List options; - private String defaultOption; + private PolicyOption defaultOption; private String id; @@ -43,7 +45,7 @@ public class PolicyInformation // no op } - public PolicyInformation( List options, String defaultOption, String id, String name ) + public PolicyInformation(List 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 getOptions() + public List getOptions() { return options; } - public void setOptions( List options ) + public void setOptions( List 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 aa231cbab..3637bc40a 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 fd7f18c34..67d112f11 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 87fd62ad3..25643a03b 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 9388c453b..67e50880f 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 202b34fed..58fe15b46 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 -- 2.39.5