From 0e44acbb2fec928a1606dc60f427a148fff405c9 Mon Sep 17 00:00:00 2001
From: Mohamed Ragab <moragab@gmail.com>
Date: Wed, 02 May 2012 11:15:01 -0400
Subject: [PATCH] Added a script to facilitate setting the proxy host and port and no proxy hosts, and then it concatenates all the java system properties for setting the java proxy configurations and puts the resulting string in an environment variable JAVA_PROXY_CONFIG, modified the scirpts gitblit,  gitblit-ubuntu, and gitblit-centos to source the java-proxy-config.sh script and then include the resulting java proxy configuration in the java command

---
 src/com/gitblit/models/RefModel.java |   94 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 79 insertions(+), 15 deletions(-)

diff --git a/src/com/gitblit/models/RefModel.java b/src/com/gitblit/models/RefModel.java
index b33c8ba..806700b 100644
--- a/src/com/gitblit/models/RefModel.java
+++ b/src/com/gitblit/models/RefModel.java
@@ -19,50 +19,109 @@
 import java.util.Date;
 
 import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.PersonIdent;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevObject;
+import org.eclipse.jgit.revwalk.RevTag;
 
+/**
+ * RefModel is a serializable model class that represents a tag or branch and
+ * includes the referenced object.
+ * 
+ * @author James Moger
+ * 
+ */
 public class RefModel implements Serializable, Comparable<RefModel> {
 
 	private static final long serialVersionUID = 1L;
 	public final String displayName;
-	public final RevCommit commit;
-	public transient Ref ref;
+	public final RevObject referencedObject;
+	public transient Ref reference;
 
-	public RefModel(String displayName, Ref ref, RevCommit commit) {
+	public RefModel(String displayName, Ref ref, RevObject refObject) {
 		this.displayName = displayName;
-		this.ref = ref;
-		this.commit = commit;
+		this.reference = ref;
+		this.referencedObject = refObject;
 	}
 
 	public Date getDate() {
-		return new Date(commit.getCommitTime() * 1000L);
+		Date date = new Date(0);
+		if (referencedObject != null) {
+			if (referencedObject instanceof RevTag) {
+				RevTag tag = (RevTag) referencedObject;
+				if (tag.getTaggerIdent() != null) {
+					date = tag.getTaggerIdent().getWhen();
+				}
+			} else if (referencedObject instanceof RevCommit) {
+				date = ((RevCommit) referencedObject).getCommitterIdent().getWhen();
+			}
+		}
+		return date;
 	}
 
 	public String getName() {
-		return ref.getName();
+		return reference.getName();
 	}
 
-	public ObjectId getCommitId() {
-		return commit.getId();
+	public int getReferencedObjectType() {
+		int type = referencedObject.getType();
+		if (referencedObject instanceof RevTag) {
+			type = ((RevTag) referencedObject).getObject().getType();
+		}
+		return type;
 	}
 
-	public String getShortLog() {
-		return commit.getShortMessage();
+	public ObjectId getReferencedObjectId() {
+		if (referencedObject instanceof RevTag) {
+			return ((RevTag) referencedObject).getObject().getId();
+		}
+		return referencedObject.getId();
+	}
+
+	public String getShortMessage() {
+		String message = "";
+		if (referencedObject instanceof RevTag) {
+			message = ((RevTag) referencedObject).getShortMessage();
+		} else if (referencedObject instanceof RevCommit) {
+			message = ((RevCommit) referencedObject).getShortMessage();
+		}
+		return message;
+	}
+
+	public String getFullMessage() {
+		String message = "";
+		if (referencedObject instanceof RevTag) {
+			message = ((RevTag) referencedObject).getFullMessage();
+		} else if (referencedObject instanceof RevCommit) {
+			message = ((RevCommit) referencedObject).getFullMessage();
+		}
+		return message;
+	}
+
+	public PersonIdent getAuthorIdent() {
+		if (referencedObject instanceof RevTag) {
+			return ((RevTag) referencedObject).getTaggerIdent();
+		} else if (referencedObject instanceof RevCommit) {
+			return ((RevCommit) referencedObject).getAuthorIdent();
+		}
+		return null;
 	}
 
 	public ObjectId getObjectId() {
-		return ref.getObjectId();
+		return reference.getObjectId();
 	}
 
 	public boolean isAnnotatedTag() {
-		// ref.isPeeled() ??
-		return !getCommitId().equals(getObjectId());
+		if (referencedObject instanceof RevTag) {
+			return !getReferencedObjectId().equals(getObjectId());
+		}
+		return reference.getPeeledObjectId() != null;
 	}
 
 	@Override
 	public int hashCode() {
-		return getCommitId().hashCode() + getName().hashCode();
+		return getReferencedObjectId().hashCode() + getName().hashCode();
 	}
 
 	@Override
@@ -78,4 +137,9 @@
 	public int compareTo(RefModel o) {
 		return getDate().compareTo(o.getDate());
 	}
+
+	@Override
+	public String toString() {
+		return displayName;
+	}
 }
\ No newline at end of file

--
Gitblit v1.9.1