Commits

Stanisław Pitucha  committed 8f207d0 Merge

merge default

  • Participants
  • Parent commits e5fb315, 682c3d2

Comments (0)

Files changed (53)

 c1d88ccebd1747e65ed8946f7272ae8cd1403f68 1.0 M4
 f5939f58f778f8eb78dd7eb418429b8a6c11e88b 1.0 M5
 7ee65d543c6b4f33c6c98b6e892eb91ce55d7d07 1.0 M6
+ae344df2ac88e2d3ddc76f0f4eb2b823d12b935f 1.0 M7

File maven/pom.xml

   <parent>
     <groupId>sonia.scm</groupId>
     <artifactId>scm</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.maven</groupId>
   <artifactId>scm-maven-plugins</artifactId>
   <packaging>pom</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-maven-plugins</name>
 
   <modules>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
   </dependencies>

File maven/scm-plugin-archetype/pom.xml

   <parent>
     <artifactId>scm-maven-plugins</artifactId>
     <groupId>sonia.scm.maven</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.maven</groupId>
   <artifactId>scm-plugin-archetype</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-plugin-archetype</name>
 
 </project>

File maven/scm-plugin-archetype/src/main/resources/archetype-resources/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>${groupId}</groupId>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-test</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
 

File plugins/pom.xml

   <parent>
     <groupId>sonia.scm</groupId>
     <artifactId>scm</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-plugins</artifactId>
   <packaging>pom</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-plugins</name>
 
   <modules>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
   </dependencies>

File plugins/scm-activedirectory-auth-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-activedirectory-auth-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-activedirectory-auth-plugin</name>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
   <description>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
     
     <dependency>

File plugins/scm-auth-ldap-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-auth-ldap-plugin</artifactId>
   <packaging>jar</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>${project.artifactId}</name>
   <description>plugin description</description>
 
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-test</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
 

File plugins/scm-bzr-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-bzr-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-bzr-plugin</name>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
   <description>Plugin for the version control system Bazaar</description>

File plugins/scm-bzr-plugin/src/main/java/sonia/scm/repository/BzrRepositoryHandler.java

 
 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;
    *
    *
    * @param storeFactory
+   * @param fileSystem
    * @param securityContextProvider
    */
   @Inject
   public BzrRepositoryHandler(
-          StoreFactory storeFactory,
+          StoreFactory storeFactory, FileSystem fileSystem,
           Provider<WebSecurityContext> securityContextProvider)
   {
-    super(storeFactory);
+    super(storeFactory, fileSystem);
     this.securityContextProvider = securityContextProvider;
   }
 

File plugins/scm-git-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-git-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-git-plugin</name>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
   <description>Plugin for the version control system Git</description>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-test</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
 

File plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitRepositoryHandler.java

 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;
 
    *
    *
    * @param storeFactory
+   * @param fileSystem
    */
   @Inject
-  public GitRepositoryHandler(StoreFactory storeFactory)
+  public GitRepositoryHandler(StoreFactory storeFactory, FileSystem fileSystem)
   {
-    super(storeFactory);
+    super(storeFactory, fileSystem);
   }
 
   //~--- get methods ----------------------------------------------------------

File plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java

 
 //~--- non-JDK imports --------------------------------------------------------
 
+import sonia.scm.io.DefaultFileSystem;
 import sonia.scm.store.StoreFactory;
 
 import static org.junit.Assert.*;
   protected RepositoryHandler createRepositoryHandler(StoreFactory factory,
           File directory)
   {
-    GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory);
+    GitRepositoryHandler repositoryHandler = new GitRepositoryHandler(factory,
+                                               new DefaultFileSystem());
 
     repositoryHandler.init(contextProvider);
 

File plugins/scm-graph-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-graph-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-graph-plugin</name>
   <description>Creates an Google Guice injection graph</description>
   <url>https://bitbucket.org/sdorra/scm-manager</url>

