You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/09/15 21:32:38 UTC

svn commit: r997472 [3/41] - in /subversion/branches/py-tests-as-modules: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ contrib/server-side/ notes/ notes/tree-conflicts/ notes/wc-ng/ subversion/bindings/javahl/native/ subversio...

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Sep 15 19:32:26 2010
@@ -33,9 +33,6 @@
 #include "Revision.h"
 #include "RevisionRange.h"
 #include "EnumMapper.h"
-#include "ClientNotifyCallback.h"
-#include "ConflictResolverCallback.h"
-#include "ProgressListener.h"
 #include "CommitMessage.h"
 #include "Prompter.h"
 #include "Targets.h"
@@ -44,6 +41,7 @@
 #include "BlameCallback.h"
 #include "ProplistCallback.h"
 #include "PatchCallback.h"
+#include "CommitCallback.h"
 #include "LogMessageCallback.h"
 #include "InfoCallback.h"
 #include "StatusCallback.h"
@@ -61,7 +59,7 @@ Java_org_apache_subversion_javahl_SVNCli
 (JNIEnv *env, jobject jthis)
 {
   JNIEntry(SVNClient, ctNative);
-  SVNClient *obj = new SVNClient;
+  SVNClient *obj = new SVNClient(jthis);
   return obj->getCppAddr();
 }
 
@@ -76,7 +74,7 @@ Java_org_apache_subversion_javahl_SVNCli
       JNIUtil::throwError(_("bad C++ this"));
       return;
     }
-  cl->dispose(jthis);
+  cl->dispose();
 }
 
 JNIEXPORT void JNICALL
@@ -212,7 +210,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->username(username);
+  cl->getClientContext().username(username);
 }
 
 JNIEXPORT void JNICALL
@@ -236,7 +234,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->password(password);
+  cl->getClientContext().password(password);
 }
 
 JNIEXPORT void JNICALL
@@ -254,7 +252,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->setPrompt(prompter);
+  cl->getClientContext().setPrompt(prompter);
 }
 
 JNIEXPORT void JNICALL
@@ -345,84 +343,10 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_notification2
-(JNIEnv *env, jobject jthis, jobject jnotify2)
-{
-  JNIEntry(SVNClient, notification2);
-  SVNClient *cl = SVNClient::getCppObject(jthis);
-  if (cl == NULL)
-    {
-      JNIUtil::throwError(_("bad C++ this"));
-      return;
-    }
-  ClientNotifyCallback *notify2 = ClientNotifyCallback::makeCNotify(jnotify2);
-  if (JNIUtil::isExceptionThrown())
-    return;
-
-  cl->notification2(notify2);
-}
-
-JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_setConflictResolver
-(JNIEnv *env, jobject jthis, jobject jconflictResolver)
-{
-  JNIEntry(SVNClient, setConflictResolver);
-  SVNClient *cl = SVNClient::getCppObject(jthis);
-  if (cl == NULL)
-    {
-      JNIUtil::throwError(_("bad C++ this"));
-      return;
-    }
-  ConflictResolverCallback *listener =
-    ConflictResolverCallback::makeCConflictResolverCallback(jconflictResolver);
-  if (JNIUtil::isExceptionThrown())
-    return;
-
-  cl->setConflictResolver(listener);
-}
-
-JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_setProgressListener
-(JNIEnv *env, jobject jthis, jobject jprogressListener)
-{
-  JNIEntry(SVNClient, setProgressListener);
-  SVNClient *cl = SVNClient::getCppObject(jthis);
-  if (cl == NULL)
-    {
-      JNIUtil::throwError(_("bad C++ this"));
-      return;
-    }
-  ProgressListener *listener =
-    ProgressListener::makeCProgressListener(jprogressListener);
-  if (JNIUtil::isExceptionThrown())
-    return;
-
-  cl->setProgressListener(listener);
-}
-
-JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_commitMessageHandler
-(JNIEnv *env, jobject jthis, jobject jcommitMessage)
-{
-  JNIEntry(SVNClient, commitMessageHandler);
-  SVNClient *cl = SVNClient::getCppObject(jthis);
-  if (cl == NULL)
-    {
-      JNIUtil::throwError("bad C++ this");
-      return;
-    }
-  CommitMessage *commitMessage =
-    CommitMessage::makeCCommitMessage(jcommitMessage);
-  if (JNIUtil::isExceptionThrown())
-    return;
-
-  cl->commitMessageHandler(commitMessage);
-}
-
-JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_remove
-(JNIEnv *env, jobject jthis, jobject jtargets, jstring jmessage,
- jboolean jforce, jboolean keepLocal, jobject jrevpropTable)
+(JNIEnv *env, jobject jthis, jobject jtargets, jboolean jforce,
+ jboolean keepLocal, jobject jrevpropTable, jobject jmessage,
+ jobject jcallback)
 {
   JNIEntry(SVNClient, remove);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -433,7 +357,10 @@ Java_org_apache_subversion_javahl_SVNCli
     }
   StringArray targetsArr(jtargets);
   Targets targets(targetsArr);
-  JNIStringHolder message(jmessage);
+  if (JNIUtil::isExceptionThrown())
+    return;
+
+  CommitMessage message(jmessage);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -441,8 +368,9 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->remove(targets, message, jforce ? true : false,
-             keepLocal ? true : false, revprops);
+  CommitCallback callback(jcallback);
+  cl->remove(targets, &message, jforce ? true : false,
+             keepLocal ? true : false, revprops, jcallback ? &callback : NULL);
 }
 
 JNIEXPORT void JNICALL
@@ -516,44 +444,49 @@ Java_org_apache_subversion_javahl_SVNCli
                     jallowUnverObstructions ? true : false);
 }
 
