From 8f6b0fb01d16e8bd3743df20e70f2125c122d0c7 Mon Sep 17 00:00:00 2001 From: irengrig Date: Tue, 22 Dec 2009 01:45:00 +0300 Subject: [PATCH] SVN: authentication for free-read-access repositories to work also --- .../openapi/vcs/impl/GenericNotifierImpl.java | 8 +++++ .../idea/svn/SvnAuthenticationNotifier.java | 39 +++++++++++++++++----- .../idea/svn/SvnBranchConfigurationManager.java | 2 +- .../org/jetbrains/idea/svn/SvnConfiguration.java | 8 +++++ .../src/org/jetbrains/idea/svn/SvnVcs.java | 2 +- 5 files changed, 49 insertions(+), 10 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/GenericNotifierImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/GenericNotifierImpl.java index 9007383485..e0d9a9e749 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/GenericNotifierImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/GenericNotifierImpl.java @@ -131,6 +131,14 @@ public abstract class GenericNotifierImpl { } } + @Nullable + protected T getObj(final Key key) { + synchronized (myLock) { + final MyNotification notification = myState.get(key); + return notification == null ? null : notification.getObj(); + } + } + protected static class MyNotification extends Notification { private T myObj; diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnAuthenticationNotifier.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnAuthenticationNotifier.java index f08e31f076..5008f1e681 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnAuthenticationNotifier.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnAuthenticationNotifier.java @@ -28,11 +28,13 @@ import com.intellij.openapi.vcs.changes.ui.ChangesViewBalloonProblemNotifier; import com.intellij.openapi.vcs.impl.GenericNotifierImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.idea.svn.dialogs.SvnInteractiveAuthenticationProvider; import org.tmatesoft.svn.core.SVNAuthenticationException; import org.tmatesoft.svn.core.SVNCancelException; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNURL; import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; +import org.tmatesoft.svn.core.auth.SVNAuthentication; import org.tmatesoft.svn.core.internal.util.SVNURLUtil; import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc.SVNWCClient; @@ -59,7 +61,7 @@ public class SvnAuthenticationNotifier extends GenericNotifierImpl resultRef = new Ref(); final boolean done = ProgressManager.getInstance().runProcessWithProgressSynchronously(new Runnable() { public void run() { - final boolean result = interactiveValidation(obj.myProject, obj.getUrl()); + final boolean result = interactiveValidation(obj.myProject, obj.getUrl(), obj.getRealm(), obj.getKind()); log("ask result for: " + obj.getUrl() + " is: " + result); resultRef.set(result); if (result) { @@ -76,7 +78,8 @@ public class SvnAuthenticationNotifier extends GenericNotifierImpl