]> source.dussan.org Git - archiva.git/blob
5829e61c0bc1b6a21b336d7069fa3de664e0e02e
[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 java.util.Iterator;\r
23 \r
24 import org.apache.maven.archiva.configuration.ArchivaConfiguration;\r
25 import org.apache.maven.archiva.configuration.Configuration;\r
26 import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;\r
27 import org.apache.maven.archiva.configuration.LegacyArtifactPath;\r
28 import org.apache.maven.archiva.web.action.PlexusActionSupport;\r
29 import org.codehaus.plexus.registry.RegistryException;\r
30 \r
31 /**\r
32  * Delete a LegacyArtifactPath to archiva configuration\r
33  *\r
34  *\r
35  * @since 1.1\r
36  * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="deleteLegacyArtifactPathAction" instantiation-strategy="per-lookup"\r
37  */\r
38 public class DeleteLegacyArtifactPathAction\r
39     extends PlexusActionSupport\r
40 {\r
41     /**\r
42      * @plexus.requirement\r
43      */\r
44     private ArchivaConfiguration archivaConfiguration;\r
45 \r
46     private String path;\r
47 \r
48     public String delete()\r
49     {\r
50         getLogger().info( "remove [" + path + "] from legacy artifact path resolution" );\r
51         Configuration configuration = archivaConfiguration.getConfiguration();\r
52         for ( Iterator iterator = configuration.getLegacyArtifactPaths().iterator(); iterator.hasNext(); )\r
53         {\r
54             LegacyArtifactPath legacyArtifactPath = (LegacyArtifactPath) iterator.next();\r
55             if (legacyArtifactPath.match( path ))\r
56             {\r
57                 iterator.remove();\r
58             }\r
59         }\r
60         return saveConfiguration( configuration );\r
61     }\r
62 \r
63     protected String saveConfiguration( Configuration configuration )\r
64     {\r
65         try\r
66         {\r
67             archivaConfiguration.save( configuration );\r
68             addActionMessage( "Successfully saved configuration" );\r
69         }\r
70         catch ( IndeterminateConfigurationException e )\r
71         {\r
72             addActionError( e.getMessage() );\r
73             return INPUT;\r
74         }\r
75         catch ( RegistryException e )\r
76         {\r
77             addActionError( "Configuration Registry Exception: " + e.getMessage() );\r
78             return INPUT;\r
79         }\r
80 \r
81         return SUCCESS;\r
82     }\r
83 \r
84     public String getPath()\r
85     {\r
86         return path;\r
87     }\r
88 \r
89     public void setPath( String path )\r
90     {\r
91         this.path = path;\r
92     }\r
93 }\r