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:42:54 UTC
svn commit: r955700 - in /subversion/trunk/subversion/bindings/javahl:
native/ src/org/apache/subversion/javahl/ tests/org/apache/subversion/javahl/
Author: hwright
Date: Thu Jun 17 18:42:54 2010
New Revision: 955700
URL: http://svn.apache.org/viewvc?rev=955700&view=rev
Log:
JavaHL: Add the repository pack API to the Java interface.
[ in subversion/bindings/javahl/ ]
* tests/org/apache/subversion/javahl/SVNAdminTests.java
(testPack): New.
* native/SVNAdmin.cpp,
native/SVNAdmin.h
(pack): New.
* native/org_apache_subversion_javahl_SVNAdmin.cpp
(Java_org_apache_subversion_javahl_SVNAdmin_pack): New.
* src/org/apache/subversion/javahl/ISVNAdmin.java,
src/org/apache/subversion/javahl/SVNAdmin.java
(pack): 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=955700&r1=955699&r2=955700&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp Thu Jun 17 18:42:54 2010
@@ -570,6 +570,30 @@ SVNAdmin::verify(File &path, Revision &r
requestPool.pool()), );
}
+void SVNAdmin::pack(File &path, ReposNotifyCallback *notifyCallback)
+{
+ SVN::Pool requestPool;
+ svn_repos_t *repos;
+
+ if (path.isNull())
+ {
+ JNIUtil::throwNullPointerException("path");
+ return;
+ }
+
+ SVN_JNI_ERR(svn_repos_open(&repos, path.getInternalStyle(requestPool),
+ requestPool.pool()), );
+
+ SVN_JNI_ERR(svn_repos_fs_pack2(repos,
+ notifyCallback != NULL
+ ? ReposNotifyCallback::notify
+ : NULL,
+ notifyCallback,
+ NULL, NULL,
+ requestPool.pool()),
+ );
+}
+
void SVNAdmin::upgrade(File &path, ReposNotifyCallback *notifyCallback)
{
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=955700&r1=955699&r2=955700&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h Thu Jun 17 18:42:54 2010
@@ -66,6 +66,7 @@ class SVNAdmin : public SVNBase
void create(File &path, bool ignoreUUID, bool forceUUID, File &configPath,
const char *fstype);
void upgrade(File &path, ReposNotifyCallback *callback);
+ void pack(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=955700&r1=955699&r2=955700&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:42:54 2010
@@ -467,3 +467,24 @@ Java_org_apache_subversion_javahl_SVNAdm
cl->upgrade(path, jnotifyCallback != NULL ? &callback : NULL);
}
+
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNAdmin_pack
+(JNIEnv *env, jobject jthis, jobject jpath, jobject jnotifyCallback)
+{
+ JNIEntry(SVNAdmin, pack);
+ 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->pack(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=955700&r1=955699&r2=955700&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:42:54 2010
@@ -229,4 +229,13 @@ public interface ISVNAdmin {
*/
public abstract void upgrade(File path, ReposNotifyCallback callback)
throws ClientException;
+
+ /**
+ * pack the repository
+ * @param path the path to the repository
+ * @param callback for notification
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void pack(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=955700&r1=955699&r2=955700&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:42:54 2010
@@ -233,4 +233,6 @@ public class SVNAdmin implements ISVNAdm
throws ClientException;
public native void upgrade(File path, ReposNotifyCallback callback);
+
+ public native void pack(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=955700&r1=955699&r2=955700&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:42:54 2010
@@ -90,6 +90,14 @@ public class SVNAdminTests extends SVNTe
admin.upgrade(thisTest.getRepository(), null);
}
+ /* This test only tests the call down to the C++ layer. */
+ public void testPack()
+ throws SubversionException, IOException
+ {
+ OneTest thisTest = new OneTest(false);
+ admin.pack(thisTest.getRepository(), null);
+ }
+
public void testLoadRepo()
throws SubversionException, IOException
{