Index: docs/reference/src/main/docbook/en-US/content/connectors/subversion.xml =================================================================== --- docs/reference/src/main/docbook/en-US/content/connectors/subversion.xml (revision 1804) +++ docs/reference/src/main/docbook/en-US/content/connectors/subversion.xml (working copy) @@ -119,7 +119,7 @@ config.repositorySource("SVN Store") .setDescription("The ModeShape SVN repository (anonymous access)") .setProperty("repositoryRootUrl", "http://anonsvn.jboss.org/repos/modeshape"); .setProperty("defaultWorkspaceName", "trunk"); - .setProperty("predefinedWorkspaceNames", new String[] {"trunk }); + .setProperty("predefinedWorkspaceNames", new String[] {"trunk" }); ]]> Another way to configure the Subversion connector is to create &JcrConfiguration; instance and load an XML configuration file that contains a repository source that Index: docs/reference/src/main/docbook/en-US/custom.dtd =================================================================== --- docs/reference/src/main/docbook/en-US/custom.dtd (revision 1804) +++ docs/reference/src/main/docbook/en-US/custom.dtd (working copy) @@ -230,7 +230,7 @@ JpaSource"> JdbcMetadataSource"> MetadataCollector"> -SVNRepositorySource"> +SvnRepositorySource"> JBossCacheRepository"> JBossCacheSource"> InfinispanSource"> Index: extensions/modeshape-connector-svn/src/main/java/org/modeshape/connector/svn/SvnRepository.java =================================================================== --- extensions/modeshape-connector-svn/src/main/java/org/modeshape/connector/svn/SvnRepository.java (revision 1804) +++ extensions/modeshape-connector-svn/src/main/java/org/modeshape/connector/svn/SvnRepository.java (working copy) @@ -841,7 +841,11 @@ public class SvnRepository extends WritablePathRepository { protected SVNRepository getWorkspaceDirectory( String workspaceName ) { if (workspaceName == null) workspaceName = source.getDefaultWorkspaceName(); - workspaceName = source.getRepositoryRootUrl() + workspaceName; + if (source.getRepositoryRootUrl().endsWith("/")) { + workspaceName = source.getRepositoryRootUrl() + workspaceName; + } else { + workspaceName = source.getRepositoryRootUrl() + "/" + workspaceName; + } SVNRepository repository = null; SVNRepository repos = SvnRepositoryUtil.createRepository(workspaceName, source.getUsername(), source.getPassword()); Index: extensions/modeshape-connector-svn/src/test/java/org/modeshape/connector/svn/SvnConnectorTestUtil.java =================================================================== --- extensions/modeshape-connector-svn/src/test/java/org/modeshape/connector/svn/SvnConnectorTestUtil.java (revision 1804) +++ extensions/modeshape-connector-svn/src/test/java/org/modeshape/connector/svn/SvnConnectorTestUtil.java (working copy) @@ -119,6 +119,8 @@ public class SvnConnectorTestUtil { // for SVN (over svn and svn+ssh) SVNRepositoryFactoryImpl.setup(); + if (!url.endsWith("/")) url = url + "/"; + // The factory knows how to create a DAVRepository SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url)); ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(username, password); @@ -146,7 +148,6 @@ public class SvnConnectorTestUtil { SVNURL encodedUrl = SVNURL.parseURIEncoded(url); url = encodedUrl.toDecodedString(); - if (!url.endsWith("/")) url = url + "/"; return url; } Index: extensions/modeshape-connector-svn/src/test/java/org/modeshape/connector/svn/SvnRepositoryConnectorWritableTest.java =================================================================== --- extensions/modeshape-connector-svn/src/test/java/org/modeshape/connector/svn/SvnRepositoryConnectorWritableTest.java (revision 1804) +++ extensions/modeshape-connector-svn/src/test/java/org/modeshape/connector/svn/SvnRepositoryConnectorWritableTest.java (working copy) @@ -27,16 +27,16 @@ import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsNull.notNullValue; import static org.junit.Assert.assertThat; import java.io.ByteArrayOutputStream; -import org.modeshape.graph.ModeShapeLexicon; +import org.junit.Test; import org.modeshape.graph.Graph; import org.modeshape.graph.JcrLexicon; import org.modeshape.graph.JcrMixLexicon; import org.modeshape.graph.JcrNtLexicon; +import org.modeshape.graph.ModeShapeLexicon; import org.modeshape.graph.connector.RepositorySource; import org.modeshape.graph.connector.RepositorySourceException; import org.modeshape.graph.connector.test.AbstractConnectorTest; import org.modeshape.graph.property.PathNotFoundException; -import org.junit.Test; import org.tmatesoft.svn.core.SVNNodeKind; import org.tmatesoft.svn.core.SVNProperties; import org.tmatesoft.svn.core.io.SVNRepository; @@ -73,7 +73,7 @@ public class SvnRepositoryConnectorWritableTest extends AbstractConnectorTest { source.setCreatingWorkspacesAllowed(Boolean.TRUE); source.setUpdatesAllowed(true); - remoteRepos = SvnConnectorTestUtil.createRepository(url + "trunk", "sp", ""); + remoteRepos = SvnConnectorTestUtil.createRepository(url + "/trunk", "sp", ""); return source; }