View Javadoc
1   package org.apache.archiva.configuration;
2   /*
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   */
20  
21  import org.apache.archiva.admin.model.AuditInformation;
22  import org.apache.archiva.admin.model.RepositoryAdminException;
23  import org.apache.archiva.admin.model.beans.ManagedRepository;
24  import org.apache.archiva.admin.model.beans.NetworkProxy;
25  import org.apache.archiva.admin.model.beans.ProxyConnector;
26  import org.apache.archiva.admin.model.beans.ProxyConnectorRule;
27  import org.apache.archiva.admin.model.beans.RemoteRepository;
28  import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin;
29  import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin;
30  import org.apache.archiva.admin.model.proxyconnector.ProxyConnectorAdmin;
31  import org.apache.archiva.admin.model.proxyconnector.ProxyConnectorOrderComparator;
32  import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin;
33  import org.apache.commons.lang.StringUtils;
34  import org.apache.maven.index.context.IndexingContext;
35  import org.modelmapper.ModelMapper;
36  import org.springframework.stereotype.Service;
37  
38  import javax.inject.Inject;
39  import javax.inject.Named;
40  import java.util.ArrayList;
41  import java.util.Collections;
42  import java.util.HashMap;
43  import java.util.Iterator;
44  import java.util.List;
45  import java.util.Map;
46  
47  /**
48   * @author Olivier Lamy
49   */
50  @Service
51  public class MockRepoAdmin
52      implements RemoteRepositoryAdmin, ManagedRepositoryAdmin, ProxyConnectorAdmin, NetworkProxyAdmin
53  {
54      @Inject
55      @Named ( "archivaConfiguration#test" )
56      private ArchivaConfiguration archivaConfiguration;
57  
58      @Override
59      public List<RemoteRepository> getRemoteRepositories()
60          throws RepositoryAdminException
61      {
62          List<RemoteRepository> remoteRepositories =
63              new ArrayList<>( archivaConfiguration.getConfiguration().getRemoteRepositories().size() );
64          for ( RemoteRepositoryConfiguration repositoryConfiguration : archivaConfiguration.getConfiguration().getRemoteRepositories() )
65          {
66              RemoteRepository remoteRepository =
67                  new RemoteRepository( repositoryConfiguration.getId(), repositoryConfiguration.getName(),
68                                        repositoryConfiguration.getUrl(), repositoryConfiguration.getLayout(),
69                                        repositoryConfiguration.getUsername(), repositoryConfiguration.getPassword(),
70                                        repositoryConfiguration.getTimeout() );
71              remoteRepository.setDownloadRemoteIndex( repositoryConfiguration.isDownloadRemoteIndex() );
72              remoteRepository.setRemoteIndexUrl( repositoryConfiguration.getRemoteIndexUrl() );
73              remoteRepository.setCronExpression( repositoryConfiguration.getRefreshCronExpression() );
74              remoteRepository.setIndexDirectory( repositoryConfiguration.getIndexDir() );
75              remoteRepository.setRemoteDownloadNetworkProxyId(
76                  repositoryConfiguration.getRemoteDownloadNetworkProxyId() );
77              remoteRepository.setRemoteDownloadTimeout( repositoryConfiguration.getRemoteDownloadTimeout() );
78              remoteRepository.setDownloadRemoteIndexOnStartup(
79                  repositoryConfiguration.isDownloadRemoteIndexOnStartup() );
80              remoteRepositories.add( remoteRepository );
81          }
82          return remoteRepositories;
83      }
84  
85      @Override
86      public RemoteRepository getRemoteRepository( String repositoryId )
87          throws RepositoryAdminException
88      {
89          for ( RemoteRepository remoteRepository : getRemoteRepositories() )
90          {
91              if ( StringUtils.equals( repositoryId, remoteRepository.getId() ) )
92              {
93                  return remoteRepository;
94              }
95          }
96          return null;
97      }
98  
99      @Override
100     public Boolean deleteRemoteRepository( String repositoryId, AuditInformation auditInformation )
101         throws RepositoryAdminException
102     {
103         return null;  //To change body of implemented methods use File | Settings | File Templates.
104     }
105 
106     @Override
107     public Boolean addRemoteRepository( RemoteRepository remoteRepository, AuditInformation auditInformation )
108         throws RepositoryAdminException
109     {
110         return null;  //To change body of implemented methods use File | Settings | File Templates.
111     }
112 
113     @Override
114     public Boolean updateRemoteRepository( RemoteRepository remoteRepository, AuditInformation auditInformation )
115         throws RepositoryAdminException
116     {
117         return null;  //To change body of implemented methods use File | Settings | File Templates.
118     }
119 
120     @Override
121     public Map<String, RemoteRepository> getRemoteRepositoriesAsMap()
122         throws RepositoryAdminException
123     {
124         return null;  //To change body of implemented methods use File | Settings | File Templates.
125     }
126 
127     @Override
128     public IndexingContext createIndexContext( RemoteRepository repository )
129         throws RepositoryAdminException
130     {
131         return null;  //To change body of implemented methods use File | Settings | File Templates.
132     }
133 
134     @Override
135     public List<ManagedRepository> getManagedRepositories()
136         throws RepositoryAdminException
137     {
138         return null;  //To change body of implemented methods use File | Settings | File Templates.
139     }
140 
141     @Override
142     public Map<String, ManagedRepository> getManagedRepositoriesAsMap()
143         throws RepositoryAdminException
144     {
145         return null;  //To change body of implemented methods use File | Settings | File Templates.
146     }
147 
148     @Override
149     public ManagedRepository getManagedRepository( String repositoryId )
150         throws RepositoryAdminException
151     {
152         for ( ManagedRepositoryConfiguration repoConfig : archivaConfiguration.getConfiguration().getManagedRepositories() )
153         {
154             if ( StringUtils.equals( repositoryId, repoConfig.getId() ) )
155             {
156                 return new ManagedRepository( repoConfig.getId(), repoConfig.getName(), repoConfig.getLocation(),
157                                               repoConfig.getLayout(), repoConfig.isSnapshots(), repoConfig.isReleases(),
158                                               repoConfig.isBlockRedeployments(), repoConfig.getRefreshCronExpression(),
159                                               repoConfig.getIndexDir(), repoConfig.isScanned(),
160                                               repoConfig.getDaysOlder(), repoConfig.getRetentionCount(),
161                                               repoConfig.isDeleteReleasedSnapshots(), false );
162             }
163         }
164         return null;
165     }
166 
167     @Override
168     public Boolean deleteManagedRepository( String repositoryId, AuditInformation auditInformation,
169                                             boolean deleteContent )
170         throws RepositoryAdminException
171     {
172         return null;  //To change body of implemented methods use File | Settings | File Templates.
173     }
174 
175     @Override
176     public Boolean addManagedRepository( ManagedRepository managedRepository, boolean needStageRepo,
177                                          AuditInformation auditInformation )
178         throws RepositoryAdminException
179     {
180         return null;  //To change body of implemented methods use File | Settings | File Templates.
181     }
182 
183     @Override
184     public Boolean updateManagedRepository( ManagedRepository managedRepository, boolean needStageRepo,
185                                             AuditInformation auditInformation, boolean resetStats )
186         throws RepositoryAdminException
187     {
188         return null;  //To change body of implemented methods use File | Settings | File Templates.
189     }
190 
191     @Override
192     public IndexingContext createIndexContext( ManagedRepository repository )
193         throws RepositoryAdminException
194     {
195         return null;  //To change body of implemented methods use File | Settings | File Templates.
196     }
197 
198     @Override
199     public List<ProxyConnector> getProxyConnectors()
200         throws RepositoryAdminException
201     {
202         List<ProxyConnectorConfiguration> proxyConnectorConfigurations =
203             archivaConfiguration.getConfiguration().getProxyConnectors();
204         List<ProxyConnector> proxyConnectors = new ArrayList<>( proxyConnectorConfigurations.size() );
205         for ( ProxyConnectorConfiguration configuration : proxyConnectorConfigurations )
206         {
207             proxyConnectors.add( getProxyConnector( configuration ) );
208         }
209         Collections.sort( proxyConnectors, ProxyConnectorOrderComparator.getInstance() );
210         return proxyConnectors;
211     }
212 
213     @Override
214     public ProxyConnector getProxyConnector( String sourceRepoId, String targetRepoId )
215         throws RepositoryAdminException
216     {
217         return null;  //To change body of implemented methods use File | Settings | File Templates.
218     }
219 
220     @Override
221     public Boolean addProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation )
222         throws RepositoryAdminException
223     {
224         return null;  //To change body of implemented methods use File | Settings | File Templates.
225     }
226 
227     @Override
228     public Boolean deleteProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation )
229         throws RepositoryAdminException
230     {
231         return null;  //To change body of implemented methods use File | Settings | File Templates.
232     }
233 
234     @Override
235     public Boolean updateProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation )
236         throws RepositoryAdminException
237     {
238         return null;
239     }
240 
241     @Override
242     public Map<String, List<ProxyConnector>> getProxyConnectorAsMap()
243         throws RepositoryAdminException
244     {
245         Map<String, List<ProxyConnector>> proxyConnectorMap = new HashMap<>();
246 
247         Iterator<ProxyConnector> it = getProxyConnectors().iterator();
248         while ( it.hasNext() )
249         {
250             ProxyConnector proxyConfig = it.next();
251             String key = proxyConfig.getSourceRepoId();
252 
253             List<ProxyConnector> connectors = proxyConnectorMap.get( key );
254             if ( connectors == null )
255             {
256                 connectors = new ArrayList<>( 1 );
257                 proxyConnectorMap.put( key, connectors );
258             }
259 
260             connectors.add( proxyConfig );
261 
262             Collections.sort( connectors, ProxyConnectorOrderComparator.getInstance() );
263         }
264 
265         return proxyConnectorMap;
266     }
267 
268     @Override
269     public List<NetworkProxy> getNetworkProxies()
270         throws RepositoryAdminException
271     {
272         return null;  //To change body of implemented methods use File | Settings | File Templates.
273     }
274 
275     @Override
276     public NetworkProxy getNetworkProxy( String networkProxyId )
277         throws RepositoryAdminException
278     {
279         return null;  //To change body of implemented methods use File | Settings | File Templates.
280     }
281 
282     @Override
283     public void addNetworkProxy( NetworkProxy networkProxy, AuditInformation auditInformation )
284         throws RepositoryAdminException
285     {
286         //To change body of implemented methods use File | Settings | File Templates.
287     }
288 
289     @Override
290     public void updateNetworkProxy( NetworkProxy networkProxy, AuditInformation auditInformation )
291         throws RepositoryAdminException
292     {
293         //To change body of implemented methods use File | Settings | File Templates.
294     }
295 
296     @Override
297     public void deleteNetworkProxy( String networkProxyId, AuditInformation auditInformation )
298         throws RepositoryAdminException
299     {
300         //To change body of implemented methods use File | Settings | File Templates.
301     }
302 
303     protected ProxyConnector getProxyConnector( ProxyConnectorConfiguration proxyConnectorConfiguration )
304     {
305         return proxyConnectorConfiguration == null
306             ? null
307             : new ModelMapper().map( proxyConnectorConfiguration, ProxyConnector.class );
308     }
309 
310     public List<ProxyConnectorRule> getProxyConnectorRules()
311         throws RepositoryAdminException
312     {
313         return null;
314     }
315 
316     public void addProxyConnectorRule( ProxyConnectorRule proxyConnectorRule )
317         throws RepositoryAdminException
318     {
319 
320     }
321 
322     public void deleteProxyConnectorRule( ProxyConnectorRule proxyConnectorRule )
323         throws RepositoryAdminException
324     {
325 
326     }
327 
328     public void updateProxyConnectorRule( ProxyConnectorRule proxyConnectorRule )
329         throws RepositoryAdminException
330     {
331 
332     }
333 }