You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by vm...@apache.org on 2012/06/22 03:38:51 UTC
svn commit: r1352737 - in
/subversion/branches/javahl-ra/subversion/bindings/javahl: native/
src/org/apache/subversion/javahl/ src/org/apache/subversion/javahl/ra/
tests/org/apache/subversion/javahl/
Author: vmpn
Date: Fri Jun 22 01:38:50 2012
New Revision: 1352737
URL: http://svn.apache.org/viewvc?rev=1352737&view=rev
Log:
On the javahl-ra branch:
JavaHL: Merge two SVN RA session implementations into one
[ in subversion/bindings/javahl/native ]
* org_apache_subversion_javahl_SVNReposAccess.cpp
(Java_org_apache_subversion_javahl_SVNReposAccess_ctNative,
Java_org_apache_subversion_javahl_SVNReposAccess_dispose
Java_org_apache_subversion_javahl_SVNReposAccess_finalize
Java_org_apache_subversion_javahl_SVNReposAccess_getDatedRevision
Java_org_apache_subversion_javahl_SVNReposAccess_getLocks
Java_org_apache_subversion_javahl_SVNReposAccess_checkPath):
Functionality merged into org_apache_subversion_javahl_ra_SVNRa
* org_apache_subversion_javahl_ra_SVNRa.cpp
(Java_org_apache_subversion_javahl_ra_SVNRa_getDatedRevision,
Java_org_apache_subversion_javahl_ra_SVNRa_getLocks,
Java_org_apache_subversion_javahl_ra_SVNRa_checkPath): Functionality merged
from org_apache_subversion_javahl_SVNReposAccess.cpp
* SVNReposAccess.h,
SVNReposAccess.cpp,
SVNRa.h,
SVNRa.cpp
(getDatedRev, getLocks, checkPath): Functionality merged from
SVNReposAccess into SVNRa class
[ in subversion/bindings/javahl/src/org/tigris/subversion/javahl ]
* ISVNReposAccess.java,
SVNReposAccess.java
(getDatedRevision, getLocks, checkPath) Functionality
merged from SVNReposAccess into SVNRa
[ in subversion/bindings/javahl/src/org/tigris/subversion/javahl/ra ]
* SVNRa.java,
ISVNRa.java
(getDatedRevision, getLocks, checkPath) Functionality
merged into SVNRa from SVNReposAccess
[ in subversion/bindings/javahl/tests/org/tigris/subversion/javahl ]
* SVNRATests.java
(testDatedRev, testGetLocks, testCheckPath): Migrate test to use ISVNRa
interface
Removed:
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNReposAccess.cpp
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNReposAccess.h
subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNReposAccess.cpp
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReposAccess.java
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNReposAccess.java
Modified:
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h
subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java
subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java
Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp?rev=1352737&r1=1352736&r2=1352737&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp Fri Jun 22 01:38:50 2012
@@ -3,6 +3,8 @@
#include "svn_ra.h"
+#include "CreateJ.h"
+#include "EnumMapper.h"
#include "SVNRa.h"
#include "svn_private_config.h"
@@ -93,3 +95,43 @@ SVNRa::dispose(jobject jthis)
static jfieldID fid = 0;
SVNBase::dispose(jthis, &fid, JAVA_CLASS_SVN_RA);
}
+
+svn_revnum_t
+SVNRa::getDatedRev(apr_time_t tm)
+{
+ SVN::Pool requestPool;
+ svn_revnum_t rev;
+
+ SVN_JNI_ERR(svn_ra_get_dated_revision(m_session, &rev, tm,
+ requestPool.getPool()),
+ SVN_INVALID_REVNUM);
+
+ return rev;
+}
+
+jobject
+SVNRa::getLocks(const char *path, svn_depth_t depth)
+{
+ SVN::Pool requestPool;
+ apr_hash_t *locks;
+
+ SVN_JNI_ERR(svn_ra_get_locks2(m_session, &locks, path, depth,
+ requestPool.getPool()),
+ NULL);
+
+ return CreateJ::LockMap(locks, requestPool.getPool());
+}
+
+jobject
+SVNRa::checkPath(const char *path, Revision &revision)
+{
+ SVN::Pool requestPool;
+ svn_node_kind_t kind;
+
+ SVN_JNI_ERR(svn_ra_check_path(m_session, path,
+ revision.revision()->value.number,
+ &kind, requestPool.getPool()),
+ NULL);
+
+ return EnumMapper::mapNodeKind(kind);
+}
Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h?rev=1352737&r1=1352736&r2=1352737&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h Fri Jun 22 01:38:50 2012
@@ -7,6 +7,7 @@
#include "SVNBase.h"
#include "RaContext.h"
+#include "Revision.h"
#include <set>
@@ -24,6 +25,10 @@ class SVNRa: public SVNBase
jlong getLatestRevision();
+ svn_revnum_t getDatedRev(apr_time_t time);
+ jobject getLocks(const char *path, svn_depth_t depth);
+ jobject checkPath(const char *path, Revision &revision);
+
virtual void dispose(jobject jthis);
private:
Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp?rev=1352737&r1=1352736&r2=1352737&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_ra_SVNRa.cpp Fri Jun 22 01:38:50 2012
@@ -4,6 +4,8 @@
#include "JNIUtil.h"
#include "Prompter.h"
#include "SVNRa.h"
+#include "Revision.h"
+#include "EnumMapper.h"
#include "svn_private_config.h"
@@ -35,3 +37,52 @@ Java_org_apache_subversion_javahl_ra_SVN
return ras->getLatestRevision();
}
+
+JNIEXPORT jlong JNICALL
+Java_org_apache_subversion_javahl_ra_SVNRa_getDatedRevision
+(JNIEnv *env, jobject jthis, jobject jdate)
+{
+ JNIEntry(SVNRa, getDatedRevision);
+ SVNRa *ras = SVNRa::getCppObject(jthis);
+ CPPADDR_NULL_PTR(ras, SVN_INVALID_REVNUM);
+
+ apr_time_t date = JNIUtil::getDate(jdate);
+ if (JNIUtil::isExceptionThrown())
+ return SVN_INVALID_REVNUM;
+
+ return ras->getDatedRev(date);
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_apache_subversion_javahl_ra_SVNRa_getLocks
+(JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth)
+{
+ JNIEntry(SVNRa, getLocks);
+ SVNRa *ras = SVNRa::getCppObject(jthis);
+ CPPADDR_NULL_PTR(ras, NULL);
+
+ JNIStringHolder path(jpath);
+ if (JNIUtil::isExceptionThrown())
+ return NULL;
+
+ return ras->getLocks(path, EnumMapper::toDepth(jdepth));
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_apache_subversion_javahl_ra_SVNRa_checkPath
+(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision)
+{
+ JNIEntry(SVNReposAccess, checkPath);
+ SVNRa *ras = SVNRa::getCppObject(jthis);
+ CPPADDR_NULL_PTR(ras, NULL);
+
+ JNIStringHolder path(jpath);
+ if (JNIUtil::isExceptionThrown())
+ return NULL;
+
+ Revision revision(jrevision);
+ if (JNIUtil::isExceptionThrown())
+ return NULL;
+
+ return ras->checkPath(path, revision);
+}
Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java?rev=1352737&r1=1352736&r2=1352737&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/ISVNRa.java Fri Jun 22 01:38:50 2012
@@ -23,6 +23,15 @@
package org.apache.subversion.javahl.ra;
+import java.util.Date;
+import java.util.Map;
+
+import org.apache.subversion.javahl.SubversionException;
+import org.apache.subversion.javahl.types.Depth;
+import org.apache.subversion.javahl.types.Lock;
+import org.apache.subversion.javahl.types.NodeKind;
+import org.apache.subversion.javahl.types.Revision;
+
/**
* Represent an instance of RA session
*/
@@ -38,4 +47,17 @@ public interface ISVNRa
* @return latest revision
*/
public long getLatestRevision();
+
+ /**
+ * @param date The date
+ * @return The latest revision at date
+ */
+ public long getDatedRevision(Date date)
+ throws SubversionException;
+
+ public Map<String, Lock> getLocks(String path, Depth depth)
+ throws SubversionException;
+
+ public NodeKind checkPath(String path, Revision revision)
+ throws SubversionException;
}
Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java?rev=1352737&r1=1352736&r2=1352737&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ra/SVNRa.java Fri Jun 22 01:38:50 2012
@@ -23,13 +23,30 @@
package org.apache.subversion.javahl.ra;
+import java.util.Date;
+import java.util.Map;
+
import org.apache.subversion.javahl.JNIObject;
+import org.apache.subversion.javahl.SubversionException;
+import org.apache.subversion.javahl.types.Depth;
+import org.apache.subversion.javahl.types.Lock;
+import org.apache.subversion.javahl.types.NodeKind;
+import org.apache.subversion.javahl.types.Revision;
public class SVNRa extends JNIObject implements ISVNRa
{
@Override
public native long getLatestRevision();
-
+
+ public native long getDatedRevision(Date date)
+ throws SubversionException;
+
+ public native Map<String, Lock> getLocks(String path, Depth depth)
+ throws SubversionException;
+
+ public native NodeKind checkPath(String path, Revision revision)
+ throws SubversionException;
+
@Override
public native void finalize() throws Throwable;
Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java?rev=1352737&r1=1352736&r2=1352737&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRATests.java Fri Jun 22 01:38:50 2012
@@ -22,10 +22,6 @@
*/
package org.apache.subversion.javahl;
-import org.apache.subversion.javahl.SVNTests.DefaultPromptUserPassword;
-import org.apache.subversion.javahl.callback.*;
-
-import java.net.URI;
import java.util.Date;
import java.util.Set;
import java.util.Map;
@@ -47,8 +43,6 @@ import org.apache.subversion.javahl.type
*/
public class SVNRATests extends SVNTests
{
- protected ISVNReposAccess ra;
-
protected OneTest thisTest;
public SVNRATests()
@@ -65,7 +59,6 @@ public class SVNRATests extends SVNTests
super.setUp();
thisTest = new OneTest();
- ra = new SVNReposAccess(thisTest.getUrl());
}
/**
@@ -81,20 +74,24 @@ public class SVNRATests extends SVNTests
public void testDatedRev()
throws SubversionException, IOException
{
- long revision = ra.getDatedRevision(new Date());
+ ISVNRa session = getSession();
+
+ long revision = session.getDatedRevision(new Date());
assertEquals(revision, 1);
}
public void testGetLocks()
throws SubversionException, IOException
{
+ ISVNRa session = getSession();
+
Set<String> iotaPathSet = new HashSet<String>(1);
String iotaPath = thisTest.getWCPath() + "/iota";
iotaPathSet.add(iotaPath);
client.lock(iotaPathSet, "foo", false);
- Map<String, Lock> locks = ra.getLocks("iota", Depth.infinity);
+ Map<String, Lock> locks = session.getLocks("iota", Depth.infinity);
assertEquals(locks.size(), 1);
Lock lock = locks.get("/iota");
@@ -105,13 +102,15 @@ public class SVNRATests extends SVNTests
public void testCheckPath()
throws SubversionException, IOException
{
- NodeKind kind = ra.checkPath("iota", Revision.getInstance(1));
+ ISVNRa session = getSession();
+
+ NodeKind kind = session.checkPath("iota", Revision.getInstance(1));
assertEquals(NodeKind.file, kind);
- kind = ra.checkPath("iota", Revision.getInstance(0));
+ kind = session.checkPath("iota", Revision.getInstance(0));
assertEquals(NodeKind.none, kind);
- kind = ra.checkPath("A", Revision.getInstance(1));
+ kind = session.checkPath("A", Revision.getInstance(1));
assertEquals(NodeKind.dir, kind);
}