]> source.dussan.org Git - archiva.git/blob
430a917d8692b9c032f2313f069b526d31d26535
[archiva.git] /
1 package org.apache.maven.archiva.web.action.admin.legacy;\r
2 \r
3 /*\r
4  * Licensed to the Apache Software Foundation (ASF) under one\r
5  * or more contributor license agreements.  See the NOTICE file\r
6  * distributed with this work for additional information\r
7  * regarding copyright ownership.  The ASF licenses this file\r
8  * to you under the Apache License, Version 2.0 (the\r
9  * "License"); you may not use this file except in compliance\r
10  * with the License.  You may obtain a copy of the License at\r
11  *\r
12  *  http://www.apache.org/licenses/LICENSE-2.0\r
13  *\r
14  * Unless required by applicable law or agreed to in writing,\r
15  * software distributed under the License is distributed on an\r
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r
17  * KIND, either express or implied.  See the License for the\r
18  * specific language governing permissions and limitations\r
19  * under the License.\r
20  */\r
21 \r
22 import org.apache.maven.archiva.configuration.ArchivaConfiguration;\r
23 import org.apache.maven.archiva.configuration.Configuration;\r
24 import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;\r
25 import org.apache.maven.archiva.configuration.LegacyArtifactPath;\r
26 import org.apache.maven.archiva.web.action.AbstractActionSupport;\r
27 import org.codehaus.plexus.registry.RegistryException;\r
28 import org.springframework.context.annotation.Scope;\r
29 import org.springframework.stereotype.Controller;\r
30 \r
31 import javax.inject.Inject;\r
32 import java.util.Iterator;\r
33 \r
34 /**\r
35  * Delete a LegacyArtifactPath to archiva configuration\r
36  *\r
37  * @since 1.1\r
38  */\r
39 @Controller( "deleteLegacyArtifactPathAction" )\r
40 @Scope( "prototype" )\r
41 public class DeleteLegacyArtifactPathAction\r
42     extends AbstractActionSupport\r
43 {\r
44 \r
45     @Inject\r
46     private ArchivaConfiguration archivaConfiguration;\r
47 \r
48     private String path;\r
49 \r
50     public String delete()\r
51     {\r
52         log.info( "remove [" + path + "] from legacy artifact path resolution" );\r
53         Configuration configuration = archivaConfiguration.getConfiguration();\r
54         for ( Iterator<LegacyArtifactPath> iterator = configuration.getLegacyArtifactPaths().iterator();\r
55               iterator.hasNext(); )\r
56         {\r
57             LegacyArtifactPath legacyArtifactPath = (LegacyArtifactPath) iterator.next();\r
58             if ( legacyArtifactPath.match( path ) )\r
59             {\r
60                 iterator.remove();\r
61             }\r
62         }\r
63         return saveConfiguration( configuration );\r
64     }\r
65 \r
66     protected String saveConfiguration( Configuration configuration )\r
67     {\r
68         try\r
69         {\r
70             archivaConfiguration.save( configuration );\r
71             addActionMessage( "Successfully saved configuration" );\r
72         }\r
73         catch ( IndeterminateConfigurationException e )\r
74         {\r
75             addActionError( e.getMessage() );\r
76             return INPUT;\r
77         }\r
78         catch ( RegistryException e )\r
79         {\r
80             addActionError( "Configuration Registry Exception: " + e.getMessage() );\r
81             return INPUT;\r
82         }\r
83 \r
84         return SUCCESS;\r
85     }\r
86 \r
87     public String getPath()\r
88     {\r
89         return path;\r
90     }\r
91 \r
92     public void setPath( String path )\r
93     {\r
94         this.path = path;\r
95     }\r
96 }\r