]> source.dussan.org Git - archiva.git/blob
c9aab90e312b76ea7709a5a865d9b4c80ee8004b
[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  *        plexus.component role="com.opensymphony.xwork2.Action" role-hint="deleteLegacyArtifactPathAction" instantiation-strategy="per-lookup"\r
39  */\r
40 @Controller( "deleteLegacyArtifactPathAction" )\r
41 @Scope( "prototype" )\r
42 public class DeleteLegacyArtifactPathAction\r
43     extends AbstractActionSupport\r
44 {\r
45     /**\r
46      * plexus.requirement\r
47      */\r
48     @Inject\r
49     private ArchivaConfiguration archivaConfiguration;\r
50 \r
51     private String path;\r
52 \r
53     public String delete()\r
54     {\r
55         log.info( "remove [" + path + "] from legacy artifact path resolution" );\r
56         Configuration configuration = archivaConfiguration.getConfiguration();\r
57         for ( Iterator<LegacyArtifactPath> iterator = configuration.getLegacyArtifactPaths().iterator();\r
58               iterator.hasNext(); )\r
59         {\r
60             LegacyArtifactPath legacyArtifactPath = (LegacyArtifactPath) iterator.next();\r
61             if ( legacyArtifactPath.match( path ) )\r
62             {\r
63                 iterator.remove();\r
64             }\r
65         }\r
66         return saveConfiguration( configuration );\r
67     }\r
68 \r
69     protected String saveConfiguration( Configuration configuration )\r
70     {\r
71         try\r
72         {\r
73             archivaConfiguration.save( configuration );\r
74             addActionMessage( "Successfully saved configuration" );\r
75         }\r
76         catch ( IndeterminateConfigurationException e )\r
77         {\r
78             addActionError( e.getMessage() );\r
79             return INPUT;\r
80         }\r
81         catch ( RegistryException e )\r
82         {\r
83             addActionError( "Configuration Registry Exception: " + e.getMessage() );\r
84             return INPUT;\r
85         }\r
86 \r
87         return SUCCESS;\r
88     }\r
89 \r
90     public String getPath()\r
91     {\r
92         return path;\r
93     }\r
94 \r
95     public void setPath( String path )\r
96     {\r
97         this.path = path;\r
98     }\r
99 }\r