]> source.dussan.org Git - archiva.git/blob
f3d4a36a263ed0868d0c4970fcf9f5a4878484dc
[archiva.git] /
1 package org.apache.maven.archiva.web.action.admin.legacy;
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 org.apache.maven.archiva.configuration.ArchivaConfiguration;
23 import org.apache.maven.archiva.configuration.Configuration;
24 import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
25 import org.apache.maven.archiva.configuration.LegacyArtifactPath;
26 import org.apache.maven.archiva.model.ArtifactReference;
27 import org.apache.maven.archiva.repository.ManagedRepositoryContent;
28 import org.codehaus.plexus.registry.RegistryException;
29
30 import com.opensymphony.xwork2.Preparable;
31 import org.apache.maven.archiva.web.action.PlexusActionSupport;
32
33 /**
34  * Add a LegacyArtifactPath to archiva configuration
35  *
36  * @since 1.1
37  * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="addLegacyArtifactPathAction" instantiation-strategy="per-lookup"
38  */
39 public class AddLegacyArtifactPathAction
40     extends PlexusActionSupport
41     implements Preparable
42 {
43     /**
44      * @plexus.requirement
45      */
46     private ArchivaConfiguration archivaConfiguration;
47
48     /**
49      * @plexus.requirement role-hint="legacy"
50      */
51     private ManagedRepositoryContent repositoryContent;
52
53
54     private LegacyArtifactPath legacyArtifactPath;
55
56     private String groupId;
57
58     private String artifactId;
59
60     private String version;
61
62     private String classifier;
63
64     private String type;
65
66
67     public void prepare()
68     {
69         this.legacyArtifactPath = new LegacyArtifactPath();
70     }
71
72     public String input()
73     {
74         return INPUT;
75     }
76
77     public String commit()
78     {
79         this.legacyArtifactPath.setArtifact( this.groupId + ":" + this.artifactId + ":" + this.version + ":" +
80             this.classifier + ":" + this.type );
81
82         // Check the proposed Artifact macthes the path
83         ArtifactReference artifact = new ArtifactReference();
84
85                 artifact.setGroupId( this.groupId );
86                 artifact.setArtifactId( this.artifactId );
87                 artifact.setClassifier( this.classifier );
88                 artifact.setVersion( this.version );
89                 artifact.setType( this.type );
90
91         String path = repositoryContent.toPath( artifact );
92         if ( ! path.equals( this.legacyArtifactPath.getPath() ) )
93         {
94             addActionError( "artifact reference does not match the initial path : " + path );
95             return ERROR;
96         }
97
98         Configuration configuration = archivaConfiguration.getConfiguration();
99         configuration.addLegacyArtifactPath( legacyArtifactPath );
100         return saveConfiguration( configuration );
101     }
102
103     public LegacyArtifactPath getLegacyArtifactPath()
104     {
105         return legacyArtifactPath;
106     }
107
108     public void setLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath )
109     {
110         this.legacyArtifactPath = legacyArtifactPath;
111     }
112
113     protected String saveConfiguration( Configuration configuration )
114     {
115         try
116         {
117             archivaConfiguration.save( configuration );
118             addActionMessage( "Successfully saved configuration" );
119         }
120         catch ( IndeterminateConfigurationException e )
121         {
122             addActionError( e.getMessage() );
123             return INPUT;
124         }
125         catch ( RegistryException e )
126         {
127             addActionError( "Configuration Registry Exception: " + e.getMessage() );
128             return INPUT;
129         }
130
131         return SUCCESS;
132     }
133
134     public String getGroupId()
135     {
136         return groupId;
137     }
138
139     public void setGroupId( String groupId )
140     {
141         this.groupId = groupId;
142     }
143
144     public String getArtifactId()
145     {
146         return artifactId;
147     }
148
149     public void setArtifactId( String artifactId )
150     {
151         this.artifactId = artifactId;
152     }
153
154     public String getVersion()
155     {
156         return version;
157     }
158
159     public void setVersion( String version )
160     {
161         this.version = version;
162     }
163
164     public String getClassifier()
165     {
166         return classifier;
167     }
168
169     public void setClassifier( String classifier )
170     {
171         this.classifier = classifier;
172     }
173
174     public String getType()
175     {
176         return type;
177     }
178
179     public void setType( String type )
180     {
181         this.type = type;
182     }
183 }