Checkout Tools
  • last updated a few minutes ago
Constraints: committers
Constraints: files
Constraints: dates
Expose the output arguments of svn_client_blame6 in JavaHL.

[in subversion/bindings/javahl/src/org/apache/subversion]

* callback/ New callback for ISVNClient.blame.

* callback/ Remove unused import.


(ISVNClient.blame): Add range callback parameter. Update docstring.


(SVNClient.blame): Update wrapper and native method declaration.

[in subversion/bindings/javahl/native]

* BlameCallback.h

(BlameCallback::BlameCallback): Change constructor signature.

(BlameCallback::get_start_revnum_p, BlameCallback::get_end_revnum_p): New.

(BlameCallback::setRange): New.

(BlameCallback::m_start_revnum, BlameCallback::m_start_revnum,

BlameCallback::m_range_callback_invoked, BlameCallback::m_range_callback): New.

(BlameCallback::m_line_callback): Renamed from m_callback.

* BlameCallback.cpp: Include svn_private_config.h.

(BlameCallback::BlameCallback): Update constructor implementation.

(BlameCallback::callback): Update static callback implementation.

(BlameCallback::setRange): Implement.

(BlameCallback::singleLine): Notice changed member variable name.

* SVNClient.cpp

(SVNClient::blame): Set blame output arguments from the callback.

* org_apache_subversion_javahl_SVNClient.cpp

(Java_org_apache_subversion_javahl_SVNClient_blame): Update native method.

[in subversion/bindings/javahl/tests/org/apache/subversion/javahl]


(BlameRangeCallbackImpl): New helper class.

(testBinaryBlame): Also test the returned revision range.


(testBlameCallback): Check that a null range callback doesn't cause exceptions.

  1. … 8 more files in changeset.
Fix issue #4801: Make JavaHL blame return byte[] file contents in the

blame callback instead of assuming they can be converted to String.

[in subversion/bindings/javahl/src/org/apache/subversion/javahl]


(ISVNClient.blame): Add a new overload that uses the new BlameLineCallback.

Deprecate the other two overloads that use BlameCallback.


(SVNClient.blame): Implement new native overload and deprecate the old ones.

(SVNClient.BlameCallbackAdapter): New helper class.

* callback/

(BlameCallback): Deprecated.

* callback/

(BlameLineCallback): New, replaces BlameCallback.

[in subversion/bindings/javahl/tests/org/apache/subversion/javahl]


(testBasicBlame, testBlameWithDiffOptions): Suppress deprecation warnings

as these tests use the old API, and should continue to do so in order to

test the callback adapter.

(testBinaryBlame): New test case.

(collectBlameLines, BlameCallbackImpl): Suppress deprecation warnings.

(BlameLineCallbackImpl): New helper class.


(testBlameCallback): Use the new API in this test case.

[in subversion/bindings/javahl/native]

* org_apache_subversion_javahl_SVNClient.cpp

(Java_org_apache_subversion_javahl_SVNClient_blame): Update parameter order.

* BlameCallback.cpp

(BlameCallback::singleLine): Use BlameLineCallback instead of BlameCallback.

  1. … 6 more files in changeset.
Fix various warnings in javahl

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/types/,



Use "Long.valueOf(long)" instead of deprecated "new Long(long)"

* native/RemoteSession.cpp, native/RemoteSession.h,



native/org_apache_subversion_javahl_util_PropLib.cpp: Rename "jvalue"

variables to fix -Wshadow warnings for jvalue symbol in jni.h

  1. … 6 more files in changeset.
Update issue tracker links in comments, from Tigris (issuezilla) to Apache (Jira).

URL fragment identifiers like '#desc5' are left in place, not yet updated.

This is a merge of r1828508 from the 'shelve-checkpoint' branch where I

committed it by mistake.

  1. … 42 more files in changeset.
Add an overload to JavaHL's ISVNClient.logMessages() that allows