-JNIEXPORT jlong JNICALL
+JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_commit
-(JNIEnv *env, jobject jthis, jobject jtargets, jstring jmessage, jobject jdepth,
+(JNIEnv *env, jobject jthis, jobject jtargets, jobject jdepth,
  jboolean jnoUnlock, jboolean jkeepChangelist, jobject jchangelists,
- jobject jrevpropTable)
+ jobject jrevpropTable, jobject jmessage, jobject jcallback)
 {
   JNIEntry(SVNClient, commit);
   SVNClient *cl = SVNClient::getCppObject(jthis);
   if (cl == NULL)
     {
       JNIUtil::throwError(_("bad C++ this"));
-      return -1;
+      return;
     }
   StringArray targetsArr(jtargets);
   Targets targets(targetsArr);
-  JNIStringHolder message(jmessage);
   if (JNIUtil::isExceptionThrown())
-    return -1;
+    return;
+
+  CommitMessage message(jmessage);
+  if (JNIUtil::isExceptionThrown())
+    return;
 
   // Build the changelist vector from the Java array.
   StringArray changelists(jchangelists);
   if (JNIUtil::isExceptionThrown())
-    return -1;
+    return;
 
   RevpropTable revprops(jrevpropTable);
   if (JNIUtil::isExceptionThrown())
-    return -1;
+    return;
 
-  return cl->commit(targets, message, EnumMapper::toDepth(jdepth),
-                    jnoUnlock ? true : false, jkeepChangelist ? true : false,
-                    changelists, revprops);
+  CommitCallback callback(jcallback);
+  cl->commit(targets, &message, EnumMapper::toDepth(jdepth),
+             jnoUnlock ? true : false, jkeepChangelist ? true : false,
+             changelists, revprops,
+             jcallback ? &callback : NULL);
 }
 
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_copy
 (JNIEnv *env, jobject jthis, jobject jcopySources, jstring jdestPath,
- jstring jmessage, jboolean jcopyAsChild, jboolean jmakeParents,
- jboolean jignoreExternals, jobject jrevpropTable)
+ jboolean jcopyAsChild, jboolean jmakeParents, jboolean jignoreExternals,
+ jobject jrevpropTable, jobject jmessage, jobject jcallback)
 {
   JNIEntry(SVNClient, copy);
 
@@ -575,7 +508,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-JNIStringHolder message(jmessage);
+  CommitMessage message(jmessage);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -583,16 +516,17 @@ JNIStringHolder message(jmessage);
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->copy(copySources, destPath, message, jcopyAsChild ? true : false,
+  CommitCallback callback(jcallback);
+  cl->copy(copySources, destPath, &message, jcopyAsChild ? true : false,
            jmakeParents ? true : false, jignoreExternals ? true : false,
-           revprops);
+           revprops, jcallback ? &callback : NULL);
 }
 
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_move
 (JNIEnv *env, jobject jthis, jobject jsrcPaths, jstring jdestPath,
- jstring jmessage, jboolean jforce, jboolean jmoveAsChild,
- jboolean jmakeParents, jobject jrevpropTable)
+ jboolean jforce, jboolean jmoveAsChild, jboolean jmakeParents,
+ jobject jrevpropTable, jobject jmessage, jobject jcallback)
 {
   JNIEntry(SVNClient, move);
 
@@ -609,7 +543,8 @@ Java_org_apache_subversion_javahl_SVNCli
   JNIStringHolder destPath(jdestPath);
   if (JNIUtil::isExceptionThrown())
     return;
-  JNIStringHolder message(jmessage);
+
+  CommitMessage message(jmessage);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -617,15 +552,16 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->move(srcPaths, destPath, message, jforce ? true : false,
+  CommitCallback callback(jcallback);
+  cl->move(srcPaths, destPath, &message, jforce ? true : false,
            jmoveAsChild ? true : false, jmakeParents ? true : false,
-           revprops);
+           revprops, jcallback ? &callback : NULL);
 }
 
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_mkdir
-(JNIEnv *env, jobject jthis, jobject jtargets, jstring jmessage,
- jboolean jmakeParents, jobject jrevpropTable)
+(JNIEnv *env, jobject jthis, jobject jtargets, jboolean jmakeParents,
+ jobject jrevpropTable, jobject jmessage, jobject jcallback)
 {
   JNIEntry(SVNClient, mkdir);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -636,7 +572,10 @@ Java_org_apache_subversion_javahl_SVNCli
     }
   StringArray targetsArr(jtargets);
   Targets targets(targetsArr);
-  JNIStringHolder message(jmessage);
+  if (JNIUtil::isExceptionThrown())
+    return;
+
+  CommitMessage message(jmessage);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -644,7 +583,9 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->mkdir(targets, message, jmakeParents ? true : false, revprops);
+  CommitCallback callback(jcallback);
+  cl->mkdir(targets, &message, jmakeParents ? true : false, revprops,
+            jcallback ? &callback : NULL);
 }
 
 JNIEXPORT void JNICALL
@@ -760,9 +701,9 @@ Java_org_apache_subversion_javahl_SVNCli
 
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_doImport
-(JNIEnv *env, jobject jthis, jstring jpath, jstring jurl, jstring jmessage,
- jobject jdepth, jboolean jnoIgnore, jboolean jignoreUnknownNodeTypes,
- jobject jrevpropTable)
+(JNIEnv *env, jobject jthis, jstring jpath, jstring jurl, jobject jdepth,
+ jboolean jnoIgnore, jboolean jignoreUnknownNodeTypes, jobject jrevpropTable,
+ jobject jmessage, jobject jcallback)
 {
   JNIEntry(SVNClient, doImport);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -779,7 +720,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  JNIStringHolder message(jmessage);
+  CommitMessage message(jmessage);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -787,9 +728,11 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->doImport(path, url, message, EnumMapper::toDepth(jdepth),
+  CommitCallback callback(jcallback);
+  cl->doImport(path, url, &message, EnumMapper::toDepth(jdepth),
                jnoIgnore ? true : false,
-               jignoreUnknownNodeTypes ? true : false, revprops);
+               jignoreUnknownNodeTypes ? true : false, revprops,
+               jcallback ? &callback : NULL);
 }
 
 JNIEXPORT jobject JNICALL
@@ -971,7 +914,8 @@ Java_org_apache_subversion_javahl_SVNCli
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_propertySet
 (JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jstring jvalue,
- jobject jdepth, jobject jchangelists, jboolean jforce, jobject jrevpropTable)
+ jobject jdepth, jobject jchangelists, jboolean jforce, jobject jrevpropTable,
+ jobject jcallback)
 {
   JNIEntry(SVNClient, propertySet);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1000,8 +944,9 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
+  CommitCallback callback(jcallback);
   cl->propertySet(path, name, value, EnumMapper::toDepth(jdepth), changelists,
-                  jforce ? true:false, revprops);
+                  jforce ? true:false, revprops, jcallback ? &callback : NULL);
 }
 
 JNIEXPORT jbyteArray JNICALL
@@ -1576,7 +1521,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->setConfigDirectory(configDir);
+  cl->getClientContext().setConfigDirectory(configDir);
 }
 
 JNIEXPORT jstring JNICALL
