package org.carlspring.strongbox.repository; import org.carlspring.strongbox.configuration.Configuration; import org.carlspring.strongbox.services.ConfigurationManagementService; import org.carlspring.strongbox.storage.Storage; import javax.inject.Inject; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author carlspring */ public abstract class AbstractRepositoryManagementStrategy implements RepositoryManagementStrategy { private static final Logger logger = LoggerFactory.getLogger(AbstractRepositoryManagementStrategy.class); @Inject private ConfigurationManagementService configurationManagementService; @Override public void removeRepository(String storageId, String repositoryId) throws IOException { removeDirectoryStructure(storageId, repositoryId); } @Override public void removeDirectoryStructure(String storageId, String repositoryId) throws IOException { Storage storage = getConfiguration().getStorage(storageId); final String storageBasedirPath = storage.getBasedir(); final File repositoryBaseDir = new File(new File(storageBasedirPath), repositoryId); if (repositoryBaseDir.exists()) { FileUtils.deleteDirectory(repositoryBaseDir); logger.debug("Removed directory structure for repository '" + repositoryBaseDir.getAbsolutePath() + File.separatorChar + repositoryId + "'."); } else { throw new IOException("Failed to delete non-existing repository " + repositoryBaseDir.getAbsolutePath() + "."); } } public Configuration getConfiguration() { return configurationManagementService.getConfiguration(); } }