]> source.dussan.org Git - archiva.git/blob
463ac6e8c343cb0293577bf57949ac055e237d59
[archiva.git] /
1 package org.apache.maven.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.repository.RepositoryAdminException;
24 import org.apache.archiva.admin.repository.group.RepositoryGroup;
25 import org.apache.archiva.admin.repository.group.RepositoryGroupAdmin;
26 import org.apache.archiva.admin.repository.managed.ManagedRepository;
27 import org.apache.archiva.web.util.ContextUtils;
28 import org.apache.struts2.interceptor.ServletRequestAware;
29 import org.springframework.context.annotation.Scope;
30 import org.springframework.stereotype.Controller;
31
32 import javax.inject.Inject;
33 import javax.servlet.http.HttpServletRequest;
34 import java.util.List;
35 import java.util.Map;
36 import java.util.regex.Pattern;
37
38 /**
39  * RepositoryGroupsAction
40  */
41 @Controller( "repositoryGroupsAction" )
42 @Scope( "prototype" )
43 public class RepositoryGroupsAction
44     extends AbstractRepositoriesAdminAction
45     implements ServletRequestAware, Preparable
46 {
47
48     @Inject
49     private RepositoryGroupAdmin repositoryGroupAdmin;
50
51     private RepositoryGroup repositoryGroup;
52
53     private Map<String, RepositoryGroup> repositoryGroups;
54
55     private Map<String, ManagedRepository> managedRepositories;
56
57     private Map<String, List<String>> groupToRepositoryMap;
58
59     private String repoGroupId;
60
61     private String repoId;
62
63     /**
64      * Used to construct the repository WebDAV URL in the repository action.
65      */
66     private String baseUrl;
67
68     private static final Pattern REPO_GROUP_ID_PATTERN = Pattern.compile( "[A-Za-z0-9\\._\\-]+" );
69
70     public void setServletRequest( HttpServletRequest request )
71     {
72         this.baseUrl = ContextUtils.getBaseURL( request, "repository" );
73     }
74
75     public void prepare()
76         throws RepositoryAdminException
77     {
78
79         repositoryGroup = new RepositoryGroup();
80         repositoryGroups = getRepositoryGroupAdmin().getRepositoryGroupsAsMap();
81         managedRepositories = getManagedRepositoryAdmin().getManagedRepositoriesAsMap();
82         groupToRepositoryMap = getRepositoryGroupAdmin().getGroupToRepositoryMap();
83     }
84
85     public String addRepositoryGroup()
86     {
87         try
88         {
89             getRepositoryGroupAdmin().addRepositoryGroup( repositoryGroup, getAuditInformation() );
90         }
91         catch ( RepositoryAdminException e )
92         {
93             addActionError( e.getMessage() );
94             return ERROR;
95         }
96
97         return SUCCESS;
98     }
99
100     public String addRepositoryToGroup()
101     {
102         try
103         {
104             getRepositoryGroupAdmin().addRepositoryToGroup( repoGroupId, repoId, getAuditInformation() );
105         }
106         catch ( RepositoryAdminException e )
107         {
108             addActionError( e.getMessage() );
109             return ERROR;
110         }
111         return SUCCESS;
112     }
113
114     public String removeRepositoryFromGroup()
115     {
116         try
117         {
118             getRepositoryGroupAdmin().deleteRepositoryFromGroup( repoGroupId, repoId, getAuditInformation() );
119         }
120         catch ( RepositoryAdminException e )
121         {
122             addActionError( e.getMessage() );
123             return ERROR;
124         }
125         return SUCCESS;
126     }
127
128
129     public RepositoryGroup getRepositoryGroup()
130     {
131         return repositoryGroup;
132     }
133
134     public void setRepositoryGroup( RepositoryGroup repositoryGroup )
135     {
136         this.repositoryGroup = repositoryGroup;
137     }
138
139     public Map<String, RepositoryGroup> getRepositoryGroups()
140     {
141         return repositoryGroups;
142     }
143
144     public void setRepositoryGroups( Map<String, RepositoryGroup> repositoryGroups )
145     {
146         this.repositoryGroups = repositoryGroups;
147     }
148
149     public Map<String, ManagedRepository> getManagedRepositories()
150     {
151         return managedRepositories;
152     }
153
154     public Map<String, List<String>> getGroupToRepositoryMap()
155     {
156         return this.groupToRepositoryMap;
157     }
158
159     public String getRepoGroupId()
160     {
161         return repoGroupId;
162     }
163
164     public void setRepoGroupId( String repoGroupId )
165     {
166         this.repoGroupId = repoGroupId;
167     }
168
169     public String getRepoId()
170     {
171         return repoId;
172     }
173
174     public void setRepoId( String repoId )
175     {
176         this.repoId = repoId;
177     }
178
179     public String getBaseUrl()
180     {
181         return baseUrl;
182     }
183
184     public RepositoryGroupAdmin getRepositoryGroupAdmin()
185     {
186         return repositoryGroupAdmin;
187     }
188
189     public void setRepositoryGroupAdmin( RepositoryGroupAdmin repositoryGroupAdmin )
190     {
191         this.repositoryGroupAdmin = repositoryGroupAdmin;
192     }
193 }