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