File plugins/scm-hg-plugin/pom.xml

   <parent>
     <groupId>sonia.scm.plugins</groupId>
     <artifactId>scm-plugins</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-hg-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-hg-plugin</name>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
   <description>Plugin for the version control system Mercurial</description>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-test</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
 

File plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java

 
 import java.io.File;
 import java.io.IOException;
+import sonia.scm.io.FileSystem;
 
 /**
  *
    * @param storeFactory
    */
   @Inject
-  public HgRepositoryHandler(StoreFactory storeFactory)
+  public HgRepositoryHandler(StoreFactory storeFactory, FileSystem fileSystem)
   {
-    super(storeFactory);
+    super(storeFactory, fileSystem);
   }
 
   //~--- methods --------------------------------------------------------------

File plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java

 
 //~--- non-JDK imports --------------------------------------------------------
 
+import sonia.scm.io.DefaultFileSystem;
 import sonia.scm.store.StoreFactory;
 import sonia.scm.util.Util;
 
   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);

File plugins/scm-pam-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-pam-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-pam-plugin</name>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
   <description>Using pam as an authentication handler.</description>

File plugins/scm-svn-plugin/pom.xml

   <parent>
     <artifactId>scm-plugins</artifactId>
     <groupId>sonia.scm.plugins</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.plugins</groupId>
   <artifactId>scm-svn-plugin</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-svn-plugin</name>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
   <description>Plugin for the version control system Subversion</description>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-test</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
 

File plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnRepositoryHandler.java

 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;
 
    *
    *
    * @param storeFactory
+   * @param fileSystem
    */
   @Inject
-  public SvnRepositoryHandler(StoreFactory storeFactory)
+  public SvnRepositoryHandler(StoreFactory storeFactory, FileSystem fileSystem)
   {
-    super(storeFactory);
+    super(storeFactory, fileSystem);
   }
 
   //~--- get methods ----------------------------------------------------------

File plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java

 
 //~--- non-JDK imports --------------------------------------------------------
 
