]> source.dussan.org Git - archiva.git/blob
ae9b9bb90400a411fb7b687a80fbc8a8c0406e4e
[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 default language used for setting internationalized
72      * strings.
73      */
74     private String defaultLanguage = "en-US";
75
76     /**
77      * Comma separated list of language patterns. Sorted by
78      * priority descending. Used for display of internationalized
79      * strings.
80      */
81     private String languageRange = "en,fr,de";
82
83     /**
84      * List of checksum types (algorithms) that should be applied to repository artifacts.
85      */
86     private List<String> checksumTypes = new ArrayList(Arrays.asList("MD5","SHA1","SHA256"));
87
88
89       //-----------/
90      //- Methods -/
91     //-----------/
92
93     /**
94      * Get the base directory where the archiva data is stored. If
95      * not set, the appserver.base is used.
96      * 
97      * @return String
98      */
99     public String getDataDirectory()
100     {
101         return this.dataDirectory;
102     } //-- String getDataDirectory()
103
104     /**
105      * Get the default language used for setting internationalized
106      * strings.
107      * 
108      * @return String
109      */
110     public String getDefaultLanguage()
111     {
112         return this.defaultLanguage;
113     } //-- String getDefaultLanguage()
114
115     /**
116      * Get the FileLocking configuration.
117      * 
118      * @return FileLockConfiguration
119      */
120     public FileLockConfiguration getFileLockConfiguration()
121     {
122         return this.fileLockConfiguration;
123     } //-- FileLockConfiguration getFileLockConfiguration()
124
125     /**
126      * Get comma separated list of language patterns. Sorted by
127      * priority descending. Used for display of internationalized
128      * strings.
129      * 
130      * @return String
131      */
132     public String getLanguageRange()
133     {
134         return this.languageRange;
135     } //-- String getLanguageRange()
136
137     /**
138      * Get the base directory for local storage of remote
139      * repository data. If not set, it's ${dataDirectory}/remotes.
140      * 
141      * @return String
142      */
143     public String getRemoteRepositoryBaseDirectory()
144     {
145         return this.remoteRepositoryBaseDirectory;
146     } //-- String getRemoteRepositoryBaseDirectory()
147
148     /**
149      * Get the base directory for local storage of repository data.
150      * If not set, it's ${dataDirectory}/repositories.
151      * 
152      * @return String
153      */
154     public String getRepositoryBaseDirectory()
155     {
156         return this.repositoryBaseDirectory;
157     } //-- String getRepositoryBaseDirectory()
158
159     /**
160      * Get the url failure cache configuration.
161      * 
162      * @return CacheConfiguration
163      */
164     public CacheConfiguration getUrlFailureCacheConfiguration()
165     {
166         return this.urlFailureCacheConfiguration;
167     } //-- CacheConfiguration getUrlFailureCacheConfiguration()
168
169     /**
170      * Set the base directory where the archiva data is stored. If
171      * not set, the appserver.base is used.
172      * 
173      * @param dataDirectory
174      */
175     public void setDataDirectory( String dataDirectory )
176     {
177         this.dataDirectory = dataDirectory;
178     } //-- void setDataDirectory( String )
179
180     /**
181      * Set the default language used for setting internationalized
182      * strings.
183      * 
184      * @param defaultLanguage
185      */
186     public void setDefaultLanguage( String defaultLanguage )
187     {
188         this.defaultLanguage = defaultLanguage;
189     } //-- void setDefaultLanguage( String )
190
191     /**
192      * Set the FileLocking configuration.
193      * 
194      * @param fileLockConfiguration
195      */
196     public void setFileLockConfiguration( FileLockConfiguration fileLockConfiguration )
197     {
198         this.fileLockConfiguration = fileLockConfiguration;
199     } //-- void setFileLockConfiguration( FileLockConfiguration )
200
201     /**
202      * Set comma separated list of language patterns. Sorted by
203      * priority descending. Used for display of internationalized
204      * strings.
205      * 
206      * @param languageRange
207      */
208     public void setLanguageRange( String languageRange )
209     {
210         this.languageRange = languageRange;
211     } //-- void setLanguageRange( String )
212
213     /**
214      * Set the base directory for local storage of remote
215      * repository data. If not set, it's ${dataDirectory}/remotes.
216      * 
217      * @param remoteRepositoryBaseDirectory
218      */
219     public void setRemoteRepositoryBaseDirectory( String remoteRepositoryBaseDirectory )
220     {
221         this.remoteRepositoryBaseDirectory = remoteRepositoryBaseDirectory;
222     } //-- void setRemoteRepositoryBaseDirectory( String )
223
224     /**
225      * Set the base directory for local storage of repository data.
226      * If not set, it's ${dataDirectory}/repositories.
227      * 
228      * @param repositoryBaseDirectory
229      */
230     public void setRepositoryBaseDirectory( String repositoryBaseDirectory )
231     {
232         this.repositoryBaseDirectory = repositoryBaseDirectory;
233     } //-- void setRepositoryBaseDirectory( String )
234
235     /**
236      * Set the url failure cache configuration.
237      * 
238      * @param urlFailureCacheConfiguration
239      */
240     public void setUrlFailureCacheConfiguration( CacheConfiguration urlFailureCacheConfiguration )
241     {
242         this.urlFailureCacheConfiguration = urlFailureCacheConfiguration;
243     } //-- void setUrlFailureCacheConfiguration( CacheConfiguration )
244
245
246     /**
247      * Returns the list of checksum types to generate
248      * @return
249      */
250     public List<String> getChecksumTypes()
251     {
252         if ( this.checksumTypes == null )
253         {
254             this.checksumTypes = new java.util.ArrayList<String>();
255         }
256
257         return this.checksumTypes;
258     }
259
260     /**
261      * Adds a checksum type
262      * @param type
263      */
264     public void addChecksumType(String type) {
265
266         if (!getChecksumTypes().contains(type)) {
267             getChecksumTypes().add(type);
268         }
269     }
270
271     /**
272      * Removes a checksum type
273      * @param type
274      */
275     public void removeChecksumType(String type) {
276         getChecksumTypes().remove(type);
277     }
278
279     /**
280      * Set all checksum types
281      * @param checksumTypes
282      */
283     public void setChecksumTypes(List<String> checksumTypes) {
284         if (checksumTypes!=null) {
285             getChecksumTypes().clear();
286             getChecksumTypes().addAll(checksumTypes);
287         }
288     }
289
290 }