1 package org.apache.maven.archiva.web.action.admin;
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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
22 import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration;
23 import org.apache.maven.archiva.configuration.Configuration;
24 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
25 import org.codehaus.plexus.rbac.profile.RoleProfileException;
26 import org.codehaus.plexus.util.FileUtils;
28 import java.io.IOException;
31 * Configures the application repositories.
33 * @plexus.component role="com.opensymphony.xwork.Action" role-hint="deleteRepositoryAction"
35 public class DeleteRepositoryAction
36 extends AbstractDeleteRepositoryAction
38 protected AbstractRepositoryConfiguration getRepository( Configuration configuration )
40 return configuration.getRepositoryById( repoId );
43 protected void removeRepository( Configuration configuration, AbstractRepositoryConfiguration existingRepository )
45 configuration.removeRepository( (RepositoryConfiguration) existingRepository );
49 removeRepositoryRoles( existingRepository );
51 catch ( RoleProfileException e )
53 getLogger().error( "Error removing user roles associated with repository " + existingRepository.getId() );
57 protected void removeContents( AbstractRepositoryConfiguration existingRepository )
60 RepositoryConfiguration repository = (RepositoryConfiguration) existingRepository;
61 getLogger().info( "Removing " + repository.getDirectory() );
62 FileUtils.deleteDirectory( repository.getDirectory() );
66 * Remove user roles associated with the repository
68 * @param existingRepository
69 * @throws RoleProfileException
71 private void removeRepositoryRoles( AbstractRepositoryConfiguration existingRepository )
72 throws RoleProfileException
74 roleProfileManager.deleteDynamicRole( "archiva-repository-manager", existingRepository.getId() );
75 roleProfileManager.deleteDynamicRole( "archiva-repository-observer", existingRepository.getId() );
77 getLogger().info( "removed user roles associated with repository " + existingRepository.getId() );