Author: vmpn
Date: Mon Jun 25 01:25:18 2012
New Revision: 1353377
URL: http://svn.apache.org/viewvc?rev=1353377&view=rev
Log:
On the javahl-ra branch:
Pass timestamp (nano seconds) rather than date (milli seconds) to avoid
precison loss (issue #2359)
[ in subversion/bindings/javahl/native ]
* org_apache_subversion_javahl_ra_SVNRa.cpp
(Java_org_apache_subversion_javahl_ra_SVNRa_getUUID): New
* SVNRa.h,
SVNRa.cpp
(getUUID): New
[ in subversion/bindings/javahl/src/org/apache/subversion/javahl/ra ]
* ISVNRa.java,
SVNRa.java
(getUUID): New
[ in subversion/bindings/javahl/tests/org/apache/subversion/javahl ]
* SVNRATests.java
(testGetUUID): New test for getUUID()
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=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp
(original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.cpp
Mon Jun 25 01:25:18 2012
@@ -89,6 +89,21 @@ SVNRa::getLatestRevision()
return rev;
}
+jstring
+SVNRa::getUUID()
+{
+ SVN::Pool subPool(pool);
+ const char * uuid;
+
+ SVN_JNI_ERR(svn_ra_get_uuid2(m_session, &uuid, subPool.getPool()), NULL);
+
+ jstring juuid = JNIUtil::makeJString(uuid);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ return juuid;
+}
+
void
SVNRa::dispose(jobject jthis)
{
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=1353377&r1=1353376&r2=1353377&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h
(original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNRa.h Mon
Jun 25 01:25:18 2012
@@ -24,6 +24,7 @@ class SVNRa: public SVNBase
~SVNRa();
jlong getLatestRevision();
+ jstring getUUID();
svn_revnum_t getDatedRev(jlong timestamp);
jobject getLocks(jstring jpath, jobject jdepth);
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=1353377&r1=1353376&r2=1353377&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
Mon Jun 25 01:25:18 2012
@@ -38,6 +38,17 @@ Java_org_apache_subversion_javahl_ra_SVN
return ras->getLatestRevision();
}
+JNIEXPORT jstring JNICALL
+Java_org_apache_subversion_javahl_ra_SVNRa_getUUID
+(JNIEnv *env, jobject jthis)
+{
+ JNIEntry(SVNRa, getUUID);
+ SVNRa *ras = SVNRa::getCppObject(jthis);
+ CPPADDR_NULL_PTR(ras, NULL);
+
+ return ras->getUUID();
+}
+
JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_ra_SVNRa_getDatedRevision
(JNIEnv *env, jobject jthis, jlong timestamp)
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=1353377&r1=1353376&r2=1353377&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
Mon Jun 25 01:25:18 2012
@@ -47,7 +47,12 @@ public interface ISVNRa
* @return latest revision
*/
public long getLatestRevision();
-
+
+ /**
+ * @return repository UUID
+ */
+ public String getUUID();
+
/**
* @param date
* The date
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=1353377&r1=1353376&r2=1353377&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
Mon Jun 25 01:25:18 2012
@@ -40,7 +40,10 @@ public class SVNRa extends JNIObject imp
{
@Override
public native long getLatestRevision();
-
+
+ @Override
+ public native String getUUID();
+
public native long getDatedRevision(long timestamp) throws
SubversionException;
public long getDatedRevision(Date date) throws SubversionException
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=1353377&r1=1353376&r2=1353377&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
Mon Jun 25 01:25:18 2012
@@ -140,4 +140,16 @@ public class SVNRATests extends SVNTests
assertEquals(1, session.getLatestRevision());
}
+
+ public void testGetUUID() throws Exception
+ {
+ ISVNRa session = getSession();
+
+ /*
+ * Test UUID
+ * TODO: Test for actual UUID once test dump file has
+ * fixed UUID
+ */
+ assertNotNull(session.getUUID());
+ }
}