]> source.dussan.org Git - archiva.git/blob
3315936c5cda71bdaf728fbee3a545fd485f139f
[archiva.git] /
1 package org.apache.maven.repository.manager.web.action;\r
2 \r
3 /*\r
4  * Copyright 2005-2006 The Apache Software Foundation.\r
5  *\r
6  * Licensed under the Apache License, Version 2.0 (the "License");\r
7  * you may not use this file except in compliance with the License.\r
8  * You may obtain a copy of the License at\r
9  *\r
10  *      http://www.apache.org/licenses/LICENSE-2.0\r
11  *\r
12  * Unless required by applicable law or agreed to in writing, software\r
13  * distributed under the License is distributed on an "AS IS" BASIS,\r
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
15  * See the License for the specific language governing permissions and\r
16  * limitations under the License.\r
17  */\r
18 \r
19 import com.opensymphony.xwork.Action;\r
20 import org.apache.maven.artifact.Artifact;\r
21 import org.apache.maven.artifact.repository.ArtifactRepository;\r
22 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;\r
23 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;\r
24 import org.apache.maven.repository.discovery.ArtifactDiscoverer;\r
25 \r
26 import java.util.ArrayList;\r
27 import java.util.Collections;\r
28 import java.util.Iterator;\r
29 import java.util.List;\r
30 import java.util.Map;\r
31 import java.util.TreeMap;\r
32 \r
33 /**\r
34  * Browse the repository.\r
35  *\r
36  * @plexus.component role="com.opensymphony.xwork.Action" role-hint="org.apache.maven.repository.manager.web.action.RepositoryBrowseAction"\r
37  */\r
38 public class RepositoryBrowseAction\r
39     implements Action\r
40 {\r
41     /**\r
42      * @plexus.requirement role-hint="default"\r
43      */\r
44     private ArtifactDiscoverer discoverer;\r
45 \r
46     /**\r
47      * @plexus.requirement\r
48      */\r
49     private ArtifactRepositoryFactory repositoryFactory;\r
50 \r
51     /**\r
52      * @plexus.requirement role-hint="default"\r
53      */\r
54     private ArtifactRepositoryLayout layout;\r
55 \r
56     private String group;\r
57 \r
58     private Map artifactMap;\r
59 \r
60     private String folder;\r
61 \r
62     private int idx;\r
63 \r
64     public String execute()\r
65     {\r
66         // TODO! fix hardcoded path\r
67         String path = "E:/jeprox/maven-repository-manager/trunk/maven-repository-discovery/src/test/repository";\r
68 \r
69         ArtifactRepository repository =\r
70             repositoryFactory.createArtifactRepository( "discoveryRepo", "file://" + path, layout, null, null );\r
71 \r
72         List artifacts = discoverer.discoverArtifacts( repository, null, true );\r
73 \r
74         Iterator iterator = artifacts.iterator();\r
75 \r
76         artifactMap = new TreeMap();\r
77 \r
78         while ( iterator.hasNext() )\r
79         {\r
80             Artifact artifact = (Artifact) iterator.next();\r
81 \r
82             String groupId = artifact.getGroupId();\r
83 \r
84             String key = groupId.replace( '.', '/' ) + "/" + artifact.getArtifactId() + "/" + artifact.getVersion();\r
85 \r
86             List artifactList;\r
87 \r
88             if ( artifactMap.containsKey( key ) )\r
89             {\r
90                 artifactList = (List) artifactMap.get( key );\r
91             }\r
92             else\r
93             {\r
94                 artifactList = new ArrayList();\r
95             }\r
96 \r
97             artifactList.add( artifact );\r
98 \r
99             Collections.sort( artifactList );\r
100 \r
101             artifactMap.put( key, artifactList );\r
102         }\r
103 \r
104         //set the index for folder level to be displayed\r
105         idx = 1;\r
106 \r
107         folder = "";\r
108 \r
109         return SUCCESS;\r
110     }\r
111 \r
112     // TODO! is this method needed?\r
113     public String doEdit()\r
114     {\r
115         idx = idx + 1;\r
116 \r
117         //set folder to "" if we are at the root directory\r
118         if ( idx == 1 )\r
119         {\r
120             folder = "";\r
121         }\r
122 \r
123         return SUCCESS;\r
124     }\r
125 \r
126     public Map getArtifactMap()\r
127     {\r
128         return artifactMap;\r
129     }\r
130 \r
131     public String getGroup()\r
132     {\r
133         return group;\r
134     }\r
135 \r
136     public void setGroup( String group )\r
137     {\r
138         this.group = group;\r
139     }\r
140 \r
141     public String getFolder()\r
142     {\r
143         return folder;\r
144     }\r
145 \r
146     public void setFolder( String folder )\r
147     {\r
148         this.folder = folder;\r
149     }\r
150 \r
151     public int getIdx()\r
152     {\r
153         return idx;\r
154     }\r
155 \r
156     public void setIdx( int index )\r
157     {\r
158         this.idx = index;\r
159     }\r
160 \r
161 }\r