the API user to retreive all revision properties with each log message.

[in subversion/bindings/javahl/]

* src/org/apache/subversion/javahl/

(ISVNClient.logMessages): Add new overload for 1.10.

* src/org/apache/subversion/javahl/

(ISVNClient.logMessages): Update native signature. Implement the old,

deprecated method.

* native/org_apache_subversion_javahl_SVNClient.cpp


Update implementation of native method.

* native/SVNClient.h (SVNClient::logMessages): Update signature.

* native/SVNClient.cpp (SVNClient::logMessages): Update implementation.

* tests/org/apache/subversion/javahl/,

tests/org/apache/subversion/javahl/ Use the new overload.

  1. … 5 more files in changeset.
Follow up to r1688273:

Minor spelling and documentation fixes, no functional change.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/callback/

(ReposVerifyCallback.onVerifyError): Fix typo in docstring.

* native/ReposVerifyCallback.h

(ReposVerifyCallback::m_jverify_cb): Renamed from m_verify_cb.

(ReposVerifyCallback::ReposVerifyCallback): Add docstring and rename parameter.

(ReposVerifyCallback::callback): Fix docstring.

* native/ReposVerifyCallback.cpp

(ReposVerifyCallback::ReposVerifyCallback): Remove docstring. Rename variables.

(ReposVerifyCallback::onVerifyError): Rename variables.

* tests/org/apache/subversion/javahl/

(SVNReposTests.VerifyCallback.onVerifyError): Add braces to compound conditional.

(SVNReposTests.tryToBreakRepo): Renamed from trytobreakrepo. Update callers.


SVNReposTests.testVerifyBrokenRepo_KeepGoing): Make the test setup more explicit.

  1. … 3 more files in changeset.
Follow up to r1687769: Implement semantics equivalent to the new

svn_repos_verify_fs3 in JavaHL.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/callback/

(ReposVerifyCallback): New callback interface.

* src/org/apache/subversion/javahl/

(ISVNRepos.verify): Add the verification callback and update the

documentation of both versions of this method.

* src/org/apache/subversion/javahl/

(ISVNRepos.verify): Update native method signature and wrapper

method implementation.

* src/org/apache/subversion/javahl/

(ReposNotifyInformation): Update serial version UID after 1.9 API change.

* native/ReposVerifyCallback.h,

native/ReposVerifyCallback.cpp: New files.

* native/JNIUtil.h

(JNIUtil::createClientException): New.

(JNIUtil::wrappedCreateClientException): Renamed from wrappedHandleSVNError

and changed the the return type.

* native/JNIUtil.cpp

(JNIUtil::wrappedCreateClientException): Return the created exception

instead of throwing it.

(JNIUtil::createClientException): Implement.

(JNIUtil::handleSVNError): Reimplement to call createClientException.

* native/SVNRepos.h: Include ReposVerifyCallback.h.

(SVNRepos::Verify): Add the repository verification callback.

* native/SVNRepos.cpp: Do not include ReposNotifyCallback.h.

(SVNRepos::Verify): Use the repository verification callback.

* native/org_apache_subversion_javahl_SVNRepos.cpp

(Java_org_apache_subversion_javahl_SVNRepos_verify): Add the

repository verification callback and update the implementation.

* tests/org/apache/subversion/javahl/

(SVNReposTests.testVerify): Tweak repository creation.

(SVNReposTests.VerifyCallback, SVNReposTests.trytobreakrepo): New helpers.


SVNReposTests.testVerifyBrokenRepo_KeepGoing): New test cases.

  1. … 11 more files in changeset.
Fix a minor omission in JavaHL's VersionExtended class:

the dispose() and finalize() methods were missing.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/types/

(VersionExtended.dispose, VersionExtended.finalize): Add methods.

* VersionExtended.h

(VersionExtended::getCppObject): Return a non-const pointer;