@@ -1591,7 +1536,7 @@ Java_org_apache_subversion_javahl_SVNCli
       return NULL;
     }
 
-  const char *configDir = cl->getConfigDirectory();
+  const char *configDir = cl->getClientContext().getConfigDirectory();
   return JNIUtil::makeJString(configDir);
 }
 
@@ -1606,7 +1551,7 @@ Java_org_apache_subversion_javahl_SVNCli
       JNIUtil::throwError("bad C++ this");
       return;
     }
-  cl->cancelOperation();
+  cl->getClientContext().cancelOperation();
 }
 
 JNIEXPORT void JNICALL

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java Wed Sep 15 19:32:26 2010
@@ -43,7 +43,7 @@ public class ChangePath implements java.
      * @param nodeKind          the kind of the changed path
      */
     public ChangePath(String path, long copySrcRevision, String copySrcPath,
-               char action, NodeKind nodeKind, Tristate textMods,
+               Action action, NodeKind nodeKind, Tristate textMods,
                Tristate propMods)
     {
         this.path = path;
@@ -65,7 +65,7 @@ public class ChangePath implements java.
     private String copySrcPath;
 
     /** 'A'dd, 'D'elete, 'R'eplace, 'M'odify */
-    private char action;
+    private Action action;
 
     /** The kind of the changed path. */
     private NodeKind nodeKind;
@@ -107,7 +107,7 @@ public class ChangePath implements java.
      * Retrieve action performed
      * @return  action performed
      */
-    public char getAction()
+    public Action getAction()
     {
         return action;
     }
@@ -138,4 +138,22 @@ public class ChangePath implements java.
     {
         return propMods;
     }
+
+    /**
+     * Actions which may have occurred to this path.
+     */
+    public enum Action
+    {
+        /** Path was added. */
+        add,
+
+        /** Path was deleted. */
+        delete,
+
+        /** Path was replaced. */
+        replace,
+
+        /** Path was modified. */
+        modify;
+    }
 }

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Wed Sep 15 19:32:26 2010
@@ -25,10 +25,11 @@ package org.apache.subversion.javahl;
 
 import java.util.Map;
 import java.util.EventObject;
+import org.apache.subversion.javahl.callback.ClientNotifyCallback;
 
 /**
- * The event passed to the {@link Notify2#onNotify(NotifyInformation)}
- * API to notify {@link SVNClientInterface} of relevant events.
+ * The event passed to the {@link ClientNotifyCallback#onNotify}
+ * API to notify {@link ISVNClient} of relevant events.
  *
  * @since 1.2
  */
@@ -44,7 +45,7 @@ public class ClientNotifyInformation ext
     private static final long serialVersionUID = 1L;
 
     /**
-     * The {@link NotifyAction} which triggered this event.
+     * The {@link Action} which triggered this event.
      */
     private Action action;
 
@@ -69,12 +70,12 @@ public class ClientNotifyInformation ext
     private String errMsg;
 
     /**
-     * The {@link NotifyStatus} of the content of the item.
+     * The {@link Status} of the content of the item.
      */
     private Status contentState;
 
     /**
-     * The {@link NotifyStatus} of the properties of the item.
+     * The {@link Status} of the properties of the item.
      */
     private Status propState;
 
@@ -128,14 +129,14 @@ public class ClientNotifyInformation ext
      * This constructor is to be used by the native code.
      *
      * @param path The path of the item, which is the source of the event.
-     * @param action The {@link NotifyAction} which triggered this event.
+     * @param action The {@link Action} which triggered this event.
      * @param kind The {@link NodeKind} of the item.
      * @param mimeType The MIME type of the item.
      * @param lock Any lock for the item.
      * @param errMsg Any error message for the item.
-     * @param contentState The {@link NotifyStatus} of the content of
+     * @param contentState The {@link Status} of the content of
      * the item.
-     * @param propState The {@link NotifyStatus} of the properties of
+     * @param propState The {@link Status} of the properties of
      * the item.
      * @param lockState The {@link LockStatus} of the lock of the item.
      * @param revision The revision of the item.
