From 0a3c2ef7ef133dfa9d66879292d9b8b31364c6d6 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 15 Jan 2012 14:55:08 +0100 Subject: [PATCH] improve import api --- .../scm/repository/AbstactImportHandler.java | 24 +++++++++++++++---- .../sonia/scm/repository/ImportHandler.java | 6 ++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstactImportHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstactImportHandler.java index a4d00138b7..b9aef60e64 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstactImportHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstactImportHandler.java @@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -83,13 +84,17 @@ public abstract class AbstactImportHandler implements ImportHandler * * @param manager * + * + * @return * @throws IOException * @throws RepositoryException */ @Override - public void importRepositories(RepositoryManager manager) + public List importRepositories(RepositoryManager manager) throws IOException, RepositoryException { + List imported = new ArrayList(); + if (logger.isTraceEnabled()) { logger.trace("search for repositories to import"); @@ -110,13 +115,18 @@ public abstract class AbstactImportHandler implements ImportHandler if (repository == null) { - importRepository(manager, repositoryName); + if (importRepository(manager, repositoryName)) + { + imported.add(repositoryName); + } } else if (logger.isDebugEnabled()) { logger.debug("repository {} is allready managed", repositoryName); } } + + return imported; } /** @@ -151,13 +161,16 @@ public abstract class AbstactImportHandler implements ImportHandler * @param manager * @param repositoryName * + * + * @return * @throws IOException * @throws RepositoryException */ - private void importRepository(RepositoryManager manager, - String repositoryName) + private boolean importRepository(RepositoryManager manager, + String repositoryName) throws IOException, RepositoryException { + boolean result = false; Repository repository = createRepository(getRepositoryDirectory(repositoryName), repositoryName); @@ -170,11 +183,14 @@ public abstract class AbstactImportHandler implements ImportHandler } manager.importRepository(repository); + result = true; } else if (logger.isWarnEnabled()) { logger.warn("could not create repository object for {}", repositoryName); } + + return result; } //~--- get methods ---------------------------------------------------------- diff --git a/scm-core/src/main/java/sonia/scm/repository/ImportHandler.java b/scm-core/src/main/java/sonia/scm/repository/ImportHandler.java index aba490ca11..8ed81af6b5 100644 --- a/scm-core/src/main/java/sonia/scm/repository/ImportHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/ImportHandler.java @@ -35,6 +35,8 @@ package sonia.scm.repository; import java.io.IOException; +import java.util.List; + /** * Searches and import existing repositories. * @@ -50,9 +52,11 @@ public interface ImportHandler * * @param manager The global {@link RepositoryManager} * + * + * @return a {@link List} names of imported repositories * @throws IOException * @throws RepositoryException */ - public void importRepositories(RepositoryManager manager) + public List importRepositories(RepositoryManager manager) throws IOException, RepositoryException; }