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