]> source.dussan.org Git - archiva.git/blob
522779395012babaec763c01db8f9033c641ebb7
[archiva.git] /
1 package org.apache.archiva.rest.services;
2 /*
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  */
20
21 import net.sf.beanlib.provider.replicator.BeanReplicator;
22 import org.apache.archiva.admin.repository.RepositoryAdminException;
23 import org.apache.archiva.admin.repository.admin.ArchivaAdministration;
24 import org.apache.archiva.rest.api.model.FileType;
25 import org.apache.archiva.rest.api.model.LegacyArtifactPath;
26 import org.apache.archiva.rest.api.model.OrganisationInformation;
27 import org.apache.archiva.rest.api.services.ArchivaAdministrationService;
28 import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
29 import org.springframework.stereotype.Service;
30
31 import javax.inject.Inject;
32 import java.util.ArrayList;
33 import java.util.Collections;
34 import java.util.List;
35
36 /**
37  * @author Olivier Lamy
38  * @since 1.4
39  */
40 @Service( "archivaAdministrationService#default" )
41 public class DefaultArchivaAdministrationService
42     extends AbstractRestService
43     implements ArchivaAdministrationService
44 {
45     @Inject
46     private ArchivaAdministration archivaAdministration;
47
48     public List<LegacyArtifactPath> getLegacyArtifactPaths()
49         throws ArchivaRestServiceException
50     {
51         try
52         {
53             List<LegacyArtifactPath> legacyArtifactPaths = new ArrayList<LegacyArtifactPath>();
54             for ( org.apache.archiva.admin.repository.admin.LegacyArtifactPath legacyArtifactPath : archivaAdministration.getLegacyArtifactPaths() )
55             {
56                 legacyArtifactPaths.add(
57                     new BeanReplicator().replicateBean( legacyArtifactPath, LegacyArtifactPath.class ) );
58             }
59             return legacyArtifactPaths;
60         }
61         catch ( RepositoryAdminException e )
62         {
63             throw new ArchivaRestServiceException( e.getMessage() );
64         }
65     }
66
67     public void addLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath )
68         throws ArchivaRestServiceException
69     {
70         try
71         {
72             archivaAdministration.addLegacyArtifactPath( new BeanReplicator().replicateBean( legacyArtifactPath,
73                                                                                              org.apache.archiva.admin.repository.admin.LegacyArtifactPath.class ),
74                                                          getAuditInformation() );
75         }
76         catch ( RepositoryAdminException e )
77         {
78             throw new ArchivaRestServiceException( e.getMessage() );
79         }
80     }
81
82     public Boolean deleteLegacyArtifactPath( String path )
83         throws ArchivaRestServiceException
84     {
85         try
86         {
87             archivaAdministration.deleteLegacyArtifactPath( path, getAuditInformation() );
88             return Boolean.TRUE;
89         }
90         catch ( RepositoryAdminException e )
91         {
92             throw new ArchivaRestServiceException( e.getMessage() );
93         }
94     }
95
96
97     public Boolean addFileTypePattern( String fileTypeId, String pattern )
98         throws ArchivaRestServiceException
99     {
100         try
101         {
102             archivaAdministration.addFileTypePattern( fileTypeId, pattern, getAuditInformation() );
103             return Boolean.TRUE;
104         }
105         catch ( RepositoryAdminException e )
106         {
107             throw new ArchivaRestServiceException( e.getMessage() );
108         }
109     }
110
111     public Boolean removeFileTypePattern( String fileTypeId, String pattern )
112         throws ArchivaRestServiceException
113     {
114         try
115         {
116             archivaAdministration.removeFileTypePattern( fileTypeId, pattern, getAuditInformation() );
117             return Boolean.TRUE;
118         }
119         catch ( RepositoryAdminException e )
120         {
121             throw new ArchivaRestServiceException( e.getMessage() );
122         }
123     }
124
125     public FileType getFileType( String fileTypeId )
126         throws ArchivaRestServiceException
127     {
128         try
129         {
130             org.apache.archiva.admin.repository.admin.FileType fileType =
131                 archivaAdministration.getFileType( fileTypeId );
132             if ( fileType == null )
133             {
134                 return null;
135             }
136             return new BeanReplicator().replicateBean( fileType, FileType.class );
137         }
138         catch ( RepositoryAdminException e )
139         {
140             throw new ArchivaRestServiceException( e.getMessage() );
141         }
142     }
143
144     public void addFileType( FileType fileType )
145         throws ArchivaRestServiceException
146     {
147         try
148         {
149             archivaAdministration.addFileType( new BeanReplicator().replicateBean( fileType,
150                                                                                    org.apache.archiva.admin.repository.admin.FileType.class ),
151                                                getAuditInformation() );
152         }
153         catch ( RepositoryAdminException e )
154         {
155             throw new ArchivaRestServiceException( e.getMessage() );
156         }
157     }
158
159     public Boolean removeFileType( String fileTypeId )
160         throws ArchivaRestServiceException
161     {
162         try
163         {
164             archivaAdministration.removeFileType( fileTypeId, getAuditInformation() );
165             return Boolean.TRUE;
166         }
167         catch ( RepositoryAdminException e )
168         {
169             throw new ArchivaRestServiceException( e.getMessage() );
170         }
171     }
172
173     public Boolean addKnownContentConsumer( String knownContentConsumer )
174         throws ArchivaRestServiceException
175     {
176         try
177         {
178             archivaAdministration.addKnownContentConsumer( knownContentConsumer, getAuditInformation() );
179             return Boolean.TRUE;
180         }
181         catch ( RepositoryAdminException e )
182         {
183             throw new ArchivaRestServiceException( e.getMessage() );
184         }
185     }
186
187     public void setKnownContentConsumers( List<String> knownContentConsumers )
188         throws ArchivaRestServiceException
189     {
190         try
191         {
192             archivaAdministration.setKnownContentConsumers( knownContentConsumers, getAuditInformation() );
193         }
194         catch ( RepositoryAdminException e )
195         {
196             throw new ArchivaRestServiceException( e.getMessage() );
197         }
198     }
199
200     public Boolean removeKnownContentConsumer( String knownContentConsumer )
201         throws ArchivaRestServiceException
202     {
203         try
204         {
205             archivaAdministration.removeKnownContentConsumer( knownContentConsumer, getAuditInformation() );
206             return Boolean.TRUE;
207         }
208         catch ( RepositoryAdminException e )
209         {
210             throw new ArchivaRestServiceException( e.getMessage() );
211         }
212     }
213
214     public Boolean addInvalidContentConsumer( String invalidContentConsumer )
215         throws ArchivaRestServiceException
216     {
217         try
218         {
219             archivaAdministration.addInvalidContentConsumer( invalidContentConsumer, getAuditInformation() );
220             return Boolean.TRUE;
221         }
222         catch ( RepositoryAdminException e )
223         {
224             throw new ArchivaRestServiceException( e.getMessage() );
225         }
226     }
227
228     public void setInvalidContentConsumers( List<String> invalidContentConsumers )
229         throws ArchivaRestServiceException
230     {
231         try
232         {
233             archivaAdministration.setInvalidContentConsumers( invalidContentConsumers, getAuditInformation() );
234         }
235         catch ( RepositoryAdminException e )
236         {
237             throw new ArchivaRestServiceException( e.getMessage() );
238         }
239     }
240
241     public Boolean removeInvalidContentConsumer( String invalidContentConsumer )
242         throws ArchivaRestServiceException
243     {
244         try
245         {
246             archivaAdministration.removeInvalidContentConsumer( invalidContentConsumer, getAuditInformation() );
247             return Boolean.TRUE;
248         }
249         catch ( RepositoryAdminException e )
250         {
251             throw new ArchivaRestServiceException( e.getMessage() );
252         }
253     }
254
255     public List<FileType> getFileTypes()
256         throws ArchivaRestServiceException
257     {
258         try
259         {
260             List<org.apache.archiva.admin.repository.admin.FileType> modelfileTypes =
261                 archivaAdministration.getFileTypes();
262             if ( modelfileTypes == null || modelfileTypes.isEmpty() )
263             {
264                 return Collections.emptyList();
265             }
266             List<FileType> fileTypes = new ArrayList<FileType>( modelfileTypes.size() );
267             for ( org.apache.archiva.admin.repository.admin.FileType fileType : modelfileTypes )
268             {
269                 fileTypes.add( new BeanReplicator().replicateBean( fileType, FileType.class ) );
270             }
271             return fileTypes;
272         }
273         catch ( RepositoryAdminException e )
274         {
275             throw new ArchivaRestServiceException( e.getMessage() );
276         }
277     }
278
279     public List<String> getKnownContentConsumers()
280         throws ArchivaRestServiceException
281     {
282         try
283         {
284             return new ArrayList<String>( archivaAdministration.getKnownContentConsumers() );
285         }
286         catch ( RepositoryAdminException e )
287         {
288             throw new ArchivaRestServiceException( e.getMessage() );
289         }
290     }
291
292     public List<String> getInvalidContentConsumers()
293         throws ArchivaRestServiceException
294     {
295         try
296         {
297             return new ArrayList<String>( archivaAdministration.getInvalidContentConsumers() );
298         }
299         catch ( RepositoryAdminException e )
300         {
301             throw new ArchivaRestServiceException( e.getMessage() );
302         }
303     }
304
305     public OrganisationInformation getOrganisationInformation()
306         throws ArchivaRestServiceException
307     {
308         try
309         {
310             org.apache.archiva.admin.repository.admin.OrganisationInformation organisationInformation =
311                 archivaAdministration.getOrganisationInformation();
312
313             return organisationInformation == null
314                 ? null
315                 : new BeanReplicator().replicateBean( organisationInformation, OrganisationInformation.class );
316         }
317         catch ( RepositoryAdminException e )
318         {
319             throw new ArchivaRestServiceException( e.getMessage() );
320         }
321     }
322
323     public void setOrganisationInformation( OrganisationInformation organisationInformation )
324         throws ArchivaRestServiceException
325     {
326         try
327         {
328             if ( organisationInformation == null )
329             {
330                 archivaAdministration.setOrganisationInformation( null );
331             }
332             else
333             {
334                 archivaAdministration.setOrganisationInformation(
335                     new BeanReplicator().replicateBean( organisationInformation,
336                                                         org.apache.archiva.admin.repository.admin.OrganisationInformation.class ) );
337             }
338         }
339         catch ( RepositoryAdminException e )
340         {
341             throw new ArchivaRestServiceException( e.getMessage() );
342         }
343     }
344 }