+import sonia.scm.io.DefaultFileSystem;
 import sonia.scm.store.StoreFactory;
 
 import static org.junit.Assert.*;
   protected RepositoryHandler createRepositoryHandler(StoreFactory factory,
           File directory)
   {
-    SvnRepositoryHandler handler = new SvnRepositoryHandler(factory);
+    SvnRepositoryHandler handler = new SvnRepositoryHandler(factory,
+                                     new DefaultFileSystem());
 
     handler.init(contextProvider);
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm</artifactId>
   <packaging>pom</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <description>
     The easiest way to share your Git, Mercurial
     and Subversion repositories over http.

File samples/pom.xml

   <parent>
     <groupId>sonia.scm</groupId>
     <artifactId>scm</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.samples</groupId>
   <artifactId>scm-samples</artifactId>
   <packaging>pom</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-samples</name>
 
   <modules>

File samples/scm-sample-auth/pom.xml

   <parent>
     <artifactId>scm-samples</artifactId>
     <groupId>sonia.scm.samples</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.sample</groupId>
   <artifactId>scm-sample-auth</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-sample-auth</name>
   <description>Sample Authentication Plugin</description>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
   </dependencies>

File samples/scm-sample-hello/pom.xml

   <parent>
     <artifactId>scm-samples</artifactId>
     <groupId>sonia.scm.samples</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.sample</groupId>
   <artifactId>scm-sample-hello</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-sample-hello</name>
   <description>A simple hello world plugin</description>
   <url>https://bitbucket.org/sdorra/scm-manager</url>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
   </dependencies>

File scm-core/pom.xml

   <parent>
     <artifactId>scm</artifactId>
     <groupId>sonia.scm</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm-core</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-core</name>
 
   <dependencies>

File scm-core/src/main/java/sonia/scm/io/DefaultFileSystem.java

+/**
+ * Copyright (c) 2010, Sebastian Sdorra
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 3. Neither the name of SCM-Manager; nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * http://bitbucket.org/sdorra/scm-manager
+ *
+ */
+
+
+
+package sonia.scm.io;
+
+//~--- non-JDK imports --------------------------------------------------------
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import sonia.scm.util.IOUtil;
+
+//~--- JDK imports ------------------------------------------------------------
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ *
+ * @author Sebastian Sdorra
+ */
+public class DefaultFileSystem implements FileSystem
+{
+
+  /** the logger for DefaultFileSystem */
+  private static final Logger logger =
+    LoggerFactory.getLogger(DefaultFileSystem.class);
+
+  //~--- methods --------------------------------------------------------------
+
+  /**
+   * Method description
+   *
+   *
+   * @param directory
+   *
+   * @throws IOException
+   */
+  @Override
+  public void create(File directory) throws IOException
+  {
+    if (logger.isInfoEnabled())
+    {
+      logger.info("create directory {}", directory.getPath());
+    }
+
+    IOUtil.mkdirs(directory);
+  }
+
+  /**
+   * Method description
+   *
+   *
+   * @param directory
+   *
+   * @throws IOException
+   */
+  @Override
+  public void destroy(File directory) throws IOException
+  {
+    if (logger.isInfoEnabled())
+    {
+      logger.info("destroy directory {}", directory.getPath());
+    }
+
+    IOUtil.delete(directory);
+  }
+}

File scm-core/src/main/java/sonia/scm/io/FileSystem.java

+/**
+ * Copyright (c) 2010, Sebastian Sdorra
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 3. Neither the name of SCM-Manager; nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * http://bitbucket.org/sdorra/scm-manager
+ *
+ */
+
+
+
+package sonia.scm.io;
+
+//~--- non-JDK imports --------------------------------------------------------
+
+import sonia.scm.plugin.ExtensionPoint;
+
+//~--- JDK imports ------------------------------------------------------------
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ *
+ * @author Sebastian Sdorra
+ */
+@ExtensionPoint
+public interface FileSystem
+{
+
+  /**
+   * Method description
+   *
+   *
+   *
+   * @param directory
+   *
+   * @throws IOException
+   */
+  public void create(File directory) throws IOException;
+
+  /**
+   * Method description
+   *
+   *
+   *
+   * @param directory
+   *
+   * @throws IOException
+   */
+  public void destroy(File directory) throws IOException;
+}

File scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java

    * Method description
    *
    *
+   * @param obj
+   *
+   * @return
+   */
+  @Override
+  public boolean equals(Object obj)
+  {
+    if (obj == null)
+    {
+      return false;
+    }
+
+    if (getClass() != obj.getClass())
+    {
+      return false;
+    }
+
+    final PluginVersion other = (PluginVersion) obj;
+
+    if (this.maintenance != other.maintenance)
+    {
+      return false;
+    }
+
+    if (this.major != other.major)
+    {
+      return false;
+    }
+
+    if (this.minor != other.minor)
+    {
+      return false;
+    }
+
+    if ((this.parsedVersion == null)
+        ? (other.parsedVersion != null)
+        : !this.parsedVersion.equals(other.parsedVersion))
+    {
+      return false;
+    }
+
+    if (this.snapshot != other.snapshot)
+    {
+      return false;
+    }
+
+    if (this.type != other.type)
+    {
+      return false;
+    }
+
+    if (this.typeVersion != other.typeVersion)
+    {
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Method description
+   *
+   *
+   * @return
+   */
+  @Override
+  public int hashCode()
+  {
+    int hash = 5;
+
+    hash = 61 * hash + this.maintenance;
+    hash = 61 * hash + this.major;
+    hash = 61 * hash + this.minor;
+    hash = 61 * hash + ((this.parsedVersion != null)
+                        ? this.parsedVersion.hashCode()
+                        : 0);
+    hash = 61 * hash + (this.snapshot
+                        ? 1
+                        : 0);
+    hash = 61 * hash + ((this.type != null)
+                        ? this.type.hashCode()
+                        : 0);
+    hash = 61 * hash + this.typeVersion;
+
+    return hash;
+  }
+
+  /**
+   * Method description
+   *
+   *
    * @return
    */
   @Override

File scm-core/src/main/java/sonia/scm/repository/AbstractSimpleRepositoryHandler.java

 import org.slf4j.LoggerFactory;
 
 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;
 
    *
    *
    * @param storeFactory
+   * @param fileSystem
    */
-  public AbstractSimpleRepositoryHandler(StoreFactory storeFactory)
+  public AbstractSimpleRepositoryHandler(StoreFactory storeFactory,
+          FileSystem fileSystem)
   {
     super(storeFactory);
+    this.fileSystem = fileSystem;
   }
 
   //~--- methods --------------------------------------------------------------
       throw new RepositoryAllreadyExistExeption();
     }
 
+    fileSystem.create(directory);
     create(repository, directory);
     postCreate(repository, directory);
   }
 
     if (directory.exists())
     {
-      IOUtil.delete(directory);
+      fileSystem.destroy(directory);
     }
     else if (logger.isWarnEnabled())
     {
   /**
    * Method description
    *
-   *
-   * @param context
-   */
-  @Override
-  public void init(SCMContextProvider context)
-  {
-    super.init(context);
-  }
-
-  /**
-   * Method description
-   *
    */
   @Override
   public void loadConfig()
    */
   protected void postCreate(Repository repository, File directory)
           throws IOException, RepositoryException {}
+
+  //~--- fields ---------------------------------------------------------------
+
+  /** Field description */
+  private FileSystem fileSystem;
 }

File scm-core/src/main/java/sonia/scm/repository/PermissionUtil.java

     {
       String name = p.getName();
 
-      if ((name != null) && (p.getType().getValue() >= pt.getValue()))
+      if (((name != null) && (p.getType().getValue() >= pt.getValue()))
+          && (name.equals(username)
+              || (p.isGroupPermission() && groups.contains(p.getName()))))
       {
-        if (name.equals(username)
-            || (p.isGroupPermission() && groups.contains(p.getName())))
-        {
-          result = true;
+        result = true;
 
-          break;
-        }
+        break;
       }
     }
 

File scm-core/src/main/java/sonia/scm/resources/ResourceHandlerComparator.java

 
 //~--- JDK imports ------------------------------------------------------------
 
+import java.io.Serializable;
+
 import java.util.Comparator;
 
 /**
  *
  * @author Sebastian Sdorra
  */
-public class ResourceHandlerComparator implements Comparator<ResourceHandler>
+public class ResourceHandlerComparator
+        implements Comparator<ResourceHandler>, Serializable
 {
 
+  /** Field description */
+  private static final long serialVersionUID = -1760229246326556762L;
+
+  //~--- methods --------------------------------------------------------------
+
   /**
    * Method description
    *

File scm-core/src/main/java/sonia/scm/util/IOUtil.java

 {
 
   /** Field description */
-  public static final String DEFAULT_CHECKPARAMETER = "--version";
+  private static final String DEFAULT_CHECKPARAMETER = "--version";
 
   /** Field description */
-  public static final String[] DEFAULT_PATH = new String[]
+  private static final String[] DEFAULT_PATH = new String[]
   {
 
     // default path
         cmdPath = cmd;
       }
     }
-    catch (IOException ex) {}
+    catch (IOException ex)
+    {
+      if (logger.isTraceEnabled())
+      {
+        logger.trace("could not execute command", ex);
+      }
+    }
 
     if (cmdPath == null)
     {

File scm-core/src/main/java/sonia/scm/web/cgi/CGIRunner.java

 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.OutputStream;
-import java.io.OutputStreamWriter;
 
 import java.util.Enumeration;
 

File scm-server-api/pom.xml

   <parent>
     <artifactId>scm</artifactId>
     <groupId>sonia.scm</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm-server-api</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-server-api</name>
 
 </project>

File scm-server-jetty/pom.xml

   <parent>
     <artifactId>scm</artifactId>
     <groupId>sonia.scm</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm-server-jetty</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-server-jetty</name>
 
   <dependencies>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-server-api</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
     <dependency>

File scm-server/pom.xml

   <parent>
     <artifactId>scm</artifactId>
     <groupId>sonia.scm</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm-server</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-server</name>
   <packaging>pom</packaging>
 
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-server-api</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-server-jetty</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
   </dependencies>

File scm-test/pom.xml

   <parent>
     <artifactId>scm</artifactId>
     <groupId>sonia.scm</groupId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm-test</artifactId>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-test</name>
   
   <dependencies>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
     
     <dependency>

File scm-test/src/main/java/sonia/scm/repository/DummyRepositoryHandler.java

 //~--- non-JDK imports --------------------------------------------------------
 
 import sonia.scm.Type;
+import sonia.scm.io.DefaultFileSystem;
 import sonia.scm.store.StoreFactory;
 
 //~--- JDK imports ------------------------------------------------------------
    */
   public DummyRepositoryHandler(StoreFactory storeFactory)
   {
-    super(storeFactory);
+    super(storeFactory, new DefaultFileSystem());
   }
 
   //~--- get methods ----------------------------------------------------------

File scm-webapp/pom.xml

   <parent>
     <groupId>sonia.scm</groupId>
     <artifactId>scm</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm</groupId>
   <artifactId>scm-webapp</artifactId>
   <packaging>war</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>scm-webapp</name>
 
   <dependencies>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-core</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>sonia.scm.plugins</groupId>
       <artifactId>scm-hg-plugin</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>sonia.scm.plugins</groupId>
       <artifactId>scm-svn-plugin</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>sonia.scm.plugins</groupId>
       <artifactId>scm-git-plugin</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
     </dependency>
 
     <dependency>
     <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
-      <version>0.9.27</version>
+      <version>0.9.28</version>
     </dependency>
 
     <dependency>
     <dependency>
       <groupId>sonia.scm</groupId>
       <artifactId>scm-test</artifactId>
-      <version>1.0-M7-SNAPSHOT</version>
+      <version>1.0-RC1-SNAPSHOT</version>
       <scope>test</scope>
       <exclusions>
         <exclusion>
         <dependency>
           <groupId>sonia.scm.plugins</groupId>
           <artifactId>scm-graph-plugin</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
 
         <dependency>
           <groupId>sonia.scm.sample</groupId>
           <artifactId>scm-sample-auth</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
 
         <dependency>
           <groupId>sonia.scm.sample</groupId>
           <artifactId>scm-sample-hello</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
         
         <dependency>
           <groupId>sonia.scm.plugins</groupId>
           <artifactId>scm-activedirectory-auth-plugin</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
 
         <dependency>
           <groupId>sonia.scm.plugins</groupId>
           <artifactId>scm-pam-plugin</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
 
         <dependency>
           <groupId>sonia.scm.plugins</groupId>
           <artifactId>scm-bzr-plugin</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
 
         <dependency>
           <groupId>sonia.scm.plugins</groupId>
           <artifactId>scm-auth-ldap-plugin</artifactId>
-          <version>1.0-M7-SNAPSHOT</version>
+          <version>1.0-RC1-SNAPSHOT</version>
         </dependency>
 
       </dependencies>

File scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java

 import org.slf4j.LoggerFactory;
 
 import sonia.scm.group.GroupListener;
+import sonia.scm.io.FileSystem;
 import sonia.scm.plugin.ext.Extension;
 import sonia.scm.plugin.ext.ExtensionProcessor;
 import sonia.scm.repository.RepositoryHandler;
 
           resourceHandler.addBinding().to(extensionClass);
         }
+        else if (FileSystem.class.isAssignableFrom(extensionClass))
+        {
+          if (logger.isInfoEnabled())
+          {
+            logger.info("bind FileSystem {}", extensionClass.getName());
+          }
+
+          fileSystemClass = extensionClass;
+        }
         else
         {
           if (logger.isInfoEnabled())
           binder.bind(extensionClass);
         }
       }
