]> source.dussan.org Git - archiva.git/blob
b0568609291f90991161633dfbbbe76e6114e1e4
[archiva.git] /
1 package org.apache.archiva.configuration;
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 java.util.ArrayList;
23 import java.util.Arrays;
24 import java.util.List;
25
26 /**
27  * 
28  *         The runtime configuration.
29  *       
30  * 
31  * @version $Revision$ $Date$
32  */
33 @SuppressWarnings( "all" )
34 public class ArchivaRuntimeConfiguration
35     implements java.io.Serializable
36 {
37
38       //--------------------------/
39      //- Class/Member Variables -/
40     //--------------------------/
41
42     /**
43      * the url failure cache configuration.
44      */
45     private CacheConfiguration urlFailureCacheConfiguration;
46
47     /**
48      * the FileLocking configuration.
49      */
50     private FileLockConfiguration fileLockConfiguration;
51
52     /**
53      * The base directory where the archiva data is stored. If not
54      * set, the appserver.base is used.
55      */
56     private String dataDirectory;
57
58     /**
59      * The base directory for local storage of repository data. If
60      * not set, it's ${dataDirectory}/repositories.
61      */
62     private String repositoryBaseDirectory;
63
64     /**
65      * The base directory for local storage of remote repository
66      * data. If not set, it's ${dataDirectory}/remotes.
67      */
68     private String remoteRepositoryBaseDirectory;
69
70     /**
71      * The base directory for local storage of repository group files.
72      * If not set, it's ${dataDirectory}/groups
73      */
74     private String repositoryGroupBaseDirectory;
75
76     /**
77      * The default language used for setting internationalized
78      * strings.
79      */
80     private String defaultLanguage = "en-US";
81
82     /**
83      * Comma separated list of language patterns. Sorted by
84      * priority descending. Used for display of internationalized
85      * strings.
86      */
87     private String languageRange = "en,fr,de";
88
89     /**
90      * List of checksum types (algorithms) that should be applied to repository artifacts.
91      */
92     private List<String> checksumTypes = new ArrayList(Arrays.asList("MD5","SHA1","SHA256"));
93
94
95       //-----------/
96      //- Methods -/
97     //-----------/
98
99     /**
100      * Get the base directory where the archiva data is stored. If
101      * not set, the appserver.base is used.
102      * 
103      * @return String
104      */
105     public String getDataDirectory()
106     {
107         return this.dataDirectory;
108     } //-- String getDataDirectory()
109
110     /**
111      * Get the default language used for setting internationalized
112      * strings.
113      * 
114      * @return String
115      */
116     public String getDefaultLanguage()
117     {
118         return this.defaultLanguage;
119     } //-- String getDefaultLanguage()
120
121     /**
122      * Get the FileLocking configuration.
123      * 
124      * @return FileLockConfiguration
125      */
126     public FileLockConfiguration getFileLockConfiguration()
127     {
128         return this.fileLockConfiguration;
129     } //-- FileLockConfiguration getFileLockConfiguration()
130
131     /**
132      * Get comma separated list of language patterns. Sorted by
133      * priority descending. Used for display of internationalized
134      * strings.
135      * 
136      * @return String
137      */
138     public String getLanguageRange()
139     {
140         return this.languageRange;
141     } //-- String getLanguageRange()
142
143     /**
144      * Get the base directory for local storage of remote
145      * repository data. If not set, it's ${dataDirectory}/remotes.
146      * 
147      * @return String
148      */
149     public String getRemoteRepositoryBaseDirectory()
150     {
151         return this.remoteRepositoryBaseDirectory;
152     } //-- String getRemoteRepositoryBaseDirectory()
153
154     /**
155      * Get the base directory for local storage of repository data.
156      * If not set, it's ${dataDirectory}/repositories.
157      * 
158      * @return String
159      */
160     public String getRepositoryBaseDirectory()
161     {
162         return this.repositoryBaseDirectory;
163     } //-- String getRepositoryBaseDirectory()
164
165     /**
166      * Get the base directory for local storage of repository group data.
167      * If not set it's ${dataDirectory}/groups
168      *
169      * @return The path to the directory. Either a absolute path, or a path
170      * relative to ${dataDirectory}
171      */
172     public String getRepositoryGroupBaseDirectory() {
173         return this.repositoryGroupBaseDirectory;
174     }
175
176     /**
177      * Get the url failure cache configuration.
178      * 
179      * @return CacheConfiguration
180      */
181     public CacheConfiguration getUrlFailureCacheConfiguration()
182     {
183         return this.urlFailureCacheConfiguration;
184     } //-- CacheConfiguration getUrlFailureCacheConfiguration()
185
186     /**
187      * Set the base directory where the archiva data is stored. If
188      * not set, the appserver.base is used.
189      * 
190      * @param dataDirectory
191      */
192     public void setDataDirectory( String dataDirectory )
193     {
194         this.dataDirectory = dataDirectory;
195     } //-- void setDataDirectory( String )
196
197     /**
198      * Set the default language used for setting internationalized
199      * strings.
200      * 
201      * @param defaultLanguage
202      */
203     public void setDefaultLanguage( String defaultLanguage )
204     {
205         this.defaultLanguage = defaultLanguage;
206     } //-- void setDefaultLanguage( String )
207
208     /**
209      * Set the FileLocking configuration.
210      * 
211      * @param fileLockConfiguration
212      */
213     public void setFileLockConfiguration( FileLockConfiguration fileLockConfiguration )
214     {
215         this.fileLockConfiguration = fileLockConfiguration;
216     } //-- void setFileLockConfiguration( FileLockConfiguration )
217
218     /**
219      * Set comma separated list of language patterns. Sorted by
220      * priority descending. Used for display of internationalized
221      * strings.
222      * 
223      * @param languageRange
224      */
225     public void setLanguageRange( String languageRange )
226     {
227         this.languageRange = languageRange;
228     } //-- void setLanguageRange( String )
229
230     /**
231      * Set the base directory for local storage of remote
232      * repository data. If not set, it's ${dataDirectory}/remotes.
233      * 
234      * @param remoteRepositoryBaseDirectory
235      */
236     public void setRemoteRepositoryBaseDirectory( String remoteRepositoryBaseDirectory )
237     {
238         this.remoteRepositoryBaseDirectory = remoteRepositoryBaseDirectory;
239     } //-- void setRemoteRepositoryBaseDirectory( String )
240
241     /**
242      * Set the base directory for local storage of repository data.
243      * If not set, it's ${dataDirectory}/repositories.
244      * 
245      * @param repositoryBaseDirectory
246      */
247     public void setRepositoryBaseDirectory( String repositoryBaseDirectory )
248     {
249         this.repositoryBaseDirectory = repositoryBaseDirectory;
250     } //-- void setRepositoryBaseDirectory( String )
251
252
253     public void setRepositoryGroupBaseDirectory(String repositoryGroupBaseDirectory) {
254         this.repositoryGroupBaseDirectory = repositoryGroupBaseDirectory;
255     }
256
257     /**
258      * Set the url failure cache configuration.
259      * 
260      * @param urlFailureCacheConfiguration
261      */
262     public void setUrlFailureCacheConfiguration( CacheConfiguration urlFailureCacheConfiguration )
263     {
264         this.urlFailureCacheConfiguration = urlFailureCacheConfiguration;
265     } //-- void setUrlFailureCacheConfiguration( CacheConfiguration )
266
267
268     /**
269      * Returns the list of checksum types to generate
270      * @return
271      */
272     public List<String> getChecksumTypes()
273     {
274         if ( this.checksumTypes == null )
275         {
276             this.checksumTypes = new java.util.ArrayList<String>();
277         }
278
279         return this.checksumTypes;
280     }
281
282     /**
283      * Adds a checksum type
284      * @param type
285      */
286     public void addChecksumType(String type) {
287
288         if (!getChecksumTypes().contains(type)) {
289             getChecksumTypes().add(type);
290         }
291     }
292
293     /**
294      * Removes a checksum type
295      * @param type
296      */
297     public void removeChecksumType(String type) {
298         getChecksumTypes().remove(type);
299     }
300
301     /**
302      * Set all checksum types
303      * @param checksumTypes
304      */
305     public void setChecksumTypes(List<String> checksumTypes) {
306         if (checksumTypes!=null) {
307             getChecksumTypes().clear();
308             getChecksumTypes().addAll(checksumTypes);
309         }
310     }
311
312 }