]> source.dussan.org Git - archiva.git/blob
dca455a7fdeb19a030d0a2f13a4d0f03865fc8bc
[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 org.apache.commons.lang.StringUtils;
24
25 import java.net.URI;
26 import java.time.Duration;
27
28 /**
29  * Feature for remote index download.
30  */
31 public class RemoteIndexFeature implements RepositoryFeature<RemoteIndexFeature> {
32
33     private boolean downloadRemoteIndex = false;
34     private URI indexUri;
35     private boolean downloadRemoteIndexOnStartup = false;
36     private Duration downloadTimeout = Duration.ofSeconds( 600 );
37     private String proxyId = "";
38
39
40     @Override
41     public RemoteIndexFeature get() {
42         return this;
43     }
44
45     /**
46      * True, if the remote index should be downloaded.
47      * @return True if download, otherwise false.
48      */
49     public boolean isDownloadRemoteIndex() {
50         return downloadRemoteIndex;
51     }
52
53     public void setDownloadRemoteIndex(boolean downloadRemoteIndex) {
54         this.downloadRemoteIndex = downloadRemoteIndex;
55     }
56
57     /**
58      * The URI to access the remote index. May be a relative URI that is relative to the
59      * repository URI.
60      *
61      * @return
62      */
63     public URI getIndexUri() {
64         return indexUri;
65     }
66
67     /**
68      * Sets the URI to access the remote index. May be a relative URI that is relative to the
69      * repository URI. The allowed URI schemes are dependent on the repository type.
70      *
71      * @param indexUri The URI of the index
72      */
73     public void setIndexUri(URI indexUri) {
74         this.indexUri = indexUri;
75     }
76
77     /**
78      * Returns true, if the remote index should be downloaded on startup of the repository.
79      * @return true, if the index should be downloaded during startup, otherwise false.
80      */
81     public boolean isDownloadRemoteIndexOnStartup() {
82         return downloadRemoteIndexOnStartup;
83     }
84
85     /**
86      * Sets the flag for download of the remote repository index.
87      *
88      * @param downloadRemoteIndexOnStartup
89      */
90     public void setDownloadRemoteIndexOnStartup(boolean downloadRemoteIndexOnStartup) {
91         this.downloadRemoteIndexOnStartup = downloadRemoteIndexOnStartup;
92     }
93
94     /**
95      * Returns the timeout after that the remote index download is aborted.
96      * @return the time duration after that, the download is aborted.
97      */
98     public Duration getDownloadTimeout() {
99         return this.downloadTimeout;
100     }
101
102     /**
103      * Sets the timeout after that a remote index download will be aborted.
104      * @param timeout The duration
105      */
106     public void setDownloadTimeout(Duration timeout) {
107         this.downloadTimeout = timeout;
108     }
109
110     /**
111      * Returns the id of the proxy, that should be used to download the remote index.
112      * @return The proxy id
113      */
114     public String getProxyId( )
115     {
116         return proxyId;
117     }
118
119     /**
120      * Sets the id of the proxy that should be used to download the remote index.
121      * @param proxyId
122      */
123     public void setProxyId( String proxyId )
124     {
125         this.proxyId = proxyId;
126     }
127
128     /**
129      * Returns true, if there is a index available.
130      *
131      * @return
132      */
133     public boolean hasIndex() {
134         return this.indexUri!=null && !StringUtils.isEmpty( this.indexUri.getPath() );
135     }
136 }