-      catch (Exception ex)
+      catch (IllegalAccessException ex)
+      {
+        logger.error(ex.getMessage(), ex);
+      }
+      catch (InstantiationException ex)
       {
         logger.error(ex.getMessage(), ex);
       }
    *
    * @return
    */
+  public Class<? extends FileSystem> getFileSystemClass()
+  {
+    return fileSystemClass;
+  }
+
+  /**
+   * Method description
+   *
+   *
+   * @return
+   */
   public Set<GroupListener> getGroupListeners()
   {
     return groupListeners;
   private Set<Class<?>> extensions;
 
   /** Field description */
+  private Class<? extends FileSystem> fileSystemClass;
+
+  /** Field description */
   private Set<Module> moduleSet;
 
   /** Field description */

File scm-webapp/src/main/java/sonia/scm/ScmServletModule.java

 import sonia.scm.filter.SecurityFilter;
 import sonia.scm.group.GroupManager;
 import sonia.scm.group.xml.XmlGroupManager;
+import sonia.scm.io.DefaultFileSystem;
+import sonia.scm.io.FileSystem;
 import sonia.scm.plugin.DefaultPluginManager;
 import sonia.scm.plugin.Plugin;
 import sonia.scm.plugin.PluginLoader;
     bind(EncryptionHandler.class).to(MessageDigestEncryptionHandler.class);
     bindExtProcessor.bindExtensions(binder());
 
+    Class<? extends FileSystem> fileSystem =
+      bindExtProcessor.getFileSystemClass();
+
+    if (fileSystem == null)
+    {
+      fileSystem = DefaultFileSystem.class;
+    }
+
+    bind(FileSystem.class).to(fileSystem);
+
     // bind security stuff
     bind(AuthenticationManager.class).to(ChainAuthenticatonManager.class);
     bind(SecurityContext.class).to(BasicSecurityContext.class);

File scm-webapp/src/main/java/sonia/scm/api/rest/resources/AuthenticationResource.java

 
 import sonia.scm.SCMContext;
 import sonia.scm.ScmState;
-import sonia.scm.Type;
 import sonia.scm.repository.RepositoryManager;
 import sonia.scm.user.User;
 import sonia.scm.web.security.WebSecurityContext;

File scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java

 import sonia.scm.plugin.DefaultPluginManager;
 import sonia.scm.plugin.OverviewPluginFilter;
 import sonia.scm.plugin.PluginInformation;
-import sonia.scm.util.Util;
 
 //~--- JDK imports ------------------------------------------------------------
 

File scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java

 //~--- non-JDK imports --------------------------------------------------------
 
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.inject.Singleton;
 
 import sonia.scm.config.ScmConfiguration;
+import sonia.scm.repository.Permission;
+import sonia.scm.repository.PermissionType;
+import sonia.scm.repository.PermissionUtil;
 import sonia.scm.repository.Repository;
 import sonia.scm.repository.RepositoryException;
 import sonia.scm.repository.RepositoryHandler;
 import sonia.scm.repository.RepositoryManager;
+import sonia.scm.web.security.WebSecurityContext;
 
 //~--- JDK imports ------------------------------------------------------------
 
 import java.io.IOException;
 
+import java.util.ArrayList;
 import java.util.Collection;
 
 import javax.servlet.http.HttpServletRequest;
 
 import javax.ws.rs.Path;
-import javax.ws.rs.core.Context;
 
 /**
  *
    *
    * @param configuration
    * @param repositoryManager
+   * @param securityContextProvider
+   * @param requestProvider
    */
   @Inject
-  public RepositoryResource(ScmConfiguration configuration,
-                            RepositoryManager repositoryManager)
+  public RepositoryResource(
+          ScmConfiguration configuration, RepositoryManager repositoryManager,
+          Provider<WebSecurityContext> securityContextProvider,
+          Provider<HttpServletRequest> requestProvider)
   {
     this.configuration = configuration;
     this.repositoryManager = repositoryManager;
+    this.securityContextProvider = securityContextProvider;
+    this.requestProvider = requestProvider;
   }
 
   //~--- methods --------------------------------------------------------------
     for (Repository repository : repositories)
     {
       appendUrl(repository);
+      prepareRepository(repository);
     }
 
     return repositories;
     Repository repository = repositoryManager.get(id);
 
     appendUrl(repository);
+    prepareRepository(repository);
 
     return repository;
   }
 
     if (handler != null)
     {
+      HttpServletRequest request = requestProvider.get();
       StringBuilder url = new StringBuilder(request.getScheme());
 
       url.append("://").append(configuration.getServername());
     }
   }
 
