You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2014/06/18 05:51:00 UTC
svn commit: r1603352 - in /subversion/trunk/subversion/bindings/javahl:
native/SVNRepos.cpp native/SVNRepos.h
native/org_apache_subversion_javahl_SVNRepos.cpp
src/org/apache/subversion/javahl/ISVNRepos.java
src/org/apache/subversion/javahl/SVNRepos.java
Author: brane
Date: Wed Jun 18 03:51:00 2014
New Revision: 1603352
URL: http://svn.apache.org/r1603352
Log:
Remove the use of some deprecated APIs from JavaHL.
[in subversion/bindings/javahl]
* src/org/apache/subversion/javahl/ISVNRepos.java,
src/org/apache/subversion/javahl/SVNRepos.java
(ISVNRepos.load): Add an overload that exposes the functionality
of svn_repos_load_fs5.
(ISVNRepos.verify): Likewise for svn_repos_verify_fs3
* native/SVNRepos.hpp
(SVNRepos::verify, SVNRepos::load): Update prototypes.
* native/SVNRepos.cpp
(SVNRepos::load): Update signature and use svn_repos_load_fs5 instead
of svn_repos_load_fs4; and also use svn_repos_open3 instead of
svn_repos_open2.
(SVNRepos::verify): Update signature and use svn_repos_verify_fs3 instead
of svn_repos_verify_fs2; and also use svn_repos_open3 instead of
svn_repos_open2.
(SVNRepos::deltify, SVNRepos::dump, SVNRepos::lstxns,
SVNRepos::recover, SVNRepos::rmtxns, SVNRepos::setRevProp,
SVNRepos::getRevnum, SVNRepos::pack, SVNRepos::lslocks,
SVNRepos::rmlocks): Use svn_repos_open3 instea dof svn_repos_open2.
* native/org_apache_subversion_javahl_SVNRepos.cpp
(Java_org_apache_subversion_javahl_SVNRepos_load,
Java_org_apache_subversion_javahl_SVNRepos_verify): Update signatures
and calls to the equivalent SVNRepos methods.
Modified:
subversion/trunk/subversion/bindings/javahl/native/SVNRepos.cpp
subversion/trunk/subversion/bindings/javahl/native/SVNRepos.h
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
Modified: subversion/trunk/subversion/bindings/javahl/native/SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNRepos.cpp?rev=1603352&r1=1603351&r2=1603352&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNRepos.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNRepos.cpp Wed Jun 18 03:51:00 2014
@@ -124,8 +124,10 @@ void SVNRepos::deltify(File &path, Revis
return;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(),
+ requestPool.getPool()), );
fs = svn_repos_fs(repos);
SVN_JNI_ERR(svn_fs_youngest_rev(&youngest, fs, requestPool.getPool()), );
@@ -193,8 +195,9 @@ void SVNRepos::dump(File &path, OutputSt
return;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
fs = svn_repos_fs(repos);
SVN_JNI_ERR(svn_fs_youngest_rev(&youngest, fs, requestPool.getPool()), );
@@ -321,6 +324,8 @@ void SVNRepos::load(File &path,
bool forceUUID,
bool usePreCommitHook,
bool usePostCommitHook,
+ bool validateProps,
+ bool ignoreDates,
const char *relativePath,
ReposNotifyCallback *notifyCallback)
{
@@ -353,13 +358,14 @@ void SVNRepos::load(File &path,
_("First revision cannot be higher than second")), );
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
- SVN_JNI_ERR(svn_repos_load_fs4(repos, dataIn.getStream(requestPool),
+ SVN_JNI_ERR(svn_repos_load_fs5(repos, dataIn.getStream(requestPool),
lower, upper, uuid_action, relativePath,
usePreCommitHook, usePostCommitHook,
- FALSE,
+ validateProps, ignoreDates,
notifyCallback != NULL
? ReposNotifyCallback::notify
: NULL,
@@ -380,8 +386,9 @@ void SVNRepos::lstxns(File &path, Messag
return;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
fs = svn_repos_fs(repos);
SVN_JNI_ERR(svn_fs_list_transactions(&txns, fs, requestPool.getPool()), );
@@ -417,8 +424,9 @@ jlong SVNRepos::recover(File &path, Repo
/* Since db transactions may have been replayed, it's nice to tell
* people what the latest revision is. It also proves that the
* recovery actually worked. */
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), -1);
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), -1);
SVN_JNI_ERR(svn_fs_youngest_rev(&youngest_rev, svn_repos_fs(repos),
requestPool.getPool()),
-1);
@@ -463,8 +471,9 @@ void SVNRepos::rmtxns(File &path, String
return;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
fs = svn_repos_fs(repos);
args = transactions.array(requestPool);
@@ -520,8 +529,9 @@ void SVNRepos::setRevProp(File &path, Re
/* Open the filesystem. */
svn_repos_t *repos;
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
/* If we are bypassing the hooks system, we just hit the filesystem
* directly. */
@@ -579,6 +589,7 @@ SVNRepos::getRevnum(svn_revnum_t *revnum
void
SVNRepos::verify(File &path, Revision &revisionStart, Revision &revisionEnd,
+ bool keepGoing, bool checkNormalization, bool metadataOnly,
ReposNotifyCallback *notifyCallback)
{
SVN::Pool requestPool;
@@ -594,8 +605,9 @@ SVNRepos::verify(File &path, Revision &r
/* This whole process is basically just a dump of the repository
* with no interest in the output. */
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
SVN_JNI_ERR(svn_fs_youngest_rev(&youngest, svn_repos_fs(repos),
requestPool.getPool()), );
@@ -621,7 +633,10 @@ SVNRepos::verify(File &path, Revision &r
(SVN_ERR_INCORRECT_PARAMS, NULL,
_("Start revision cannot be higher than end revision")), );
- SVN_JNI_ERR(svn_repos_verify_fs2(repos, lower, upper,
+ SVN_JNI_ERR(svn_repos_verify_fs3(repos, lower, upper,
+ keepGoing,
+ checkNormalization,
+ metadataOnly,
notifyCallback != NULL
? ReposNotifyCallback::notify
: NULL,
@@ -641,8 +656,9 @@ void SVNRepos::pack(File &path, ReposNot
return;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
SVN_JNI_ERR(svn_repos_fs_pack2(repos,
notifyCallback != NULL
@@ -686,8 +702,9 @@ jobject SVNRepos::lslocks(File &path, sv
return NULL;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), NULL);
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), NULL);
/* Fetch all locks on or below the root directory. */
SVN_JNI_ERR(svn_repos_fs_get_locks2(&locks, repos, "/", depth, NULL, NULL,
requestPool.getPool()),
@@ -730,8 +747,9 @@ void SVNRepos::rmlocks(File &path, Strin
return;
}
- SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
- NULL, requestPool.getPool()), );
+ SVN_JNI_ERR(svn_repos_open3(&repos,
+ path.getInternalStyle(requestPool), NULL,
+ requestPool.getPool(), requestPool.getPool()), );
fs = svn_repos_fs(repos);
const char *username = NULL;
Modified: subversion/trunk/subversion/bindings/javahl/native/SVNRepos.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNRepos.h?rev=1603352&r1=1603351&r2=1603352&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNRepos.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNRepos.h Wed Jun 18 03:51:00 2014
@@ -45,6 +45,7 @@ class SVNRepos : public SVNBase
void rmlocks(File &path, StringArray &locks);
jobject lslocks(File &path, svn_depth_t depth);
void verify(File &path, Revision &revisionStart, Revision &revisionEnd,
+ bool keepGoing, bool checkNormalization, bool metadataOnly,
ReposNotifyCallback *notifyCallback);
void setRevProp(File &path, Revision &revision,
const char *propName, const char *propValue,
@@ -58,6 +59,7 @@ class SVNRepos : public SVNBase
Revision &revsionStart, Revision &revisionEnd,
bool ignoreUUID, bool forceUUID,
bool usePreCommitHook, bool usePostCommitHook,
+ bool validateProps, bool ignoreDates,
const char *relativePath, ReposNotifyCallback *notifyCallback);
void listUnusedDBLogs(File &path,
MessageReceiver &messageReceiver);
Modified: subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp?rev=1603352&r1=1603351&r2=1603352&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp Wed Jun 18 03:51:00 2014
@@ -239,11 +239,13 @@ Java_org_apache_subversion_javahl_SVNRep
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNRepos_load
-(JNIEnv *env, jobject jthis, jobject jpath, jobject jinputData,
- jobject jrevisionStart, jobject jrevisionEnd,
- jboolean jignoreUUID, jboolean jforceUUID, jboolean jusePreCommitHook,
- jboolean jusePostCommitHook, jstring jrelativePath, jobject jnotifyCallback)
+Java_org_apache_subversion_javahl_SVNRepos_load(
+ JNIEnv *env, jobject jthis, jobject jpath, jobject jinputData,
+ jobject jrevisionStart, jobject jrevisionEnd,
+ jboolean jignoreUUID, jboolean jforceUUID,
+ jboolean jusePreCommitHook, jboolean jusePostCommitHook,
+ jboolean jvalidateProps, jboolean jignoreDates,
+ jstring jrelativePath, jobject jnotifyCallback)
{
JNIEntry(SVNRepos, load);
SVNRepos *cl = SVNRepos::getCppObject(jthis);
@@ -280,6 +282,8 @@ Java_org_apache_subversion_javahl_SVNRep
jforceUUID ? true : false,
jusePreCommitHook ? true : false,
jusePostCommitHook ? true : false,
+ jvalidateProps ? true : false,
+ jignoreDates ? true : false,
relativePath,
(jnotifyCallback != NULL ? ¬ifyCallback : NULL));
}
@@ -409,9 +413,11 @@ Java_org_apache_subversion_javahl_SVNRep
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNRepos_verify
-(JNIEnv *env, jobject jthis, jobject jpath, jobject jrevisionStart,
- jobject jrevisionEnd, jobject jcallback)
+Java_org_apache_subversion_javahl_SVNRepos_verify(
+ JNIEnv *env, jobject jthis, jobject jpath,
+ jobject jrevisionStart, jobject jrevisionEnd,
+ jboolean jkeepGoing, jboolean jcheckNormalization, jboolean jmetadataOnly,
+ jobject jcallback)
{
JNIEntry(SVNRepos, verify);
SVNRepos *cl = SVNRepos::getCppObject(jthis);
@@ -438,6 +444,7 @@ Java_org_apache_subversion_javahl_SVNRep
return;
cl->verify(path, revisionStart, revisionEnd,
+ jkeepGoing, jcheckNormalization, jmetadataOnly,
jcallback != NULL ? &callback : NULL);
}
Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1603352&r1=1603351&r2=1603352&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java Wed Jun 18 03:51:00 2014
@@ -149,6 +149,39 @@ public interface ISVNRepos {
* stream
* @param usePreCommitHook use the pre-commit hook when processing commits
* @param usePostCommitHook use the post-commit hook when processing commits
+ * @param validateProps validate "svn:" revision and node properties
+ * @param ignoreDates ignore revision datestamps in the dump stream
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
+ * @since 1.9
+ */
+ public abstract void load(File path, InputStream dataInput,
+ Revision start, Revision end,
+ boolean ignoreUUID, boolean forceUUID,
+ boolean usePreCommitHook,
+ boolean usePostCommitHook,
+ boolean validateProps,
+ boolean ignoreDates,
+ String relativePath,
+ ReposNotifyCallback callback)
+ throws ClientException;
+
+ /**
+ * Load the data of a dump into a repository. Sets
+ * <code>validateProps</code> and <code>ignoreDates</code> to
+ * <code>false</code>.
+ *
+ * @param path the path to the repository
+ * @param dataInput the data input source
+ * @param start the first revision to load
+ * @param end the last revision to load
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing commits
* @param relativePath the directory in the repository, where the data
* in put optional.
* @param callback the target for processing messages
@@ -258,7 +291,28 @@ public interface ISVNRepos {
* @param path the path to the repository
* @param start the first revision
* @param end the last revision
- * @param callback the callback to receive notifications
+ * @param keepGoing continue verification even if a revision is bad
+ * @param checkNormalization report directory entry and mergeinfo name collisions
+ * caused by denormalized Unicode representations
+ * @param metadataOnly check only metadata, not file contents
+ * @param callback the callback to receive notifications
+ * @throws ClientException If an error occurred.
+ * @since 1.9
+ */
+ public abstract void verify(File path, Revision start, Revision end,
+ boolean keepGoing, boolean checkNormalization,
+ boolean metadataOnly,
+ ReposNotifyCallback callback)
+ throws ClientException;
+
+ /**
+ * Verify the repository at <code>path</code> between revisions
+ * <code>start</code> and <code>end</code>.
+ *
+ * @param path the path to the repository
+ * @param start the first revision
+ * @param end the last revision
+ * @param callback the callback to receive notifications
* @throws ClientException If an error occurred.
*/
public abstract void verify(File path, Revision start, Revision end,
Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java?rev=1603352&r1=1603351&r2=1603352&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java Wed Jun 18 03:51:00 2014
@@ -159,6 +159,18 @@ public class SVNRepos implements ISVNRep
throws ClientException;
public void load(File path, InputStream dataInput,
+ Revision start, Revision end,
+ boolean ignoreUUID, boolean forceUUID,
+ boolean usePreCommitHook, boolean usePostCommitHook,
+ String relativePath, ReposNotifyCallback callback)
+ throws ClientException
+ {
+ load(path, dataInput, start, end,
+ ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
+ false, false, relativePath, callback);
+ }
+
+ public void load(File path, InputStream dataInput,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook, boolean usePostCommitHook,
String relativePath, ReposNotifyCallback callback)
@@ -166,13 +178,14 @@ public class SVNRepos implements ISVNRep
{
load(path, dataInput, Revision.START, Revision.HEAD,
ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
- relativePath, callback);
+ false, false, relativePath, callback);
}
public native void load(File path, InputStream dataInput,
Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook, boolean usePostCommitHook,
+ boolean validateProps, boolean ignoreDates,
String relativePath, ReposNotifyCallback callback)
throws ClientException;
@@ -221,7 +234,16 @@ public class SVNRepos implements ISVNRep
boolean usePostRevPropChangeHook)
throws SubversionException;
+ public void verify(File path, Revision start, Revision end,
+ ReposNotifyCallback callback)
+ throws ClientException
+ {
+ verify(path, start, end, false, false, false, callback);
+ }
+
public native void verify(File path, Revision start, Revision end,
+ boolean keepGoing, boolean checkNormalization,
+ boolean metadataOnly,
ReposNotifyCallback callback)
throws ClientException;