Add X-Gitiles-Object-Type header to TEXT replies.
Change-Id: I4ffee66b48662634be8dcc1810cd92fd08130ea9
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
index ecde06a..fa76cb5 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
@@ -72,6 +72,7 @@
private static final Logger log = LoggerFactory.getLogger(PathServlet.class);
static final String MODE_HEADER = "X-Gitiles-Path-Mode";
+ static final String TYPE_HEADER = "X-Gitiles-Object-Type";
/**
* Submodule URLs where we know there is a web page if the user visits the
@@ -201,12 +202,17 @@
}
}
- private void setModeHeader(HttpServletResponse res, FileType type) {
+ public static void setModeHeader(HttpServletResponse res, FileType type) {
res.setHeader(MODE_HEADER, String.format("%06o", type.mode.getBits()));
}
+ public static void setTypeHeader(HttpServletResponse res, int type) {
+ res.setHeader(TYPE_HEADER, Constants.typeString(type));
+ }
+
private void writeBlobText(HttpServletRequest req, HttpServletResponse res, WalkResult wr)
throws IOException {
+ setTypeHeader(res, wr.type.mode.getObjectType());
setModeHeader(res, wr.type);
try (Writer writer = startRenderText(req, res);
OutputStream out = BaseEncoding.base64().encodingStream(writer)) {
@@ -216,6 +222,7 @@
private void writeTreeText(HttpServletRequest req, HttpServletResponse res, WalkResult wr)
throws IOException {
+ setTypeHeader(res, wr.type.mode.getObjectType());
setModeHeader(res, wr.type);
try (Writer writer = startRenderText(req, res);
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java
index c187d72..8b0b4d2 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/RevisionServlet.java
@@ -148,6 +148,7 @@
if (loader.getType() != OBJ_COMMIT) {
res.setStatus(SC_NOT_FOUND);
} else {
+ PathServlet.setTypeHeader(res, loader.getType());
try (Writer writer = startRenderText(req, res);
OutputStream out = BaseEncoding.base64().encodingStream(writer)) {
loader.copyTo(out);