]> source.dussan.org Git - archiva.git/blob
246463d5dca7792f9c22cebad1832ed88ccad0b1
[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.repository.proxy.ProxyException;
21 import org.apache.maven.repository.proxy.ProxyManager;
22 import org.apache.maven.wagon.ResourceDoesNotExistException;
23
24 import java.io.File;
25 import java.io.FileInputStream;
26 import java.io.FileNotFoundException;
27 import java.io.InputStream;
28
29 /**
30  * Proxy functionality.
31  *
32  * @plexus.component role="com.opensymphony.xwork.Action" role-hint="proxyAction"
33  */
34 public class ProxyAction
35     extends ActionSupport
36 {
37     /**
38      * @plexus.requirement
39      */
40     private ProxyManager proxyManager;
41
42     private String path;
43
44     private String filename;
45
46     private String contentType;
47
48     private static final String NOT_FOUND = "notFound";
49
50     private InputStream artifactStream;
51
52     public String execute()
53         throws ProxyException
54     {
55         try
56         {
57             File file = proxyManager.get( path );
58
59             artifactStream = new FileInputStream( file );
60
61             // TODO: could be better
62             contentType = "application/octet-stream";
63
64             filename = file.getName();
65         }
66         catch ( ResourceDoesNotExistException e )
67         {
68             // TODO: set message?
69             return NOT_FOUND;
70         }
71         catch ( FileNotFoundException e )
72         {
73             // TODO: set message?
74             return NOT_FOUND;
75         }
76
77         return SUCCESS;
78     }
79
80     public String getPath()
81     {
82         return path;
83     }
84
85     public void setPath( String path )
86     {
87         this.path = path;
88     }
89
90     public String getFilename()
91     {
92         return filename;
93     }
94
95     public String getContentType()
96     {
97         return contentType;
98     }
99
100     public InputStream getArtifactStream()
101     {
102         return artifactStream;
103     }
104 }