]> source.dussan.org Git - archiva.git/blob
fdab2432e3d17702d9b91611af9d32fb4e1dcb46
[archiva.git] /
1 package org.apache.archiva.admin.model.beans;
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 import org.apache.commons.lang.StringUtils;
23
24 import javax.xml.bind.annotation.XmlRootElement;
25 import java.io.Serializable;
26 import java.util.ArrayList;
27 import java.util.HashMap;
28 import java.util.List;
29 import java.util.Map;
30
31 /**
32  * @author Olivier Lamy
33  * @since 1.4-M1
34  */
35 @XmlRootElement (name = "remoteRepository")
36 public class RemoteRepository
37     extends AbstractRepository
38     implements Serializable
39 {
40
41     private String url;
42
43     private String userName;
44
45     private String password;
46
47     private int timeout = 60;
48
49     /**
50      * Activate download of remote index if remoteIndexUrl is set too.
51      */
52     private boolean downloadRemoteIndex = false;
53
54     /**
55      * Remote Index Url : if not starting with http will be relative to the remote repository url.
56      */
57     private String remoteIndexUrl = ".index";
58
59     private String remoteDownloadNetworkProxyId;
60
61     /**
62      * default model value daily : every sunday at 8H00
63      */
64     private String cronExpression = "0 0 08 ? * SUN";
65
66     private int remoteDownloadTimeout = 300;
67
68     /**
69      * @since 1.4-M2
70      */
71     private boolean downloadRemoteIndexOnStartup = false;
72
73     /**
74      * extraParameters.
75      *
76      * @since 1.4-M4
77      */
78     private Map<String, String> extraParameters;
79
80     /**
81      * field to ease json mapping wrapper on <code>extraParameters</code> field
82      *
83      * @since 1.4-M4
84      */
85     private List<PropertyEntry> extraParametersEntries;
86
87     /**
88      * extraHeaders.
89      *
90      * @since 1.4-M4
91      */
92     private Map<String, String> extraHeaders;
93
94     /**
95      * field to ease json mapping wrapper on <code>extraHeaders</code> field
96      *
97      * @since 1.4-M4
98      */
99     private List<PropertyEntry> extraHeadersEntries;
100
101
102     public RemoteRepository()
103     {
104         // no op
105     }
106
107     public RemoteRepository( String id, String name, String url, String layout )
108     {
109         super( id, name, layout );
110         this.url = url;
111     }
112
113     public RemoteRepository( String id, String name, String url, String layout, String userName, String password,
114                              int timeout )
115     {
116         super( id, name, layout );
117         this.url = StringUtils.stripEnd(url,"/");
118         this.userName = userName;
119         this.password = password;
120         this.timeout = timeout;
121     }
122
123     /**
124      * @since 1.4-M3
125      */
126     public RemoteRepository( String id, String name, String url, String layout, String userName, String password,
127                              int timeout, String description )
128     {
129         this( id, name, url, layout, userName, password, timeout );
130         setDescription( description );
131     }
132
133     public String getUrl()
134     {
135         return url;
136     }
137
138     public void setUrl( String url )
139     {
140         this.url = StringUtils.stripEnd(url,"/");
141     }
142
143     public String getUserName()
144     {
145         return userName;
146     }
147
148     public void setUserName( String userName )
149     {
150         this.userName = userName;
151     }
152
153     public String getPassword()
154     {
155         return password;
156     }
157
158     public void setPassword( String password )
159     {
160         this.password = password;
161     }
162
163     public int getTimeout()
164     {
165         return timeout;
166     }
167
168     public void setTimeout( int timeout )
169     {
170         this.timeout = timeout;
171     }
172
173     public boolean isDownloadRemoteIndex()
174     {
175         return downloadRemoteIndex;
176     }
177
178     public void setDownloadRemoteIndex( boolean downloadRemoteIndex )
179     {
180         this.downloadRemoteIndex = downloadRemoteIndex;
181     }
182
183     public String getRemoteIndexUrl()
184     {
185         return remoteIndexUrl;
186     }
187
188     public void setRemoteIndexUrl( String remoteIndexUrl )
189     {
190         this.remoteIndexUrl = remoteIndexUrl;
191     }
192
193     public String getRemoteDownloadNetworkProxyId()
194     {
195         return remoteDownloadNetworkProxyId;
196     }
197
198     public void setRemoteDownloadNetworkProxyId( String remoteDownloadNetworkProxyId )
199     {
200         this.remoteDownloadNetworkProxyId = remoteDownloadNetworkProxyId;
201     }
202
203     public String getCronExpression()
204     {
205         return cronExpression;
206     }
207
208     public void setCronExpression( String cronExpression )
209     {
210         this.cronExpression = cronExpression;
211     }
212
213     public int getRemoteDownloadTimeout()
214     {
215         return remoteDownloadTimeout;
216     }
217
218     public void setRemoteDownloadTimeout( int remoteDownloadTimeout )
219     {
220         this.remoteDownloadTimeout = remoteDownloadTimeout;
221     }
222
223     public boolean isDownloadRemoteIndexOnStartup()
224     {
225         return downloadRemoteIndexOnStartup;
226     }
227
228     public void setDownloadRemoteIndexOnStartup( boolean downloadRemoteIndexOnStartup )
229     {
230         this.downloadRemoteIndexOnStartup = downloadRemoteIndexOnStartup;
231     }
232
233     public Map<String, String> getExtraParameters()
234     {
235         if ( this.extraParameters == null )
236         {
237             this.extraParameters = new HashMap<>();
238         }
239         return extraParameters;
240     }
241
242     public void setExtraParameters( Map<String, String> extraParameters )
243     {
244         this.extraParameters = extraParameters;
245     }
246
247     public void addExtraParameter( String key, String value )
248     {
249         getExtraParameters().put( key, value );
250     }
251
252     public List<PropertyEntry> getExtraParametersEntries()
253     {
254         this.extraParametersEntries = new ArrayList<>();
255         for ( Map.Entry<String, String> entry : getExtraParameters().entrySet() )
256         {
257             this.extraParametersEntries.add( new PropertyEntry( entry.getKey(), entry.getValue() ) );
258         }
259         return this.extraParametersEntries;
260     }
261
262     public void setExtraParametersEntries( List<PropertyEntry> extraParametersEntries )
263     {
264         if ( extraParametersEntries == null )
265         {
266             return;
267         }
268
269         this.extraParametersEntries = extraParametersEntries;
270         for ( PropertyEntry propertyEntry : extraParametersEntries )
271         {
272             this.addExtraParameter( propertyEntry.getKey(), propertyEntry.getValue() );
273         }
274     }
275
276     public Map<String, String> getExtraHeaders()
277     {
278         if ( this.extraHeaders == null )
279         {
280             this.extraHeaders = new HashMap<>();
281         }
282         return extraHeaders;
283     }
284
285     public void setExtraHeaders( Map<String, String> extraHeaders )
286     {
287         this.extraHeaders = extraHeaders;
288     }
289
290     public void addExtraHeader( String key, String value )
291     {
292         getExtraHeaders().put( key, value );
293     }
294
295     public List<PropertyEntry> getExtraHeadersEntries()
296     {
297         this.extraHeadersEntries = new ArrayList<>();
298         for ( Map.Entry<String, String> entry : getExtraHeaders().entrySet() )
299         {
300             this.extraHeadersEntries.add( new PropertyEntry( entry.getKey(), entry.getValue() ) );
301         }
302         return this.extraHeadersEntries;
303     }
304
305     public void setExtraHeadersEntries( List<PropertyEntry> extraHeadersEntries )
306     {
307         if ( extraHeadersEntries == null )
308         {
309             return;
310         }
311
312         this.extraHeadersEntries = extraHeadersEntries;
313         for ( PropertyEntry propertyEntry : extraHeadersEntries )
314         {
315             this.addExtraHeader( propertyEntry.getKey(), propertyEntry.getValue() );
316         }
317     }
318
319
320     @Override
321     public String toString()
322     {
323         final StringBuilder sb = new StringBuilder();
324         sb.append( super.toString() );
325         sb.append( "RemoteRepository" );
326         sb.append( "{url='" ).append( url ).append( '\'' );
327         sb.append( ", userName='" ).append( userName ).append( '\'' );
328         sb.append( ", password='" ).append( password ).append( '\'' );
329         sb.append( ", timeout=" ).append( timeout );
330         sb.append( ", downloadRemoteIndex=" ).append( downloadRemoteIndex );
331         sb.append( ", remoteIndexUrl='" ).append( remoteIndexUrl ).append( '\'' );
332         sb.append( ", remoteDownloadNetworkProxyId='" ).append( remoteDownloadNetworkProxyId ).append( '\'' );
333         sb.append( ", cronExpression='" ).append( cronExpression ).append( '\'' );
334         sb.append( ", remoteDownloadTimeout=" ).append( remoteDownloadTimeout );
335         sb.append( ", downloadRemoteIndexOnStartup=" ).append( downloadRemoteIndexOnStartup );
336         sb.append( ", extraParameters=" ).append( extraParameters );
337         sb.append( ", extraHeaders=" ).append( extraHeaders );
338         sb.append( '}' );
339         return sb.toString();
340     }
341
342
343 }