the implementation of dispose() cannot use an immutable object.

* VersionExtended.cpp

(VersionExtended::getCppObject): Update implementation.

* org_apache_subversion_javahl_types_VersionExtended.cpp:

Include svn_private_config.h


Implement native method.

* tests/org/apache/subversion/javahl/


BasicTests.testVersionExtendedVerbose): Dispose the VersionExtended object.

  1. … 4 more files in changeset.
Fix issue #4560.

* subversion/libsvn_client/copy.c

(pin_externals_prop): When the externals_to_pin hash is not NULL,

do not pin externals that are not mentioned in that hash.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/






BasicTests.testCopyPinExternals_repo2repo_explicit): Update test cases.

(BasicTests.testCopyPinExternals_repo2repo_corkscrew): New test case.

Patch by: stsp

(Test fixes by me)

  1. … 1 more file in changeset.
Teach the JavaHL tests to optionally clean up after themselves

when given the JAVAHL_CLEAN option on the make command line

(or with the system property test.cleanup set to a non-empty string).


(check-tigris-javahl, check-apache-javahl, check-deprecated-authn-javahl):

Define the test.cleanup property when running JavaHL tests.

[in subversion/bindings/javahl/tests]

* org/apache/subversion/javahl/

(SVNTest.cleanupAfterTests, SVNTest.testDirs): New fields.

(SVNTest.init): Initialize SVNTest.cleanupAfterTests from properties.

(SVNTest.tearDown): Optionally remove test directories.

(SVNTest.trackDir): New.


SVNTest.OneTest.createInitialWorkingCopy): Track created directories.

* org/apache/subversion/javahl/,

* org/apache/subversion/javahl/,

* org/tigris/subversion/javahl/

(<test-class>.testName): Declare the base name for test directories.

(<test-class>.<init>): Call init().

(<test-class>.init): Initialize the global test name.

  1. … 1 more file in changeset.
In JavaHL: Make RemoteSession.getLog() implement its documented behavior

when the list of revision properties is NULL.

* subversion/bindings/javahl/native/RemoteSession.cpp

(RemoteSession::getLog): Pass NULL revision property list if java provides

a NULL list. (An empty list is handled as no properties. The Iterator

handles NULL as no items).

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(testGetLog): Assert that revision properties are really fetched.

  1. … 1 more file in changeset.
* subversion/bindings/javahl/native/jniwrapper/jni_base.cpp

(Java::caught_java_exception_error): When a java exception is thrown, wrap it in the

error and exit exception state to allow further JNI calls.

* subversion/bindings/javahl/native/OperationContext.cpp

(OperationContext::checkCancel): If the JVM is in exception state (e.g. when an

exception is thrown from a callback that doesn't support error return), return

an error from the cancel callback with the wrapped exception (and exit exception


* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(*): Add some comments. Make throws a bit less generic

(testNotify): New test, verifying that even an exception from the notify callback

gets through.

  1. … 2 more files in changeset.
In JavaHL: Properly wrap Java exceptions as svn_error_t * when returning from

many callbacks and add the wrapped exception (when not cleared by Subversion)

as cause to the returned exception.

This avoids keeping the JVM in the semi-broken 'exception' state until we

somehow return and also makes it possible to do things in further callbacks

(which we previously skipped by just returning an SVN_NO_ERROR on the still

pending exceptions).

Before this patch a status call that returned an exception in the first

callback would continue the entire status walk and only after returning

it would return the exception, potentially breaking the api contract

of the function.

After this patch an error is returned in Subversion... which builds

the usual error chain in subversion.... Then when the call returns

in JavaHL the cause of the ClientException is set to the originally

raised exception in the callback and intermediate errors are added

if necessary.

* subversion/bindings/javahl/native/BlameCallback.cpp

(BlameCallback::singleLine): Update exit handling.

* subversion/bindings/javahl/native/CommitCallback.cpp

(CommitCallback::commitInfo): Update exit handling.

* subversion/bindings/javahl/native/CommitMessage.cpp

(CommitMessage::getCommitMessage): Return svn_error_t * on error instead of

trying the commit with no log message.

* subversion/bindings/javahl/native/DiffSummaryReceiver.cpp

(DiffSummaryReceiver::onSummary): Update exit handling.

* subversion/bindings/javahl/native/InfoCallback.cpp

(InfoCallback::singleInfo): Update exit handling.

* subversion/bindings/javahl/native/JNIUtil.cpp


(assemble_error_message): Don't try to write standard text for


(JNIUtil::wrappedHandleSVNError): If there is no jcause passed, check if we

have a Java exception we can use stored in the error.

(WrapExceptionTag): New variable.

(WrappedException): New class.


JNIUtil::unwrapJavaException): New functions.

* subversion/bindings/javahl/native/JNIUtil.h


JNIUtil::unwrapJavaException): New functions.


