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/06/17 20:20:27 UTC

svn commit: r955695 - in /subversion/trunk/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/ tests/org/apache/subversion/javahl/

Author: hwright
Date: Thu Jun 17 18:20:27 2010
New Revision: 955695

URL: http://svn.apache.org/viewvc?rev=955695&view=rev
Log:
JavaHL: Add the repository upgrade API to the Java API.

[ in subversion/bindings/javahl/ ]
* tests/org/apache/subversion/javahl/SVNAdminTests.java
  (testUpgrade): New.

* native/SVNAdmin.cpp,
  native/SVNAdmin.h
  (upgrade): New.

* native/org_apache_subversion_javahl_SVNAdmin.cpp
  (Java_org_apache_subversion_javahl_SVNAdmin_upgrade): New.

* src/org/apache/subversion/javahl/ISVNAdmin.java,
  src/org/apache/subversion/javahl/SVNAdmin.java
  (upgrade): New.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp
    subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h
    subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
    subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp?rev=955695&r1=955694&r2=955695&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp Thu Jun 17 18:20:27 2010
@@ -570,6 +570,25 @@ SVNAdmin::verify(File &path, Revision &r
                                    requestPool.pool()), );
 }
 
+void SVNAdmin::upgrade(File &path, ReposNotifyCallback *notifyCallback)
+{
+  SVN::Pool requestPool;
+
+  if (path.isNull())
+    {
+      JNIUtil::throwNullPointerException("path");
+      return;
+    }
+
+  SVN_JNI_ERR(svn_repos_upgrade2(path.getInternalStyle(requestPool), FALSE,
+                                 notifyCallback != NULL
+                                    ? ReposNotifyCallback::notify
+                                    : NULL,
+                                 notifyCallback,
+                                 requestPool.pool()),
+              );
+}
+
 jobject SVNAdmin::lslocks(File &path)
 {
   SVN::Pool requestPool;

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h?rev=955695&r1=955694&r2=955695&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h Thu Jun 17 18:20:27 2010
@@ -65,6 +65,7 @@ class SVNAdmin : public SVNBase
   void deltify(File &path, Revision &start, Revision &end);
   void create(File &path, bool ignoreUUID, bool forceUUID, File &configPath,
               const char *fstype);
+  void upgrade(File &path, ReposNotifyCallback *callback);
   SVNAdmin();
   virtual ~SVNAdmin();
   void dispose(jobject jthis);

Modified: subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp?rev=955695&r1=955694&r2=955695&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp Thu Jun 17 18:20:27 2010
@@ -446,3 +446,24 @@ Java_org_apache_subversion_javahl_SVNAdm
 
   cl->rmlocks(path, locks);
 }
+
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNAdmin_upgrade
+(JNIEnv *env, jobject jthis, jobject jpath, jobject jnotifyCallback)
+{
+  JNIEntry(SVNAdmin, rmlocks);
+  SVNAdmin *cl = SVNAdmin::getCppObject(jthis);
+  if (cl == NULL)
+    {
+      JNIUtil::throwError(_("bad C++ this"));
+      return;
+    }
+
+  File path(jpath);
+  if (JNIUtil::isExceptionThrown())
+    return;
+
+  ReposNotifyCallback callback(jnotifyCallback);
+
+  cl->upgrade(path, jnotifyCallback != NULL ? &callback : NULL);
+}

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java?rev=955695&r1=955694&r2=955695&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java Thu Jun 17 18:20:27 2010
@@ -221,4 +221,12 @@ public interface ISVNAdmin {
 	public abstract void rmlocks(File path, String[] locks)
 			throws ClientException;
 
+    /**
+     * upgrade the repository format
+     * @param path              the path to the repository
+     * @param callback          for notification
+	 * @throws ClientException  throw in case of problem
+     */
+    public abstract void upgrade(File path, ReposNotifyCallback callback)
+			throws ClientException;
 }

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java?rev=955695&r1=955694&r2=955695&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java Thu Jun 17 18:20:27 2010
@@ -231,4 +231,6 @@ public class SVNAdmin implements ISVNAdm
      */
     public native void rmlocks(File path, String[] locks)
             throws ClientException;
+
+    public native void upgrade(File path, ReposNotifyCallback callback);
 }

Modified: subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java?rev=955695&r1=955694&r2=955695&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java (original)
+++ subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java Thu Jun 17 18:20:27 2010
@@ -82,6 +82,14 @@ public class SVNAdminTests extends SVNTe
                      Revision.HEAD, null);
     }
 
+    /* This test only tests the call down to the C++ layer. */
+    public void testUpgrade()
+        throws SubversionException, IOException
+    {
+        OneTest thisTest = new OneTest(false);
+        admin.upgrade(thisTest.getRepository(), null);
+    }
+
     public void testLoadRepo()
         throws SubversionException, IOException
     {