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/01/07 11:45:44 UTC
svn commit: r1556175 - in
/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl: ./
native/ native/jniwrapper/ src/org/apache/subversion/javahl/
src/org/apache/subversion/javahl/callback/
src/org/apache/subversion/javahl/remote/ src/org...
Author: brane
Date: Tue Jan 7 10:45:43 2014
New Revision: 1556175
URL: http://svn.apache.org/r1556175
Log:
On the javahl-1.8-extensions branch: Synced JavaHL from trunk up to r1555720.
Modified:
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/ (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/EditorProxy.cpp
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.h
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/jniwrapper/jni_channel.cpp (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java (contents, props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteStatus.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposFreezeAction.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RetryOpenSession.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DiffOptions.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java (props changed)
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java (props changed)
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/
------------------------------------------------------------------------------
Merged /subversion/trunk/subversion/bindings/javahl:r1545981-1555720
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/EditorProxy.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/EditorProxy.cpp?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/EditorProxy.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/EditorProxy.cpp Tue Jan 7 10:45:43 2014
@@ -34,6 +34,11 @@
#include "svn_error.h"
#include "svn_private_config.h"
+// Newstyle: stream wrapper
+#include <memory>
+#include "NativeStream.hpp"
+#include "jniwrapper/jni_stack.hpp"
+
EditorProxy::EditorProxy(jobject jeditor, apr_pool_t* edit_pool,
const char* repos_root_url, const char* base_relpath,
@@ -125,6 +130,17 @@ get_editor_method(jmethodID& mid, const
SVN_ERR_RA_SVN_EDIT_ABORTED);
return SVN_NO_ERROR;
}
+
+jobject wrap_input_stream(svn_stream_t* stream)
+{
+ std::auto_ptr<JavaHL::NativeInputStream>
+ wrapped(new JavaHL::NativeInputStream());
+ apr_pool_t* const wrapped_pool = wrapped->get_pool().getPool();
+ wrapped->set_stream(svn_stream_disown(stream, wrapped_pool));
+ const jobject jstream = wrapped->create_java_wrapper();
+ wrapped.release();
+ return jstream;
+}
} // anonymous namespace
svn_error_t*
@@ -188,11 +204,15 @@ EditorProxy::cb_add_file(void *baton,
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
jobject jchecksum = CreateJ::Checksum(checksum);
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jcontents = NULL; // FIXME: input stream proxy
+ jobject jcontents = NULL;
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
+ if (contents != NULL)
+ SVN_JAVAHL_CATCH(Java::Env(), SVN_ERR_RA_SVN_EDIT_ABORTED,
+ jcontents = wrap_input_stream(contents));
+
SVN_JNI_CATCH(
JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
jrelpath, jchecksum, jcontents,
@@ -331,11 +351,15 @@ EditorProxy::cb_alter_file(void *baton,
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
jobject jchecksum = CreateJ::Checksum(checksum);
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
- jobject jcontents = NULL; // FIXME: input stream proxy
+ jobject jcontents = NULL;
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
jobject jprops = CreateJ::PropertyMap(props, scratch_pool);
SVN_JNI_CATCH(,SVN_ERR_RA_SVN_EDIT_ABORTED);
+ if (contents != NULL)
+ SVN_JAVAHL_CATCH(Java::Env(), SVN_ERR_RA_SVN_EDIT_ABORTED,
+ jcontents = wrap_input_stream(contents));
+
SVN_JNI_CATCH(
JNIUtil::getEnv()->CallVoidMethod(ep->m_jeditor, mid,
jrelpath, jlong(revision),
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/JNIUtil.cpp Tue Jan 7 10:45:43 2014
@@ -253,12 +253,11 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
svn_fs_initialize(g_pool); /* Avoid some theoretical issues */
svn_ra_initialize(g_pool);
- /* We shouldn't fill the JVMs memory with FS cache data unless explictly
- requested. */
+ /* We shouldn't fill the JVMs memory with FS cache data unless
+ explictly requested. And we don't either, because the caches get
+ allocated outside the JVM heap. Duh. */
{
svn_cache_config_t settings = *svn_cache_config_get();
- settings.cache_size = 0;
- settings.file_handle_count = 0;
settings.single_threaded = FALSE;
svn_cache_config_set(&settings);
}
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.cpp?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.cpp Tue Jan 7 10:45:43 2014
@@ -1234,15 +1234,17 @@ void SVNClient::removeFromChangelists(Ta
}
void SVNClient::getChangelists(const char *rootPath,
- StringArray &changelists,
+ StringArray *changelists,
svn_depth_t depth,
ChangelistCallback *callback)
{
SVN::Pool subPool(pool);
svn_client_ctx_t *ctx = context.getContext(NULL, subPool);
- SVN_JNI_ERR(svn_client_get_changelists(rootPath,
- changelists.array(subPool),
+ const apr_array_header_t *cl_array = (!changelists ? NULL
+ : changelists->array(subPool));
+
+ SVN_JNI_ERR(svn_client_get_changelists(rootPath, cl_array,
depth, ChangelistCallback::callback,
callback, ctx, subPool.getPool()),
);
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.h?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/SVNClient.h Tue Jan 7 10:45:43 2014
@@ -167,7 +167,7 @@ class SVNClient :public SVNBase
svn_depth_t depth, StringArray &changelists);
void removeFromChangelists(Targets &srcPaths, svn_depth_t depth,
StringArray &changelists);
- void getChangelists(const char *path, StringArray &changelists,
+ void getChangelists(const char *path, StringArray *changelists,
svn_depth_t depth, ChangelistCallback *callback);
void status(const char *path, svn_depth_t depth, bool onServer,
bool getAll, bool noIgnore, bool ignoreExternals,
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/jniwrapper/jni_channel.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Tue Jan 7 10:45:43 2014
@@ -1771,8 +1771,9 @@ Java_org_apache_subversion_javahl_SVNCli
return;
ChangelistCallback callback(jchangelistCallback);
- cl->getChangelists(root_path, changelists, EnumMapper::toDepth(jdepth),
- &callback);
+ cl->getChangelists(root_path,
+ (jchangelists ? &changelists : NULL),
+ EnumMapper::toDepth(jdepth), &callback);
}
JNIEXPORT void JNICALL
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Tue Jan 7 10:45:43 2014
@@ -1223,7 +1223,8 @@ public interface ISVNClient
/**
* Recursively get the paths which belong to a changelist
* @param rootPath the wc path under which to check
- * @param changelists the changelists to look under
+ * @param changelists the changelists to look under;
+ * if <code>null</code>, all changelists will be considered.
* @param depth the depth to recurse
* @param callback the callback to return the changelists through
*/
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java Tue Jan 7 10:45:43 2014
@@ -89,6 +89,9 @@ public interface ISVNEditor
* <b>Note:</b> It is not allowed to call a "delete" followed by
* an "add" on the same path. Instead, an "add" with
* <code>replacesRevision</code> set accordingly <em>must</em> be used.
+ * <p>
+ * <b>Note:</b> The <code>contents</code> stream's lifetime must not
+ * extend beyond the scope of this function.
*
* @throws ClientException
*/
@@ -185,6 +188,9 @@ public interface ISVNEditor
* This function allows <code>properties</code> to be
* <code>null</code>, but the parameter is otherwise described by
* #addFile().
+ * <p>
+ * <b>Note:</b> The <code>contents</code> stream's lifetime must not
+ * extend beyond the scope of this function.
*
* @throws ClientException
*/
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteStatus.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposFreezeAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RetryOpenSession.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DiffOptions.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Tue Jan 7 10:45:43 2014
@@ -2343,6 +2343,33 @@ public class BasicTests extends SVNTests
assertTrue(clCallback.isEmpty());
}
+ public void testGetAllChangelists() throws Throwable
+ {
+ OneTest thisTest = new OneTest();
+ final String cl1 = "changelist_one";
+ final String cl2 = "changelist_too";
+ MyChangelistCallback clCallback = new MyChangelistCallback();
+
+ String path = fileToSVNPath(new File(thisTest.getWCPath(), "iota"),
+ true);
+ Set<String> paths = new HashSet<String>(1);
+ paths.add(path);
+ client.addToChangelist(paths, cl1, Depth.infinity, null);
+ paths.remove(path);
+
+ path = fileToSVNPath(new File(thisTest.getWCPath(), "A/B/lambda"),
+ true);
+ paths.add(path);
+ client.addToChangelist(paths, cl2, Depth.infinity, null);
+
+ client.getChangelists(thisTest.getWCPath(), null,
+ Depth.infinity, clCallback);
+ Collection<String> changelists = clCallback.getChangelists();
+ assertEquals(2, changelists.size());
+ assertTrue("Contains " + cl1, changelists.contains(cl1));
+ assertTrue("Contains " + cl2, changelists.contains(cl2));
+ }
+
/**
* Helper method for testing mergeinfo retrieval. Assumes
* that <code>targetPath</code> has both merge history and
@@ -3890,8 +3917,13 @@ public class BasicTests extends SVNTests
{
private static final long serialVersionUID = 1L;
+ private HashSet<String> allChangelists = new HashSet<String>();
+
public void doChangelist(String path, String changelist)
{
+ if (changelist != null)
+ allChangelists.add(changelist);
+
path = fileToSVNPath(new File(path), true);
if (super.containsKey(path))
{
@@ -3912,6 +3944,11 @@ public class BasicTests extends SVNTests
{
return super.get(path);
}
+
+ public Collection<String> getChangelists()
+ {
+ return allChangelists;
+ }
}
private class MyInfoCallback implements InfoCallback {
Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1556175&r1=1556174&r2=1556175&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java Tue Jan 7 10:45:43 2014
@@ -38,7 +38,9 @@ import java.util.HashMap;
import java.util.HashSet;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.io.File;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.security.MessageDigest;
@@ -668,14 +670,17 @@ public class SVNRemoteTests extends SVNT
ISVNRemote session = getSession();
byte[] ignoreval = "*.pyc\n.gitignore\n".getBytes(UTF8);
+ byte[] binaryval = new byte[]{(byte)0, (byte)13, (byte)255, (byte)8,
+ (byte)127, (byte)128, (byte)129};
HashMap<String, byte[]> props = new HashMap<String, byte[]>();
props.put("svn:ignore", ignoreval);
+ props.put("binaryprop", binaryval);
CommitContext cc =
(cb != null
- ? new CommitContext(session, "Add svn:ignore",
+ ? new CommitContext(session, "Add svn:ignore and binaryprop",
cb.getBase, cb.getProps, cb.getKind)
- : new CommitContext(session, "Add svn:ignore"));
+ : new CommitContext(session, "Add svn:ignore and binaryprop"));
try {
cc.editor.alterDirectory("", 1, null, props);
cc.editor.complete();
@@ -690,6 +695,11 @@ public class SVNRemoteTests extends SVNT
"svn:ignore",
Revision.HEAD,
Revision.HEAD)));
+ assertTrue(Arrays.equals(binaryval,
+ client.propertyGet(session.getSessionUrl(),
+ "binaryprop",
+ Revision.HEAD,
+ Revision.HEAD)));
}
public void testEditorSetDirProps() throws Exception
@@ -1131,6 +1141,46 @@ public class SVNRemoteTests extends SVNT
assertEquals(21, receiver.status.size());
}
+ public void testTextchangeStatus() throws Exception
+ {
+ ISVNRemote session = getSession();
+
+ CommitMessageCallback cmcb = new CommitMessageCallback() {
+ public String getLogMessage(Set<CommitItem> x) {
+ return "Content change on A/B/E/alpha";
+ }
+ };
+
+ File alpha = new File(thisTest.getWorkingCopy(), "A/B/E/alpha");
+ FileOutputStream writer = new FileOutputStream(alpha);
+ writer.write("changed alpha text".getBytes());
+ writer.close();
+ client.commit(thisTest.getWCPathSet(), Depth.infinity, false, false,
+ null, null, cmcb, null);
+
+ RemoteStatusReceiver receiver = new RemoteStatusReceiver();
+ ISVNReporter rp = session.status(null, Revision.SVN_INVALID_REVNUM,
+ Depth.infinity, receiver);
+ try {
+ rp.setPath("", 1, Depth.infinity, false, null);
+ assertEquals(2, rp.finishReport());
+ } finally {
+ rp.dispose();
+ }
+
+ assertEquals(5, receiver.status.size());
+
+ // ra_serf returns the entries in inverted order compared to ra_local.
+ Collections.sort(receiver.status);
+ RemoteStatusReceiver.StatInfo mod = receiver.status.get(4);
+ assertEquals("A/B/E/alpha", mod.relpath);
+ assertEquals('F', mod.kind);
+ assertEquals("Text Changed", true, mod.textChanged);
+ assertEquals("Props Changed", false, mod.propsChanged);
+ assertEquals("Node Deleted", false, mod.deleted);
+ assertEquals(2, mod.info.getCommittedRevision());
+ }
+
public void testPropchangeStatus() throws Exception
{
ISVNRemote session = getSession();
@@ -1161,9 +1211,9 @@ public class SVNRemoteTests extends SVNT
RemoteStatusReceiver.StatInfo mod = receiver.status.get(3);
assertEquals("A/D/gamma", mod.relpath);
assertEquals('F', mod.kind);
- assertEquals(false, mod.textChanged);
- assertEquals(true, mod.propsChanged);
- assertEquals(false, mod.deleted);
+ assertEquals("TextChanged", false, mod.textChanged);
+ assertEquals("Props Changed", true, mod.propsChanged);
+ assertEquals("Node Deleted", false, mod.deleted);
assertEquals(2, mod.info.getCommittedRevision());
}
Propchange: subversion/branches/javahl-1.8-extensions/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
------------------------------------------------------------------------------
svn:eol-style = native