* subversion/bindings/javahl/native/ListCallback.cpp

(ListCallback::doList): Update exit handling.

* subversion/bindings/javahl/native/LogMessageCallback.cpp

(LogMessageCallback::singleMessage): Update exit handling.

* subversion/bindings/javahl/native/StatusCallback.cpp

(StatusCallback::doStatus): Update exit handling.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

New file.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(SVNTestSuite.suite): Add ExceptionTests.

  1. … 10 more files in changeset.
For now revert r1664609.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

* subversion/bindings/javahl/native/JNIUtil.cpp

Revert to pre r1664609 change.

  1. … 1 more file in changeset.
Tweak JavaHL error text generation to create errors that only contains

generic error messages when the creator of the error chain intended

to add these to the chain.

This makes the creation more similar to what our standard error printing

in 'svn' would do and avoids bad messages in cases such as 'bad filename'

when the code just used that error code to tell that a registry key does

not exist, but added their own detailed message.

Note that all these messages are localized, etc. so end user applications

can never rely on the exact messages anyway.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(testValidateProp): Update expected result.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(testGetLogMissing): Update expected result.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(testCommitPartialMove): Update expected result.

* subversion/bindings/javahl/native/JNIUtil.cpp

(assemble_error_message): Only show generic messages if there is no not

generic message, and the generic message wasn't the last shown generic


  1. … 1 more file in changeset.
Expose the metadataOnly option that is already implemented in libsvn_client's

copy support through the api.

This should have been added when revving the api, as this api has been

available at the libsvn_wc level since 1.8 (and at least used by AnkhSVN

since then).

* subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

(Java_org_apache_subversion_javahl_SVNClient_copy): Pass metadataOnly.

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::copy): Pass metadataOnly.

* subversion/bindings/javahl/native/SVNClient.h

(SVNClient::copy): Pass metadataOnly.

* subversion/bindings/javahl/src/org/apache/subversion/javahl/

(copy): Add and document metadataOnly argument.

* subversion/bindings/javahl/src/org/apache/subversion/javahl/

(copy): Add and document metadataOnly argument.

(copy): Update caller.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/







setupAndPerformMerge): Update caller.

* subversion/include/svn_client.h

(svn_client_copy7): Add argument.

* subversion/libsvn_client/copy.c

(svn_client_copy7): Add argument. Update caller.

* subversion/libsvn_client/deprecated.c

(svn_client_copy6): Update caller.

* subversion/svn/copy-cmd.c

(svn_cl__copy): Update caller.

* subversion/tests/libsvn_client/client-test.c

(test_copy_pin_externals): Update caller.

* subversion/tests/libsvn_wc/utils.c

(sbox_wc_copy_url): Update caller.

  1. … 11 more files in changeset.
Pre branch cleanup: Remove unneeded tab characters from source files.

* subversion/bindings/javahl/src/org/apache/subversion/javahl/

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

* subversion/libsvn_subr/sorts.c

