From 9a7481726a5e779eea464e321491588d0e7d2622 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 30 Jan 2011 14:36:43 +0100 Subject: [PATCH] use FileSystem api --- .../scm/repository/BzrRepositoryHandler.java | 6 ++++-- .../scm/repository/GitRepositoryHandler.java | 6 ++++-- .../repository/GitRepositoryHandlerTest.java | 4 +++- .../scm/repository/HgRepositoryHandler.java | 5 +++-- .../repository/HgRepositoryHandlerTest.java | 4 +++- .../scm/repository/SvnRepositoryHandler.java | 6 ++++-- .../repository/SvnRepositoryHandlerTest.java | 4 +++- .../java/sonia/scm/io/DefaultFileSystem.java | 19 +++++++++++++++++++ .../AbstractSimpleRepositoryHandler.java | 14 ++++++++++++-- .../repository/DummyRepositoryHandler.java | 3 ++- .../repository/xml/XmlRepositoryManager.java | 13 +++++++++---- .../repository/XmlRepositoryManagerTest.java | 5 +++-- 12 files changed, 69 insertions(+), 20 deletions(-) diff --git a/plugins/scm-bzr-plugin/src/main/java/sonia/scm/repository/BzrRepositoryHandler.java b/plugins/scm-bzr-plugin/src/main/java/sonia/scm/repository/BzrRepositoryHandler.java index 2a3bca6ce3..23c53a745c 100644 --- a/plugins/scm-bzr-plugin/src/main/java/sonia/scm/repository/BzrRepositoryHandler.java +++ b/plugins/scm-bzr-plugin/src/main/java/sonia/scm/repository/BzrRepositoryHandler.java @@ -41,6 +41,7 @@ import com.google.inject.Singleton; import sonia.scm.Type; import sonia.scm.io.ExtendedCommand; +import sonia.scm.io.FileSystem; import sonia.scm.plugin.ext.Extension; import sonia.scm.store.StoreFactory; import sonia.scm.util.SecurityUtil; @@ -79,14 +80,15 @@ public class BzrRepositoryHandler * * * @param storeFactory + * @param fileSystem * @param securityContextProvider */ @Inject public BzrRepositoryHandler( - StoreFactory storeFactory, + StoreFactory storeFactory, FileSystem fileSystem, Provider securityContextProvider) { - super(storeFactory); + super(storeFactory, fileSystem); this.securityContextProvider = securityContextProvider; } diff --git a/plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitRepositoryHandler.java b/plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitRepositoryHandler.java index 8a91f50b24..2a21f3b7de 100644 --- a/plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitRepositoryHandler.java +++ b/plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitRepositoryHandler.java @@ -41,6 +41,7 @@ import com.google.inject.Singleton; import org.eclipse.jgit.storage.file.FileRepositoryBuilder; import sonia.scm.Type; +import sonia.scm.io.FileSystem; import sonia.scm.plugin.ext.Extension; import sonia.scm.store.StoreFactory; @@ -75,11 +76,12 @@ public class GitRepositoryHandler * * * @param storeFactory + * @param fileSystem */ @Inject - public GitRepositoryHandler(StoreFactory storeFactory) + public GitRepositoryHandler(StoreFactory storeFactory, FileSystem fileSystem) { - super(storeFactory); + super(storeFactory, fileSystem); } //~--- get methods ---------------------------------------------------------- diff --git a/plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java b/plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java index 534ed94f07..eb9646ffe8 100644 --- a/plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java +++ b/plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java @@ -35,6 +35,7 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- +import sonia.scm.io.DefaultFileSystem; import sonia.scm.store.StoreFactory; import static org.junit.Assert.*; @@ -88,7 +89,8 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase protected RepositoryHandler createRepositoryHandler(StoreFactory factory, File directory) { - GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory); + GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory, + new DefaultFileSystem()); repositoryHandler.init(contextProvider); diff --git a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java index aebaabdaf7..a71278c9fc 100644 --- a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java +++ b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java @@ -57,6 +57,7 @@ import sonia.scm.web.HgWebConfigWriter; import java.io.File; import java.io.IOException; +import sonia.scm.io.FileSystem; /** * @@ -90,9 +91,9 @@ public class HgRepositoryHandler * @param storeFactory */ @Inject - public HgRepositoryHandler(StoreFactory storeFactory) + public HgRepositoryHandler(StoreFactory storeFactory, FileSystem fileSystem) { - super(storeFactory); + super(storeFactory, fileSystem); } //~--- methods -------------------------------------------------------------- diff --git a/plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java b/plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java index a233b30353..cb3ed09d74 100644 --- a/plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java +++ b/plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java @@ -35,6 +35,7 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- +import sonia.scm.io.DefaultFileSystem; import sonia.scm.store.StoreFactory; import sonia.scm.util.Util; @@ -86,7 +87,8 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase protected RepositoryHandler createRepositoryHandler(StoreFactory factory, File directory) { - HgRepositoryHandler handler = new HgRepositoryHandler(factory); + HgRepositoryHandler handler = new HgRepositoryHandler(factory, + new DefaultFileSystem()); handler.init(contextProvider); handler.getConfig().setRepositoryDirectory(directory); diff --git a/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java b/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java index 4afbce9bac..4198310eec 100644 --- a/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java +++ b/plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java @@ -42,6 +42,7 @@ import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.io.SVNRepositoryFactory; import sonia.scm.Type; +import sonia.scm.io.FileSystem; import sonia.scm.plugin.ext.Extension; import sonia.scm.store.StoreFactory; @@ -76,11 +77,12 @@ public class SvnRepositoryHandler * * * @param storeFactory + * @param fileSystem */ @Inject - public SvnRepositoryHandler(StoreFactory storeFactory) + public SvnRepositoryHandler(StoreFactory storeFactory, FileSystem fileSystem) { - super(storeFactory); + super(storeFactory, fileSystem); } //~--- get methods ---------------------------------------------------------- diff --git a/plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java b/plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java index 41dcbe403a..ab26da171f 100644 --- a/plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java +++ b/plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java @@ -35,6 +35,7 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- +import sonia.scm.io.DefaultFileSystem; import sonia.scm.store.StoreFactory; import static org.junit.Assert.*; @@ -83,7 +84,8 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase protected RepositoryHandler createRepositoryHandler(StoreFactory factory, File directory) { - SvnRepositoryHandler handler = new SvnRepositoryHandler(factory); + SvnRepositoryHandler handler = new SvnRepositoryHandler(factory, + new DefaultFileSystem()); handler.init(contextProvider); diff --git a/scm-core/src/main/java/sonia/scm/io/DefaultFileSystem.java b/scm-core/src/main/java/sonia/scm/io/DefaultFileSystem.java index 5904e92624..24f702b7d6 100644 --- a/scm-core/src/main/java/sonia/scm/io/DefaultFileSystem.java +++ b/scm-core/src/main/java/sonia/scm/io/DefaultFileSystem.java @@ -35,6 +35,9 @@ package sonia.scm.io; //~--- non-JDK imports -------------------------------------------------------- +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import sonia.scm.util.IOUtil; //~--- JDK imports ------------------------------------------------------------ @@ -49,6 +52,12 @@ import java.io.IOException; public class DefaultFileSystem implements FileSystem { + /** the logger for DefaultFileSystem */ + private static final Logger logger = + LoggerFactory.getLogger(DefaultFileSystem.class); + + //~--- methods -------------------------------------------------------------- + /** * Method description * @@ -60,6 +69,11 @@ public class DefaultFileSystem implements FileSystem @Override public void create(File directory) throws IOException { + if (logger.isInfoEnabled()) + { + logger.info("create directory {}", directory.getPath()); + } + IOUtil.mkdirs(directory); } @@ -74,6 +88,11 @@ public class DefaultFileSystem implements FileSystem @Override public void destroy(File directory) throws IOException { + if (logger.isInfoEnabled()) + { + logger.info("destroy directory {}", directory.getPath()); + } + IOUtil.delete(directory); } } diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java index 410d16ac33..80b2bdf4af 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java @@ -42,6 +42,7 @@ import sonia.scm.ConfigurationException; import sonia.scm.SCMContextProvider; import sonia.scm.io.CommandResult; import sonia.scm.io.ExtendedCommand; +import sonia.scm.io.FileSystem; import sonia.scm.store.StoreFactory; import sonia.scm.util.IOUtil; @@ -75,10 +76,13 @@ public abstract class AbstractSimpleRepositoryHandler securityContextProvider, StoreFactory storeFactory, Set handlerSet) { @@ -114,7 +116,7 @@ public class XmlRepositoryManager extends AbstractRepositoryManager for (RepositoryHandler handler : handlerSet) { - addHandler(handler); + addHandler(contextProvider, handler); } } @@ -423,9 +425,12 @@ public class XmlRepositoryManager extends AbstractRepositoryManager * Method description * * + * + * @param contextProvider * @param handler */ - private void addHandler(RepositoryHandler handler) + private void addHandler(SCMContextProvider contextProvider, + RepositoryHandler handler) { AssertUtil.assertIsNotNull(handler); @@ -446,7 +451,7 @@ public class XmlRepositoryManager extends AbstractRepositoryManager } handlerMap.put(type.getName(), handler); - handler.init(SCMContext.getContext()); + handler.init(contextProvider); types.add(type); } diff --git a/scm-webapp/src/test/java/sonia/scm/repository/XmlRepositoryManagerTest.java b/scm-webapp/src/test/java/sonia/scm/repository/XmlRepositoryManagerTest.java index 98046267fe..16ad325518 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/XmlRepositoryManagerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/XmlRepositoryManagerTest.java @@ -36,10 +36,10 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- import sonia.scm.Manager; -import sonia.scm.util.MockUtil; import sonia.scm.repository.xml.XmlRepositoryManager; import sonia.scm.store.JAXBStoreFactory; import sonia.scm.store.StoreFactory; +import sonia.scm.util.MockUtil; //~--- JDK imports ------------------------------------------------------------ @@ -68,7 +68,8 @@ public class XmlRepositoryManagerTest extends RepositoryManagerTestBase factory.init(contextProvider); handlerSet.add(new DummyRepositoryHandler(factory)); - return new XmlRepositoryManager(MockUtil.getAdminSecurityContextProvider(), + return new XmlRepositoryManager(contextProvider, + MockUtil.getAdminSecurityContextProvider(), factory, handlerSet); } }