[dna-commits] DNA SVN: r1534 - in trunk: extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn and 1 other directories.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Wed Jan 6 13:43:36 EST 2010


Author: bcarothers
Date: 2010-01-06 13:43:36 -0500 (Wed, 06 Jan 2010)
New Revision: 1534

Modified:
   trunk/dna-integration-tests/src/test/java/org/jboss/dna/test/integration/svn/SvnAndJcrIntegrationTest.java
   trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepository.java
   trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepositorySource.java
   trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnIntegrationTest.java
   trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNoCreateWorkspaceTest.java
   trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNotWritableTest.java
   trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorWritableTest.java
   trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositorySourceTest.java
   trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRespositoryConnectorReadableTest.java
Log:
DNA-624 Canonicalize Property Names/Behavior in SVN Connector

Applied patch that changes the name of setDirectoryOfDefaultWorkspace to setDefaultWorkspaceName and changes the behavior of the workspace names as described in the issue description.

Modified: trunk/dna-integration-tests/src/test/java/org/jboss/dna/test/integration/svn/SvnAndJcrIntegrationTest.java
===================================================================
--- trunk/dna-integration-tests/src/test/java/org/jboss/dna/test/integration/svn/SvnAndJcrIntegrationTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/dna-integration-tests/src/test/java/org/jboss/dna/test/integration/svn/SvnAndJcrIntegrationTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -51,7 +51,7 @@
     @Before
     public void beforeEach() throws Exception {
         final String repositoryUrl = "http://anonsvn.jboss.org/repos/dna/";
-        final String[] predefinedWorkspaceNames = {repositoryUrl + "trunk", repositoryUrl + "tags", repositoryUrl + "branches"};
+        final String[] predefinedWorkspaceNames = {"trunk", "tags", "branches"};
         final String svnRepositorySource = "svnRepositorySource";
         final String repositoryName = "svnRepository";
         final JcrConfiguration configuration = new JcrConfiguration();
@@ -61,7 +61,8 @@
                      .setProperty("username", "anonymous")
                      .setProperty("repositoryRootUrl", repositoryUrl)
                      .setProperty("predefinedWorkspaceNames", predefinedWorkspaceNames)
-                     .setProperty("directoryForDefaultWorkspace", predefinedWorkspaceNames[0])
+.setProperty("defaultWorkspaceName",
+                                                                                                                                                                                                                                    predefinedWorkspaceNames[0])
                      .setProperty("creatingWorkspacesAllowed", false);
 
         configuration.repository(repositoryName).setSource(svnRepositorySource).setOption(Option.QUERY_EXECUTION_ENABLED, "false");

Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepository.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepository.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepository.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -50,13 +50,11 @@
 import org.tmatesoft.svn.core.SVNNodeKind;
 import org.tmatesoft.svn.core.SVNProperties;
 import org.tmatesoft.svn.core.SVNProperty;
-import org.tmatesoft.svn.core.SVNURL;
 import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
 import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
 import org.tmatesoft.svn.core.internal.io.fs.FSRepositoryFactory;
 import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
 import org.tmatesoft.svn.core.io.SVNRepository;
-import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
 import org.tmatesoft.svn.core.wc.SVNWCUtil;
 
 public class SvnRepository extends WritablePathRepository {
@@ -89,7 +87,7 @@
             doCreateWorkspace(context, workspaceName);
         }
 
-        String defaultWorkspaceName = source.getDirectoryForDefaultWorkspace();
+        String defaultWorkspaceName = source.getDefaultWorkspaceName();
         if (defaultWorkspaceName != null && !workspaces.containsKey(defaultWorkspaceName)) {
             doCreateWorkspace(context, defaultWorkspaceName);
         }
@@ -161,15 +159,11 @@
                              UUID rootNodeUuid ) {
             super(name, rootNodeUuid);
 
-            try {
-                workspaceRoot = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(name));
+            workspaceRoot = getWorkspaceDirectory(name);
 
-                ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(source.getUsername(),
-                                                                                                     source.getPassword());
-                workspaceRoot.setAuthenticationManager(authManager);
-            } catch (SVNException ex) {
-                throw new IllegalStateException(ex);
-            }
+            ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(source.getUsername(),
+                                                                                                 source.getPassword());
+            workspaceRoot.setAuthenticationManager(authManager);
         }
 
         public Path getLowestExistingPath( Path path ) {
@@ -845,7 +839,10 @@
         }
 
         protected SVNRepository getWorkspaceDirectory( String workspaceName ) {
-            if (workspaceName == null) workspaceName = source.getDirectoryForDefaultWorkspace();
+            if (workspaceName == null) workspaceName = source.getDefaultWorkspaceName();
+
+            workspaceName = source.getRepositoryRootUrl() + workspaceName;
+
             SVNRepository repository = null;
             SVNRepository repos = SvnRepositoryUtil.createRepository(workspaceName, source.getUsername(), source.getPassword());
             if (SvnRepositoryUtil.isDirectory(repos, "")) {

Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepositorySource.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepositorySource.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SvnRepositorySource.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -168,30 +168,28 @@
     }
 
     /**
-     * Get the file system path to the existing directory that should be used for the default workspace. If the default is
-     * specified as a null String or is not a valid and resolvable path, this source will consider the default to be the current
-     * working directory of this virtual machine, as defined by the <code>new File(".")</code>.
+     * Get the path to the existing directory that should be used for the default workspace. This path should be relative to the
+     * {@link #getRepositoryRootUrl() repository root URL}. If the default is specified as a null String or is not a valid and
+     * resolvable path, this source will consider the default to be the current working directory of this virtual machine, as
+     * defined by the <code>new File(".")</code>.
      * 
      * @return the file system path to the directory representing the default workspace, or null if the default should be the
      *         current working directory
      */
-    public String getDirectoryForDefaultWorkspace() {
-        return defaultWorkspace;
-    }
-
     public String getDefaultWorkspaceName() {
         return defaultWorkspace;
     }
 
     /**
-     * Set the file system path to the existing directory that should be used for the default workspace. If the default is
-     * specified as a null String or is not a valid and resolvable path, this source will consider the default to be the current
-     * working directory of this virtual machine, as defined by the <code>new File(".")</code>.
+     * Set the file system path to the existing directory that should be used for the default workspace. This path should be
+     * relative to the {@link #getRepositoryRootUrl() repository root URL}. If the default is specified as a null String or is not
+     * a valid and resolvable path, this source will consider the default to be the current working directory of this virtual
+     * machine, as defined by the <code>new File(".")</code>.
      * 
      * @param pathToDirectoryForDefaultWorkspace the valid and resolvable file system path to the directory representing the
      *        default workspace, or null if the current working directory should be used as the default workspace
      */
-    public synchronized void setDirectoryForDefaultWorkspace( String pathToDirectoryForDefaultWorkspace ) {
+    public synchronized void setDefaultWorkspaceName( String pathToDirectoryForDefaultWorkspace ) {
         this.defaultWorkspace = pathToDirectoryForDefaultWorkspace;
     }
 
@@ -315,7 +313,7 @@
         }
         ref.add(new StringRefAddr(RETRY_LIMIT, Integer.toString(getRetryLimit())));
         ref.add(new StringRefAddr(ROOT_NODE_UUID, rootNodeUuid.toString()));
-        ref.add(new StringRefAddr(DEFAULT_WORKSPACE, getDirectoryForDefaultWorkspace()));
+        ref.add(new StringRefAddr(DEFAULT_WORKSPACE, getDefaultWorkspaceName()));
         ref.add(new StringRefAddr(ALLOW_CREATING_WORKSPACES, Boolean.toString(isCreatingWorkspacesAllowed())));
         String[] workspaceNames = getPredefinedWorkspaceNames();
         if (workspaceNames != null && workspaceNames.length != 0) {
@@ -362,7 +360,7 @@
         if (password != null) source.setPassword(password);
         if (retryLimit != null) source.setRetryLimit(Integer.parseInt(retryLimit));
         if (rootNodeUuid != null) source.setRootNodeUuid(rootNodeUuid);
-        if (defaultWorkspace != null) source.setDirectoryForDefaultWorkspace(defaultWorkspace);
+        if (defaultWorkspace != null) source.setDefaultWorkspaceName(defaultWorkspace);
         if (createWorkspaces != null) source.setCreatingWorkspacesAllowed(Boolean.parseBoolean(createWorkspaces));
         if (workspaceNames != null && workspaceNames.length != 0) source.setPredefinedWorkspaceNames(workspaceNames);
         return source;

Modified: trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnIntegrationTest.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnIntegrationTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnIntegrationTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -27,7 +27,6 @@
 import static org.hamcrest.core.IsNull.notNullValue;
 import static org.junit.Assert.assertThat;
 import java.util.Map;
-import org.jboss.dna.connector.svn.SvnRepositorySource;
 import org.jboss.dna.graph.ExecutionContext;
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.Location;
@@ -53,7 +52,7 @@
     @Before
     public void beforeEach() {
         repositoryUrl = "http://anonsvn.jboss.org/repos/dna/";
-        predefinedWorkspaceNames = new String[] {repositoryUrl + "trunk", repositoryUrl + "tags", repositoryUrl + "branches"};
+        predefinedWorkspaceNames = new String[] {"trunk", "tags", "branches"};
         context = new ExecutionContext();
         source = new SvnRepositorySource();
         source.setName("svn repository source");
@@ -62,7 +61,7 @@
         source.setPassword("");
         source.setCreatingWorkspacesAllowed(true);
         source.setPredefinedWorkspaceNames(predefinedWorkspaceNames);
-        source.setDirectoryForDefaultWorkspace(predefinedWorkspaceNames[0]);
+        source.setDefaultWorkspaceName(predefinedWorkspaceNames[0]);
         source.setCreatingWorkspacesAllowed(false);
         source.initialize(new RepositoryContext() {
 

Modified: trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNoCreateWorkspaceTest.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNoCreateWorkspaceTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNoCreateWorkspaceTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -1,6 +1,5 @@
 package org.jboss.dna.connector.svn;
 
-import org.jboss.dna.connector.svn.SvnRepositorySource;
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.connector.RepositorySource;
 import org.jboss.dna.graph.connector.test.WorkspaceConnectorTest;
@@ -23,14 +22,14 @@
      */
     @Override
     protected RepositorySource setUpSource() throws Exception {
-        String[] predefinedWorkspaceNames = new String[] {url + "trunk", url + "tags"};
+        String[] predefinedWorkspaceNames = new String[] {"trunk", "tags"};
         SvnRepositorySource source = new SvnRepositorySource();
         source.setName("Test Repository");
         source.setUsername("sp");
         source.setPassword("");
         source.setRepositoryRootUrl(url);
         source.setPredefinedWorkspaceNames(predefinedWorkspaceNames);
-        source.setDirectoryForDefaultWorkspace(predefinedWorkspaceNames[0]);
+        source.setDefaultWorkspaceName(predefinedWorkspaceNames[0]);
         source.setCreatingWorkspacesAllowed(false);
 
         return source;

Modified: trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNotWritableTest.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNotWritableTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorNotWritableTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -1,6 +1,5 @@
 package org.jboss.dna.connector.svn;
 
-import org.jboss.dna.connector.svn.SvnRepositorySource;
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.connector.RepositorySource;
 import org.jboss.dna.graph.connector.test.NotWritableConnectorTest;
@@ -23,14 +22,14 @@
      */
     @Override
     protected RepositorySource setUpSource() throws Exception {
-        String[] predefinedWorkspaceNames = new String[]{url+"trunk", url+"tags"};
+        String[] predefinedWorkspaceNames = new String[] {"trunk", "tags"};
         SvnRepositorySource source = new SvnRepositorySource();
         source.setName("Test Repository");
         source.setUsername("sp");
         source.setPassword("");
         source.setRepositoryRootUrl(url);
         source.setPredefinedWorkspaceNames(predefinedWorkspaceNames);
-        source.setDirectoryForDefaultWorkspace(predefinedWorkspaceNames[0]);
+        source.setDefaultWorkspaceName(predefinedWorkspaceNames[0]);
         source.setCreatingWorkspacesAllowed(false);
         
         return source;

Modified: trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorWritableTest.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorWritableTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositoryConnectorWritableTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -27,7 +27,6 @@
 import static org.hamcrest.core.IsNull.notNullValue;
 import static org.junit.Assert.assertThat;
 import java.io.ByteArrayOutputStream;
-import org.jboss.dna.connector.svn.SvnRepositorySource;
 import org.jboss.dna.graph.DnaLexicon;
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.JcrLexicon;
@@ -63,14 +62,14 @@
     @Override
     protected RepositorySource setUpSource() throws Exception {
         url = SvnConnectorTestUtil.createURL("src/test/resources/dummy_svn_repos", "target/copy_of dummy_svn_repos");
-        String[] predefinedWorkspaceNames = new String[] {url + "trunk", url + "tags"};
+        String[] predefinedWorkspaceNames = new String[] {"trunk", "tags"};
         SvnRepositorySource source = new SvnRepositorySource();
         source.setName("Test Repository");
         source.setUsername("sp");
         source.setPassword("");
         source.setRepositoryRootUrl(url);
         source.setPredefinedWorkspaceNames(predefinedWorkspaceNames);
-        source.setDirectoryForDefaultWorkspace(predefinedWorkspaceNames[0]);
+        source.setDefaultWorkspaceName(predefinedWorkspaceNames[0]);
         source.setCreatingWorkspacesAllowed(Boolean.TRUE);
         source.setUpdatesAllowed(true);
 

Modified: trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositorySourceTest.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositorySourceTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRepositorySourceTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -265,7 +265,7 @@
         assertThat((String)refAttributes.remove(SvnRepositorySource.ALLOW_CREATING_WORKSPACES),
                    is(Boolean.toString(source.isCreatingWorkspacesAllowed())));
         assertThat((String)refAttributes.remove(SvnRepositorySource.DEFAULT_WORKSPACE),
-                   is(source.getDirectoryForDefaultWorkspace()));
+                   is(source.getDefaultWorkspaceName()));
         refAttributes.remove(SvnRepositorySource.PREDEFINED_WORKSPACE_NAMES);
         assertThat(refAttributes.isEmpty(), is(true));
 

Modified: trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRespositoryConnectorReadableTest.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRespositoryConnectorReadableTest.java	2010-01-06 01:14:23 UTC (rev 1533)
+++ trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SvnRespositoryConnectorReadableTest.java	2010-01-06 18:43:36 UTC (rev 1534)
@@ -27,7 +27,6 @@
 import static org.hamcrest.core.IsNull.notNullValue;
 import static org.junit.Assert.assertThat;
 import java.util.List;
-import org.jboss.dna.connector.svn.SvnRepositorySource;
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.JcrLexicon;
 import org.jboss.dna.graph.JcrNtLexicon;
@@ -59,14 +58,14 @@
      */
     @Override
     protected RepositorySource setUpSource() throws Exception {
-        String[] predefinedWorkspaceNames = new String[]{url + "trunk", url + "tags"};
+        String[] predefinedWorkspaceNames = new String[] {"trunk", "tags"};
         SvnRepositorySource source = new SvnRepositorySource();
         source.setName("Test Repository");
         source.setUsername("sp");
         source.setPassword("");
         source.setRepositoryRootUrl(url);
         source.setPredefinedWorkspaceNames(predefinedWorkspaceNames);
-        source.setDirectoryForDefaultWorkspace(predefinedWorkspaceNames[0]);
+        source.setDefaultWorkspaceName(predefinedWorkspaceNames[0]);
         source.setCreatingWorkspacesAllowed(false);
         
         return source;



More information about the dna-commits mailing list