Replace tabs with spaces, trying to fix indenting.

  1. … 6 more files in changeset.
Merge the pin-externals branch to trunk.

The discussion thread start in this post:

has come to a consensus that the branch can be merged and additional

development of this feature can happen on trunk.

This merge adds a '--pin-externals' option to 'svn copy'.

This option enables automated pinning of URLs in svn:externals properties

during copy operations (issue #1258).

--pin-externals : pin externals with no explicit revision to their

last-changed revision (recommended when tagging)

This feature makes the contrib script unnecessary.

Externals are "pinned" by adding a peg revision to the external's source URL.

For example, the external definition:

^/foo/bar ext_bar

might become:

^/foo/bar@400 ext_bar

This table shows which revision is used for pinning:

copy source: working copy (WC) REPOS


copy WC | external's WC BASE rev | external's repos HEAD rev |

dest: |------------------------+---------------------------+

REPOS | external's WC BASE rev | external's repos HEAD rev |


An external that is already pinned is left as-is.

Please see the branch log for details about these changes.

  1. … 22 more files in changeset.
Extend regression tests around svn_ra_get_file_revs2, and walking through

history with it. Add additional boolean to JavaHL api for this function.

* subversion/bindings/javahl/native/RemoteSession.cpp

(callback): Pass information on whether there is a delta.

(call): Pass boolean.

* subversion/bindings/javahl/src/org/apache/subversion/javahl/

(FileRevision.FileRevision): Add textDelta argument. Fill field.

(FileRevision.hasTextDelta): New function.

(FileRevision.textDelta): New field.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(testGetFileRevisions): Extend test.

* subversion/libsvn_repos/rev_hunt.c

(send_path_revision): Avoid doing work that is ignored.

* subversion/tests/libsvn_client/mtcc-test.c

(handle_rev_baton): New struct.


test_file_revs_both_ways): New function.

(test_funcs): Add test_file_revs_both_ways.

  1. … 4 more files in changeset.
Merge the svn-auth-x509 branch to trunk.

This adds an X.509 parser which we use to display certificates via the auth

command rather than storing the details provided by serf from a connection.


NOTICE: Note that the X.509 parser is based on the parser from TropicSSL.

* build.conf

(libsvn_subr): Add svn_x509.h header to msvc-export.

(x509-test, __ALL_TESTS__): Add C tests for X.509 parser.

* subversion/include/private/svn_utf_private.h

(svn_utf__encode_ucs4_string, svn_utf__utf16_to_utf8,

svn_utf__utf32_to_utf8): New functions for converting various Unicode

character encodings needed by the X.509 parser.

* subversion/include/svn_x509.h: New header.

* subversion/include/svn_error_codes.h

(SVN_ERR_X509_CATEGORY_START): New category for errors from X.509 parser.











New error codes.

* subversion/include/svn_config.h



SVN_CONFIG_AUTHN_ISSUER_DN_KEY): Remove constants used as keys for

storing parsed certificate info in authn files.

* subversion/libsvn_subr/x509parse.c,


subversion/include/x509.h: New files for implementing the X.509 parser.

* subversion/libsvn_subr/ssl_server_trust_providers.c


ssl_server_trust_file_save_credentials): Don't store/retrive parsed

details of X.509 certificates.

* subversion/libsvn_subr/utf.c

(membuf_insert_ucs4, svn_utf__utf16_to_utf8, svn_utf__utf32_to_utf8):

New functions to implement Unicode conversions.

* subversion/libsvn_subr/utf8proc.c

(encode_ucs4_string): Convert to the private function ...

(svn_utf__encode_ucs4_string): New function.

(svn_utf__glob): Update caller.

* subversion/svn/auth-cmd.c

(match_credential): Remove code to match the hostname/fingerprint since

the data isn't stored.

(show_cert): New function to drive the X.509 parser and then display

the certificate to the user.