+  /**
+   * Method description
+   *
+   *
+   * @param repository
+   */
+  private void prepareRepository(Repository repository)
+  {
+    if (isOwner(repository))
+    {
+      if (repository.getPermissions() == null)
+      {
+        repository.setPermissions(new ArrayList<Permission>());
+      }
+    }
+    else
+    {
+      repository.setPermissions(null);
+    }
+  }
+
+  //~--- get methods ----------------------------------------------------------
+
+  /**
+   * Method description
+   *
+   *
+   * @param repository
+   *
+   * @return
+   */
+  private boolean isOwner(Repository repository)
+  {
+    return PermissionUtil.hasPermission(repository, securityContextProvider,
+            PermissionType.OWNER);
+  }
+
   //~--- fields ---------------------------------------------------------------
 
   /** Field description */
   /** Field description */
   private RepositoryManager repositoryManager;
 
-  /** TODO path request direct to method */
-  @Context
-  private HttpServletRequest request;
+  /** Field description */
+  private Provider<HttpServletRequest> requestProvider;
+
+  /** Field description */
+  private Provider<WebSecurityContext> securityContextProvider;
 }

File scm-webapp/src/main/java/sonia/scm/filter/GZipResponseWrapper.java

   @Override
   public void flushBuffer() throws IOException
   {
-    stream.flush();
+    if (stream != null)
+    {
+      stream.flush();
+    }
   }
 
   //~--- get methods ----------------------------------------------------------

File scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java

 
 import java.util.Collection;
 import java.util.LinkedList;
-import java.util.Set;
 
 /**
  *

File scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java

     List<Dependency> dependencies = getInstalledDependencies(null);
 
     collectDependencies(dependency, dependencies);
-
-    
   }
 
   /**
       {
         String id = plugin.getId();
 
-        if ((skipId == null) ||!id.equals(skipId))
+        if (Util.isNotEmpty(id) && ((skipId == null) ||!id.equals(skipId)))
         {
-          if (Util.isNotEmpty(id))
-          {
-            dependencies.add(new Dependency(new DefaultArtifact(id),
-                                            PLUGIN_SCOPE));
-          }
+          dependencies.add(new Dependency(new DefaultArtifact(id),
+                                          PLUGIN_SCOPE));
         }
       }
     }

File scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java

 {
 
   /** Field description */
-  public static OverviewPluginFilter INSTANCE = new OverviewPluginFilter();
+  public static final OverviewPluginFilter INSTANCE =
+    new OverviewPluginFilter();
 
   //~--- methods --------------------------------------------------------------
 

File scm-webapp/src/main/java/sonia/scm/repository/xml/XmlRepositoryManager.java

 
 import sonia.scm.ConfigurationException;
 import sonia.scm.HandlerEvent;
