]> source.dussan.org Git - archiva.git/blob
b739f6aa9fdc257ef4aece86a004817c3f5ee485
[archiva.git] /
1 package org.apache.maven.repository.manager.web.action;
2
3 /*
4  * Copyright 2005-2006 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 import com.opensymphony.xwork.ActionSupport;
20 import org.apache.maven.artifact.Artifact;
21 import org.apache.maven.artifact.factory.ArtifactFactory;
22 import org.apache.maven.artifact.repository.ArtifactRepository;
23 import org.apache.maven.model.Model;
24 import org.apache.maven.project.MavenProject;
25 import org.apache.maven.project.MavenProjectBuilder;
26 import org.apache.maven.project.ProjectBuildingException;
27 import org.apache.maven.repository.configuration.Configuration;
28 import org.apache.maven.repository.configuration.ConfigurationStore;
29 import org.apache.maven.repository.configuration.ConfigurationStoreException;
30 import org.apache.maven.repository.configuration.ConfiguredRepositoryFactory;
31 import org.codehaus.plexus.util.StringUtils;
32 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
33
34 import java.io.IOException;
35 import java.util.List;
36
37 /**
38  * Browse the repository.
39  *
40  * @plexus.component role="com.opensymphony.xwork.Action" role-hint="showArtifactAction"
41  */
42 public class ShowArtifactAction
43     extends ActionSupport
44 {
45     /**
46      * @plexus.requirement
47      */
48     private ArtifactFactory artifactFactory;
49
50     /**
51      * @plexus.requirement
52      */
53     private ConfiguredRepositoryFactory repositoryFactory;
54
55     /**
56      * @plexus.requirement
57      */
58     private MavenProjectBuilder projectBuilder;
59
60     /**
61      * @plexus.requirement
62      */
63     private ConfigurationStore configurationStore;
64
65     private String groupId;
66
67     private String artifactId;
68
69     private String version;
70
71     private Model model;
72
73     public String execute()
74         throws ConfigurationStoreException, IOException, XmlPullParserException, ProjectBuildingException
75     {
76         if ( StringUtils.isEmpty( groupId ) )
77         {
78             // TODO: i18n
79             addActionError( "You must specify a group ID to browse" );
80             return ERROR;
81         }
82
83         if ( StringUtils.isEmpty( artifactId ) )
84         {
85             // TODO: i18n
86             addActionError( "You must specify a artifact ID to browse" );
87             return ERROR;
88         }
89
90         if ( StringUtils.isEmpty( version ) )
91         {
92             // TODO: i18n
93             addActionError( "You must specify a version to browse" );
94             return ERROR;
95         }
96
97         Configuration configuration = configurationStore.getConfigurationFromStore();
98         List repositories = repositoryFactory.createRepositories( configuration );
99
100         Artifact artifact = artifactFactory.createProjectArtifact( groupId, artifactId, version );
101         // TODO: maybe we can decouple the assembly parts of the project builder from the repository handling to get rid of the temp repo
102         ArtifactRepository localRepository = repositoryFactory.createLocalRepository( configuration );
103         MavenProject project = projectBuilder.buildFromRepository( artifact, repositories, localRepository );
104
105         model = project.getModel();
106
107         return SUCCESS;
108     }
109
110     public Model getModel()
111     {
112         return model;
113     }
114
115     public String getGroupId()
116     {
117         return groupId;
118     }
119
120     public void setGroupId( String groupId )
121     {
122         this.groupId = groupId;
123     }
124
125     public String getArtifactId()
126     {
127         return artifactId;
128     }
129
130     public void setArtifactId( String artifactId )
131     {
132         this.artifactId = artifactId;
133     }
134
135     public String getVersion()
136     {
137         return version;
138     }
139
140     public void setVersion( String version )
141     {
142         this.version = version;
143     }
144 }