@@ -187,7 +188,7 @@ public class ClientNotifyInformation ext
     }
 
     /**
-     * @return The {@link NotifyAction} which triggered this event.
+     * @return The {@link Action} which triggered this event.
      */
     public Action getAction()
     {
@@ -227,7 +228,7 @@ public class ClientNotifyInformation ext
     }
 
     /**
-     * @return The {@link NotifyStatus} of the content of the item.
+     * @return The {@link Status} of the content of the item.
      */
     public Status getContentState()
     {
@@ -235,7 +236,7 @@ public class ClientNotifyInformation ext
     }
 
     /**
-     * @return The {@link NotifyStatus} of the properties of the item.
+     * @return The {@link Status} of the properties of the item.
      */
     public Status getPropState()
     {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java Wed Sep 15 19:32:26 2010
@@ -24,11 +24,11 @@
 package org.apache.subversion.javahl;
 
 import java.util.EventObject;
+import org.apache.subversion.javahl.callback.DiffSummaryCallback;
 
 /**
- * The event passed to the {@link
- * DiffSummaryReceiver#onSummary(DiffSummary)} API in response to path
- * differences reported by {@link SVNClientInterface#diffSummarize}.
+ * The event passed to the {@link DiffSummaryCallback#onSummary} API
+ * in response to path differences reported by {@link ISVNClient#diffSummarize}.
  *
  * @since 1.5
  */

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java Wed Sep 15 19:32:26 2010
@@ -26,7 +26,7 @@ package org.apache.subversion.javahl;
 import java.util.Date;
 
 /**
- * A general subversion directory entry. Used for SVNClientInterface.list
+ * A general subversion directory entry. Used for {@link ISVNClient#list}.
  */
 public class DirEntry implements java.io.Serializable
 {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Wed Sep 15 19:32:26 2010
@@ -198,15 +198,6 @@ public interface ISVNClient
     void setProgressCallback(ProgressCallback listener);
 
     /**
-     * Sets the commit message handler. This allows more complex commit message
-     * with the list of the elements to be commited as input.
-     * @param messageHandler    callback for entering commit messages
-     *                          if this is set the message parameter is ignored.
-     * @since 1.0
-     */
-    void commitMessageHandler(CommitMessage messageHandler);
-
-    /**
      * Sets a file for deletion.
      * @param path      path or url to be deleted
      * @param message   if path is a url, this will be the commit message.
@@ -218,8 +209,9 @@ public interface ISVNClient
      * @throws ClientException
      * @since 1.5
      */
-    void remove(Set<String> path, String message, boolean force,
-                boolean keepLocal, Map<String, String> revpropTable)
+    void remove(Set<String> path, boolean force, boolean keepLocal,
+                Map<String, String> revpropTable, CommitMessageCallback handler,
+                CommitCallback callback)
             throws ClientException;
 
     /**
@@ -284,10 +276,10 @@ public interface ISVNClient
      * @throws ClientException
      * @since 1.5
      */
-    long commit(Set<String> path, String message, Depth depth,
-                boolean noUnlock, boolean keepChangelist,
-                Collection<String> changelists,
-                Map<String, String> revpropTable)
+    void commit(Set<String> path, Depth depth, boolean noUnlock,
+                boolean keepChangelist, Collection<String> changelists,
+                Map<String, String> revpropTable, CommitMessageCallback handler,
+                CommitCallback callback)
             throws ClientException;
 
     /**
@@ -308,9 +300,10 @@ public interface ISVNClient
      * @throws ClientException If the copy operation fails.
      * @since 1.7
      */
-    void copy(List<CopySource> sources, String destPath, String message,
+    void copy(List<CopySource> sources, String destPath,
               boolean copyAsChild, boolean makeParents,
-              boolean ignoreExternals, Map<String, String> revpropTable)
+              boolean ignoreExternals, Map<String, String> revpropTable,
+              CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -331,9 +324,10 @@ public interface ISVNClient
      * @throws ClientException If the move operation fails.
      * @since 1.5
      */
-    void move(Set<String> srcPaths, String destPath, String message,
-              boolean force, boolean moveAsChild, boolean makeParents,
-              Map<String, String> revpropTable)
+    void move(Set<String> srcPaths, String destPath, boolean force,
+              boolean moveAsChild, boolean makeParents,
+              Map<String, String> revpropTable,
+              CommitMessageCallback handler, CommitCallback callback)
         throws ClientException;
 
     /**
@@ -348,8 +342,9 @@ public interface ISVNClient
      * @throws ClientException
      * @since 1.5
      */
-    void mkdir(Set<String> path, String message, boolean makeParents,
-               Map<String, String> revpropTable)
+    void mkdir(Set<String> path, boolean makeParents,
+               Map<String, String> revpropTable,
+               CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -429,9 +424,10 @@ public interface ISVNClient
      *
      * @since 1.5
      */
-    void doImport(String path, String url, String message, Depth depth,
+    void doImport(String path, String url, Depth depth,
                   boolean noIgnore, boolean ignoreUnknownNodeTypes,
-                  Map<String, String> revpropTable)
+                  Map<String, String> revpropTable,
+                  CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -620,11 +616,11 @@ public interface ISVNClient
      *
      * @param target Path or URL.
      * @param pegRevision Revision at which to interpret
-     * <code>target</code>.  If {@link RevisionKind#unspecified} or
+     * <code>target</code>.  If {@link Revision.Kind#unspecified} or
      * <code>null</code>, behave identically to {@link
-     * #diffSummarize(String, Revision, String, Revision, int,
-     * boolean, DiffSummaryCallback)}, using <code>path</code> for
-     * both of that method's targets.
+     * #diffSummarize(String, Revision, String, Revision, Depth,
+     * Collection, boolean, DiffSummaryCallback)}, using
+     * <code>path</code> for both of that method's targets.
      * @param startRevision Beginning of range for comparsion of
      * <code>target</code>.
      * @param endRevision End of range for comparsion of
@@ -682,7 +678,7 @@ public interface ISVNClient
      */
     void propertySet(String path, String name, String value, Depth depth,
                      Collection<String> changelists, boolean force,
-                     Map<String, String> revpropTable)
+                     Map<String, String> revpropTable, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -695,7 +691,7 @@ public interface ISVNClient
      * @since 1.5
      */
     void propertyRemove(String path, String name, Depth depth,
-                        Collection<String> changelists)
+                        Collection<String> changelists, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -711,7 +707,8 @@ public interface ISVNClient
      * @since 1.5
      */
     void propertyCreate(String path, String name, String value, Depth depth,
-                        Collection<String> changelists, boolean force)
+                        Collection<String> changelists, boolean force,
+                        CommitCallback callback)
             throws ClientException;
 
     /**

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/Info2.java Wed Sep 15 19:32:26 2010
@@ -26,7 +26,7 @@ package org.apache.subversion.javahl;
 import java.util.Date;
 
 /**
- * this class is returned by SVNClientInterface.info2 and contains information
+ * this class is returned by {@link ISVNClient#info2} and contains information
  * about items in the repository or working copy
  * @since 1.2
  */

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java Wed Sep 15 19:32:26 2010
@@ -23,10 +23,11 @@
 
 package org.apache.subversion.javahl;
 
+import org.apache.subversion.javahl.callback.ProgressCallback;
+
 /**
- * The event passed to the {@link
- * ProgressListener#onProgress(ProgressEvent)} API to inform {@link
- * SVNClientInterface} of command progress (in terms of bytes).
+ * The event passed to the {@link ProgressCallback#onProgress} API to inform
+ * {@link ISVNClient} of command progress (in terms of bytes).
  *
  * @since 1.5
  */

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java Wed Sep 15 19:32:26 2010
@@ -24,10 +24,11 @@
 package org.apache.subversion.javahl;
 
 import java.util.EventObject;
+import org.apache.subversion.javahl.callback.ReposNotifyCallback;
 
 /**
- * The event passed to the {@link Notify2#onNotify(NotifyInformation)}
- * API to notify {@link SVNClientInterface} of relevant events.
+ * The event passed to the {@link ReposNotifyCallback#onNotify}
+ * API to notify {@link ISVNClient} of relevant events.
  *
  * @since 1.2
  */
@@ -43,7 +44,7 @@ public class ReposNotifyInformation exte
     private static final long serialVersionUID = 1L;
 
     /**
-     * The {@link NotifyAction} which triggered this event.
+     * The {@link Action} which triggered this event.
      */
     private Action action;
 
@@ -70,7 +71,7 @@ public class ReposNotifyInformation exte
     /**
      * This constructor is to be used by the native code.
      *
-     * @param action The {@link NotifyAction} which triggered this event.
+     * @param action The {@link Action} which triggered this event.
      * @param revision potentially the revision.
      */
     public ReposNotifyInformation(Action action, long revision, String warning,
@@ -90,7 +91,7 @@ public class ReposNotifyInformation exte
     }
 
     /**
-     * @return The {@link NotifyAction} which triggered this event.
+     * @return The {@link Action} which triggered this event.
      */
     public Action getAction()
     {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Wed Sep 15 19:32:26 2010
@@ -65,9 +65,7 @@ public class SVNClient implements ISVNCl
         }
     }
 
-    /** Don't call this function!  Public fucntion for backward compat reasons
-      */
-    public long getCppAddr()
+    private long getCppAddr()
     {
         return cppAddr;
     }
@@ -94,6 +92,8 @@ public class SVNClient implements ISVNCl
      */
     protected long cppAddr;
 
+    private ClientContext clientContext = new ClientContext();
+
     /**
      * @since 1.0
      */
@@ -174,29 +174,34 @@ public class SVNClient implements ISVNCl
     /**
      * @since 1.2
      */
-    public native void notification2(ClientNotifyCallback notify);
+    public void notification2(ClientNotifyCallback notify)
+    {
+        clientContext.notify = notify;
+    }
 
     /**
      * @since 1.5
      */
-    public native void setConflictResolver(ConflictResolverCallback listener);
+    public void setConflictResolver(ConflictResolverCallback listener)
+    {
+        clientContext.resolver = listener;
+    }
 
     /**
      * @since 1.5
      */
-    public native void setProgressCallback(ProgressCallback listener);
-
-    /**
-     * @since 1.0
-     */
-    public native void commitMessageHandler(CommitMessage messageHandler);
+    public void setProgressCallback(ProgressCallback listener)
+    {
+        clientContext.listener = listener;
+    }
 
     /**
      * @since 1.5
      */
-    public native void remove(Set<String> paths, String message, boolean force,
+    public native void remove(Set<String> paths, boolean force,
                               boolean keepLocal,
-                              Map<String, String> revpropTable)
+                              Map<String, String> revpropTable,
+                              CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -225,36 +230,39 @@ public class SVNClient implements ISVNCl
     /**
      * @since 1.5
      */
-    public native long commit(Set<String> paths, String message, Depth depth,
-                              boolean noUnlock, boolean keepChangelist,
+    public native void commit(Set<String> paths, Depth depth, boolean noUnlock,
+                              boolean keepChangelist,
                               Collection<String> changelists,
-                              Map<String, String> revpropTable)
+                              Map<String, String> revpropTable,
+                              CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
      * @since 1.7
      */
     public native void copy(List<CopySource> sources, String destPath,
-                            String message, boolean copyAsChild,
-                            boolean makeParents, boolean ignoreExternals,
-                            Map<String, String> revpropTable)
+                            boolean copyAsChild, boolean makeParents,
+                            boolean ignoreExternals,
+                            Map<String, String> revpropTable,
+                            CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
      * @since 1.5
      */
     public native void move(Set<String> srcPaths, String destPath,
-                            String message, boolean force, boolean moveAsChild,
+                            boolean force, boolean moveAsChild,
                             boolean makeParents,
-                            Map<String, String> revpropTable)
+                            Map<String, String> revpropTable,
+                            CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void mkdir(Set<String> paths, String message,
-                             boolean makeParents,
-                             Map<String, String> revpropTable)
+    public native void mkdir(Set<String> paths, boolean makeParents,
+                             Map<String, String> revpropTable,
+                             CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -291,10 +299,11 @@ public class SVNClient implements ISVNCl
     /**
      * @since 1.5
      */
-    public native void doImport(String path, String url, String message,
-                                Depth depth, boolean noIgnore,
+    public native void doImport(String path, String url, Depth depth,
+                                boolean noIgnore,
                                 boolean ignoreUnknownNodeTypes,
-                                Map<String, String> revpropTable)
+                                Map<String, String> revpropTable,
+                                CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
     /**
@@ -406,17 +415,20 @@ public class SVNClient implements ISVNCl
     public native void propertySet(String path, String name, String value,
                                    Depth depth, Collection<String> changelists,
                                    boolean force,
-                                   Map<String, String> revpropTable)
+                                   Map<String, String> revpropTable,
+                                   CommitCallback callback)
             throws ClientException;
 
     /**
      * @since 1.5
      */
     public void propertyRemove(String path, String name, Depth depth,
-                               Collection<String> changelists)
+                               Collection<String> changelists,
+                               CommitCallback callback)
             throws ClientException
     {
-        propertySet(path, name, null, depth, changelists, false, null);
+        propertySet(path, name, null, depth, changelists, false, null,
+                    callback);
     }
 
     /**
@@ -424,10 +436,11 @@ public class SVNClient implements ISVNCl
      */
     public void propertyCreate(String path, String name, String value,
                                Depth depth, Collection<String> changelists,
-                               boolean force)
+                               boolean force, CommitCallback callback)
             throws ClientException
     {
-        propertySet(path, name, value, depth, changelists, force, null);
+        propertySet(path, name, value, depth, changelists, force, null,
+                    callback);
     }
 
     /**
@@ -627,4 +640,38 @@ public class SVNClient implements ISVNCl
                              PatchCallback callback)
             throws ClientException;
 
+    /**
+     * A private class to hold the contextual information required to
+     * persist in this object, such as notification handlers.
+     */
+    private class ClientContext
+        implements ClientNotifyCallback, ProgressCallback,
+            ConflictResolverCallback
+    {
+        public ClientNotifyCallback notify = null;
+        public ProgressCallback listener = null;
+        public ConflictResolverCallback resolver = null;
+
+        public void onNotify(ClientNotifyInformation notifyInfo)
+        {
+            if (notify != null)
+                notify.onNotify(notifyInfo);
+        }
+
+        public void onProgress(ProgressEvent event)
+        {
+            if (listener != null)
+                listener.onProgress(event);
+        }
+
+        public ConflictResult resolve(ConflictDescriptor conflict)
+            throws SubversionException
+        {
+            if (resolver != null)
+                return resolver.resolve(conflict);
+            else
+                return new ConflictResult(ConflictResult.Choice.postpone,
+                                          null);
+        }
+    }
 }

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java Wed Sep 15 19:32:26 2010
@@ -26,10 +26,11 @@ package org.apache.subversion.javahl.cal
 import org.apache.subversion.javahl.ClientException;
 
 import java.util.Map;
+import org.apache.subversion.javahl.ISVNClient;
 
 /**
  * This interface is used to receive every single line for a file on a
- * the SVNClientInterface.blame call.
+ * the {@link ISVNClient#blame} call.
  *
  * @since 1.7
  */
@@ -37,7 +38,7 @@ public interface BlameCallback
 {
     /**
      * the method will be called for every line in a file.
-     * @param line              the line number for this line
+     * @param lineNum           the line number for this line
      * @param revision          the revision of the last change.
      * @param revProps          the revision properties for this revision.
      * @param mergedRevision    the revision of the last merged change.

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java Wed Sep 15 19:32:26 2010
@@ -23,9 +23,11 @@
 
 package org.apache.subversion.javahl.callback;
 
+import org.apache.subversion.javahl.ISVNClient;
+
 /**
  * This interface is used to receive every status item for
- * the SVNClientInterface.status call.
+ * the {@link ISVNClient#status} call.
  */
 public interface ChangelistCallback
 {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java Wed Sep 15 19:32:26 2010
@@ -24,6 +24,7 @@
 package org.apache.subversion.javahl.callback;
 
 import org.apache.subversion.javahl.DiffSummary;
+import org.apache.subversion.javahl.ISVNClient;
 
 /**
  * Subversion diff summarization interface.  An implementation which
@@ -45,7 +46,7 @@ public interface DiffSummaryCallback
 {
     /**
      * Implement this interface to receive diff summaries from the
-     * {@link SVNClientInterface#diffSummarize} API.
+     * {@link ISVNClient#diffSummarize} API.
      *
      * @param descriptor A summary of the diff.
      */

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java Wed Sep 15 19:32:26 2010
@@ -24,10 +24,11 @@
 package org.apache.subversion.javahl.callback;
 
 import org.apache.subversion.javahl.Info2;
+import org.apache.subversion.javahl.ISVNClient;
 
 /**
  * This interface is used to retrieve info each result in a
- * SVNClientInterface.info2 call.
+ * {@link ISVNClient#info2} call.
  */
 public interface InfoCallback
 {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java Wed Sep 15 19:32:26 2010
@@ -25,10 +25,11 @@ package org.apache.subversion.javahl.cal
 
 import org.apache.subversion.javahl.Lock;
 import org.apache.subversion.javahl.DirEntry;
+import org.apache.subversion.javahl.ISVNClient;
 
 /**
  * This interface is used to receive every single line for a file on a
- * the SVNClientInterface.blame call.
+ * the {@link ISVNClient#blame} call.
  */
 public interface ListCallback
 {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java Wed Sep 15 19:32:26 2010
@@ -24,18 +24,19 @@
 package org.apache.subversion.javahl.callback;
 
 import org.apache.subversion.javahl.ChangePath;
+import org.apache.subversion.javahl.ISVNClient;
 
 import java.util.Map;
 import java.util.Set;
 
 /**
  * This interface is used to receive every log message for the log
- * messages found by a SVNClientInterface.logMessages call.
+ * messages found by a {@link ISVNClient#logMessages} call.
  *
  * All log messages are returned in a list, which is terminated by an
  * invocation of this callback with the revision set to SVN_INVALID_REVNUM.
  *
- * If the includeMergedRevisions parameter to SVNClientInterface.logMessages
+ * If the includeMergedRevisions parameter to {@link ISVNClient#logMessages}
  * is true, then messages returned through this callback may have the
  * hasChildren parameter set.  This parameter indicates that a separate list,
  * which includes messages for merged revisions, will immediately follow.

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java Wed Sep 15 19:32:26 2010
@@ -23,16 +23,19 @@
 
 package org.apache.subversion.javahl.callback;
 
+import org.apache.subversion.javahl.ISVNClient;
+
 /**
  * This interface is invoked before each patch in a
- * SVNClientInterface.patch call.
+ * {@link ISVNClient#patch} call.
  */
 public interface PatchCallback
 {
     /**
-     * the method will be called for every line in a file.
-     * @param path        the path.
-     * @param properties  the properties on the path.
+     * the method will be called for every patch.
+     * @param pathFromPatchfile        the path in the path file
+     * @param patchPath                the path of the patch
+     * @param rejectPath               the path of the reject file
      * @return            return TRUE to filter out the prospective patch
      */
     public boolean singlePatch(String pathFromPatchfile, String patchPath,

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java Wed Sep 15 19:32:26 2010
@@ -24,10 +24,11 @@
 package org.apache.subversion.javahl.callback;
 
 import java.util.Map;
+import org.apache.subversion.javahl.ISVNClient;
 
 /**
  * This interface is used to property lists for each path in a
- * SVNClientInterface.properties call.
+ * {@link ISVNClient#properties} call.
  */
 public interface ProplistCallback
 {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java Wed Sep 15 19:32:26 2010
@@ -24,10 +24,11 @@
 package org.apache.subversion.javahl.callback;
 
 import org.apache.subversion.javahl.Status;
+import org.apache.subversion.javahl.ISVNClient;
 
 /**
  * This interface is used to receive every status item for
- * the SVNClientInterface.status call.
+ * the {@link ISVNClient#status} call.
  */
 public interface StatusCallback
 {

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java Wed Sep 15 19:32:26 2010
@@ -24,9 +24,13 @@
 package org.apache.subversion.javahl.callback;
 
 /**
- * The original interface for receiving callbacks for authentication.
- * Consider this code deprecated -- new applications should use
- * PromptUserPassword3 instead.
+ * <p>The interface for requesting authentication credentials from the
+ * user.  Should the javahl bindings need the matching information,
+ * these methodes will be called.</p>
+ *
+ * <p>This callback can also be used to provide the equivalent of the
+ * <code>--no-auth-cache</code> and <code>--non-interactive</code>
+ * arguments accepted by the command-line client.</p>
  */
 public interface UserPasswordCallback
 {
@@ -41,12 +45,6 @@ public interface UserPasswordCallback
     public static final int AcceptTemporary = 1;
 
     /**
-     * @deprecated Use the correctly spelled "AcceptTemporary"
-     * constant instead.
-     */
-    public static final int AccecptTemporary = AcceptTemporary;
-
-    /**
      * Accept the connection to the server <i>forever</i>.
      */
     public static final int AcceptPermanently = 2;
@@ -106,4 +104,52 @@ public interface UserPasswordCallback
      * @return the password
      */
     public String getPassword();
+
+    /**
+     * Request a user name and password from the user, and (usually)
+     * store the auth credential caching preference specified by
+     * <code>maySave</code> (used by {@link #userAllowedSave()}).
+     * Applications wanting to emulate the behavior of
+     * <code>--non-interactive</code> will implement this method in a
+     * manner which does not require user interaction (e.g. a no-op
+     * which assumes pre-cached auth credentials).
+     *
+     * @param realm The realm from which the question originates.
+     * @param username The name of the user in <code>realm</code>.
+     * @param maySave Whether caching of credentials is allowed.
+     * Usually affects the return value of the {@link
+     * #userAllowedSave()} method.
+     * @return Whether the prompt for authentication credentials was
+     * successful (e.g. in a GUI application whether the dialog box
+     * was canceled).
+     */
+    public boolean prompt(String realm, String username, boolean maySave);
+
+    /**
+     * Ask the user a question, and (usually) store the auth
+     * credential caching preference specified by <code>maySave</code>
+     * (used by {@link #userAllowedSave()}).  Applications wanting to
+     * emulate the behavior of <code>--non-interactive</code> will
+     * implement this method in a manner which does not require user
+     * interaction (e.g. a no-op).
+     *
+     * @param realm The realm from which the question originates.
+     * @param question The text of the question.
+     * @param showAnswer Whether the answer may be displayed.
+     * @param maySave Whether caching of credentials is allowed.
+     * Usually affects the return value of the {@link
+     * #userAllowedSave()} method.
+     * @return              answer as entered or null if canceled
+     */
+    public String askQuestion(String realm, String question,
+                              boolean showAnswer, boolean maySave);
+
+    /**
+     * @return Whether the caller allowed caching of credentials the
+     * last time {@link #prompt(String, String, boolean)} was called.
+     * Applications wanting to emulate the behavior of
+     * <code>--no-auth-cache</code> will probably always return
+     * <code>false</code>.
+     */
+    public boolean userAllowedSave();
 }

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java Wed Sep 15 19:32:26 2010
@@ -58,7 +58,12 @@ public class ChangePath implements java.
     public ChangePath(org.apache.subversion.javahl.ChangePath aChangePath)
     {
         this(aChangePath.getPath(), aChangePath.getCopySrcRevision(),
-             aChangePath.getCopySrcPath(), aChangePath.getAction(),
+             aChangePath.getCopySrcPath(),
+              ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.add) ? 'A' :
+              ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.delete) ? 'D' :
+              ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.replace) ? 'R' :
+              ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.modify) ? 'M' :
+                ' ')))),
              NodeKind.fromApache(aChangePath.getNodeKind()));
     }
 

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java Wed Sep 15 19:32:26 2010
@@ -29,6 +29,51 @@ package org.tigris.subversion.javahl;
  * PromptUserPassword3 instead.
  */
 public interface PromptUserPassword
-    extends org.apache.subversion.javahl.callback.UserPasswordCallback
 {
+    /**
+     * Ask the user for username and password
+     * The entered username/password is retrieved by the getUsername
+     * getPasswort methods.
+     *
+     * @param realm     for which server realm this information is requested.
+     * @param username  the default username
+     * @return Whether the prompt for authentication credentials was
+     * successful (e.g. in a GUI application whether the dialog box
+     * was canceled).
+     */
+    public boolean prompt(String realm, String username);
+
+    /**
+     * ask the user a yes/no question
+     * @param realm         for which server realm this information is
+     *                      requested.
+     * @param question      question to be asked
+     * @param yesIsDefault  if yes should be the default
+     * @return              the answer
+     */
+    public boolean askYesNo(String realm, String question,
+                            boolean yesIsDefault);
+
+    /**
+     * ask the user a question where she answers with a text.
+     * @param realm         for which server realm this information is
+     *                      requested.
+     * @param question      question to be asked
+     * @param showAnswer    if the answer is shown or hidden
+     * @return              the entered text or null if canceled
+     */
+    public String askQuestion(String realm, String question,
+                              boolean showAnswer);
+
+    /**
+     * retrieve the username entered during the prompt call
+     * @return the username
+     */
+    public String getUsername();
+
+    /**
+     * retrieve the password entered during the prompt call
+     * @return the password
+     */
+    public String getPassword();
 }

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java Wed Sep 15 19:32:26 2010
@@ -35,14 +35,14 @@ import java.io.IOException;
  */
 public class SVNAdmin
 {
-    private org.apache.subversion.javahl.SVNAdmin aSVNAdmin;
+    private org.apache.subversion.javahl.SVNRepos aSVNAdmin;
 
     /**
      * Standard empty contructor, builds just the native peer.
      */
     public SVNAdmin()
     {
-        aSVNAdmin = new org.apache.subversion.javahl.SVNAdmin();
+        aSVNAdmin = new org.apache.subversion.javahl.SVNRepos();
         cppAddr = aSVNAdmin.getCppAddr();
     }
 
@@ -244,7 +244,7 @@ public class SVNAdmin
      * interface to receive the messages
      */
     public static interface MessageReceiver
-        extends org.apache.subversion.javahl.SVNAdmin.MessageReceiver
+        extends org.apache.subversion.javahl.ISVNRepos.MessageReceiver
     {
     }
 
@@ -460,7 +460,9 @@ public class SVNAdmin
         {
             Set<org.apache.subversion.javahl.Lock> aLocks =
                                                     aSVNAdmin.lslocks(
-                                                        new File(path));
+                                                        new File(path),
+                                                        Depth.toADepth(
+                                                              Depth.infinity));
             Lock[] locks = new Lock[aLocks.size()];
 
             int i = 0;

Modified: subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/py-tests-as-modules/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java Wed Sep 15 19:32:26 2010
@@ -52,7 +52,9 @@ public class SVNClient implements SVNCli
     public SVNClient()
     {
         aSVNClient = new org.apache.subversion.javahl.SVNClient();
-        cppAddr = aSVNClient.getCppAddr();
+        /* This is a bogus value, there really shouldn't be any reason
+           for a user of this class to care.  You've been warned. */
+        cppAddr = 0xdeadbeef;
     }
 
      /**
@@ -313,12 +315,71 @@ public class SVNClient implements SVNCli
         aSVNClient.password(password);
     }
 
+    private class PromptUser1Wrapper
+        implements org.apache.subversion.javahl.callback.UserPasswordCallback
+    {
+        PromptUserPassword oldPrompt;
+
+        PromptUser1Wrapper(PromptUserPassword prompt)
+        {
+            oldPrompt = prompt;
+        }
+
+        public String getPassword()
+        {
+            return oldPrompt.getPassword();
+        }
+
+        public String getUsername()
+        {
+            return oldPrompt.getUsername();
+        }
+
+        public String askQuestion(String realm, String question,
+                                  boolean showAnswer)
+        {
+            return oldPrompt.askQuestion(realm, question, showAnswer);
+        }
+
+        public boolean askYesNo(String realm, String question,
+                                boolean yesIsDefault)
+        {
+            return oldPrompt.askYesNo(realm, question, yesIsDefault);
+        }
+
+        public boolean prompt(String realm, String username)
+        {
+            return oldPrompt.prompt(realm, username);
+        }
+
+        public int askTrustSSLServer(String info, boolean allowPermanently)
+        {
+            return askTrustSSLServer(info, allowPermanently);
+        }
+
+        public boolean userAllowedSave()
+        {
+            return false;
+        }
+
+        public String askQuestion(String realm, String question,
+                                  boolean showAnswer, boolean maySave)
+        {
+            return askQuestion(realm, question, showAnswer);
+        }
+
+        public boolean prompt(String realm, String username, boolean maySave)
+        {
+            return prompt(realm, username);
+        }
+    }
+
     /**
      * @since 1.0
      */
     public void setPrompt(PromptUserPassword prompt)
     {
-        aSVNClient.setPrompt(prompt);
+        aSVNClient.setPrompt(new PromptUser1Wrapper(prompt));
     }
 
     /**
@@ -657,11 +718,18 @@ public class SVNClient implements SVNCli
     /**
      * @since 1.0
      */
-    public void commitMessageHandler(final CommitMessage messageHandler)
+    public void commitMessageHandler(CommitMessage messageHandler)
     {
         class MyCommitMessageHandler
-            implements org.apache.subversion.javahl.CommitMessage
+            implements org.apache.subversion.javahl.callback.CommitMessageCallback
         {
+            private CommitMessage messageHandler;
+
+            public MyCommitMessageHandler(CommitMessage messageHandler)
+            {
+                this.messageHandler = messageHandler;
+            }
+
             public String getLogMessage(
                 Set<org.apache.subversion.javahl.CommitItem> elementsToBeCommited)
             {
@@ -683,9 +751,11 @@ public class SVNClient implements SVNCli
             }
         }
 
-        aSVNClient.commitMessageHandler(new MyCommitMessageHandler());
+        cachedHandler = new MyCommitMessageHandler(messageHandler);
     }
 
+    private org.apache.subversion.javahl.callback.CommitMessageCallback cachedHandler = null;
+
     /**
      * @deprecated Use {@link #remove(String[], String, boolean, boolean, Map)}
      *             instead.
@@ -707,7 +777,10 @@ public class SVNClient implements SVNCli
         try
         {
             aSVNClient.remove(new HashSet<String>(Arrays.asList(paths)),
-                              message, force, keepLocal, revpropTable);
+                              force, keepLocal, revpropTable,
+                              message == null ? cachedHandler
+                                    : new ConstMsg(message),
+                              null);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -873,12 +946,23 @@ public class SVNClient implements SVNCli
     {
         try
         {
-            return aSVNClient.commit(new HashSet<String>(Arrays.asList(paths)),
-                                     message, Depth.toADepth(depth), noUnlock,
-                                     keepChangelist,
-                                     changelists == null ? null
-                                       : Arrays.asList(changelists),
-                                     revpropTable);
+            final long[] revList = { -1 };
+            org.apache.subversion.javahl.callback.CommitCallback callback =
+                new org.apache.subversion.javahl.callback.CommitCallback () {
+                    public void commitInfo(org.apache.subversion.javahl.CommitInfo info)
+                    { revList[0] = info.getRevision(); }
+                };
+
+            aSVNClient.commit(new HashSet<String>(Arrays.asList(paths)),
+                              Depth.toADepth(depth), noUnlock,
+                              keepChangelist,
+                              changelists == null ? null
+                                : Arrays.asList(changelists),
+                              revpropTable,
+                              message == null ? cachedHandler
+                                    : new ConstMsg(message),
+                              callback);
+            return revList[0];
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -905,8 +989,11 @@ public class SVNClient implements SVNCli
                 aCopySources.add(src.toApache());
             }
 
-            aSVNClient.copy(aCopySources, destPath, message, copyAsChild,
-                            makeParents, ignoreExternals, revpropTable);
+            aSVNClient.copy(aCopySources, destPath, copyAsChild,
+                            makeParents, ignoreExternals, revpropTable,
+                            message == null ? cachedHandler
+                                : new ConstMsg(message),
+                            null);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -953,8 +1040,11 @@ public class SVNClient implements SVNCli
         try
         {
             aSVNClient.move(new HashSet<String>(Arrays.asList(srcPaths)),
-                            destPath, message, force, moveAsChild,
-                            makeParents, revpropTable);
+                            destPath, force, moveAsChild, makeParents,
+                            revpropTable,
+                            message == null ? cachedHandler
+                                : new ConstMsg(message),
+                            null);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -998,7 +1088,10 @@ public class SVNClient implements SVNCli
         try
         {
             aSVNClient.mkdir(new HashSet<String>(Arrays.asList(paths)),
-                             message, makeParents, revpropTable);
+                             makeParents, revpropTable,
+                             message == null ? cachedHandler
+                                : new ConstMsg(message),
+                             null);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -1178,8 +1271,11 @@ public class SVNClient implements SVNCli
     {
         try
         {
-            aSVNClient.doImport(path, url, message, Depth.toADepth(depth),
-                                noIgnore, ignoreUnknownNodeTypes, revpropTable);
+            aSVNClient.doImport(path, url, Depth.toADepth(depth),
+                                noIgnore, ignoreUnknownNodeTypes, revpropTable,
+                                message == null ? cachedHandler
+                                    : new ConstMsg(message),
+                                null);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -1760,7 +1856,7 @@ public class SVNClient implements SVNCli
             aSVNClient.propertySet(path, name, value, Depth.toADepth(depth),
                                    changelists == null ? null
                                     : Arrays.asList(changelists),
-                                   force, revpropTable);
+                                   force, revpropTable, null);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -2531,4 +2627,21 @@ public class SVNClient implements SVNCli
             callback.onSummary(new DiffSummary(summary));
         }
     }
+
+    private class ConstMsg
+        implements org.apache.subversion.javahl.callback.CommitMessageCallback
+    {
+        private String message;
+
+        ConstMsg(String message)
+        {
+            this.message = message;
+        }
+
+        public String getLogMessage(
+                    Set<org.apache.subversion.javahl.CommitItem> items)
+        {
+            return message;
+        }
+    }
 }