]> source.dussan.org Git - archiva.git/blob
25f681f0b6ca77804a5b8209d3c7cb11b9d3bcb1
[archiva.git] /
1 package org.apache.maven.archiva.web.action.admin;
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.maven.archiva.configuration.AbstractRepositoryConfiguration;
23 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
24 import org.codehaus.plexus.rbac.profile.RoleProfileException;
25
26 import java.io.File;
27 import java.io.IOException;
28
29 /**
30  * Configures the application repositories.
31  *
32  * @plexus.component role="com.opensymphony.xwork.Action" role-hint="configureRepositoryAction"
33  */
34 public class ConfigureRepositoryAction
35     extends AbstractConfigureRepositoryAction
36 {
37     protected void removeRepository( AbstractRepositoryConfiguration existingRepository )
38     {
39         configuration.removeRepository( (RepositoryConfiguration) existingRepository );
40     }
41
42     protected AbstractRepositoryConfiguration getRepository( String id )
43     {
44         return configuration.getRepositoryById( id );
45     }
46
47     protected void addRepository()
48         throws IOException, RoleProfileException
49     {
50         RepositoryConfiguration repository = (RepositoryConfiguration) getRepository();
51
52         // Normalize the path
53         File file = new File( repository.getDirectory() );
54         repository.setDirectory( file.getCanonicalPath() );
55         if ( !file.exists() )
56         {
57             file.mkdirs();
58             // TODO: error handling when this fails, or is not a directory!
59         }
60
61         configuration.addRepository( repository );
62
63         // TODO: double check these are configured on start up
64         roleProfileManager.getDynamicRole( "archiva-repository-manager", repository.getId() );
65
66         roleProfileManager.getDynamicRole( "archiva-repository-observer", repository.getId() );
67     }
68
69     protected AbstractRepositoryConfiguration createRepository()
70     {
71         RepositoryConfiguration repository = new RepositoryConfiguration();
72         repository.setIndexed( false );
73         return repository;
74     }
75 }