]> source.dussan.org Git - archiva.git/blob
ea35623103f32ddd1a998149b78a9e12908add6d
[archiva.git] /
1 package org.apache.archiva.web.xmlrpc.services;
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 java.util.ArrayList;
23 import java.util.List;
24
25 import org.apache.archiva.web.xmlrpc.api.AdministrationService;
26 import org.apache.archiva.web.xmlrpc.api.beans.ManagedRepository;
27 import org.apache.archiva.web.xmlrpc.api.beans.RemoteRepository;
28 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
29 import org.apache.maven.archiva.configuration.Configuration;
30 import org.apache.maven.archiva.configuration.DatabaseScanningConfiguration;
31 import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
32 import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration;
33 import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
34 import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
35 import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
36 import org.codehaus.plexus.registry.RegistryException;
37
38 public class AdministrationServiceImpl
39     implements AdministrationService
40 {
41     /**
42      * @plexus.requirement
43      */
44     private ArchivaConfiguration archivaConfiguration;
45     
46     private RepositoryContentConsumers consumerUtil;
47     
48     public boolean configureDatabaseConsumer( String consumerId, boolean enable ) throws Exception
49     {
50         //Configuration config = archivaConfiguration.getConfiguration();
51              
52         // TODO Auto-generated method stub
53         return false;
54     }
55
56     /**
57      * @see AdministrationService#configureRepositoryConsumer(String, String, boolean)
58      */
59     public boolean configureRepositoryConsumer( String repoId, String consumerId, boolean enable )
60         throws Exception
61     {
62         List<KnownRepositoryContentConsumer> knownConsumers = consumerUtil.getAvailableKnownConsumers();
63         List<InvalidRepositoryContentConsumer> invalidConsumers = consumerUtil.getAvailableInvalidConsumers();
64         
65         boolean found = false;
66         boolean isKnownContentConsumer = false;
67         for( KnownRepositoryContentConsumer consumer : knownConsumers )
68         {
69             if( consumer.getId().equals( consumerId ) )
70             {
71                 found = true;
72                 isKnownContentConsumer = true;
73                 break;
74             }
75         }
76         
77         if( !found )
78         {
79             for( InvalidRepositoryContentConsumer consumer : invalidConsumers )
80             {
81                 if( consumer.getId().equals( consumerId ) )
82                 {
83                     found = true;
84                     break;
85                 }
86             }
87         }
88         
89         if( !found )
90         {
91             throw new Exception( "Invalid repository consumer." );
92         }
93         
94         Configuration config = archivaConfiguration.getConfiguration();
95         RepositoryScanningConfiguration repoScanningConfig = config.getRepositoryScanning();
96         
97         if( isKnownContentConsumer )
98         {
99             repoScanningConfig.addKnownContentConsumer( consumerId );
100         }
101         else
102         {
103             repoScanningConfig.addInvalidContentConsumer( consumerId );
104         }
105         
106         config.setRepositoryScanning( repoScanningConfig );        
107         saveConfiguration( config );
108         
109         return true;
110     }
111     
112     public boolean deleteArtifact( String repoId, String groupId, String artifactId, String version ) throws Exception
113     {
114         // TODO implement delete artifact in Archiva
115         
116         // TODO Auto-generated method stub
117         return false;
118     }
119
120     public boolean executeDatabaseScanner() throws Exception
121     {
122         // TODO Auto-generated method stub
123         return false;
124     }
125
126     public boolean executeRepositoryScanner( String repoId ) throws Exception
127     {
128         // TODO Auto-generated method stub
129         return false;
130     }
131
132     /**
133      * @see AdministrationService#getAllDatabaseConsumers()
134      */
135     public List<String> getAllDatabaseConsumers()
136     {
137         List<String> consumers = new ArrayList<String>();
138         
139         return consumers;
140     }
141
142     /**
143      * @see AdministrationService#getAllRepositoryConsumers()
144      */
145     public List<String> getAllRepositoryConsumers()
146     {
147         List<String> consumers = new ArrayList<String>();
148                 
149         List<KnownRepositoryContentConsumer> knownConsumers = consumerUtil.getAvailableKnownConsumers();
150         List<InvalidRepositoryContentConsumer> invalidConsumers = consumerUtil.getAvailableInvalidConsumers();
151         
152         for( KnownRepositoryContentConsumer consumer : knownConsumers )
153         {
154             consumers.add( consumer.getId() );
155         }
156         
157         for( InvalidRepositoryContentConsumer consumer : invalidConsumers )
158         {
159             consumers.add( consumer.getId() );
160         }
161
162         return consumers;
163     }
164
165     public List<ManagedRepository> getAllManagedRepositories()
166     {
167         return null;
168     }
169
170     public List<RemoteRepository> getAllRemoteRepositories()
171     {
172         return null;
173     }
174
175     private void saveConfiguration( Configuration config )
176         throws Exception
177     {
178         try
179         {
180             archivaConfiguration.save( config );
181         }
182         catch(  RegistryException e )
183         {
184             throw new Exception( "Error occurred in the registry." );
185         }
186         catch ( IndeterminateConfigurationException e )
187         {
188             throw new Exception( "Error occurred while saving the configuration." );    
189         }
190     }
191     
192     public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration )
193     {
194         this.archivaConfiguration = archivaConfiguration;
195     }
196
197     public RepositoryContentConsumers getConsumerUtil()
198     {
199         return consumerUtil;
200     }
201
202     public void setConsumerUtil( RepositoryContentConsumers consumerUtil )
203     {
204         this.consumerUtil = consumerUtil;
205     }    
206 }