in clearcase-server/src/jetbrains/buildServer/controllers/EditClearcaseSettingsController.java [36:117]
public EditClearcaseSettingsController(@NotNull final WebControllerManager controllerManager) {
super(controllerManager);
controllerManager.registerController("/admin/clearCaseSettings.html", this);
registerAction(new ControllerAction() {
public boolean canProcess(@NotNull final HttpServletRequest request) {
return "convertOldSettings".equals(request.getParameter("action")) && !StringUtil.isEmptyOrSpaces(request.getParameter("view-path-value"));
}
public void process(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, @Nullable Element ajaxResponse) {
if (ajaxResponse == null) {
Loggers.SERVER.debug("Error: ajaxResponse is null");
return;
}
try {
final ViewPath viewPath = ClearCaseSupport.getViewPath(request.getParameter("view-path-value"));
final Element ccViewPath = new Element("cc-view-path");
ccViewPath.addContent(viewPath.getClearCaseViewPath());
final Element relPath = new Element("rel-path");
relPath.addContent(viewPath.getRelativePathWithinTheView());
ajaxResponse.addContent((Content) ccViewPath);
ajaxResponse.addContent((Content) relPath);
} catch (Exception e) {
final Element error = new Element("error");
error.addContent(e.getLocalizedMessage());
ajaxResponse.addContent((Content) error);
}
}
});
registerAction(new ControllerAction() {
public boolean canProcess(@NotNull final HttpServletRequest request) {
return "detectBranches".equals(request.getParameter("action"));
}
public void process(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, @Nullable Element ajaxResponse) {
if (ajaxResponse == null) {
Loggers.SERVER.debug("Error: ajaxResponse is null");
return;
}
try {
final String ccViewPath = request.getParameter("cc-view-path");
final String relPath = request.getParameter("rel-path");
final String viewPathValue = request.getParameter("view-path-value");
final ViewPath viewPath;
if (!StringUtil.isEmptyOrSpaces(ccViewPath) && !StringUtil.isEmptyOrSpaces(relPath)) {
viewPath = new ViewPath(ccViewPath, relPath);
}
else if (!StringUtil.isEmptyOrSpaces(viewPathValue)) {
viewPath = ClearCaseSupport.getViewPath(viewPathValue);
}
else {
throw new VcsException("view path is not specified");
}
final Element result = new Element("result");
result.addContent(createContent(ClearCaseSupport.detectBranches(viewPath)));
ajaxResponse.addContent((Content) result);
}
catch (final Exception e) {
final Element error = new Element("error");
error.addContent(e.getLocalizedMessage());
ajaxResponse.addContent((Content) error);
}
}
@NotNull
private String createContent(@NotNull final SortedSet<String> branches) {
if (branches.isEmpty()) {
return "No branches detected";
}
return "Following branches were detected: " + StringUtil.join(branches, ", ");
}
});
}