123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package org.apache.archiva.repository.features;
-
- /*
- * 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.
- */
-
-
- import org.apache.commons.lang3.StringUtils;
-
- import java.net.URI;
- import java.net.URISyntaxException;
- import java.time.Duration;
-
- /**
- * Feature for remote index download.
- */
- public class RemoteIndexFeature implements RepositoryFeature<RemoteIndexFeature> {
-
- private boolean downloadRemoteIndex = false;
- private URI indexUri;
-
- {
- try {
- indexUri = new URI(".index");
- } catch (URISyntaxException e) {
- // Ignore
- }
- }
-
- private boolean downloadRemoteIndexOnStartup = false;
- private Duration downloadTimeout = Duration.ofSeconds( 600 );
- private String proxyId = "";
-
-
- /**
- * True, if the remote index should be downloaded.
- * @return True if download, otherwise false.
- */
- public boolean isDownloadRemoteIndex() {
- return downloadRemoteIndex;
- }
-
- public void setDownloadRemoteIndex(boolean downloadRemoteIndex) {
- this.downloadRemoteIndex = downloadRemoteIndex;
- }
-
- /**
- * The URI to access the remote index. May be a relative URI that is relative to the
- * repository URI.
- *
- * @return
- */
- public URI getIndexUri() {
- return indexUri;
- }
-
- /**
- * Sets the URI to access the remote index. May be a relative URI that is relative to the
- * repository URI. The allowed URI schemes are dependent on the repository type.
- *
- * @param indexUri The URI of the index
- */
- public void setIndexUri(URI indexUri) {
- this.indexUri = indexUri;
- }
-
- /**
- * Returns true, if the remote index should be downloaded on startup of the repository.
- * @return true, if the index should be downloaded during startup, otherwise false.
- */
- public boolean isDownloadRemoteIndexOnStartup() {
- return downloadRemoteIndexOnStartup;
- }
-
- /**
- * Sets the flag for download of the remote repository index.
- *
- * @param downloadRemoteIndexOnStartup
- */
- public void setDownloadRemoteIndexOnStartup(boolean downloadRemoteIndexOnStartup) {
- this.downloadRemoteIndexOnStartup = downloadRemoteIndexOnStartup;
- }
-
- /**
- * Returns the timeout after that the remote index download is aborted.
- * @return the time duration after that, the download is aborted.
- */
- public Duration getDownloadTimeout() {
- return this.downloadTimeout;
- }
-
- /**
- * Sets the timeout after that a remote index download will be aborted.
- * @param timeout The duration
- */
- public void setDownloadTimeout(Duration timeout) {
- this.downloadTimeout = timeout;
- }
-
- /**
- * Returns the id of the proxy, that should be used to download the remote index.
- * @return The proxy id
- */
- public String getProxyId( )
- {
- return proxyId;
- }
-
- /**
- * Sets the id of the proxy that should be used to download the remote index.
- * @param proxyId
- */
- public void setProxyId( String proxyId )
- {
- this.proxyId = proxyId;
- }
-
- /**
- * Returns true, if there is a index available.
- *
- * @return
- */
- public boolean hasIndex() {
- return this.indexUri!=null && !StringUtils.isEmpty( this.indexUri.getPath() );
- }
-
- @Override
- public String toString() {
- StringBuilder str = new StringBuilder();
- return str.append("RemoteIndexFeature:{downloadRemoteIndex=").append(downloadRemoteIndex)
- .append(",indexURI=").append(indexUri)
- .append(",downloadOnStartup=").append(downloadRemoteIndexOnStartup)
- .append(",timeout=").append(downloadTimeout).append("}").toString();
- }
- }
|