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);