From cf5db4cdca65f1f87a1b3b7f23437e9d26917f96 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 05 May 2014 11:16:30 -0400 Subject: [PATCH] Allow filter extensions to define init parameters in IStoredSettings --- src/main/java/com/gitblit/servlet/RpcServlet.java | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/RpcServlet.java b/src/main/java/com/gitblit/servlet/RpcServlet.java index e7b3ed2..2d59ebd 100644 --- a/src/main/java/com/gitblit/servlet/RpcServlet.java +++ b/src/main/java/com/gitblit/servlet/RpcServlet.java @@ -59,7 +59,7 @@ private static final long serialVersionUID = 1L; - public static final int PROTOCOL_VERSION = 6; + public static final int PROTOCOL_VERSION = 7; private IStoredSettings settings; @@ -101,7 +101,10 @@ result = PROTOCOL_VERSION; } else if (RpcRequest.LIST_REPOSITORIES.equals(reqType)) { // Determine the Gitblit clone url - String gitblitUrl = HttpUtils.getGitblitURL(request); + String gitblitUrl = settings.getString(Keys.web.canonicalUrl, null); + if (StringUtils.isEmpty(gitblitUrl)) { + gitblitUrl = HttpUtils.getGitblitURL(request); + } StringBuilder sb = new StringBuilder(); sb.append(gitblitUrl); sb.append(Constants.R_PATH); @@ -320,7 +323,10 @@ } else if (RpcRequest.LIST_FEDERATION_SETS.equals(reqType)) { // return the list of federation sets if (allowAdmin && gitblit.canFederate()) { - String gitblitUrl = HttpUtils.getGitblitURL(request); + String gitblitUrl = settings.getString(Keys.web.canonicalUrl, null); + if (StringUtils.isEmpty(gitblitUrl)) { + gitblitUrl = HttpUtils.getGitblitURL(request); + } result = gitblit.getFederationSets(gitblitUrl); } else { response.sendError(notAllowedCode); @@ -377,6 +383,19 @@ } else { response.sendError(notAllowedCode); } + } else if (RpcRequest.REINDEX_TICKETS.equals(reqType)) { + if (allowManagement) { + if (StringUtils.isEmpty(objectName)) { + // reindex all tickets + gitblit.getTicketService().reindex(); + } else { + // reindex tickets in a specific repository + RepositoryModel model = gitblit.getRepositoryModel(objectName); + gitblit.getTicketService().reindex(model); + } + } else { + response.sendError(notAllowedCode); + } } // send the result of the request -- Gitblit v1.9.1