(list_credential): Use show_cert().

* subversion/tests/libsvn_subr/utf-test.c

(test_utf_conversions, test_funcs): Add tests for new unicode character

set conversions.

* subversion/tests/libsvn_subr/x509-test.c: Add tests for X.509 parser.

[in subverison/bindings/javahl]

* native/jniwrapper/jni_base.cpp,


Add IllegalArgumentException exeption.

* native/AuthnCallback.cpp,



(AuthnCallback::SSLServerCertInfo): Update the getters and constructor to

reflect the info available from the X.509 parser.

* native/org_apache_subversion_javahl_util_ConfigLib.cpp

(build_credential): Update to feed AuthnCallback::SSLServerCertInfo the info

that is available.


Update the searching of the certificates to parse the certificate rather

than depending on the stored data.

* src/org/apache/subversion/javahl/

(SVNUtil.searchCredentials): Update hostnamePattern documentation.

* native/Promper.cpp

(Prompter::dispatch_ssl_server_trust_prompt): Update to reflect changes

to SSLServerCertInfo.

* src/org/apache/subversion/javahl/util/ Remove some commented

out code.

* tests/org/apache/subversion/javahl/

(util_cred_ssl_server, testCredentials): Update tests as needed.

  1. … 29 more files in changeset.
Following up on r1655637, fill even more svn_client_commit_item3_t fields

and apply some updated expected results in JavaHL.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/


testBasicMkdirUrl): Expect creation of directory when using mkdir URL.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(setUp): Expect import to provide a url and kind.

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/

(setUp): Expect import to provide a url and kind.

* subversion/libsvn_client/import.c

(svn_client_import5): Provide kind an url in commit item.

* subversion/libsvn_client/util.c

(svn_client_commit_item3_create): Use svn_node_unknown as default kind.

  1. … 2 more files in changeset.
* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(BasicTests.testBlameWithDiffOptions): Fix test case; the original file

contents had no end-of-line, so the new must have none, too.

Add a JavaHL test for ISVNClient.blame with diff options

and remove the deprecation of the older blame method.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/

(ISVNClient.blame): Remove deprecation.

* src/org/apache/subversion/javahl/

(SVNClient.blame): Likewise.

* tests/org/apache/subversion/javahl/

(BasicTests.testBasicBlame): Check the contents of the blame line.

(BasicTests.testBlameWithDiffOptions): New test case.

  1. … 2 more files in changeset.
Add a JavaHL test for getting status from an external tree.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(BasicTests.testExternalStatus): New test case.

Remove a compilation warning in JavaHL.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/

(SVNRemoteTests.RemoteStatusReceiver.StatInfo.hashCode): Add mandatory overload.

(SVNRemoteTests.RemoteStatusReceiver.StatInfo.compareTo): Add decorator.

Add extra JNI checking to JavaHL test runs.

This really should have been enabled since forever.


(check-tigris-javahl, check-apache-javahl, check-deprecated-authn-javahl):

Add the -Xcheck:jni option to the JVM parameters.

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/

(BasicTests.CountingProgressListener): New; similar to equivalent class

in the org.apache... test suite.

(BasicTests.testDataTransferProgressReport): Do not use an exception to

notice that progress has been reported. This avoids an otherwise trivial

warning by triggered the -Xcheck:jni option. The org.apache... test

suite uses a similar workaround.

  1. … 1 more file in changeset.
Finalize the JavaHL API changes for 1.9.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/,


(ISVNClient.info2): Remove the overload that was added on trunk and then

replaced by

(ISVNClient.cleanup): Add new overload that matches svn_client_cleanup2.

(ISVNClient.vacuum): New function, matches svn_client_vacuum.

* native/SVNClient.h, native/SVNClient.cpp

(SVNClient::cleanup): Update prototype and implementation.

(SVNClient::vacuum): New method.

* native/org_apache_subversion_javahl_SVNClient.cpp