-import sonia.scm.SCMContext;
 import sonia.scm.SCMContextProvider;
 import sonia.scm.Type;
 import sonia.scm.repository.AbstractRepositoryManager;
-import sonia.scm.repository.Permission;
 import sonia.scm.repository.PermissionType;
 import sonia.scm.repository.PermissionUtil;
 import sonia.scm.repository.Repository;
 
 import java.io.IOException;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
    *
    *
    *
+   *
+   * @param contextProvider
    * @param securityContextProvider
    * @param storeFactory
    * @param handlerSet
    */
   @Inject
   public XmlRepositoryManager(
+          SCMContextProvider contextProvider,
           Provider<WebSecurityContext> securityContextProvider,
           StoreFactory storeFactory, Set<RepositoryHandler> handlerSet)
   {
 
     for (RepositoryHandler handler : handlerSet)
     {
-      addHandler(handler);
+      addHandler(contextProvider, handler);
     }
   }
 
     {
       assertIsReader(repository);
       repository = repository.clone();
-      prepareRepository(repository);
     }
 
     return repository;
       if (isReader(repository))
       {
         repository = repository.clone();
-        prepareRepository(repository);
       }
       else
       {
       {
         Repository r = repository.clone();
 
-        prepareRepository(r);
         repositories.add(r);
       }
     }
    * Method description
    *
    *
