Author: brane
Date: Fri Jun  6 20:00:20 2014
New Revision: 1600993

URL: http://svn.apache.org/r1600993
Log:
Modify JavaHL tests to enable testing with the deprecated
UserPasswordCallback authentication interface.

* Makefile.in
  (check-deprecated-authn-javahl): New target.
  (check-all-javahl): Include dependency on check-deprecated-authn-javahl.

[in subversion/bindings/javahl]
* src/org/apache/subversion/javahl/ISVNClient.java,
  src/org/apache/subversion/javahl/SVNClient.java
  (ISVNClient.setPrompt): Add overloads for both AuthnCallback
   and UserPasswordCallback variants.
* src/org/apache/subversion/javahl/remote/RemoteFactory.java
  (RemoteFactory.RemoteFactory, RemoteFactory.setPrompt): Likewise.
  (RemoteFactory.open): Handler both types of prompters. Update all callers.

* native/org_apache_subversion_javahl_SVNClient.cpp
  (Java_org_apache_subversion_javahl_SVNClient_setPrompt*): Implement native 
overloads
   of the ISVNClent.setPrompt() method.
* native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
  (Java_org_apache_subversion_javahl_remote_RemoteFactory_open):
   Adjust implementation for changed prototype.
* native/RemoteSession.h, native/RemoteSession.cpp
  (RemoteSession::open): Create prompter wrapper depending on which type
   of prompter was set in the factory.

* tests/org/apache/subversion/javahl/SVNTests.java
  (SVNTests.DefaultPromptUserPassword): Removed.
  (SVNTests.DefaultAuthn): New; factory for both variants of the prompter.
  (SVNTests.initClient): Select prompter based on system propery settings.
* tests/org/apache/subversion/javahl/BasicTests.java,
  tests/org/apache/subversion/javahl/SVNRemoteTests.java:
   Select prompter based on system propery settings.

Modified:
    subversion/trunk/Makefile.in
    subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp
    subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h
    
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
    
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
    
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
    
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java

