Index: subversion/bindings/java/javahl/native/SVNClient.cpp
===================================================================
--- subversion/bindings/java/javahl/native/SVNClient.cpp (revision 16356)
+++ subversion/bindings/java/javahl/native/SVNClient.cpp (working copy)
@@ -1806,7 +1806,8 @@
"(Ljava/lang/String;Ljava/lang/String;IJJJLjava/lang/String;IIIIZZ"
"Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;JZLjava/lang/String;Ljava/lang/String;"
- "Ljava/lang/String;JLorg/tigris/subversion/javahl/Lock;)V");
+ "Ljava/lang/String;JLorg/tigris/subversion/javahl/Lock;"
+ "JJILjava/lang/String;Ljava/lang/String;)V");
if(JNIUtil::isJavaExceptionThrown())
{
return NULL;
@@ -1843,6 +1844,12 @@
jstring jLockOwner = NULL;
jlong jLockCreationDate = 0;
jobject jLock = NULL;
+ jlong jOODLastCmtRevision =
+ org_tigris_subversion_javahl_Revision_SVN_INVALID_REVNUM;
+ jlong jOODLastCmtDate = 0;
+ jint jOODKind = org_tigris_subversion_javahl_NodeKind_none;
+ jstring jOODUrl = NULL;
+ jstring jOODLastCmtAuthor = NULL;
if(status != NULL)
{
@@ -1858,6 +1865,20 @@
{
return NULL;
}
+ jOODLastCmtRevision = status->ood_last_cmt_rev;
+ jOODLastCmtDate = status->ood_last_cmt_date;
+ jOODKind = EnumMapper::mapNodeKind(status->ood_kind);
+ jOODUrl = JNIUtil::makeJString(status->ood_url);
+ if(JNIUtil::isJavaExceptionThrown())
+ {
+ return NULL;
+ }
+ jOODLastCmtAuthor = JNIUtil::makeJString(status->ood_last_cmt_author);
+ if(JNIUtil::isJavaExceptionThrown())
+ {
+ return NULL;
+ }
+
svn_wc_entry_t * entry = status->entry;
if (entry != NULL)
{
@@ -1921,7 +1942,9 @@
jTextType, jPropType, jRepositoryTextType, jRepositoryPropType,
jIsLocked, jIsCopied, jConflictOld, jConflictNew, jConflictWorking,
jURLCopiedFrom, jRevisionCopiedFrom, jIsSwitched, jLockToken,
- jLockOwner, jLockComment, jLockCreationDate, jLock);
+ jLockOwner, jLockComment, jLockCreationDate, jLock,
+ jOODLastCmtRevision, jOODLastCmtDate, jOODKind, jOODUrl,
+ jOODLastCmtAuthor);
if(JNIUtil::isJavaExceptionThrown())
{
return NULL;
@@ -1986,6 +2009,16 @@
{
return NULL;
}
+ env->DeleteLocalRef(jOODUrl);
+ if(JNIUtil::isJavaExceptionThrown())
+ {
+ return NULL;
+ }
+ env->DeleteLocalRef(jOODLastCmtAuthor);
+ if(JNIUtil::isJavaExceptionThrown())
+ {
+ return NULL;
+ }
return ret;
}
Index: subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Status.java
===================================================================
--- subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Status.java (revision 16356)
+++ subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/Status.java (working copy)
@@ -136,6 +136,35 @@
* the lock in the repository
*/
private Lock reposLock;
+ /**
+ * @since 1.3
+ * Set to the youngest committed revision, or {@link
+ * Revision#SVN_INVALID_REVNUM} if out of date.
+ */
+ private long oodLastCmtRevision = Revision.SVN_INVALID_REVNUM;
+ /**
+ * @since 1.3
+ * Set to the most recent commit date, or 0 if out of date.
+ */
+ private long oodLastCmtDate = 0;
+ /**
+ * @since 1.3
+ * Set to the node kind of the youngest commit, or {@link
+ * NodeKind#none} if out of date.
+ */
+ private int oodKind = NodeKind.none;
+ /**
+ * @since 1.3
+ * Set to the URL of the youngest commit, or null if
+ * out of date.
+ */
+ private String oodURL;
+ /**
+ * @since 1.3
+ * Set to the user name of the youngest commit, or
+ * null if out of date.
+ */
+ private String oodLastCmtAuthor;
/**
* this constructor should only called from JNI code
@@ -171,6 +200,13 @@
* @param lockCreationDate the date, the lock was created if any
* @param reposLock the lock as stored in the repository if
* any
+ * @param oodLastCmtRevision the youngest revision, if out of date
+ * @param oodLastCmtDate the last commit date, if out of date
+ * @param oodKind the kind of the youngest revision, if
+ * out of date
+ * @param oodURL the URL of the last commit, if out of date
+ * @param oodLastCmtAuthor the author of the last commit, if out of
+ * date
*/
public Status(String path, String url, int nodeKind, long revision,
long lastChangedRevision, long lastChangedDate,
@@ -180,7 +216,9 @@
String conflictNew, String conflictWorking,
String urlCopiedFrom, long revisionCopiedFrom,
boolean switched, String lockToken, String lockOwner,
- String lockComment, long lockCreationDate, Lock reposLock)
+ String lockComment, long lockCreationDate, Lock reposLock,
+ long oodLastCmtRevision, long oodLastCmtDate,
+ int oodKind, String oodURL, String oodLastCmtAuthor)
{
this.path = path;
this.url = url;
@@ -206,6 +244,11 @@
this.lockComment = lockComment;
this.lockCreationDate = lockCreationDate;
this.reposLock = reposLock;
+ this.oodLastCmtRevision = oodLastCmtRevision;
+ this.oodLastCmtDate = oodLastCmtDate;
+ this.oodKind = oodKind;
+ this.oodURL = oodURL;
+ this.oodLastCmtAuthor = oodLastCmtAuthor;
}
/**
@@ -546,7 +589,57 @@
{
return reposLock;
}
+
/**
+ * @return The last committed revision, or {@link
+ * Revision#SVN_INVALID_REVNUM} if up to date.
+ * @since 1.3
+ */
+ public Revision oodLastCmtRevision()
+ {
+ return Revision.createNumber(oodLastCmtRevision);
+ }
+
+ /**
+ * @return The last committed date, or null if up to
+ * date.
+ * @since 1.3
+ */
+ public Date oodLastCmtDate()
+ {
+ return microsecondsToDate(oodLastCmtDate);
+ }
+
+ /**
+ * @return The node kind (e.g. file, directory, etc.), or
+ * null if up to date.
+ * @since 1.3
+ */
+ public int oodKind()
+ {
+ return oodKind;
+ }
+
+ /**
+ * @return The URL, or null if up to date.
+ * @since 1.3
+ */
+ public String oodURL()
+ {
+ return oodURL;
+ }
+
+ /**
+ * @return The author of the last commit, or null if
+ * up to date.
+ * @since 1.3
+ */
+ public String oodLastCmtAuthor()
+ {
+ return oodLastCmtAuthor;
+ }
+
+ /**
* class for kind status of the item or its properties
* the constants are defined in the interface StatusKind for building
* reasons