]> source.dussan.org Git - archiva.git/blob
d873c0af2e57b7b617ecd327a4620267154b67ad
[archiva.git] /
1 package org.apache.maven.repository.proxy.configuration;
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 org.apache.maven.repository.proxy.repository.ProxyRepository;
20 import org.apache.maven.wagon.proxy.ProxyInfo;
21
22 import java.io.File;
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.List;
26
27 /**
28  * Class to represent the configuration file for the proxy
29  *
30  * @author Edwin Punzalan
31  * @plexus.component role="org.apache.maven.repository.proxy.configuration.ProxyConfiguration"
32  * @todo investigate how these should be set - probably plexus configuration
33  */
34 public class ProxyConfiguration
35 {
36     public static final String ROLE = ProxyConfiguration.class.getName();
37
38     private List repositories = new ArrayList();
39
40     private String cachePath;
41
42     private String layout;
43
44     private ProxyInfo httpProxy;
45
46     /**
47      * Used to set the location where the proxy should cache the configured repositories
48      *
49      * @param path
50      */
51     public void setRepositoryCachePath( String path )
52     {
53         cachePath = new File( path ).getAbsolutePath();
54     }
55
56     /**
57      * Used to retrieved the absolute path of the repository cache
58      *
59      * @return path to the proxy cache
60      */
61     public String getRepositoryCachePath()
62     {
63         return cachePath;
64     }
65
66     public void setHttpProxy( ProxyInfo httpProxy )
67     {
68         this.httpProxy = httpProxy;
69     }
70
71     public void setHttpProxy( String host, int port )
72     {
73         ProxyInfo proxyInfo = new ProxyInfo();
74         proxyInfo.setHost( host );
75         proxyInfo.setPort( port );
76
77         httpProxy = proxyInfo;
78     }
79
80     public void setHttpProxy( String host, int port, String username, String password )
81     {
82         setHttpProxy( host, port );
83         httpProxy.setUserName( username );
84         httpProxy.setPassword( password );
85     }
86
87     public void setHttpProxy( String host, int port, String username, String password, String ntlmHost,
88                               String ntlmDomain )
89     {
90         setHttpProxy( host, port );
91         httpProxy.setUserName( username );
92         httpProxy.setPassword( password );
93         httpProxy.setNtlmHost( ntlmHost );
94         httpProxy.setNtlmDomain( ntlmDomain );
95     }
96
97     public ProxyInfo getHttpProxy()
98     {
99         return httpProxy;
100     }
101
102     /**
103      * Used to add proxied repositories.
104      *
105      * @param repository the repository to be proxied
106      */
107     public void addRepository( ProxyRepository repository )
108     {
109         repositories.add( repository );
110     }
111
112     /**
113      * Used to retrieve an unmodifyable list of proxied repositories. They returned list determines the search sequence
114      * for retrieving artifacts.
115      *
116      * @return a list of ProxyRepository objects representing proxied repositories
117      */
118     public List getRepositories()
119     {
120         return Collections.unmodifiableList( repositories );
121     }
122
123     /**
124      * Used to set the list of repositories to be proxied.  This replaces any repositories already added to this
125      * configuraion instance.  Useful for re-arranging an existing proxied list.
126      *
127      * @param repositories
128      */
129     public void setRepositories( List repositories )
130     {
131         this.repositories = repositories;
132     }
133
134     public String getLayout()
135     {
136         if ( layout == null )
137         {
138             layout = "default";
139         }
140
141         return layout;
142     }
143
144     public void setLayout( String layout )
145     {
146         this.layout = layout;
147     }
148 }