Update native method wrapper implementation.


Implement native method wrapper.

* tests/org/apache/subversion/javahl/

(BasicTests.collectInfos): Use instead of ISVNClient.info2.

  1. … 5 more files in changeset.
Add credentials management (searching and deleting) to JavaHL.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/

(SVNUtil.CredentialTypeMismatch): New exception class.

(SVNUtil.Credential): Make concrete and serializable, and

encapsulate all credential kinds within this one class.




SVNUtil.SSLClientCertPassphraseCredential): Removed.

(SVNUtil.getCredential, SVNUtil.removeCredential, SVNUtil.searchCredentials):

Also throw SubversionException.

(SVNUtil.addCredential): Removed; not viable, there is no native API.

(SVNUtil.deleteCredentials): Removed as redundant.

* src/org/apache/subversion/javahl/util/

Import SubversionException class.

(SVNUtil.getCredential, SVNUtil.nativeGetCredential,

SVNUtil.removeCredential, SVNUtil.nativeRemoveCredential,


Also throw SubversionException.

(SVNUtil.addCredential, SVNUtil.nativeAddCredential): Removed.

(SVNUtil.deleteCredentials): Removed as redundant.

(SVNUtil.deleteCredentials): Removed.

(SVNUtil.nativeSarchCredentials): New; replaces iterateCredentials.

* native/Credential.hpp, native/Credential.cpp:

New; native implementation of the SVNUtil.Credential class.

* native/jniwrapper/jni_object.hpp, native/jniwrapper/jni_class_cache.cpp

(ClassCache.get_credential, ClassCache.get_credential_kind)

New; factory method for Credential and Credential::Kind implementations.

* native/org_apache_subversion_javahl_util_ConfigLib.cpp

(build_credential, WalkCredentialsCallback, SimpleSearchCallback):

New helper function and classes.







* tests/org/apache/subversion/javahl/

(UtilTests.testCredentials): New test case.

  1. … 7 more files in changeset.
Modify JavaHL tests to enable testing with the deprecated

UserPasswordCallback authentication interface.


(check-deprecated-authn-javahl): New target.

(check-all-javahl): Include dependency on check-deprecated-authn-javahl.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/,


(ISVNClient.setPrompt): Add overloads for both AuthnCallback

and UserPasswordCallback variants.

* src/org/apache/subversion/javahl/remote/

(RemoteFactory.RemoteFactory, RemoteFactory.setPrompt): Likewise.

( Handler both types of prompters. Update all callers.

* native/org_apache_subversion_javahl_SVNClient.cpp

(Java_org_apache_subversion_javahl_SVNClient_setPrompt*): Implement native overloads

of the ISVNClent.setPrompt() method.

* native/org_apache_subversion_javahl_remote_RemoteFactory.cpp


Adjust implementation for changed prototype.

* native/RemoteSession.h, native/RemoteSession.cpp

(RemoteSession::open): Create prompter wrapper depending on which type

of prompter was set in the factory.

* tests/org/apache/subversion/javahl/

(SVNTests.DefaultPromptUserPassword): Removed.

(SVNTests.DefaultAuthn): New; factory for both variants of the prompter.

(SVNTests.initClient): Select prompter based on system propery settings.

* tests/org/apache/subversion/javahl/,


Select prompter based on system propery settings.

  1. … 8 more files in changeset.
Fix a couple bugs in the old org.tigris authentication callback implementation

in JavaHL, which were exposed by the authn callback changes.

[in subversion/bindings/javahl]

* src/org/tigris/subversion/javahl/

(SVNClient.PromptUser1Wrapper.userAllowedSave): Forward the call to the

prompter, if it supports this method.

* tests/org/tigris/subversion/javahl/

(SVNTest.DefaultPromptUserPassword.prompt): Return true, indicating success,

not false, which indicates cancellation.

  1. … 1 more file in changeset.