Modified: subversion/trunk/Makefile.in
URL: 
http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- subversion/trunk/Makefile.in (original)
+++ subversion/trunk/Makefile.in Fri Jun  6 20:00:20 2014
@@ -504,9 +504,14 @@ check-apache-javahl: javahl
        $(TEST_SHLIB_VAR_JAVAHL) \
        $(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" 
"-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" 
"-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" 
-classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" 
"-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
 
+check-deprecated-authn-javahl: javahl
+       @FIX_JAVAHL_LIB@
+       $(TEST_SHLIB_VAR_JAVAHL) \
+       $(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" 
"-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" 
"-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" 
-classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" 
"-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true" 
org.apache.subversion.javahl.RunTests
+
 check-javahl: check-apache-javahl
 
-check-all-javahl: check-apache-javahl check-tigris-javahl
+check-all-javahl: check-apache-javahl check-tigris-javahl 
check-deprecated-authn-javahl
 
 # "make check CLEANUP=true" will clean up directories for successful tests.
 # "make check TESTS=subversion/tests/cmdline/basic_tests.py"

Modified: subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp 
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp Fri 
Jun  6 20:00:20 2014
@@ -68,9 +68,11 @@ RemoteSession::open(jint jretryAttempts,
                     jstring jurl, jstring juuid,
                     jstring jconfigDirectory,
                     jstring jusername, jstring jpassword,
-                    jobject jprompter, jobject jprogress,
-                    jobject jcfgcb, jobject jtunnelcb)
+                    jobject jprompter, jobject jdeprecatedPrompter,
+                    jobject jprogress, jobject jcfgcb, jobject jtunnelcb)
 {
+  SVN_ERR_ASSERT_NO_RETURN(!jprompter != !jdeprecatedPrompter);
+
   JNIEnv *env = JNIUtil::getEnv();
 
   SVN::Pool requestPool;
@@ -101,7 +103,8 @@ RemoteSession::open(jint jretryAttempts,
     return NULL;
   env->DeleteLocalRef(jpassword);
 
-  Prompter::UniquePtr prompter(CompatPrompter::create(jprompter));
+  Prompter::UniquePtr prompter(jprompter ? Prompter::create(jprompter)
+                               : CompatPrompter::create(jdeprecatedPrompter));
   if (JNIUtil::isExceptionThrown())
     return NULL;
 

Modified: subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h 
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h Fri Jun  
6 20:00:20 2014
@@ -48,8 +48,8 @@ class RemoteSession : public SVNBase
                         jstring jurl, jstring juuid,
                         jstring jconfigDirectory,
                         jstring jusername, jstring jpassword,
-                        jobject jprompter, jobject jprogress,
-                        jobject jcfgcb, jobject jtunnelcb);
+                        jobject jprompter, jobject jdeprecatedPrompter,
+                        jobject jprogress, jobject jcfgcb, jobject jtunnelcb);
     static jobject open(jint jretryAttempts,
                         const char* url, const char* uuid,
                         const char* configDirectory,

Modified: 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 Fri Jun  6 20:00:20 2014
@@ -258,7 +258,25 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_setPrompt
+Java_org_apache_subversion_javahl_SVNClient_setPrompt__Lorg_apache_subversion_javahl_callback_AuthnCallback_2
+(JNIEnv *env, jobject jthis, jobject jprompter)
+{
+  JNIEntry(SVNClient, setPrompt);
+  SVNClient *cl = SVNClient::getCppObject(jthis);
+  if (cl == NULL)
+    {
+      JNIUtil::throwError(_("bad C++ this"));
+      return;
+    }
+  Prompter::UniquePtr prompter(Prompter::create(jprompter));
+  if (JNIUtil::isExceptionThrown())
+    return;
+
+  cl->getClientContext().setPrompt(prompter);
+}
+
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNClient_setPrompt__Lorg_apache_subversion_javahl_callback_UserPasswordCallback_2
 (JNIEnv *env, jobject jthis, jobject jprompter)
 {
   JNIEntry(SVNClient, setPrompt);

Modified: 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
 Fri Jun  6 20:00:20 2014
@@ -40,8 +40,8 @@ Java_org_apache_subversion_javahl_remote
     jstring jurl, jstring juuid,
     jstring jconfigDirectory,
     jstring jusername, jstring jpassword,
-    jobject jprompter, jobject jprogress,
-    jobject jcfgcb, jobject jtunnelcb)
+    jobject jprompter, jobject jdeprecatedPrompter,
+    jobject jprogress, jobject jcfgcb, jobject jtunnelcb)
 {
   //JNI macros need jthis but this is a static call
   JNIEntryStatic(RemoteFactory, open);
@@ -51,8 +51,9 @@ Java_org_apache_subversion_javahl_remote
    */
   jobject jremoteSession = RemoteSession::open(
       jretryAttempts, jurl, juuid,
-      jconfigDirectory, jusername, jpassword, jprompter, jprogress,
-      jcfgcb, jtunnelcb);
+      jconfigDirectory, jusername, jpassword,
+      jprompter, jdeprecatedPrompter,
+      jprogress, jcfgcb, jtunnelcb);
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
 Fri Jun  6 20:00:20 2014
@@ -160,6 +160,16 @@ public interface ISVNClient
      * accepted by the command-line client.
      * @param prompt the callback interface
      */
+    void setPrompt(AuthnCallback prompt);
+
+    /**
+     * Register callback interface to supply username and password on demand.
+     * This callback can also be used to provide theequivalent of the
+     * <code>--no-auth-cache</code> and <code>--non-interactive</code> 
arguments
+     * accepted by the command-line client.
+     * @param prompt the callback interface
+     */
+    @SuppressWarnings("deprecation")
     void setPrompt(UserPasswordCallback prompt);
 
     /**

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
 Fri Jun  6 20:00:20 2014
@@ -150,6 +150,9 @@ public class SVNClient implements ISVNCl
 
     public native void password(String password);
 
+    public native void setPrompt(AuthnCallback prompt);
+
+    @SuppressWarnings("deprecation")
     public native void setPrompt(UserPasswordCallback prompt);
 
     public native void setTunnelAgent(TunnelAgent tunnelAgent);

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
 Fri Jun  6 20:00:20 2014
@@ -58,6 +58,26 @@ public class RemoteFactory
      */
     public RemoteFactory(String configDirectory,
                          String username, String password,
+                         AuthnCallback prompt,
+                         ProgressCallback progress,
+                         ConfigEvent configHandler,
+                         TunnelAgent tunnelAgent)
+    {
+        setConfigDirectory(configDirectory);
+        setUsername(username);
+        setPassword(password);
+        setPrompt(prompt);
+        setProgressCallback(progress);
+        setConfigEventHandler(configHandler);
+        setTunnelAgent(tunnelAgent);
+    }
+
+    /**
+     * Initializing constructor. Any or all of its arguments may be null.
+     */
+    @SuppressWarnings("deprecation")
+    public RemoteFactory(String configDirectory,
+                         String username, String password,
                          UserPasswordCallback prompt,
                          ProgressCallback progress,
                          ConfigEvent configHandler,
@@ -105,12 +125,27 @@ public class RemoteFactory
      * arguments accepted by the command-line client.
      * @param prompt the callback interface
      */
-    public void setPrompt(UserPasswordCallback prompt)
+    public void setPrompt(AuthnCallback prompt)
     {
+        assert(this.deprecatedPrompt == null);
         this.prompt = prompt;
     }
 
     /**
+     * Register callback interface to supply username and password on demand.
+     * This callback can also be used to provide theequivalent of the
+     * <code>--no-auth-cache</code> and <code>--non-interactive</code>
+     * arguments accepted by the command-line client.
+     * @param prompt the callback interface
+     */
+    @SuppressWarnings("deprecation")
+    public void setPrompt(UserPasswordCallback prompt)
+    {
+        assert(this.prompt == null);
+        this.deprecatedPrompt = prompt;
+    }
+
+    /**
      * Set the progress callback for new sessions.
      *
      * @param progress The progress callback.
@@ -163,7 +198,7 @@ public class RemoteFactory
             throws ClientException, SubversionException
     {
         return open(1, url, null, configDirectory,
-                    username, password, prompt, progress,
+                    username, password, prompt, deprecatedPrompt, progress,
                     configHandler, tunnelAgent);
     }
 
@@ -191,7 +226,7 @@ public class RemoteFactory
             throw new IllegalArgumentException(
                 "retryAttempts must be positive");
         return open(retryAttempts, url, null, configDirectory,
-                    username, password, prompt, progress,
+                    username, password, prompt, deprecatedPrompt, progress,
                     configHandler, tunnelAgent);
     }
 
@@ -219,7 +254,7 @@ public class RemoteFactory
         if (reposUUID == null)
             throw new IllegalArgumentException("reposUUID may not be null");
         return open(1, url, reposUUID, configDirectory,
-                    username, password, prompt, progress,
+                    username, password, prompt, deprecatedPrompt, progress,
                     configHandler, tunnelAgent);
     }
 
@@ -254,24 +289,28 @@ public class RemoteFactory
             throw new IllegalArgumentException(
                 "retryAttempts must be positive");
         return open(retryAttempts, url, reposUUID, configDirectory,
-                    username, password, prompt, progress,
+                    username, password, prompt, deprecatedPrompt, progress,
                     configHandler, tunnelAgent);
     }
 
     private String configDirectory;
     private String username;
     private String password;
-    private UserPasswordCallback prompt;
+    private AuthnCallback prompt;
+    @SuppressWarnings("deprecation")
+    private UserPasswordCallback deprecatedPrompt;
     private ProgressCallback progress;
     private ConfigEvent configHandler;
     private TunnelAgent tunnelAgent;
 
     /* Native factory implementation. */
+    @SuppressWarnings("deprecation")
     private static native ISVNRemote open(int retryAttempts,
                                           String url, String reposUUID,
                                           String configDirectory,
                                           String username, String password,
-                                          UserPasswordCallback prompt,
+                                          AuthnCallback prompt,
+                                          UserPasswordCallback deprecatedPompt,
                                           ProgressCallback progress,
                                           ConfigEvent configHandler,
                                           TunnelAgent tunnelAgent)

Modified: 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
 Fri Jun  6 20:00:20 2014
@@ -4049,7 +4049,10 @@ public class BasicTests extends SVNTests
         SVNClient cl = new SVNClient();
         try {
             cl.notification2(new MyNotifier());
-            cl.setPrompt(new DefaultPromptUserPassword());
+            if (DefaultAuthn.useDeprecated())
+                cl.setPrompt(DefaultAuthn.getDeprecated());
+            else
+                cl.setPrompt(DefaultAuthn.getDefault());
             cl.username(USERNAME);
             cl.setProgressCallback(new DefaultProgressListener());
             cl.setConfigDirectory(conf.getAbsolutePath());

Modified: 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
 Fri Jun  6 20:00:20 2014
@@ -79,7 +79,10 @@ public class SVNRemoteTests extends SVNT
             factory.setConfigDirectory(configDirectory);
             factory.setUsername(USERNAME);
             // Do not set default password, exercise prompter instead.
-            factory.setPrompt(new DefaultPromptUserPassword());
+            if (DefaultAuthn.useDeprecated())
+                factory.setPrompt(DefaultAuthn.getDeprecated());
+            else
+                factory.setPrompt(DefaultAuthn.getDefault());
 
             ISVNRemote raSession = factory.openRemoteSession(url);
             assertNotNull("Null session was returned by factory", raSession);
@@ -111,13 +114,20 @@ public class SVNRemoteTests extends SVNT
         ISVNRemote session;
         try
         {
-            session = new RemoteFactory(
-                super.conf.getAbsolutePath(),
-                USERNAME, null, // Do not set default password.
-
-                new DefaultPromptUserPassword(),
-                null, null, null)
-                .openRemoteSession(getTestRepoUrl());
+            if (DefaultAuthn.useDeprecated())
+                session = new RemoteFactory(
+                    super.conf.getAbsolutePath(),
+                    USERNAME, null, // Do not set default password.
+                    DefaultAuthn.getDeprecated(),
+                    null, null, null)
+                    .openRemoteSession(getTestRepoUrl());
+            else
+                session = new RemoteFactory(
+                    super.conf.getAbsolutePath(),
+                    USERNAME, null, // Do not set default password.
+                    DefaultAuthn.getDefault(),
+                    null, null, null)
+                    .openRemoteSession(getTestRepoUrl());
         }
         catch (ClientException ex)
         {
@@ -140,10 +150,19 @@ public class SVNRemoteTests extends SVNT
             try {
                 String prefix = getTestRepoUrl().substring(
                     0, 1 + getTestRepoUrl().lastIndexOf("/"));
+
+            if (DefaultAuthn.useDeprecated())
+                new RemoteFactory(
+                    super.conf.getAbsolutePath(),
+                    USERNAME, null, // Do not set default password.
+                    DefaultAuthn.getDeprecated(),
+                    null, null, null)
+                    .openRemoteSession(prefix + "repositorydoesnotexisthere");
+            else
                 new RemoteFactory(
                     super.conf.getAbsolutePath(),
                     USERNAME, null, // Do not set default password.
-                    new DefaultPromptUserPassword(),
+                    DefaultAuthn.getDefault(),
                     null, null, null)
                     .openRemoteSession(prefix + "repositorydoesnotexisthere");
             }
@@ -986,12 +1005,20 @@ public class SVNRemoteTests extends SVNT
         ISVNRemote session;
         try
         {
-            session = new RemoteFactory(
-                super.conf.getAbsolutePath(),
-                USERNAME, null, // Do not set default password.
-                new DefaultPromptUserPassword(),
-                null, handler, null)
-                .openRemoteSession(getTestRepoUrl());
+            if (DefaultAuthn.useDeprecated())
+                session = new RemoteFactory(
+                    super.conf.getAbsolutePath(),
+                    USERNAME, null, // Do not set default password.
+                    DefaultAuthn.getDeprecated(),
+                    null, handler, null)
+                    .openRemoteSession(getTestRepoUrl());
+            else
+                session = new RemoteFactory(
+                    super.conf.getAbsolutePath(),
+                    USERNAME, null, // Do not set default password.
+                    DefaultAuthn.getDefault(),
+                    null, handler, null)
+                    .openRemoteSession(getTestRepoUrl());
         }
         catch (ClientException ex)
         {

Modified: 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
 Fri Jun  6 20:00:20 2014
@@ -296,62 +296,136 @@ class SVNTests extends TestCase
     {
         this.client = new SVNClient();
         this.client.notification2(new MyNotifier());
-        this.client.setPrompt(new DefaultPromptUserPassword());
+        if (DefaultAuthn.useDeprecated())
+            this.client.setPrompt(DefaultAuthn.getDeprecated());
+        else
+            this.client.setPrompt(DefaultAuthn.getDefault());
         this.client.username(USERNAME);
         this.client.setProgressCallback(new DefaultProgressListener());
         this.client.setConfigDirectory(this.conf.getAbsolutePath());
         this.expectedCommitItems = new HashMap<String, MyCommitItem>();
     }
     /**
-     * the default prompt : never prompts the user, provides defaults answers
+     * the default prompts : never prompt the user, provide default answers
      */
-    protected static class DefaultPromptUserPassword implements 
UserPasswordCallback
+    protected static class DefaultAuthn
     {
-
-        public int askTrustSSLServer(String info, boolean allowPermanently)
+        public static boolean useDeprecated()
         {
-            return UserPasswordCallback.AcceptTemporary;
+            String prop = System.getProperty("test.authn.deprecated");
+            return (prop != null && !prop.isEmpty());
         }
 
-        public String askQuestion(String realm, String question, boolean 
showAnswer)
+        public static AuthnCallback getDefault()
         {
-            return "";
+            return new DefaultAuthnCallback();
         }
 
-        public boolean askYesNo(String realm, String question, boolean 
yesIsDefault)
+        @SuppressWarnings("deprecation")
+        public static UserPasswordCallback getDeprecated()
         {
-            return yesIsDefault;
+            return new DeprecatedAuthnCallback();
         }
 
-        public String getPassword()
+        private static class DefaultAuthnCallback
+            implements AuthnCallback
         {
-            return PASSWORD;
-        }
+            public UsernameResult
+                usernamePrompt(String realm, boolean maySave)
+            {
+                return new UsernameResult(USERNAME);
+            }
 
-        public String getUsername()
-        {
-            return USERNAME;
-        }
+            public UserPasswordResult
+                userPasswordPrompt(String realm, String username,
+                                   boolean maySave)
+            {
+                return new UserPasswordResult(USERNAME, PASSWORD);
+            }
 
-        public boolean prompt(String realm, String username)
-        {
-            return true;
-        }
+            public SSLServerTrustResult
+                sslServerTrustPrompt(String realm,
+                                     SSLServerCertFailures failures,
+                                     SSLServerCertInfo info,
+                                     boolean maySave)
+            {
+                return SSLServerTrustResult.acceptTemporarily();
+            }
 
-        public boolean prompt(String realm, String username, boolean maySave)
-        {
-            return true;
-        }
+            public SSLClientCertResult
+                sslClientCertPrompt(String realm, boolean maySave)
+            {
+                return null;
+            }
 
-        public String askQuestion(String realm, String question,
-                boolean showAnswer, boolean maySave)
-        {
-            return "";
+            public SSLClientCertPassphraseResult
+                sslClientCertPassphrasePrompt(String realm, boolean maySave)
+            {
+                return null;
+            }
+
+            public boolean allowStorePlaintextPassword(String realm)
+            {
+                return false;
+            }
+
+            public boolean allowStorePlaintextPassphrase(String realm)
+            {
+                return false;
+            }
         }
 
-        public boolean userAllowedSave()
+        @SuppressWarnings("deprecation")
+        private static class DeprecatedAuthnCallback
+            implements UserPasswordCallback
         {
-            return false;
+            public int askTrustSSLServer(String info, boolean allowPermanently)
+            {
+                return UserPasswordCallback.AcceptTemporary;
+            }
+
+            public String askQuestion(String realm, String question,
+                                      boolean showAnswer)
+            {
+                return "";
+            }
+
+            public boolean askYesNo(String realm, String question,
+                                    boolean yesIsDefault)
+            {
+                return yesIsDefault;
+            }
+
+            public String getPassword()
+            {
+                return PASSWORD;
+            }
+
+            public String getUsername()
+            {
+                return USERNAME;
+            }
+
+            public boolean prompt(String realm, String username)
+            {
+                return true;
+            }
+
+            public boolean prompt(String realm, String username, boolean 
maySave)
+            {
+                return true;
+            }
+
+            public String askQuestion(String realm, String question,
+                                      boolean showAnswer, boolean maySave)
+            {
+                return "";
+            }
+
+            public boolean userAllowedSave()
+            {
+                return false;
+            }
         }
     }
 


Reply via email to