]> source.dussan.org Git - archiva.git/blob
b1bc69756ab96d0ae94bd9ff6c05e571bb841eb9
[archiva.git] /
1 package org.apache.archiva.web.action.admin.repositories;
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 com.opensymphony.xwork2.Preparable;
23 import org.apache.archiva.admin.model.RepositoryAdminException;
24 import org.apache.archiva.admin.model.beans.ManagedRepository;
25 import org.apache.commons.lang.StringUtils;
26 import org.springframework.context.annotation.Scope;
27 import org.springframework.stereotype.Controller;
28
29 /**
30  * DeleteManagedRepositoryAction
31  *
32  * @version $Id$
33  */
34 @Controller( "deleteManagedRepositoryAction" )
35 @Scope( "prototype" )
36 public class DeleteManagedRepositoryAction
37     extends AbstractManagedRepositoriesAction
38     implements Preparable
39 {
40
41
42     private ManagedRepository repository;
43
44     private ManagedRepository stagingRepository;
45
46     private String repoid;
47
48     public void prepare()
49         throws RepositoryAdminException
50     {
51         if ( StringUtils.isNotBlank( repoid ) )
52         {
53             this.repository = getManagedRepositoryAdmin().getManagedRepository( repoid );
54             this.stagingRepository = getManagedRepositoryAdmin().getManagedRepository( repoid + "-stage" );
55         }
56     }
57
58     public String confirmDelete()
59     {
60         if ( StringUtils.isBlank( repoid ) )
61         {
62             addActionError( "Unable to delete managed repository: repository id was blank." );
63             return ERROR;
64         }
65
66         return INPUT;
67     }
68
69     public String deleteEntry()
70     {
71         return deleteRepository( false );
72     }
73
74     public String deleteContents()
75     {
76         return deleteRepository( true );
77     }
78
79     private String deleteRepository( boolean deleteContents )
80     {
81         ManagedRepository existingRepository = repository;
82         if ( existingRepository == null )
83         {
84             addActionError( "A repository with that id does not exist" );
85             return ERROR;
86         }
87
88         String result = SUCCESS;
89
90         try
91         {
92             getManagedRepositoryAdmin().deleteManagedRepository( existingRepository.getId(), getAuditInformation(),
93                                                                  deleteContents );
94         }
95         catch ( RepositoryAdminException e )
96         {
97             addActionError(
98                 "Unable to delete repository, content may already be partially removed: " + e.getMessage() );
99             log.error( e.getMessage(), e );
100             result = ERROR;
101         }
102         return result;
103     }
104
105     public ManagedRepository getRepository()
106     {
107         return repository;
108     }
109
110     public void setRepository( ManagedRepository repository )
111     {
112         this.repository = repository;
113     }
114
115     public String getRepoid()
116     {
117         return repoid;
118     }
119
120     public void setRepoid( String repoid )
121     {
122         this.repoid = repoid;
123     }
124 }