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 2013/06/17 07:42:22 UTC

svn commit: r1493646 - in /subversion/branches/javahl-ra/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/remote/ tests/org/apache/subversion/javahl/

Author: brane
Date: Mon Jun 17 05:42:21 2013
New Revision: 1493646

URL: http://svn.apache.org/r1493646
Log:
On the javahl-ra branch: Implement ISVNRemote.reparent.

[in subversion/bindings/javahl/src/org/apache/subversion/javahl]
* remote/RemoteSession.java (ISVNRemote.reparent): Declare native method.

[in subversion/bindings/javahl/tests/org/apache/subversion/javahl]
* SVNRemoteTests.java (SVNRemoteTests.testReparent): New test case.
  (SVNRemoteTests.getSession): Do not throw a checked exception.

[in subversion/bindings/javahl/native]
* RemoteSession.h, RemoteSession.cpp (RemoteSession::reparent): New.
* org_apache_subversion_javahl_remote_RemoteSession.cpp
  (Java_org_apache_subversion_javahl_remote_RemoteSession_reparent):
   Implement native method.

Modified:
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.cpp
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.h
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
    subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
    subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.cpp?rev=1493646&r1=1493645&r2=1493646&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.cpp Mon Jun 17 05:42:21 2013
@@ -273,6 +273,11 @@ RemoteSession::dispose(jobject jthis)
   SVNBase::dispose(jthis, &fid, JAVA_CLASS_REMOTE_SESSION);
 }
 
+void RemoteSession::reparent(const char* url)
+{
+  SVN_JNI_ERR(svn_ra_reparent(m_session, url, pool.getPool()), );
+}
+
 jstring
 RemoteSession::getSessionUrl()
 {

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.h?rev=1493646&r1=1493645&r2=1493646&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.h (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/RemoteSession.h Mon Jun 17 05:42:21 2013
@@ -58,6 +58,7 @@ class RemoteSession : public SVNBase
 
     virtual void dispose(jobject jthis);
 
+    void reparent(const char* url);
     jstring getSessionUrl();
     jstring getReposUUID();
     jobject getLatestRevision();

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp?rev=1493646&r1=1493645&r2=1493646&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp Mon Jun 17 05:42:21 2013
@@ -66,6 +66,19 @@ Java_org_apache_subversion_javahl_remote
   ras->cancelOperation();
 }
 
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_remote_RemoteSession_reparent(
+    JNIEnv *env, jobject jthis, jstring jurl)
+{
+  JNIEntry(RemoteSession, getSessionUrl);
+  RemoteSession *ras = RemoteSession::getCppObject(jthis);
+  CPPADDR_NULL_PTR(ras, );
+
+  JNIStringHolder url(jurl);
+  if (!JNIUtil::isJavaExceptionThrown())
+    ras->reparent(url);
+}
+
 JNIEXPORT jstring JNICALL
 Java_org_apache_subversion_javahl_remote_RemoteSession_getSessionUrl(
     JNIEnv *env, jobject jthis)

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java?rev=1493646&r1=1493645&r2=1493646&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java Mon Jun 17 05:42:21 2013
@@ -43,10 +43,7 @@ public class RemoteSession extends JNIOb
 
     public native void cancelOperation() throws ClientException;
 
-    public void reparent(String url) throws ClientException
-    {
-        thrownotimplemented("reparent");
-    }
+    public native void reparent(String url) throws ClientException;
 
     public native String getSessionUrl() throws ClientException;
 

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1493646&r1=1493645&r2=1493646&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java Mon Jun 17 05:42:21 2013
@@ -125,7 +125,7 @@ public class SVNRemoteTests extends SVNT
             assertNotNull("Null session was returned by factory", raSession);
             return raSession;
         }
-        catch (ClientException ex)
+        catch (Exception ex)
         {
             throw new RuntimeException(ex);
         }
@@ -175,7 +175,6 @@ public class SVNRemoteTests extends SVNT
         assertEquals(getTestRepoUrl(), session.getSessionUrl());
     }
 
-
     public void testGetSession_ConfigConstructor() throws Exception
     {
         ISVNRemote session;
@@ -194,4 +193,12 @@ public class SVNRemoteTests extends SVNT
         assertNotNull("Null session was returned by factory", session);
         assertEquals(getTestRepoUrl(), session.getSessionUrl());
     }
+
+    public void testReparent() throws Exception
+    {
+        ISVNRemote session = getSession();
+        String newUrl = session.getSessionUrl() + "/A/B/E";
+        session.reparent(newUrl);
+        assertEquals(newUrl, session.getSessionUrl());
+    }
 }