This project has retired. For details please refer to its Attic page.
ProxyConnector xref
View Javadoc
1   package org.apache.archiva.proxy.model;
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.archiva.policies.Policy;
23  import org.apache.archiva.policies.PolicyOption;
24  import org.apache.archiva.repository.ManagedRepository;
25  import org.apache.archiva.repository.RemoteRepository;
26  import org.apache.archiva.repository.connector.RepositoryConnector;
27  
28  import java.util.Iterator;
29  import java.util.List;
30  import java.util.Map;
31  
32  /**
33   * This represents a connector for a repository to a remote repository that is proxied.
34   */
35  public class ProxyConnector
36      implements RepositoryConnector
37  {
38      private ManagedRepository sourceRepository;
39  
40      private RemoteRepository targetRepository;
41  
42      private List<String> blacklist;
43  
44      private List<String> whitelist;
45  
46      private String proxyId;
47  
48      private int order;
49  
50      private Map<Policy, PolicyOption> policies;
51  
52      private boolean enabled;
53  
54      private Map<String, String> properties;
55  
56      public ProxyConnector()
57      {
58          // no op
59      }
60  
61      /**
62       * @see RepositoryConnector#isEnabled()
63       */
64      @Override
65      public boolean isEnabled()
66      {
67          return enabled;
68      }
69  
70  
71      /**
72       * @see RepositoryConnector#enable()
73       */
74      @Override
75      public void enable()
76      {
77          this.enabled = true;
78      }
79  
80      /**
81       * @see RepositoryConnector#disable()
82       */
83      @Override
84      public void disable( )
85      {
86          this.enabled = false;
87      }
88  
89      /**
90       * @see RepositoryConnector#getBlacklist()
91       */
92      @Override
93      public List<String> getBlacklist()
94      {
95          return blacklist;
96      }
97  
98      /**
99       * Sets the blacklist. The list is a string of paths.
100      *
101      * @param blacklist List of paths.
102      */
103     public void setBlacklist( List<String> blacklist )
104     {
105         this.blacklist = blacklist;
106     }
107 
108     /**
109      * @see RepositoryConnector#getSourceRepository()
110      */
111     @Override
112     public ManagedRepository getSourceRepository()
113     {
114         return sourceRepository;
115     }
116 
117     /**
118      * Sets the source repository.
119      * @param sourceRepository The managed repository which is the local representation of the proxy.
120      */
121     public void setSourceRepository( ManagedRepository sourceRepository )
122     {
123         this.sourceRepository = sourceRepository;
124     }
125 
126     /**
127      * @see ProxyConnector#getTargetRepository()
128      */
129     @Override
130     public RemoteRepository getTargetRepository()
131     {
132         return targetRepository;
133     }
134 
135     /**
136      * Sets the target repository.
137      * @param targetRepository The remote repository, where the artifacts are downloaded from.
138      */
139     public void setTargetRepository( RemoteRepository targetRepository )
140     {
141         this.targetRepository = targetRepository;
142     }
143 
144     /**
145      * @see ProxyConnector#getWhitelist()
146      */
147     @Override
148     public List<String> getWhitelist()
149     {
150         return whitelist;
151     }
152 
153     /**
154      * Sets the list of paths that are proxied.
155      * @param whitelist List of paths.
156      */
157     public void setWhitelist( List<String> whitelist )
158     {
159         this.whitelist = whitelist;
160     }
161 
162     /**
163      * Returns the policies that are defined
164      * @return
165      */
166     public Map<Policy, PolicyOption> getPolicies()
167     {
168         return policies;
169     }
170 
171     /**
172      * Sets policies that set the behaviour of this proxy connector.
173      * @param policies A map of policies with each option.
174      */
175     public void setPolicies( Map<Policy, PolicyOption> policies )
176     {
177         this.policies = policies;
178     }
179 
180     /**
181      * Adds a new policy.
182      * @param policy The policy to add.
183      * @param option  The option for the policy.
184      */
185     public void addPolicy( Policy policy, PolicyOption option )
186     {
187         this.policies.put( policy, option );
188     }
189 
190     /**
191      * Returns the id of this proxy connector.
192      * @return The id string.
193      */
194     public String getProxyId()
195     {
196         return proxyId;
197     }
198 
199     /**
200      * Sets the id of this proxy connector.
201      * @param proxyId A id string.
202      */
203     public void setProxyId( String proxyId )
204     {
205         this.proxyId = proxyId;
206     }
207 
208     @Override
209     public String toString()
210     {
211         StringBuilder sb = new StringBuilder();
212 
213         sb.append( "ProxyConnector[\n" );
214         sb.append( "  source: [managed] " ).append( this.sourceRepository.getId() ).append( "\n" );
215         sb.append( "  target: [remote] " ).append( this.targetRepository.getId() ).append( "\n" );
216         sb.append( "  proxyId:" ).append( this.proxyId ).append( "\n" );
217 
218         Iterator<Policy> keys = this.policies.keySet().iterator();
219         while ( keys.hasNext() )
220         {
221             String name = keys.next().getId();
222             sb.append( "  policy[" ).append( name ).append( "]:" );
223             sb.append( this.policies.get( name ) ).append( "\n" );
224         }
225 
226         sb.append( "]" );
227 
228         return sb.toString();
229     }
230 
231     /**
232      * Returns a number that orders the proxy connectors numerically.
233      * @return The order number of this connector.
234      */
235     public int getOrder()
236     {
237         return order;
238     }
239 
240     /**
241      * Set the order number of this proxy connector.
242      *
243      * @param order The order number.
244      */
245     public void setOrder( int order )
246     {
247         this.order = order;
248     }
249 
250     /**
251      * Returns additional properties defined for this connector.
252      * @return Map of key, value pairs.
253      */
254     public Map<String, String> getProperties() {
255         return properties;
256     }
257 
258     /**
259      * Sets additional properties for this connector.
260      * @param properties Map of key, value pairs.
261      */
262     public void setProperties(Map<String, String> properties) {
263         this.properties = properties;
264     }
265 }