]> source.dussan.org Git - archiva.git/blob
7f510ddf97cc889c0f6395d1d704930dcd57ecce
[archiva.git] /
1 package org.apache.archiva.repository.features;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22
23 import java.net.URI;
24 import java.time.Duration;
25
26 /**
27  * Feature for remote index download.
28  */
29 public class RemoteIndexFeature implements RepositoryFeature<RemoteIndexFeature> {
30
31     private boolean downloadRemoteIndex = false;
32     private URI indexUri;
33     private boolean downloadRemoteIndexOnStartup = false;
34     private Duration downloadTimeout = Duration.ofSeconds( 600 );
35     private String proxyId = "";
36
37
38     @Override
39     public RemoteIndexFeature get() {
40         return this;
41     }
42
43     /**
44      * True, if the remote index should be downloaded.
45      * @return True if download, otherwise false.
46      */
47     public boolean isDownloadRemoteIndex() {
48         return downloadRemoteIndex;
49     }
50
51     public void setDownloadRemoteIndex(boolean downloadRemoteIndex) {
52         this.downloadRemoteIndex = downloadRemoteIndex;
53     }
54
55     /**
56      * The URI to access the remote index. May be a relative URI that is relative to the
57      * repository URI.
58      *
59      * @return
60      */
61     public URI getIndexUri() {
62         return indexUri;
63     }
64
65     /**
66      * Sets the URI to access the remote index. May be a relative URI that is relative to the
67      * repository URI. The allowed URI schemes are dependent on the repository type.
68      *
69      * @param indexUri The URI of the index
70      */
71     public void setIndexUri(URI indexUri) {
72         this.indexUri = indexUri;
73     }
74
75     /**
76      * Returns true, if the remote index should be downloaded on startup of the repository.
77      * @return true, if the index should be downloaded during startup, otherwise false.
78      */
79     public boolean isDownloadRemoteIndexOnStartup() {
80         return downloadRemoteIndexOnStartup;
81     }
82
83     /**
84      * Sets the flag for download of the remote repository index.
85      *
86      * @param downloadRemoteIndexOnStartup
87      */
88     public void setDownloadRemoteIndexOnStartup(boolean downloadRemoteIndexOnStartup) {
89         this.downloadRemoteIndexOnStartup = downloadRemoteIndexOnStartup;
90     }
91
92     /**
93      * Returns the timeout after that the remote index download is aborted.
94      * @return the time duration after that, the download is aborted.
95      */
96     public Duration getDownloadTimeout() {
97         return this.downloadTimeout;
98     }
99
100     /**
101      * Sets the timeout after that a remote index download will be aborted.
102      * @param timeout The duration
103      */
104     public void setDownloadTimeout(Duration timeout) {
105         this.downloadTimeout = timeout;
106     }
107
108     /**
109      * Returns the id of the proxy, that should be used to download the remote index.
110      * @return The proxy id
111      */
112     public String getProxyId( )
113     {
114         return proxyId;
115     }
116
117     /**
118      * Sets the id of the proxy that should be used to download the remote index.
119      * @param proxyId
120      */
121     public void setProxyId( String proxyId )
122     {
123         this.proxyId = proxyId;
124     }
125 }