+   *
+   * @param contextProvider
    * @param handler
    */
-  private void addHandler(RepositoryHandler handler)
+  private void addHandler(SCMContextProvider contextProvider,
+                          RepositoryHandler handler)
   {
     AssertUtil.assertIsNotNull(handler);
 
     }
 
     handlerMap.put(type.getName(), handler);
-    handler.init(SCMContext.getContext());
+    handler.init(contextProvider);
     types.add(type);
   }
 
   /**
    * Method description
    *
-   *
-   * @param repository
-   */
-  private void prepareRepository(Repository repository)
-  {
-    if (isOwner(repository))
-    {
-      if (repository.getPermissions() == null)
-      {
-        repository.setPermissions(new ArrayList<Permission>());
-      }
-    }
-    else
-    {
-      repository.setPermissions(null);
-    }
-  }
-
-  /**
-   * Method description
-   *
    */
   private void storeDB()
   {
    *
    * @return
    */
-  private boolean isOwner(Repository repository)
-  {
-    return PermissionUtil.hasPermission(repository, securityContextProvider,
-            PermissionType.OWNER);
-  }
-
-  /**
-   * Method description
-   *
-   *
-   * @param repository
-   *
-   * @return
-   */
   private boolean isReader(Repository repository)
   {
     return PermissionUtil.hasPermission(repository, securityContextProvider,

File scm-webapp/src/test/java/sonia/scm/repository/XmlRepositoryManagerTest.java

 //~--- 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 ------------------------------------------------------------
 
     factory.init(contextProvider);
     handlerSet.add(new DummyRepositoryHandler(factory));
 
-    return new XmlRepositoryManager(MockUtil.getAdminSecurityContextProvider(),
+    return new XmlRepositoryManager(contextProvider,
+                                    MockUtil.getAdminSecurityContextProvider(),
                                     factory, handlerSet);
   }
 }

File third-party/pom.xml

   <parent>
     <groupId>sonia.scm</groupId>
     <artifactId>scm</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.third-party</groupId>
   <artifactId>sonia.scm.third-party</artifactId>
   <packaging>pom</packaging>
-  <version>1.0-M7-SNAPSHOT</version>
+  <version>1.0-RC1-SNAPSHOT</version>
   <name>third-party</name>
 
   <modules>

File third-party/shared-libs/pom.xml

   <parent>
     <groupId>sonia.scm.third-party</groupId>
     <artifactId>sonia.scm.third-party</artifactId>
-    <version>1.0-M7-SNAPSHOT</version>
+    <version>1.0-RC1-SNAPSHOT</version>
   </parent>
 
   <groupId>sonia.scm.third-party</groupId>
   <artifactId>shared-libs</artifactId>
   <packaging>pom</packaging>
-  <version>1.0-M7-SNAPSHOT</version>