Format Java files with google-java-format
Change-Id: I90421ebf660a8fdbfa68cd0f5c3673498312ea64
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/ConfigSection.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/ConfigSection.java
index b61dae8..df41a36 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/ConfigSection.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/ConfigSection.java
@@ -15,10 +15,8 @@
package com.googlesource.gerrit.plugins.xdocs;
import com.google.common.base.MoreObjects;
-
-import org.eclipse.jgit.lib.Config;
-
import java.util.Set;
+import org.eclipse.jgit.lib.Config;
public class ConfigSection {
private final Config cfg;
@@ -47,8 +45,7 @@
if (defaultValue == null) {
return cfg.getString(section, subsection, name);
} else {
- return MoreObjects.firstNonNull(cfg.getString(section, subsection, name),
- defaultValue);
+ return MoreObjects.firstNonNull(cfg.getString(section, subsection, name), defaultValue);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/DiffMode.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/DiffMode.java
index 5f37e5e..979337f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/DiffMode.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/DiffMode.java
@@ -15,5 +15,8 @@
package com.googlesource.gerrit.plugins.xdocs;
public enum DiffMode {
- NO_DIFF, UNIFIED, SIDEBYSIDE_A, SIDEBYSIDE_B;
+ NO_DIFF,
+ UNIFIED,
+ SIDEBYSIDE_A,
+ SIDEBYSIDE_B;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/HttpModule.java
index dae128e..06ef00f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/HttpModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/HttpModule.java
@@ -22,10 +22,8 @@
class HttpModule extends ServletModule {
@Override
protected void configureServlets() {
- serveRegex("^" + XDocServlet.PATH_PREFIX + "(.+)?$")
- .with(XDocServlet.class);
+ serveRegex("^" + XDocServlet.PATH_PREFIX + "(.+)?$").with(XDocServlet.class);
- DynamicSet.bind(binder(), WebUiPlugin.class)
- .toInstance(new GwtPlugin("xdocs"));
+ DynamicSet.bind(binder(), WebUiPlugin.class).toInstance(new GwtPlugin("xdocs"));
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java
index ee029e3..8e6b440 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/Module.java
@@ -28,7 +28,6 @@
import com.google.gerrit.extensions.webui.ProjectWebLink;
import com.google.gerrit.extensions.webui.TopMenu;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.AsciidoctorFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.DocxFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatter;
@@ -36,7 +35,6 @@
import com.googlesource.gerrit.plugins.xdocs.formatter.MarkdownFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.PlainTextFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.ZipFormatter;
-
import java.util.List;
public class Module extends FactoryModule {
@@ -56,9 +54,7 @@
bind(Formatter.class)
.annotatedWith(Exports.named(AsciidoctorFormatter.NAME))
.to(AsciidoctorFormatter.class);
- bind(Formatter.class)
- .annotatedWith(Exports.named(DocxFormatter.NAME))
- .to(DocxFormatter.class);
+ bind(Formatter.class).annotatedWith(Exports.named(DocxFormatter.NAME)).to(DocxFormatter.class);
bind(Formatter.class)
.annotatedWith(Exports.named(MarkdownFormatter.NAME))
.to(MarkdownFormatter.class);
@@ -68,32 +64,29 @@
bind(Formatter.class)
.annotatedWith(Exports.named(PlainTextFormatter.NAME))
.to(PlainTextFormatter.class);
- bind(Formatter.class)
- .annotatedWith(Exports.named(ZipFormatter.NAME))
- .to(ZipFormatter.class);
+ bind(Formatter.class).annotatedWith(Exports.named(ZipFormatter.NAME)).to(ZipFormatter.class);
- DynamicSet.bind(binder(), ProjectWebLink.class)
- .to(XDocWebLink.class);
- DynamicSet.bind(binder(), BranchWebLink.class)
- .to(XDocWebLink.class);
- DynamicSet.bind(binder(), FileWebLink.class)
- .to(XDocWebLink.class);
- DynamicSet.bind(binder(), DiffWebLink.class)
- .to(SideBySideDiffPreviewWebLink.class);
- DynamicSet.bind(binder(), DiffWebLink.class)
- .to(UnifiedDiffPreviewWebLink.class);
+ DynamicSet.bind(binder(), ProjectWebLink.class).to(XDocWebLink.class);
+ DynamicSet.bind(binder(), BranchWebLink.class).to(XDocWebLink.class);
+ DynamicSet.bind(binder(), FileWebLink.class).to(XDocWebLink.class);
+ DynamicSet.bind(binder(), DiffWebLink.class).to(SideBySideDiffPreviewWebLink.class);
+ DynamicSet.bind(binder(), DiffWebLink.class).to(UnifiedDiffPreviewWebLink.class);
- DynamicSet.bind(binder(), TopMenu.class).toInstance(new TopMenu() {
- @Override
- public List<MenuEntry> getEntries() {
- StringBuilder url = new StringBuilder();
- url.append("/plugins/");
- url.append(pluginName);
- url.append(XDocServlet.PATH_PREFIX);
- url.append("${projectName}");
- return Lists.newArrayList(new MenuEntry(GerritTopMenu.PROJECTS,
- Lists.newArrayList(new MenuItem("Readme", url.toString()))));
- }
- });
+ DynamicSet.bind(binder(), TopMenu.class)
+ .toInstance(
+ new TopMenu() {
+ @Override
+ public List<MenuEntry> getEntries() {
+ StringBuilder url = new StringBuilder();
+ url.append("/plugins/");
+ url.append(pluginName);
+ url.append(XDocServlet.PATH_PREFIX);
+ url.append("${projectName}");
+ return Lists.newArrayList(
+ new MenuEntry(
+ GerritTopMenu.PROJECTS,
+ Lists.newArrayList(new MenuItem("Readme", url.toString()))));
+ }
+ });
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/PreviewDiffUrl.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/PreviewDiffUrl.java
index 366ad4a..dc85ed3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/PreviewDiffUrl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/PreviewDiffUrl.java
@@ -25,8 +25,7 @@
this.pluginName = pluginName;
}
- public String getSideBySideUrl(int changeId, Integer patchSetIdA,
- int patchSetIdB, String path) {
+ public String getSideBySideUrl(int changeId, Integer patchSetIdA, int patchSetIdB, String path) {
return getUrl(changeId, patchSetIdA, patchSetIdB, path, false);
}
@@ -34,8 +33,7 @@
return "plugins/" + pluginName + "/static/sideBySideDiffPreview.png";
}
- public String getUnifiedUrl(int changeId, Integer patchSetIdA,
- int patchSetIdB, String path) {
+ public String getUnifiedUrl(int changeId, Integer patchSetIdA, int patchSetIdB, String path) {
return getUrl(changeId, patchSetIdA, patchSetIdB, path, true);
}
@@ -43,8 +41,8 @@
return "plugins/" + pluginName + "/static/unifiedDiffPreview.png";
}
- private String getUrl(int changeId, Integer patchSetIdA, int patchSetIdB,
- String path, boolean unified) {
+ private String getUrl(
+ int changeId, Integer patchSetIdA, int patchSetIdB, String path, boolean unified) {
StringBuilder url = new StringBuilder();
url.append("#/x/");
url.append(pluginName);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/Resources.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/Resources.java
index 02e547b..378627d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/Resources.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/Resources.java
@@ -16,35 +16,33 @@
import com.google.gerrit.httpd.resources.Resource;
import com.google.gwtexpui.server.CacheHeaders;
-
import java.io.IOException;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Resources {
- public static final Resource METHOD_NOT_ALLOWED = new Resource() {
- private static final long serialVersionUID = 1L;
+ public static final Resource METHOD_NOT_ALLOWED =
+ new Resource() {
+ private static final long serialVersionUID = 1L;
- @Override
- public int weigh() {
- return 0;
- }
+ @Override
+ public int weigh() {
+ return 0;
+ }
- @Override
- public void send(HttpServletRequest req, HttpServletResponse res)
- throws IOException {
- CacheHeaders.setNotCacheable(res);
- res.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
- }
+ @Override
+ public void send(HttpServletRequest req, HttpServletResponse res) throws IOException {
+ CacheHeaders.setNotCacheable(res);
+ res.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
+ }
- @Override
- public boolean isUnchanged(long latestModifiedDate) {
- return false;
- }
+ @Override
+ public boolean isUnchanged(long latestModifiedDate) {
+ return false;
+ }
- protected Object readResolve() {
- return METHOD_NOT_ALLOWED;
- }
- };
+ protected Object readResolve() {
+ return METHOD_NOT_ALLOWED;
+ }
+ };
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/SideBySideDiffPreviewWebLink.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/SideBySideDiffPreviewWebLink.java
index 0205047..439a797 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/SideBySideDiffPreviewWebLink.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/SideBySideDiffPreviewWebLink.java
@@ -17,7 +17,6 @@
import com.google.gerrit.extensions.common.DiffWebLinkInfo;
import com.google.gerrit.extensions.webui.DiffWebLink;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
@@ -28,23 +27,28 @@
private final Formatters formatters;
@Inject
- SideBySideDiffPreviewWebLink(
- PreviewDiffUrl previewDiffUrl,
- Formatters formatters) {
+ SideBySideDiffPreviewWebLink(PreviewDiffUrl previewDiffUrl, Formatters formatters) {
this.previewDiffUrl = previewDiffUrl;
this.formatters = formatters;
}
@Override
- public DiffWebLinkInfo getDiffLink(String projectName, int changeId,
- Integer patchSetIdA, String revisionA, String pathA, int patchSetIdB,
- String revisionB, String pathB) {
+ public DiffWebLinkInfo getDiffLink(
+ String projectName,
+ int changeId,
+ Integer patchSetIdA,
+ String revisionA,
+ String pathA,
+ int patchSetIdB,
+ String revisionB,
+ String pathB) {
FormatterProvider formatter = formatters.get(projectName, pathB);
if (formatter == null) {
return null;
}
- return DiffWebLinkInfo.forSideBySideDiffView(SIDE_BY_SIDE_PREVIEW_DIFF,
+ return DiffWebLinkInfo.forSideBySideDiffView(
+ SIDE_BY_SIDE_PREVIEW_DIFF,
previewDiffUrl.getSideBySideIconUrl(),
previewDiffUrl.getSideBySideUrl(changeId, patchSetIdA, patchSetIdB, pathB),
Target.SELF);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/UnifiedDiffPreviewWebLink.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/UnifiedDiffPreviewWebLink.java
index a3cdb6e..0005f53 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/UnifiedDiffPreviewWebLink.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/UnifiedDiffPreviewWebLink.java
@@ -17,7 +17,6 @@
import com.google.gerrit.extensions.common.DiffWebLinkInfo;
import com.google.gerrit.extensions.webui.DiffWebLink;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
@@ -28,23 +27,28 @@
private final Formatters formatters;
@Inject
- UnifiedDiffPreviewWebLink(
- PreviewDiffUrl previewDiffUrl,
- Formatters formatters) {
+ UnifiedDiffPreviewWebLink(PreviewDiffUrl previewDiffUrl, Formatters formatters) {
this.previewDiffUrl = previewDiffUrl;
this.formatters = formatters;
}
@Override
- public DiffWebLinkInfo getDiffLink(String projectName, int changeId,
- Integer patchSetIdA, String revisionA, String pathA, int patchSetIdB,
- String revisionB, String pathB) {
+ public DiffWebLinkInfo getDiffLink(
+ String projectName,
+ int changeId,
+ Integer patchSetIdA,
+ String revisionA,
+ String pathA,
+ int patchSetIdB,
+ String revisionB,
+ String pathB) {
FormatterProvider formatter = formatters.get(projectName, pathB);
if (formatter == null) {
return null;
}
- return DiffWebLinkInfo.forUnifiedDiffView(UNIFIED_PREVIEW_DIFF,
+ return DiffWebLinkInfo.forUnifiedDiffView(
+ UNIFIED_PREVIEW_DIFF,
previewDiffUrl.getUnifiedIconUrl(),
previewDiffUrl.getUnifiedUrl(changeId, patchSetIdA, patchSetIdB, pathB),
Target.SELF);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocCache.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocCache.java
index 91917c4..c25d8d0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocCache.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocCache.java
@@ -24,9 +24,7 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.inject.name.Named;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
-
import org.eclipse.jgit.lib.ObjectId;
@Singleton
@@ -42,16 +40,29 @@
this.projectCache = projectCache;
}
- public Resource get(FormatterProvider formatter, Project.NameKey project,
- String file, ObjectId revId, ObjectId revIdB, DiffMode diffMode) {
+ public Resource get(
+ FormatterProvider formatter,
+ Project.NameKey project,
+ String file,
+ ObjectId revId,
+ ObjectId revIdB,
+ DiffMode diffMode) {
ProjectState p = projectCache.get(project);
ObjectId metaConfigRevId =
p != null && p.getConfig().getRevision() != null
? p.getConfig().getRevision()
: ObjectId.zeroId();
- return cache.getUnchecked((new XDocResourceKey(formatter.getName(),
- project, file, revId, metaConfigRevId, getParentsHash(project),
- revIdB, diffMode)).asString());
+ return cache.getUnchecked(
+ (new XDocResourceKey(
+ formatter.getName(),
+ project,
+ file,
+ revId,
+ metaConfigRevId,
+ getParentsHash(project),
+ revIdB,
+ diffMode))
+ .asString());
}
private String getParentsHash(Project.NameKey project) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocGlobalConfig.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocGlobalConfig.java
index 28bfd2c..db9a339 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocGlobalConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocGlobalConfig.java
@@ -20,10 +20,8 @@
import com.googlesource.gerrit.plugins.xdocs.formatter.MarkdownFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.PlainTextFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.ZipFormatter;
-
-import org.eclipse.jgit.lib.Config;
-
import java.util.Arrays;
+import org.eclipse.jgit.lib.Config;
public class XDocGlobalConfig {
public static final String SECTION_FORMATTER = "formatter";
@@ -50,15 +48,11 @@
static void initialize(Config cfg) {
cfg.setString(SECTION_FORMATTER, AsciidoctorFormatter.NAME, KEY_EXT, "adoc");
- cfg.setStringList(SECTION_FORMATTER, DocxFormatter.NAME, KEY_EXT,
- Arrays.asList("docx"));
- cfg.setString(SECTION_FORMATTER, ImageFormatter.NAME, KEY_MIME_TYPE,
- "image/*");
- cfg.setString(SECTION_FORMATTER, MarkdownFormatter.NAME, KEY_MIME_TYPE,
- "text/x-markdown");
- cfg.setString(SECTION_FORMATTER, PlainTextFormatter.NAME, KEY_MIME_TYPE,
- "text/plain");
- cfg.setStringList(SECTION_FORMATTER, ZipFormatter.NAME, KEY_EXT,
- Arrays.asList("jar", "war", "zip"));
+ cfg.setStringList(SECTION_FORMATTER, DocxFormatter.NAME, KEY_EXT, Arrays.asList("docx"));
+ cfg.setString(SECTION_FORMATTER, ImageFormatter.NAME, KEY_MIME_TYPE, "image/*");
+ cfg.setString(SECTION_FORMATTER, MarkdownFormatter.NAME, KEY_MIME_TYPE, "text/x-markdown");
+ cfg.setString(SECTION_FORMATTER, PlainTextFormatter.NAME, KEY_MIME_TYPE, "text/plain");
+ cfg.setStringList(
+ SECTION_FORMATTER, ZipFormatter.NAME, KEY_EXT, Arrays.asList("jar", "war", "zip"));
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocInit.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocInit.java
index d916d1d..026d4f1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocInit.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocInit.java
@@ -22,12 +22,10 @@
import com.google.gerrit.server.config.SitePaths;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
+import java.io.File;
import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS;
-import java.io.File;
-
@Singleton
public class XDocInit implements InitStep {
private final String pluginName;
@@ -35,8 +33,7 @@
private final ConsoleUI ui;
@Inject
- XDocInit(@PluginName String pluginName, SitePaths sitePaths,
- ConsoleUI ui) {
+ XDocInit(@PluginName String pluginName, SitePaths sitePaths, ConsoleUI ui) {
this.pluginName = pluginName;
this.sitePaths = sitePaths;
this.ui = ui;
@@ -44,8 +41,7 @@
@Override
public void run() throws Exception {
- File pluginConfig = new File(
- sitePaths.etc_dir.toFile(), pluginName + ".config");
+ File pluginConfig = new File(sitePaths.etc_dir.toFile(), pluginName + ".config");
if (!pluginConfig.exists()) {
ui.message("\n");
ui.header("%s plugin", pluginName);
@@ -54,22 +50,23 @@
XDocGlobalConfig.initialize(cfg);
cfg.save();
- ui.message("Initialized %s plugin: %s", pluginName,
- pluginConfig.getAbsolutePath());
+ ui.message("Initialized %s plugin: %s", pluginName, pluginConfig.getAbsolutePath());
}
- extract(new File(sitePaths.static_dir.toFile(),
- "xdocs/css/unified.css").toPath(),
- XDocInit.class, "diff/unified.css");
- extract(new File(sitePaths.static_dir.toFile(),
- "xdocs/css/sidebyside-a.css").toPath(),
- XDocInit.class, "diff/sidebyside-a.css");
- extract(new File(sitePaths.static_dir.toFile(),
- "xdocs/css/sidebyside-b.css").toPath(),
- XDocInit.class, "diff/sidebyside-b.css");
+ extract(
+ new File(sitePaths.static_dir.toFile(), "xdocs/css/unified.css").toPath(),
+ XDocInit.class,
+ "diff/unified.css");
+ extract(
+ new File(sitePaths.static_dir.toFile(), "xdocs/css/sidebyside-a.css").toPath(),
+ XDocInit.class,
+ "diff/sidebyside-a.css");
+ extract(
+ new File(sitePaths.static_dir.toFile(), "xdocs/css/sidebyside-b.css").toPath(),
+ XDocInit.class,
+ "diff/sidebyside-b.css");
}
@Override
- public void postRun() throws Exception {
- }
+ public void postRun() throws Exception {}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java
index c2fab74..d98c037 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java
@@ -34,13 +34,24 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
import com.googlesource.gerrit.plugins.xdocs.formatter.StreamFormatter;
import com.googlesource.gerrit.plugins.xdocs.formatter.StringFormatter;
-
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Locale;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.diff.RawText;
@@ -66,21 +77,6 @@
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Locale;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
-
@Singleton
public class XDocLoader extends CacheLoader<String, Resource> {
private static final Logger log = LoggerFactory.getLogger(XDocLoader.class);
@@ -94,7 +90,8 @@
private final Formatters formatters;
@Inject
- XDocLoader(GitRepositoryManager repoManager,
+ XDocLoader(
+ GitRepositoryManager repoManager,
@CanonicalWebUrl Provider<String> webUrl,
@PluginName String pluginName,
PluginConfigFactory cfgFactory,
@@ -118,8 +115,7 @@
}
if (key.getDiffMode() != DiffMode.NO_DIFF) {
- String htmlB =
- loadHtml(formatter, repo, rw, key, checkRevId(key.getRevIdB()));
+ String htmlB = loadHtml(formatter, repo, rw, key, checkRevId(key.getRevIdB()));
if (html == null && htmlB == null) {
throw new ResourceNotFoundException();
}
@@ -130,8 +126,8 @@
}
}
- RevCommit commit = rw.parseCommit(
- MoreObjects.firstNonNull(key.getRevIdB(), key.getRevId()));
+ RevCommit commit =
+ rw.parseCommit(MoreObjects.firstNonNull(key.getRevIdB(), key.getRevId()));
return getAsHtmlResource(html, commit.getCommitTime());
}
} catch (ResourceNotFoundException e) {
@@ -141,8 +137,7 @@
}
}
- private FormatterProvider getFormatter(String formatterName)
- throws ResourceNotFoundException {
+ private FormatterProvider getFormatter(String formatterName) throws ResourceNotFoundException {
FormatterProvider formatter = formatters.getByName(formatterName);
if (formatter == null) {
throw new ResourceNotFoundException();
@@ -150,17 +145,16 @@
return formatter;
}
- private static ObjectId checkRevId(ObjectId revId)
- throws ResourceNotFoundException {
+ private static ObjectId checkRevId(ObjectId revId) throws ResourceNotFoundException {
if (revId == null) {
throw new ResourceNotFoundException();
}
return revId;
}
- private String loadHtml(FormatterProvider formatter, Repository repo,
- RevWalk rw, XDocResourceKey key, ObjectId revId) throws IOException,
- ResourceNotFoundException, MethodNotAllowedException, GitAPIException {
+ private String loadHtml(
+ FormatterProvider formatter, Repository repo, RevWalk rw, XDocResourceKey key, ObjectId revId)
+ throws IOException, ResourceNotFoundException, MethodNotAllowedException, GitAPIException {
RevCommit commit = rw.parseCommit(revId);
RevTree tree = commit.getTree();
try (TreeWalk tw = new TreeWalk(repo)) {
@@ -172,32 +166,38 @@
}
ObjectId objectId = tw.getObjectId(0);
ObjectLoader loader = repo.open(objectId);
- return getHtml(formatter, repo, loader, key.getProject(),
- key.getResource(), revId);
+ return getHtml(formatter, repo, loader, key.getProject(), key.getResource(), revId);
}
}
- private String getHtml(FormatterProvider formatter, Repository repo,
- ObjectLoader loader, Project.NameKey project, String path, ObjectId revId)
- throws MethodNotAllowedException, IOException, GitAPIException,
- ResourceNotFoundException {
+ private String getHtml(
+ FormatterProvider formatter,
+ Repository repo,
+ ObjectLoader loader,
+ Project.NameKey project,
+ String path,
+ ObjectId revId)
+ throws MethodNotAllowedException, IOException, GitAPIException, ResourceNotFoundException {
Formatter f = formatter.get();
if (f instanceof StringFormatter) {
- return getHtml(formatter.getName(), (StringFormatter) f, repo, loader,
- project, path, revId);
+ return getHtml(formatter.getName(), (StringFormatter) f, repo, loader, project, path, revId);
} else if (f instanceof StreamFormatter) {
- return getHtml(formatter.getName(), (StreamFormatter) f, repo, loader,
- project, path, revId);
+ return getHtml(formatter.getName(), (StreamFormatter) f, repo, loader, project, path, revId);
} else {
log.error(String.format("Unsupported formatter: %s", formatter.getName()));
throw new ResourceNotFoundException();
}
}
- private String getHtml(String formatterName, StringFormatter f,
- Repository repo, ObjectLoader loader, Project.NameKey project,
- String path, ObjectId revId) throws MethodNotAllowedException,
- IOException, GitAPIException {
+ private String getHtml(
+ String formatterName,
+ StringFormatter f,
+ Repository repo,
+ ObjectLoader loader,
+ Project.NameKey project,
+ String path,
+ ObjectId revId)
+ throws MethodNotAllowedException, IOException, GitAPIException {
byte[] bytes = loader.getBytes(Integer.MAX_VALUE);
boolean isBinary = RawText.isBinary(bytes);
if (formatterName.equals(Formatters.RAW_FORMATTER) && isBinary) {
@@ -208,26 +208,36 @@
if (!isBinary) {
raw = replaceMacros(repo, project, revId, abbrRevId, raw);
}
- return f.format(project.get(), path, revId.getName(), abbrRevId,
- getFormatterConfig(formatterName), raw);
+ return f.format(
+ project.get(), path, revId.getName(), abbrRevId, getFormatterConfig(formatterName), raw);
}
- private String getHtml(String formatterName, StreamFormatter f,
- Repository repo, ObjectLoader loader, Project.NameKey project,
- String path, ObjectId revId) throws IOException {
+ private String getHtml(
+ String formatterName,
+ StreamFormatter f,
+ Repository repo,
+ ObjectLoader loader,
+ Project.NameKey project,
+ String path,
+ ObjectId revId)
+ throws IOException {
try (InputStream raw = loader.openStream()) {
- return f.format(project.get(), path, revId.getName(),
- getAbbrRevId(repo, revId), getFormatterConfig(formatterName), raw);
+ return f.format(
+ project.get(),
+ path,
+ revId.getName(),
+ getAbbrRevId(repo, revId),
+ getFormatterConfig(formatterName),
+ raw);
}
}
private String diffHtml(String htmlA, String htmlB, DiffMode diffMode)
throws IOException, TransformerConfigurationException, SAXException,
- ResourceNotFoundException {
+ ResourceNotFoundException {
ByteArrayOutputStream htmlDiff = new ByteArrayOutputStream();
- SAXTransformerFactory tf =
- (SAXTransformerFactory) TransformerFactory.newInstance();
+ SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
TransformerHandler result = tf.newTransformerHandler();
result.setResult(new StreamResult(htmlDiff));
@@ -249,10 +259,8 @@
ContentHandler postProcess = new XslFilter().xsl(result, htmlHeader);
postProcess.startDocument();
- postProcess.startElement("", "diffreport", "diffreport",
- new AttributesImpl());
- postProcess.startElement("", "diff", "diff",
- new AttributesImpl());
+ postProcess.startElement("", "diffreport", "diffreport", new AttributesImpl());
+ postProcess.startElement("", "diff", "diff", new AttributesImpl());
HtmlSaxDiffOutput output = new HtmlSaxDiffOutput(postProcess, "diff");
HTMLDiffer differ = new HTMLDiffer(output);
@@ -267,50 +275,46 @@
/**
* The daisydiff formatting may make inlined styles unparsable. Fix it:
+ *
* <ul>
- * <li>Remove span element to highlight addition/deletion inside style elements.</li>
- * <li>Replace '>' with '>'.</li>
+ * <li>Remove span element to highlight addition/deletion inside style elements.
+ * <li>Replace '>' with '>'.
* </ul>
*/
private String fixStyles(String html) {
Matcher m =
Pattern.compile("(<style[a-zA-Z -=/\"]+>\n)<[a-zA-Z -=\"]+>(.*)</[a-z]+>(\n</style>)")
- .matcher(html);
+ .matcher(html);
StringBuffer sb = new StringBuffer();
while (m.find()) {
- m.appendReplacement(sb, m.group(1) + m.group(2).replaceAll(">", ">")
- + m.group(3));
+ m.appendReplacement(sb, m.group(1) + m.group(2).replaceAll(">", ">") + m.group(3));
}
m.appendTail(sb);
return sb.toString();
}
- private TextNodeComparator getComparator(String html) throws IOException,
- SAXException {
+ private TextNodeComparator getComparator(String html) throws IOException, SAXException {
InputSource source =
- new InputSource(new ByteArrayInputStream(
- Strings.nullToEmpty(html).getBytes(UTF_8)));
+ new InputSource(new ByteArrayInputStream(Strings.nullToEmpty(html).getBytes(UTF_8)));
DomTreeBuilder handler = new DomTreeBuilder();
new HtmlCleaner().cleanAndParse(source, handler);
return new TextNodeComparator(handler, Locale.US);
}
private ConfigSection getFormatterConfig(String formatterName) {
- XDocGlobalConfig cfg =
- new XDocGlobalConfig(cfgFactory.getGlobalPluginConfig(pluginName));
+ XDocGlobalConfig cfg = new XDocGlobalConfig(cfgFactory.getGlobalPluginConfig(pluginName));
return cfg.getFormatterConfig(formatterName);
}
- private static String getAbbrRevId(Repository repo, ObjectId revId)
- throws IOException {
+ private static String getAbbrRevId(Repository repo, ObjectId revId) throws IOException {
try (ObjectReader reader = repo.newObjectReader()) {
return reader.abbreviate(revId).name();
}
}
- private String replaceMacros(Repository repo, Project.NameKey project,
- ObjectId revId, String abbrRevId, String raw) throws GitAPIException,
- IOException {
+ private String replaceMacros(
+ Repository repo, Project.NameKey project, ObjectId revId, String abbrRevId, String raw)
+ throws GitAPIException, IOException {
Map<String, String> macros = Maps.newHashMap();
String url = webUrl.get();
@@ -323,8 +327,9 @@
macros.put("PROJECT_URL", url + "#/admin/projects/" + project.get());
macros.put("REVISION", abbrRevId);
try (Git git = new Git(repo)) {
- macros.put("GIT_DESCRIPTION", MoreObjects.firstNonNull(
- git.describe().setTarget(revId).call(), abbrRevId));
+ macros.put(
+ "GIT_DESCRIPTION",
+ MoreObjects.firstNonNull(git.describe().setTarget(revId).call(), abbrRevId));
}
Matcher m = Pattern.compile("(\\\\)?@([A-Z_]+)@").matcher(raw);
@@ -354,20 +359,20 @@
@Override
protected void configure() {
- install(new CacheModule() {
- @Override
- protected void configure() {
- persist(X_DOC_RESOURCES, String.class, Resource.class)
- .maximumWeight(2 << 20)
- .weigher(XDocResourceWeigher.class)
- .loader(XDocLoader.class);
- }
- });
+ install(
+ new CacheModule() {
+ @Override
+ protected void configure() {
+ persist(X_DOC_RESOURCES, String.class, Resource.class)
+ .maximumWeight(2 << 20)
+ .weigher(XDocResourceWeigher.class)
+ .loader(XDocLoader.class);
+ }
+ });
}
}
- private static class XDocResourceWeigher implements
- Weigher<String, Resource> {
+ private static class XDocResourceWeigher implements Weigher<String, Resource> {
@Override
public int weigh(String key, Resource value) {
return key.length() * 2 + value.weigh();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocProjectConfig.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocProjectConfig.java
index eb45cd7..e0746be 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocProjectConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocProjectConfig.java
@@ -20,7 +20,6 @@
import com.google.gerrit.server.project.ProjectState;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
-
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.Constants;
@@ -37,20 +36,20 @@
private final Config cfg;
@Inject
- XDocProjectConfig(@PluginName String pluginName, PluginConfigFactory cfgFactory,
+ XDocProjectConfig(
+ @PluginName String pluginName,
+ PluginConfigFactory cfgFactory,
@Assisted ProjectState project) {
this.cfg = cfgFactory.getProjectPluginConfigWithInheritance(project, pluginName);
}
String getIndexRef() {
return MoreObjects.firstNonNull(
- cfg.getString(SECTION_WEB, null, KEY_INDEX_REF),
- Constants.HEAD);
+ cfg.getString(SECTION_WEB, null, KEY_INDEX_REF), Constants.HEAD);
}
String getIndexFile() {
return MoreObjects.firstNonNull(
- cfg.getString(SECTION_WEB, null, KEY_INDEX_FILE),
- DEFAULT_INDEX_FILE);
+ cfg.getString(SECTION_WEB, null, KEY_INDEX_FILE), DEFAULT_INDEX_FILE);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocResourceKey.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocResourceKey.java
index 3bb94c7..df607dd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocResourceKey.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocResourceKey.java
@@ -17,10 +17,8 @@
import com.google.common.base.Strings;
import com.google.gerrit.extensions.restapi.IdString;
import com.google.gerrit.reviewdb.client.Project;
-
-import org.eclipse.jgit.lib.ObjectId;
-
import java.util.Objects;
+import org.eclipse.jgit.lib.ObjectId;
public class XDocResourceKey {
private final String formatter;
@@ -32,9 +30,15 @@
private final ObjectId revIdB;
private final DiffMode diffMode;
- XDocResourceKey(String formatter, Project.NameKey project, String r,
- ObjectId revId, ObjectId metaConfigRevId, String parentsHash,
- ObjectId revIdB, DiffMode diffMode) {
+ XDocResourceKey(
+ String formatter,
+ Project.NameKey project,
+ String r,
+ ObjectId revId,
+ ObjectId metaConfigRevId,
+ String parentsHash,
+ ObjectId revIdB,
+ DiffMode diffMode) {
this.formatter = formatter;
this.project = project;
this.resource = r;
@@ -71,8 +75,8 @@
@Override
public int hashCode() {
- return Objects.hash(formatter, project, resource, revId, metaConfigRevId,
- parentsHash, revIdB, diffMode);
+ return Objects.hash(
+ formatter, project, resource, revId, metaConfigRevId, parentsHash, revIdB, diffMode);
}
@Override
@@ -145,9 +149,15 @@
if (s.length > 7) {
diffMode = s[7];
}
- return new XDocResourceKey(formatter, new Project.NameKey(project), file,
- toObjectId(revision), toObjectId(metaConfigRevision), parentsHash,
- toObjectId(revisionB), DiffMode.valueOf(diffMode));
+ return new XDocResourceKey(
+ formatter,
+ new Project.NameKey(project),
+ file,
+ toObjectId(revision),
+ toObjectId(metaConfigRevision),
+ parentsHash,
+ toObjectId(revisionB),
+ DiffMode.valueOf(diffMode));
}
private static ObjectId toObjectId(String id) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
index 6312c38..89327fa 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
@@ -33,9 +33,9 @@
import com.google.gerrit.httpd.resources.SmallResource;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.mime.FileTypeRegistry;
import com.google.gerrit.server.change.FileContentUtil;
import com.google.gerrit.server.git.GitRepositoryManager;
+import com.google.gerrit.server.mime.FileTypeRegistry;
import com.google.gerrit.server.permissions.PermissionBackend;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.permissions.RefPermission;
@@ -50,12 +50,14 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
-
import eu.medsea.mimeutil.MimeType;
-
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.errors.RevisionSyntaxException;
import org.eclipse.jgit.lib.Constants;
@@ -68,18 +70,11 @@
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.treewalk.filter.PathFilter;
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
@Singleton
public class XDocServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
- public static final String PATH_PREFIX = "/project/";
+ public static final String PATH_PREFIX = "/project/";
private final String pluginName;
private final Provider<ReviewDb> db;
@@ -123,8 +118,7 @@
}
@Override
- public void service(HttpServletRequest req, HttpServletResponse res)
- throws IOException {
+ public void service(HttpServletRequest req, HttpServletResponse res) throws IOException {
try {
validateRequestMethod(req);
@@ -137,23 +131,27 @@
return;
}
- MimeType mimeType = fileTypeRegistry.getMimeType(key.file, (byte[])null);
- mimeType = new MimeType(FileContentUtil.resolveContentType(
- state, key.file, FileMode.FILE, mimeType.toString()));
+ MimeType mimeType = fileTypeRegistry.getMimeType(key.file, (byte[]) null);
+ mimeType =
+ new MimeType(
+ FileContentUtil.resolveContentType(
+ state, key.file, FileMode.FILE, mimeType.toString()));
FormatterProvider formatter = getFormatter(req, key, mimeType);
validateDiffMode(key);
ProjectControl projectControl = projectControlFactory.controlFor(key.project);
- String rev = getRevision(
- key.diffMode == DiffMode.NO_DIFF
- ? MoreObjects.firstNonNull(key.revision, cfg.getIndexRef())
- : key.revision,
- projectControl);
+ String rev =
+ getRevision(
+ key.diffMode == DiffMode.NO_DIFF
+ ? MoreObjects.firstNonNull(key.revision, cfg.getIndexRef())
+ : key.revision,
+ projectControl);
String revB = getRevision(key.revisionB, projectControl);
try (Repository repo = repoManager.openRepository(key.project)) {
ObjectId revId =
- resolveRevision(repo,
+ resolveRevision(
+ repo,
key.diffMode == DiffMode.NO_DIFF
? MoreObjects.firstNonNull(rev, Constants.HEAD)
: rev);
@@ -173,8 +171,7 @@
Resource rsc;
if (formatter != null) {
- rsc = docCache.get(formatter, key.project, key.file, revId,
- revIdB, key.diffMode);
+ rsc = docCache.get(formatter, key.project, key.file, revId, revIdB, key.diffMode);
} else if (isImage(mimeType)) {
rsc = getImageResource(repo, key.diffMode, revId, revIdB, key.file);
} else {
@@ -182,8 +179,8 @@
}
if (rsc != Resource.NOT_FOUND) {
- res.setHeader(HttpHeaders.ETAG,
- computeETag(key.project, revId, key.file, revIdB, key.diffMode));
+ res.setHeader(
+ HttpHeaders.ETAG, computeETag(key.project, revId, key.file, revIdB, key.diffMode));
}
if (key.diffMode == DiffMode.NO_DIFF && rev == null) {
// file was loaded from HEAD, since HEAD is modifiable the document
@@ -195,8 +192,11 @@
rsc.send(req, res);
return;
}
- } catch (RepositoryNotFoundException | NoSuchProjectException
- | ResourceNotFoundException | AuthException | RevisionSyntaxException e) {
+ } catch (RepositoryNotFoundException
+ | NoSuchProjectException
+ | ResourceNotFoundException
+ | AuthException
+ | RevisionSyntaxException e) {
Resource.NOT_FOUND.send(req, res);
} catch (MethodNotAllowedException e) {
CacheHeaders.setNotCacheable(res);
@@ -215,11 +215,10 @@
return path;
}
- private Resource getImageResource(Repository repo, DiffMode diffMode,
- ObjectId revId, ObjectId revIdB, String file) {
- ObjectId id = diffMode == DiffMode.NO_DIFF || diffMode == DiffMode.SIDEBYSIDE_A
- ? revId
- : revIdB;
+ private Resource getImageResource(
+ Repository repo, DiffMode diffMode, ObjectId revId, ObjectId revIdB, String file) {
+ ObjectId id =
+ diffMode == DiffMode.NO_DIFF || diffMode == DiffMode.SIDEBYSIDE_A ? revId : revIdB;
try (RevWalk rw = new RevWalk(repo)) {
RevCommit commit = rw.parseCommit(id);
RevTree tree = commit.getTree();
@@ -255,15 +254,13 @@
}
}
- private static void validateDiffMode(ResourceKey key)
- throws ResourceNotFoundException {
+ private static void validateDiffMode(ResourceKey key) throws ResourceNotFoundException {
if (key.diffMode != DiffMode.NO_DIFF && (key.revisionB == null)) {
throw new ResourceNotFoundException();
}
}
- private ProjectState getProject(ResourceKey key)
- throws ResourceNotFoundException {
+ private ProjectState getProject(ResourceKey key) throws ResourceNotFoundException {
ProjectState state = projectCache.get(key.project);
if (state == null) {
throw new ResourceNotFoundException();
@@ -271,8 +268,8 @@
return state;
}
- private FormatterProvider getFormatter(HttpServletRequest req,
- ResourceKey key, MimeType mimeType) throws ResourceNotFoundException {
+ private FormatterProvider getFormatter(HttpServletRequest req, ResourceKey key, MimeType mimeType)
+ throws ResourceNotFoundException {
FormatterProvider formatter;
if (req.getParameter("raw") != null) {
formatter = formatters.getRawFormatter();
@@ -303,9 +300,8 @@
return "image".equals(mimeType.getMediaType());
}
- private String getRevision(String revision,
- ProjectControl projectControl) throws ResourceNotFoundException,
- AuthException, IOException, PermissionBackendException {
+ private String getRevision(String revision, ProjectControl projectControl)
+ throws ResourceNotFoundException, AuthException, IOException, PermissionBackendException {
if (revision == null) {
return null;
}
@@ -348,8 +344,7 @@
return revId;
}
- private void validateCanReadCommit(Repository repo,
- ProjectControl projectControl, ObjectId revId)
+ private void validateCanReadCommit(Repository repo, ProjectControl projectControl, ObjectId revId)
throws ResourceNotFoundException, IOException {
try (RevWalk rw = new RevWalk(repo)) {
RevCommit commit = rw.parseCommit(revId);
@@ -360,18 +355,17 @@
}
}
- private static boolean isResourceNotModified(HttpServletRequest req,
- ResourceKey key, ObjectId revId, ObjectId revIdB) {
+ private static boolean isResourceNotModified(
+ HttpServletRequest req, ResourceKey key, ObjectId revId, ObjectId revIdB) {
String receivedETag = req.getHeader(HttpHeaders.IF_NONE_MATCH);
if (receivedETag != null) {
- return receivedETag.equals(computeETag(key.project, revId, key.file,
- revIdB, key.diffMode));
+ return receivedETag.equals(computeETag(key.project, revId, key.file, revIdB, key.diffMode));
}
return false;
}
- private static String computeETag(Project.NameKey project, ObjectId revId,
- String file, ObjectId revIdB, DiffMode diffMode) {
+ private static String computeETag(
+ Project.NameKey project, ObjectId revId, String file, ObjectId revIdB, DiffMode diffMode) {
Hasher hasher = Hashing.md5().newHasher();
hasher.putUnencodedChars(project.get());
if (revId != null) {
@@ -379,17 +373,16 @@
}
hasher.putUnencodedChars(file);
if (diffMode != DiffMode.NO_DIFF) {
- hasher.putUnencodedChars(revIdB.getName()).putUnencodedChars(
- diffMode.name());
+ hasher.putUnencodedChars(revIdB.getName()).putUnencodedChars(diffMode.name());
}
return hasher.hash().toString();
}
- private String getRedirectUrl(HttpServletRequest req, ResourceKey key,
- XDocProjectConfig cfg) {
+ private String getRedirectUrl(HttpServletRequest req, ResourceKey key, XDocProjectConfig cfg) {
StringBuilder redirectUrl = new StringBuilder();
- redirectUrl.append(req.getRequestURL().substring(0,
- req.getRequestURL().length() - req.getRequestURI().length()));
+ redirectUrl.append(
+ req.getRequestURL()
+ .substring(0, req.getRequestURL().length() - req.getRequestURI().length()));
redirectUrl.append(req.getContextPath());
redirectUrl.append(PATH_PREFIX);
redirectUrl.append(IdString.fromDecoded(key.project.get()).encoded());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java
index 5ec6172..832d8ac 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocWebLink.java
@@ -27,22 +27,18 @@
import com.google.gerrit.server.project.ProjectState;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters;
import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
-
+import java.io.IOException;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-
@Singleton
public class XDocWebLink implements ProjectWebLink, BranchWebLink, FileWebLink {
- private static final Logger log = LoggerFactory
- .getLogger(XDocWebLink.class);
+ private static final Logger log = LoggerFactory.getLogger(XDocWebLink.class);
private static final String README = "readme";
private static final String PREVIEW = "preview";
@@ -73,26 +69,19 @@
@Override
public WebLinkInfo getBranchWebLink(String projectName, String branchName) {
String url = getBranchUrl(projectName, branchName);
- return url == null
- ? null
- : new WebLinkInfo(README, getImageUrl(), url, Target.SELF);
+ return url == null ? null : new WebLinkInfo(README, getImageUrl(), url, Target.SELF);
}
@Override
public WebLinkInfo getProjectWeblink(String projectName) {
String url = getBranchUrl(projectName, Constants.HEAD);
- return url == null
- ? null
- : new WebLinkInfo(README, getImageUrl(), url, Target.SELF);
+ return url == null ? null : new WebLinkInfo(README, getImageUrl(), url, Target.SELF);
}
@Override
- public WebLinkInfo getFileWebLink(String projectName, String revision,
- String fileName) {
+ public WebLinkInfo getFileWebLink(String projectName, String revision, String fileName) {
String url = getFileUrl(projectName, revision, fileName, false);
- return url == null
- ? null
- : new WebLinkInfo(PREVIEW, getImageUrl(), url, Target.BLANK);
+ return url == null ? null : new WebLinkInfo(PREVIEW, getImageUrl(), url, Target.BLANK);
}
private String getBranchUrl(String projectName, String branchName) {
@@ -101,12 +90,10 @@
// project not found -> no link
return null;
}
- return getFileUrl(projectName, branchName,
- cfgFactory.create(state).getIndexFile(), true);
+ return getFileUrl(projectName, branchName, cfgFactory.create(state).getIndexFile(), true);
}
- public String getFileUrl(String projectName, String revision,
- String fileName, boolean framed) {
+ public String getFileUrl(String projectName, String revision, String fileName, boolean framed) {
FormatterProvider formatter = formatters.get(projectName, fileName);
if (formatter == null) {
return null;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeApi.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeApi.java
index 0a3b3e1..6ab6fca 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeApi.java
@@ -17,16 +17,13 @@
import com.google.gerrit.extensions.client.ListChangesOption;
import com.google.gerrit.plugin.client.rpc.RestApi;
import com.google.gwt.user.client.rpc.AsyncCallback;
-
import com.googlesource.gerrit.plugins.xdocs.client.ChangeInfo.EditInfo;
-
import java.util.EnumSet;
public class ChangeApi {
public static void getChangeInfo(String id, AsyncCallback<ChangeInfo> callback) {
RestApi call = ChangeApi.detail(id);
- addOptions(call, EnumSet.of(
- ListChangesOption.ALL_REVISIONS));
+ addOptions(call, EnumSet.of(ListChangesOption.ALL_REVISIONS));
call.get(callback);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
index 48a4156..9c382a5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
@@ -19,19 +19,26 @@
import com.google.gerrit.extensions.client.ChangeStatus;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
-
import java.util.Collections;
import java.util.Comparator;
public class ChangeInfo extends JavaScriptObject {
public final native String project() /*-{ return this.project; }-*/;
+
public final native NativeMap<RevisionInfo> revisions() /*-{ return this.revisions; }-*/;
+
public final native RevisionInfo revision(String n) /*-{ return this.revisions[n]; }-*/;
+
public final native int _number() /*-{ return this._number; }-*/;
+
private final native String statusRaw() /*-{ return this.status; }-*/;
+
public final native String current_revision() /*-{ return this.current_revision; }-*/;
+
public final native void set_edit(EditInfo edit) /*-{ this.edit = edit; }-*/;
+
public final native EditInfo edit() /*-{ return this.edit; }-*/;
+
public final native boolean has_edit() /*-{ return this.hasOwnProperty('edit') }-*/;
public final ChangeStatus getStatus() {
@@ -47,8 +54,7 @@
}
}
- protected ChangeInfo() {
- }
+ protected ChangeInfo() {}
public static class RevisionInfo extends JavaScriptObject {
public static RevisionInfo fromEdit(EditInfo edit) {
@@ -65,10 +71,15 @@
}-*/;
public final native int _number() /*-{ return this._number; }-*/;
+
public final native String name() /*-{ return this.name; }-*/;
+
public final native String ref() /*-{ return this.ref; }-*/;
+
public final native boolean is_edit() /*-{ return this._number == 0; }-*/;
+
public final native CommitInfo commit() /*-{ return this.commit; }-*/;
+
public final native String edit_base() /*-{ return this.edit_base; }-*/;
public static int findEditParent(JsArray<RevisionInfo> list) {
@@ -93,26 +104,26 @@
public static void sortRevisionInfoByNumber(JsArray<RevisionInfo> list) {
final int editParent = findEditParent(list);
- Collections.sort(Natives.asList(list), new Comparator<RevisionInfo>() {
- @Override
- public int compare(RevisionInfo a, RevisionInfo b) {
- return num(a) - num(b);
- }
+ Collections.sort(
+ Natives.asList(list),
+ new Comparator<RevisionInfo>() {
+ @Override
+ public int compare(RevisionInfo a, RevisionInfo b) {
+ return num(a) - num(b);
+ }
- private int num(RevisionInfo r) {
- return !r.is_edit() ? 2 * (r._number() - 1) + 1 : 2 * editParent;
- }
- });
+ private int num(RevisionInfo r) {
+ return !r.is_edit() ? 2 * (r._number() - 1) + 1 : 2 * editParent;
+ }
+ });
}
- protected RevisionInfo () {
- }
+ protected RevisionInfo() {}
}
public static class EditInfo extends JavaScriptObject {
public final native String name() /*-{ return this.name; }-*/;
- protected EditInfo() {
- }
+ protected EditInfo() {}
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/CommitInfo.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/CommitInfo.java
index 00b2641..de05dc0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/CommitInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/CommitInfo.java
@@ -20,8 +20,8 @@
public class CommitInfo extends JavaScriptObject {
public final native String commit() /*-{ return this.commit; }-*/;
+
public final native JsArray<CommitInfo> parents() /*-{ return this.parents; }-*/;
- protected CommitInfo() {
- }
+ protected CommitInfo() {}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/DiffApi.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/DiffApi.java
index 7bd9b7f..b21d77e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/DiffApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/DiffApi.java
@@ -20,7 +20,10 @@
public class DiffApi {
- public static void list(String changeId, int patchSetId, Integer basePatchSetId,
+ public static void list(
+ String changeId,
+ int patchSetId,
+ Integer basePatchSetId,
AsyncCallback<NativeMap<FileInfo>> cb) {
RestApi api = ChangeApi.revision(changeId, patchSetId).view("files");
if (basePatchSetId != null) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/FileInfo.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/FileInfo.java
index 88941a4..ec7bfc3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/FileInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/FileInfo.java
@@ -17,37 +17,37 @@
import com.google.gerrit.client.rpc.Natives;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
-
import java.util.Collections;
import java.util.Comparator;
public class FileInfo extends JavaScriptObject {
public static final String COMMIT_MSG = "/COMMIT_MSG";
+
public final native String path() /*-{ return this.path; }-*/;
+
public final native boolean binary() /*-{ return this.binary || false; }-*/;
public static void sortFileInfoByPath(JsArray<FileInfo> list) {
- Collections.sort(Natives.asList(list), new Comparator<FileInfo>() {
- @Override
- public int compare(FileInfo a, FileInfo b) {
- if (COMMIT_MSG.equals(a.path())) {
- return -1;
- } else if (COMMIT_MSG.equals(b.path())) {
- return 1;
- }
- return a.path().compareTo(b.path());
- }
- });
+ Collections.sort(
+ Natives.asList(list),
+ new Comparator<FileInfo>() {
+ @Override
+ public int compare(FileInfo a, FileInfo b) {
+ if (COMMIT_MSG.equals(a.path())) {
+ return -1;
+ } else if (COMMIT_MSG.equals(b.path())) {
+ return 1;
+ }
+ return a.path().compareTo(b.path());
+ }
+ });
}
public static String getFileName(String path) {
- String fileName = COMMIT_MSG.equals(path)
- ? "Commit Message"
- : path;
+ String fileName = COMMIT_MSG.equals(path) ? "Commit Message" : path;
int s = fileName.lastIndexOf('/');
return s >= 0 ? fileName.substring(s + 1) : fileName;
}
- protected FileInfo() {
- }
+ protected FileInfo() {}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
index a25620d..26964ef 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
@@ -23,13 +23,13 @@
import com.google.gwt.user.client.ui.ImageResourceRenderer;
import com.google.gwt.user.client.ui.InlineHyperlink;
import com.google.gwt.user.client.ui.Label;
-
import com.googlesource.gerrit.plugins.xdocs.client.ChangeInfo.RevisionInfo;
public class PatchSetSelectBox extends FlowPanel {
public enum DisplaySide {
- A, B
+ A,
+ B
}
public static enum DiffView {
@@ -44,8 +44,13 @@
private final int patchSet;
private final String path;
- public PatchSetSelectBox(DiffView diffView, DisplaySide side,
- ChangeInfo change, Integer basePatchSet, int patchSet, String path) {
+ public PatchSetSelectBox(
+ DiffView diffView,
+ DisplaySide side,
+ ChangeInfo change,
+ Integer basePatchSet,
+ int patchSet,
+ String path) {
this.diffView = diffView;
this.side = side;
this.change = change;
@@ -108,8 +113,8 @@
}
private InlineHyperlink createBaseLink() {
- InlineHyperlink link = new InlineHyperlink("Base",
- getUrl(change._number(), null, patchSet, path, diffView));
+ InlineHyperlink link =
+ new InlineHyperlink("Base", getUrl(change._number(), null, patchSet, path, diffView));
if (isBaseSelected()) {
link.setStyleName("xdocs-patch-set-select-box-selected");
}
@@ -126,8 +131,9 @@
String label = r.is_edit() ? "edit" : Integer.toString(r._number());
Integer patchSetIdA = sideA() ? Integer.valueOf(r._number()) : basePatchSet;
int patchSetIdB = sideA() ? patchSet : r._number();
- InlineHyperlink link = new InlineHyperlink(label,
- getUrl(change._number(), patchSetIdA, patchSetIdB, path, diffView));
+ InlineHyperlink link =
+ new InlineHyperlink(
+ label, getUrl(change._number(), patchSetIdA, patchSetIdB, path, diffView));
if (isSelected(r._number())) {
link.setStyleName("xdocs-patch-set-select-box-selected");
}
@@ -137,12 +143,14 @@
private Anchor createDownloadLink() {
String base = GWT.getHostPageBaseURL() + "cat/";
String sideUrl = isBaseSelected() ? "1" : "0";
- int ps = isBaseSelected()
- ? change.revision(change.current_revision())._number()
- : getSelectedPatchSet();
- Anchor anchor = new Anchor(
- new ImageResourceRenderer().render(XDocsPlugin.RESOURCES.downloadIcon()),
- base + URL.encode(change._number() + "," + ps + "," + path) + "^" + sideUrl);
+ int ps =
+ isBaseSelected()
+ ? change.revision(change.current_revision())._number()
+ : getSelectedPatchSet();
+ Anchor anchor =
+ new Anchor(
+ new ImageResourceRenderer().render(XDocsPlugin.RESOURCES.downloadIcon()),
+ base + URL.encode(change._number() + "," + ps + "," + path) + "^" + sideUrl);
anchor.setTitle("Download");
return anchor;
}
@@ -160,9 +168,10 @@
}
private Anchor createEditIcon() {
- Anchor anchor = new Anchor(
- new ImageResourceRenderer().render(XDocsPlugin.RESOURCES.edit()),
- "#" + getEditUrl(change._number(), patchSet, path));
+ Anchor anchor =
+ new Anchor(
+ new ImageResourceRenderer().render(XDocsPlugin.RESOURCES.edit()),
+ "#" + getEditUrl(change._number(), patchSet, path));
anchor.setTitle("Edit");
return anchor;
}
@@ -176,12 +185,11 @@
}
private boolean isSelected(int ps) {
- return getSelectedPatchSet() != null
- && getSelectedPatchSet().intValue() == ps;
+ return getSelectedPatchSet() != null && getSelectedPatchSet().intValue() == ps;
}
- private static String getUrl(int changeId, Integer patchSetIdA,
- int patchSetIdB, String path, DiffView diffView) {
+ private static String getUrl(
+ int changeId, Integer patchSetIdA, int patchSetIdB, String path, DiffView diffView) {
StringBuilder url = new StringBuilder();
url.append("/x/");
url.append(Plugin.get().getName());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ProjectApi.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ProjectApi.java
index 85060ad..8776712 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ProjectApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ProjectApi.java
@@ -18,8 +18,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
public class ProjectApi {
- public static void getCommitInfo(String project, String ref,
- AsyncCallback<CommitInfo> callback) {
+ public static void getCommitInfo(String project, String ref, AsyncCallback<CommitInfo> callback) {
project(project).view("commits").id(ref).get(callback);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/VoidResult.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/VoidResult.java
index d381cd6..a01bf58 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/VoidResult.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/VoidResult.java
@@ -17,8 +17,7 @@
import com.google.gwt.core.client.JavaScriptObject;
public final class VoidResult extends JavaScriptObject {
- protected VoidResult() {
- }
+ protected VoidResult() {}
public static VoidResult create() {
return createObject().cast();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocApi.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocApi.java
index 65d39fe..b1f8f23 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocApi.java
@@ -24,8 +24,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
public class XDocApi {
- public static String getUrl(String projectName, String revision,
- String path) {
+ public static String getUrl(String projectName, String revision, String path) {
StringBuilder url = new StringBuilder();
url.append("plugins/");
url.append(Plugin.get().getName());
@@ -41,27 +40,27 @@
return url.toString();
}
- public static void checkHtml(String url,
- final AsyncCallback<VoidResult> callback) {
+ public static void checkHtml(String url, final AsyncCallback<VoidResult> callback) {
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
try {
- builder.sendRequest(null, new RequestCallback() {
- @Override
- public void onResponseReceived(Request request, Response response) {
- int status = response.getStatusCode();
- if (200 <= status && status < 300) {
- callback.onSuccess(VoidResult.create());
- } else {
- callback.onFailure(new RequestException(status + " "
- + response.getStatusText()));
- }
- }
+ builder.sendRequest(
+ null,
+ new RequestCallback() {
+ @Override
+ public void onResponseReceived(Request request, Response response) {
+ int status = response.getStatusCode();
+ if (200 <= status && status < 300) {
+ callback.onSuccess(VoidResult.create());
+ } else {
+ callback.onFailure(new RequestException(status + " " + response.getStatusText()));
+ }
+ }
- @Override
- public void onError(Request request, Throwable caught) {
- callback.onFailure(caught);
- }
- });
+ @Override
+ public void onError(Request request, Throwable caught) {
+ callback.onFailure(caught);
+ }
+ });
} catch (RequestException e) {
callback.onFailure(e);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocDiffScreen.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocDiffScreen.java
index b3d4690..02b1632 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocDiffScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocDiffScreen.java
@@ -30,10 +30,8 @@
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwtexpui.safehtml.client.SafeHtmlBuilder;
-
import com.googlesource.gerrit.plugins.xdocs.client.ChangeInfo.EditInfo;
import com.googlesource.gerrit.plugins.xdocs.client.ChangeInfo.RevisionInfo;
-
import java.util.List;
public abstract class XDocDiffScreen extends VerticalPanel {
@@ -52,70 +50,79 @@
this.changeId = changeId;
this.path = path;
- ChangeApi.getChangeInfo(changeId, new AsyncCallback<ChangeInfo>() {
+ ChangeApi.getChangeInfo(
+ changeId,
+ new AsyncCallback<ChangeInfo>() {
- @Override
- public void onSuccess(final ChangeInfo change) {
- change.revisions().copyKeysIntoChildren("name");
- if (Plugin.get().isSignedIn()) {
- ChangeApi.edit(change._number(), new AsyncCallback<EditInfo>() {
- @Override
- public void onSuccess(EditInfo edit) {
- if (edit != null) {
- change.set_edit(edit);
- change.revisions().put(edit.name(), RevisionInfo.fromEdit(edit));
- }
+ @Override
+ public void onSuccess(final ChangeInfo change) {
+ change.revisions().copyKeysIntoChildren("name");
+ if (Plugin.get().isSignedIn()) {
+ ChangeApi.edit(
+ change._number(),
+ new AsyncCallback<EditInfo>() {
+ @Override
+ public void onSuccess(EditInfo edit) {
+ if (edit != null) {
+ change.set_edit(edit);
+ change.revisions().put(edit.name(), RevisionInfo.fromEdit(edit));
+ }
+ initRevisionsAndShow(change);
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ // never invoked
+ }
+ });
+ } else {
initRevisionsAndShow(change);
}
+ }
- @Override
- public void onFailure(Throwable caught) {
- // never invoked
- }
- });
- } else {
- initRevisionsAndShow(change);
- }
- }
-
- private void initRevisionsAndShow(final ChangeInfo change) {
- parseRevisions(change, patchSet);
- if (revisionA == null) {
- ProjectApi.getCommitInfo(change.project(), change.current_revision(),
- new AsyncCallback<CommitInfo>() {
- @Override
- public void onSuccess(CommitInfo commit) {
- if (commit.parents() != null) {
- List<CommitInfo> parents = Natives.asList(commit.parents());
- if (!parents.isEmpty()) {
- revisionA = parents.get(0).commit();
+ private void initRevisionsAndShow(final ChangeInfo change) {
+ parseRevisions(change, patchSet);
+ if (revisionA == null) {
+ ProjectApi.getCommitInfo(
+ change.project(),
+ change.current_revision(),
+ new AsyncCallback<CommitInfo>() {
+ @Override
+ public void onSuccess(CommitInfo commit) {
+ if (commit.parents() != null) {
+ List<CommitInfo> parents = Natives.asList(commit.parents());
+ if (!parents.isEmpty()) {
+ revisionA = parents.get(0).commit();
+ }
+ }
+ show(change);
}
- }
- show(change);
- }
- @Override
- public void onFailure(Throwable caught) {
- // never invoked
- }
- });
- } else {
- show(change);
- }
- }
+ @Override
+ public void onFailure(Throwable caught) {
+ // never invoked
+ }
+ });
+ } else {
+ show(change);
+ }
+ }
- private void show(ChangeInfo change) {
- addHeader(change);
- init();
- display(change);
- }
+ private void show(ChangeInfo change) {
+ addHeader(change);
+ init();
+ display(change);
+ }
- @Override
- public void onFailure(Throwable caught) {
- showError("Unable to load change " + XDocDiffScreen.this.changeId
- + ": " + caught.getMessage());
- }
- });
+ @Override
+ public void onFailure(Throwable caught) {
+ showError(
+ "Unable to load change "
+ + XDocDiffScreen.this.changeId
+ + ": "
+ + caught.getMessage());
+ }
+ });
}
protected abstract void display(ChangeInfo change);
@@ -184,8 +191,7 @@
add(p);
}
- protected void init() {
- }
+ protected void init() {}
private Widget getPathHeader(ChangeInfo change) {
HorizontalPanel p = new HorizontalPanel();
@@ -209,71 +215,71 @@
}
private void addNavigationButtons(final ChangeInfo change) {
- DiffApi.list(changeId, patchSet, base,
+ DiffApi.list(
+ changeId,
+ patchSet,
+ base,
new AsyncCallback<NativeMap<FileInfo>>() {
- @Override
- public void onSuccess(NativeMap<FileInfo> result) {
- JsArray<FileInfo> files = result.values();
- FileInfo.sortFileInfoByPath(files);
- int index = 0;
- for (int i = 0; i < files.length(); i++) {
- if (path.equals(files.get(i).path())) {
- index = i;
- break;
+ @Override
+ public void onSuccess(NativeMap<FileInfo> result) {
+ JsArray<FileInfo> files = result.values();
+ FileInfo.sortFileInfoByPath(files);
+ int index = 0;
+ for (int i = 0; i < files.length(); i++) {
+ if (path.equals(files.get(i).path())) {
+ index = i;
+ break;
+ }
+ }
+
+ FileInfo prevInfo = index == 0 ? null : files.get(index - 1);
+ if (prevInfo != null) {
+ iconPanel.add(
+ createNavLink(XDocsPlugin.RESOURCES.goPrev(), change, patchSet, base, prevInfo));
+ }
+
+ iconPanel.add(
+ createIcon(XDocsPlugin.RESOURCES.goUp(), "Up to change", toChange(change)));
+
+ FileInfo nextInfo = index == files.length() - 1 ? null : files.get(index + 1);
+ if (nextInfo != null) {
+ iconPanel.add(
+ createNavLink(XDocsPlugin.RESOURCES.goNext(), change, patchSet, base, nextInfo));
+ }
}
- }
- FileInfo prevInfo = index == 0 ? null : files.get(index - 1);
- if (prevInfo != null) {
- iconPanel.add(createNavLink(XDocsPlugin.RESOURCES.goPrev(),
- change, patchSet, base, prevInfo));
- }
-
- iconPanel.add(createIcon(XDocsPlugin.RESOURCES.goUp(),
- "Up to change", toChange(change)));
-
- FileInfo nextInfo = index == files.length() - 1
- ? null
- : files.get(index + 1);
- if (nextInfo != null) {
- iconPanel.add(createNavLink(XDocsPlugin.RESOURCES.goNext(),
- change, patchSet, base, nextInfo));
- }
- }
-
- @Override
- public void onFailure(Throwable caught) {
- showError("Unable to load files of change " + changeId + ": "
- + caught.getMessage());
- }
- });
+ @Override
+ public void onFailure(Throwable caught) {
+ showError("Unable to load files of change " + changeId + ": " + caught.getMessage());
+ }
+ });
}
- private InlineHyperlink createNavLink(ImageResource res,
- final ChangeInfo change, final int patchSet, final Integer base,
+ private InlineHyperlink createNavLink(
+ ImageResource res,
+ final ChangeInfo change,
+ final int patchSet,
+ final Integer base,
final FileInfo file) {
- final InlineHyperlink link = createIcon(
- res, FileInfo.getFileName(file.path()),
- toFile(change, patchSet, base, file));
- XDocApi.checkHtml(XDocApi.getUrl(change.project(),
- getRevision(change, patchSet), file.path()),
+ final InlineHyperlink link =
+ createIcon(res, FileInfo.getFileName(file.path()), toFile(change, patchSet, base, file));
+ XDocApi.checkHtml(
+ XDocApi.getUrl(change.project(), getRevision(change, patchSet), file.path()),
new AsyncCallback<VoidResult>() {
- @Override
- public void onSuccess(VoidResult result) {
- link.setTargetHistoryToken(
- toPreview(change, patchSet, base, file));
- }
+ @Override
+ public void onSuccess(VoidResult result) {
+ link.setTargetHistoryToken(toPreview(change, patchSet, base, file));
+ }
- @Override
- public void onFailure(Throwable caught) {
- }
- });
+ @Override
+ public void onFailure(Throwable caught) {}
+ });
return link;
}
protected static InlineHyperlink createIcon(ImageResource res, String tooltip, String target) {
- InlineHyperlink l = new InlineHyperlink(
- AbstractImagePrototype.create(res).getHTML(), true, target);
+ InlineHyperlink l =
+ new InlineHyperlink(AbstractImagePrototype.create(res).getHTML(), true, target);
if (tooltip != null) {
l.setTitle(tooltip);
}
@@ -284,21 +290,18 @@
additionalIconPanel.add(icon);
}
- private String toPreview(ChangeInfo change, int patchSet,
- Integer base, FileInfo file) {
+ private String toPreview(ChangeInfo change, int patchSet, Integer base, FileInfo file) {
String panel = getPanel();
- return "/x/" + Plugin.get().getName()
+ return "/x/"
+ + Plugin.get().getName()
+ toPatchSet(change, patchSet, base)
+ file.path()
+ (panel != null ? "," + panel : "");
}
- private String toFile(ChangeInfo change, int patchSet, Integer base,
- FileInfo file) {
+ private String toFile(ChangeInfo change, int patchSet, Integer base, FileInfo file) {
String panel = file.binary() ? "unified" : getPanel();
- return toPatchSet(change, patchSet, base)
- + file.path()
- + (panel != null ? "," + panel : "");
+ return toPatchSet(change, patchSet, base) + file.path() + (panel != null ? "," + panel : "");
}
protected String getPanel() {
@@ -306,8 +309,7 @@
}
private static String toPatchSet(ChangeInfo change, int patchSet, Integer base) {
- return toChange(change)
- + (base != null ? patchSet + ".." + base : patchSet) + "/";
+ return toChange(change) + (base != null ? patchSet + ".." + base : patchSet) + "/";
}
private static String toChange(ChangeInfo change) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocScreen.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocScreen.java
index 5d7dd4a..42301c1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocScreen.java
@@ -58,21 +58,23 @@
add(p);
final String url = XDocApi.getUrl(projectName, revision, path);
- XDocApi.checkHtml(url, new AsyncCallback<VoidResult>() {
- @Override
- public void onSuccess(VoidResult result) {
- String frameId = "xdoc_iframe";
- Frame frame = new Frame(url);
- frame.getElement().setId(frameId);
- resize(frame, frameId);
- add(frame);
- }
+ XDocApi.checkHtml(
+ url,
+ new AsyncCallback<VoidResult>() {
+ @Override
+ public void onSuccess(VoidResult result) {
+ String frameId = "xdoc_iframe";
+ Frame frame = new Frame(url);
+ frame.getElement().setId(frameId);
+ resize(frame, frameId);
+ add(frame);
+ }
- @Override
- public void onFailure(Throwable caught) {
- showError(caught.getMessage());
- }
- });
+ @Override
+ public void onFailure(Throwable caught) {
+ showError(caught.getMessage());
+ }
+ });
}
private void showError(String message) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocSideBySideDiffScreen.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocSideBySideDiffScreen.java
index f3a17dc..fd5eaf0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocSideBySideDiffScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocSideBySideDiffScreen.java
@@ -18,7 +18,6 @@
import com.google.gwt.http.client.URL;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Frame;
-
import com.googlesource.gerrit.plugins.xdocs.client.PatchSetSelectBox.DiffView;
import com.googlesource.gerrit.plugins.xdocs.client.PatchSetSelectBox.DisplaySide;
@@ -41,25 +40,29 @@
@Override
protected void display(ChangeInfo change) {
String frameIdA = "xdoc_sidebyside_diff_a_iframe";
- Frame frameA = getRevisionA() != null
- ? new Frame(XDocApi.getUrl(change.project(), getRevisionSideA(), getPath()))
- : new Frame();
+ Frame frameA =
+ getRevisionA() != null
+ ? new Frame(XDocApi.getUrl(change.project(), getRevisionSideA(), getPath()))
+ : new Frame();
frameA.getElement().setId(frameIdA);
XDocScreen.resize(frameA, frameIdA);
String frameIdB = "xdoc_sidebyside_diff_b_iframe";
- Frame frameB =
- new Frame(XDocApi.getUrl(change.project(), getRevisionSideB(), getPath()));
+ Frame frameB = new Frame(XDocApi.getUrl(change.project(), getRevisionSideB(), getPath()));
frameB.getElement().setId(frameIdB);
XDocScreen.resize(frameB, frameIdB);
FlexTable t = new FlexTable();
t.setStyleName("xdocs-diff-table");
int row = addRow(t);
- t.setWidget(row, 0, new PatchSetSelectBox(
- DiffView.SIDE_BY_SIDE, DisplaySide.A, change, base, patchSet, path));
- t.setWidget(row, 1, new PatchSetSelectBox(
- DiffView.SIDE_BY_SIDE, DisplaySide.B, change, base, patchSet, path));
+ t.setWidget(
+ row,
+ 0,
+ new PatchSetSelectBox(DiffView.SIDE_BY_SIDE, DisplaySide.A, change, base, patchSet, path));
+ t.setWidget(
+ row,
+ 1,
+ new PatchSetSelectBox(DiffView.SIDE_BY_SIDE, DisplaySide.B, change, base, patchSet, path));
row = addRow(t);
t.setWidget(row, 0, frameA);
t.setWidget(row, 1, frameB);
@@ -76,13 +79,15 @@
@Override
protected void init() {
- addIcon(createIcon(
- XDocsPlugin.RESOURCES.sideBySideDiff(),
- "side-by-side text diff",
- XDocsPlugin.getSideBySideDiffUrl(changeId, base, patchSet, path)));
- addIcon(createIcon(
- XDocsPlugin.RESOURCES.unifiedDiffPreview(),
- "unified preview diff",
- XDocsPlugin.getUnifiedPreviewDiffUrl(changeId, base, patchSet, path)));
+ addIcon(
+ createIcon(
+ XDocsPlugin.RESOURCES.sideBySideDiff(),
+ "side-by-side text diff",
+ XDocsPlugin.getSideBySideDiffUrl(changeId, base, patchSet, path)));
+ addIcon(
+ createIcon(
+ XDocsPlugin.RESOURCES.unifiedDiffPreview(),
+ "unified preview diff",
+ XDocsPlugin.getUnifiedPreviewDiffUrl(changeId, base, patchSet, path)));
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocUnifiedDiffScreen.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocUnifiedDiffScreen.java
index 043ec9f..a4f2b70 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocUnifiedDiffScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocUnifiedDiffScreen.java
@@ -18,7 +18,6 @@
import com.google.gwt.http.client.URL;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Frame;
-
import com.googlesource.gerrit.plugins.xdocs.client.PatchSetSelectBox.DiffView;
import com.googlesource.gerrit.plugins.xdocs.client.PatchSetSelectBox.DisplaySide;
@@ -41,18 +40,21 @@
@Override
protected void display(ChangeInfo change) {
String frameId = "xdoc_unified_diff_iframe";
- Frame frame =
- new Frame(XDocApi.getUrl(change.project(), getRevision(), getPath()));
+ Frame frame = new Frame(XDocApi.getUrl(change.project(), getRevision(), getPath()));
frame.getElement().setId(frameId);
XDocScreen.resize(frame, frameId);
FlexTable t = new FlexTable();
t.setStyleName("xdocs-diff-table");
t.addStyleName("xdocs-unified-diff-table");
- t.setWidget(addRow(t), 0, new PatchSetSelectBox(
- DiffView.UNIFIED_DIFF, DisplaySide.A, change, base, patchSet, path));
- t.setWidget(addRow(t), 0, new PatchSetSelectBox(
- DiffView.UNIFIED_DIFF, DisplaySide.B, change, base, patchSet, path));
+ t.setWidget(
+ addRow(t),
+ 0,
+ new PatchSetSelectBox(DiffView.UNIFIED_DIFF, DisplaySide.A, change, base, patchSet, path));
+ t.setWidget(
+ addRow(t),
+ 0,
+ new PatchSetSelectBox(DiffView.UNIFIED_DIFF, DisplaySide.B, change, base, patchSet, path));
t.setWidget(addRow(t), 0, frame);
add(t);
}
@@ -68,13 +70,15 @@
@Override
protected void init() {
- addIcon(createIcon(
- XDocsPlugin.RESOURCES.unifiedDiff(),
- "unified text diff",
- XDocsPlugin.getUnifiedDiffUrl(changeId, base, patchSet, path)));
- addIcon(createIcon(
- XDocsPlugin.RESOURCES.sideBySideDiffPreview(),
- "side-by-side preview diff",
- XDocsPlugin.getSideBySidePreviewDiffUrl(changeId, base, patchSet, path)));
+ addIcon(
+ createIcon(
+ XDocsPlugin.RESOURCES.unifiedDiff(),
+ "unified text diff",
+ XDocsPlugin.getUnifiedDiffUrl(changeId, base, patchSet, path)));
+ addIcon(
+ createIcon(
+ XDocsPlugin.RESOURCES.sideBySideDiffPreview(),
+ "side-by-side preview diff",
+ XDocsPlugin.getSideBySidePreviewDiffUrl(changeId, base, patchSet, path)));
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocsPlugin.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocsPlugin.java
index 4d09480..4af8396 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocsPlugin.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/XDocsPlugin.java
@@ -24,18 +24,18 @@
@Override
public void onPluginLoad() {
- Plugin.get().screenRegex("project/([^/]*)/rev/([^/]*)/(.*)",
- new XDocScreen.Factory());
- Plugin.get().screenRegex("project/([^/]*)/(.*)",
- new XDocScreen.HeadFactory());
- Plugin.get().screenRegex("c/([^/]*)/([0-9]+(\\.{2}[0-9]+)?)/(.*),unified",
- new XDocUnifiedDiffScreen.Factory());
- Plugin.get().screenRegex("c/([^/]*)/([0-9]+(\\.{2}[0-9]+)?)/(.*)",
- new XDocSideBySideDiffScreen.Factory());
+ Plugin.get().screenRegex("project/([^/]*)/rev/([^/]*)/(.*)", new XDocScreen.Factory());
+ Plugin.get().screenRegex("project/([^/]*)/(.*)", new XDocScreen.HeadFactory());
+ Plugin.get()
+ .screenRegex(
+ "c/([^/]*)/([0-9]+(\\.{2}[0-9]+)?)/(.*),unified", new XDocUnifiedDiffScreen.Factory());
+ Plugin.get()
+ .screenRegex(
+ "c/([^/]*)/([0-9]+(\\.{2}[0-9]+)?)/(.*)", new XDocSideBySideDiffScreen.Factory());
}
- public static String getSideBySideDiffUrl(String changeId,
- Integer patchSetIdA, int patchSetIdB, String fileName) {
+ public static String getSideBySideDiffUrl(
+ String changeId, Integer patchSetIdA, int patchSetIdB, String fileName) {
StringBuilder url = new StringBuilder();
url.append("/c/");
url.append(changeId);
@@ -50,14 +50,13 @@
return url.toString();
}
- public static String getUnifiedDiffUrl(String changeId, Integer patchSetIdA,
- int patchSetIdB, String fileName) {
- return getSideBySideDiffUrl(changeId, patchSetIdA, patchSetIdB, fileName)
- + ",unified";
+ public static String getUnifiedDiffUrl(
+ String changeId, Integer patchSetIdA, int patchSetIdB, String fileName) {
+ return getSideBySideDiffUrl(changeId, patchSetIdA, patchSetIdB, fileName) + ",unified";
}
- public static String getSideBySidePreviewDiffUrl(String changeId,
- Integer patchSetIdA, int patchSetIdB, String fileName) {
+ public static String getSideBySidePreviewDiffUrl(
+ String changeId, Integer patchSetIdA, int patchSetIdB, String fileName) {
StringBuilder url = new StringBuilder();
url.append("/x/");
url.append(Plugin.get().getPluginName());
@@ -65,9 +64,8 @@
return url.toString();
}
- public static String getUnifiedPreviewDiffUrl(String changeId,
- Integer patchSetIdA, int patchSetIdB, String fileName) {
- return getSideBySidePreviewDiffUrl(changeId, patchSetIdA, patchSetIdB,
- fileName) + ",unified";
+ public static String getUnifiedPreviewDiffUrl(
+ String changeId, Integer patchSetIdA, int patchSetIdB, String fileName) {
+ return getSideBySidePreviewDiffUrl(changeId, patchSetIdA, patchSetIdB, fileName) + ",unified";
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatter.java
index 2da5f69..a233fe6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatter.java
@@ -19,19 +19,16 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
-import org.asciidoctor.Asciidoctor;
-import org.asciidoctor.AttributesBuilder;
-import org.asciidoctor.OptionsBuilder;
-import org.asciidoctor.SafeMode;
-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.util.Properties;
+import org.asciidoctor.Asciidoctor;
+import org.asciidoctor.AttributesBuilder;
+import org.asciidoctor.OptionsBuilder;
+import org.asciidoctor.SafeMode;
@Singleton
public class AsciidoctorFormatter implements StringFormatter {
@@ -46,25 +43,30 @@
private final Formatters formatters;
@Inject
- public AsciidoctorFormatter(
- FormatterUtil formatterUtil,
- Formatters formatters) throws IOException {
+ public AsciidoctorFormatter(FormatterUtil formatterUtil, Formatters formatters)
+ throws IOException {
this.attributes = readAttributes();
this.util = formatterUtil;
this.formatters = formatters;
}
@Override
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection globalCfg, String raw) throws IOException {
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection globalCfg,
+ String raw)
+ throws IOException {
if (!globalCfg.getBoolean(KEY_ALLOW_HTML, false)) {
raw = suppressHtml(raw);
}
- ConfigSection projectCfg =
- formatters.getFormatterConfig(NAME, projectName);
- String html = Asciidoctor.Factory.create(AsciidoctorFormatter.class.getClassLoader())
- .convert(raw, createOptions(projectCfg, abbrRev));
+ ConfigSection projectCfg = formatters.getFormatterConfig(NAME, projectName);
+ String html =
+ Asciidoctor.Factory.create(AsciidoctorFormatter.class.getClassLoader())
+ .convert(raw, createOptions(projectCfg, abbrRev));
return util.applyCss(html, NAME, projectName);
}
@@ -97,9 +99,10 @@
}
private AttributesBuilder getAttributes(ConfigSection cfg, String revision) {
- AttributesBuilder ab = AttributesBuilder.attributes()
- .tableOfContents(cfg.getBoolean(KEY_INCLUDE_TOC, true))
- .sourceHighlighter("prettify");
+ AttributesBuilder ab =
+ AttributesBuilder.attributes()
+ .tableOfContents(cfg.getBoolean(KEY_INCLUDE_TOC, true))
+ .sourceHighlighter("prettify");
for (String name : attributes.stringPropertyNames()) {
ab.attribute(name, attributes.getProperty(name));
}
@@ -110,8 +113,8 @@
private static Properties readAttributes() throws IOException {
Properties attributes = new Properties();
- try (InputStream in = AsciidoctorFormatter.class
- .getResourceAsStream("asciidoctor.properties")) {
+ try (InputStream in =
+ AsciidoctorFormatter.class.getResourceAsStream("asciidoctor.properties")) {
attributes.load(in);
}
return attributes;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/DocxFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/DocxFormatter.java
index 863b3ed..c6a936a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/DocxFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/DocxFormatter.java
@@ -17,19 +17,16 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
import org.docx4j.Docx4J;
import org.docx4j.Docx4jProperties;
import org.docx4j.convert.out.HTMLSettings;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
public class DocxFormatter implements StreamFormatter {
public static final String NAME = "DOCX";
@@ -41,8 +38,14 @@
}
@Override
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection cfg, InputStream raw) throws IOException {
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection cfg,
+ InputStream raw)
+ throws IOException {
// Docx4J tries to load some resources dynamically. This fails if the Gerrit
// core classloader is used since it doesn't see the resources that are
// contained in the plugin jar. To make the resource loading work we
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatter.java
index d7c6549..20fb533 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatter.java
@@ -17,5 +17,4 @@
import com.google.gerrit.extensions.annotations.ExtensionPoint;
@ExtensionPoint
-public interface Formatter {
-}
+public interface Formatter {}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/FormatterUtil.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/FormatterUtil.java
index 4e2993b..93dbf51 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/FormatterUtil.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/FormatterUtil.java
@@ -31,9 +31,17 @@
import com.google.gerrit.server.project.ProjectState;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectLoader;
import org.eclipse.jgit.lib.Repository;
@@ -46,17 +54,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
@Singleton
public class FormatterUtil {
private static final Logger log = LoggerFactory.getLogger(FormatterUtil.class);
@@ -69,7 +66,8 @@
private final Map<String, String> defaultCss;
@Inject
- FormatterUtil(@PluginName String pluginName,
+ FormatterUtil(
+ @PluginName String pluginName,
@PluginData File baseDir,
GitRepositoryManager repoManager,
ProjectCache projectCache,
@@ -83,18 +81,18 @@
}
/**
- * Returns the CSS from the file "<plugin-name>/<name>-<theme>.css" in the
- * refs/meta/config branch of the project.
+ * Returns the CSS from the file "<plugin-name>/<name>-<theme>.css" in the refs/meta/config branch
+ * of the project.
*
- * If theme is <code>null</code> or empty, the CSS from the file
- * "<plugin-name>/<name>.css" is returned.
+ * <p>If theme is <code>null</code> or empty, the CSS from the file "<plugin-name>/<name>.css" is
+ * returned.
*
- * @param name the name of the file in the "<plugin-name>/" folder without
- * theme and without the ".css" file extension
- * @param theme the name of the CSS theme, may be <code>null</code>, if given
- * it is included into the CSS file name: '<name>-<theme>.css'
- * @return the CSS from the file; HTML characters are escaped;
- * <code>null</code> if the file doesn't exist
+ * @param name the name of the file in the "<plugin-name>/" folder without theme and without the
+ * ".css" file extension
+ * @param theme the name of the CSS theme, may be <code>null</code>, if given it is included into
+ * the CSS file name: '<name>-<theme>.css'
+ * @return the CSS from the file; HTML characters are escaped; <code>null</code> if the file
+ * doesn't exist
*/
public String getCss(String projectName, String name, String theme) {
return Strings.isNullOrEmpty(theme)
@@ -103,13 +101,13 @@
}
/**
- * Returns the CSS from the file "<plugin-name>/<name>.css" in the
- * refs/meta/config branch of the project.
+ * Returns the CSS from the file "<plugin-name>/<name>.css" in the refs/meta/config branch of the
+ * project.
*
- * @param name the name of the file in the "<plugin-name>/" folder without the
- * ".css" file extension
- * @return the CSS from the file; HTML characters are escaped;
- * <code>null</code> if the file doesn't exist
+ * @param name the name of the file in the "<plugin-name>/" folder without the ".css" file
+ * extension
+ * @return the CSS from the file; HTML characters are escaped; <code>null</code> if the file
+ * doesn't exist
*/
public String getCss(String projectName, String name) {
return escapeHtml(getMetaConfigFile(projectName, name + ".css"));
@@ -118,33 +116,29 @@
/**
* Returns the inherited CSS.
*
- * If the project has a parent project the CSS of the parent project is
- * returned; if there is no parent project the global CSS is returned.
+ * <p>If the project has a parent project the CSS of the parent project is returned; if there is
+ * no parent project the global CSS is returned.
*
* @param projectName the name of the project
- * @param formatterName the name of the formatter for which the CSS should be
- * returned
- * @param name the name of the CSS file without theme and without the ".css"
- * file extension
- * @param theme the name of the CSS theme, may be <code>null</code>, if given
- * it is included into the CSS file name: '<name>-<theme>.css'
- * @return the inherited CSS; HTML characters are escaped; <code>null</code>
- * if there is no inherited CSS
- * @throws IOException thrown in case of an I/O Error while reading the global
- * CSS file
+ * @param formatterName the name of the formatter for which the CSS should be returned
+ * @param name the name of the CSS file without theme and without the ".css" file extension
+ * @param theme the name of the CSS theme, may be <code>null</code>, if given it is included into
+ * the CSS file name: '<name>-<theme>.css'
+ * @return the inherited CSS; HTML characters are escaped; <code>null</code> if there is no
+ * inherited CSS
+ * @throws IOException thrown in case of an I/O Error while reading the global CSS file
*/
- public String getInheritedCss(String projectName, String formatterName,
- String name, String theme) throws IOException {
- return getInheritedCss(projectCache.get(new Project.NameKey(projectName)),
- formatterName, name, theme);
+ public String getInheritedCss(String projectName, String formatterName, String name, String theme)
+ throws IOException {
+ return getInheritedCss(
+ projectCache.get(new Project.NameKey(projectName)), formatterName, name, theme);
}
- private String getInheritedCss(ProjectState project, String formatterName,
- String name, String theme) throws IOException {
+ private String getInheritedCss(
+ ProjectState project, String formatterName, String name, String theme) throws IOException {
for (ProjectState parent : project.parents()) {
String css = getCss(parent.getProject().getName(), name, theme);
- ConfigSection cfg =
- formatters.getFormatterConfig(formatterName, parent);
+ ConfigSection cfg = formatters.getFormatterConfig(formatterName, parent);
if (cfg.getBoolean(KEY_INHERIT_CSS, true)) {
return joinCss(getInheritedCss(parent, formatterName, name, theme), css);
} else {
@@ -165,36 +159,29 @@
}
/**
- * Returns the CSS from the file
- * "<review-site>/data/<plugin-name>/css/<name>-<theme>.css".
+ * Returns the CSS from the file "<review-site>/data/<plugin-name>/css/<name>-<theme>.css".
*
- * If theme is <code>null</code> or empty, the CSS from the file
+ * <p>If theme is <code>null</code> or empty, the CSS from the file
* "<review-site>/data/<plugin-name>/css/<name>.css" is returned.
*
- * @param name the name of the CSS file without theme and without the ".css"
- * file extension
- * @param theme the name of the CSS theme, may be <code>null</code>, if given
- * it is included into the CSS file name: '<name>-<theme>.css'
- * @return the CSS from the file; HTML characters are escaped;
- * <code>null</code> if the file doesn't exist
- * @throws IOException thrown in case of an I/O Error while reading the CSS
- * file
+ * @param name the name of the CSS file without theme and without the ".css" file extension
+ * @param theme the name of the CSS theme, may be <code>null</code>, if given it is included into
+ * the CSS file name: '<name>-<theme>.css'
+ * @return the CSS from the file; HTML characters are escaped; <code>null</code> if the file
+ * doesn't exist
+ * @throws IOException thrown in case of an I/O Error while reading the CSS file
*/
public String getGlobalCss(String name, String theme) throws IOException {
- return Strings.isNullOrEmpty(theme)
- ? getGlobalCss(name)
- : getGlobalCss(name + "-" + theme);
+ return Strings.isNullOrEmpty(theme) ? getGlobalCss(name) : getGlobalCss(name + "-" + theme);
}
/**
- * Returns the CSS from the file
- * "<review-site>/data/<plugin-name>/css/<name>.css".
+ * Returns the CSS from the file "<review-site>/data/<plugin-name>/css/<name>.css".
*
* @param name the name of the CSS file without the ".css" file extension
- * @return the CSS from the file; HTML characters are escaped;
- * <code>null</code> if the file doesn't exist
- * @throws IOException thrown in case of an I/O Error while reading the CSS
- * file
+ * @return the CSS from the file; HTML characters are escaped; <code>null</code> if the file
+ * doesn't exist
+ * @throws IOException thrown in case of an I/O Error while reading the CSS file
*/
public String getGlobalCss(String name) throws IOException {
Path p = Paths.get(baseDir.getAbsolutePath(), "css", name + ".css");
@@ -205,31 +192,26 @@
return null;
}
- public String applyCss(String html, String formatterName, String projectName)
- throws IOException {
- ConfigSection projectCfg =
- formatters.getFormatterConfig(formatterName, projectName);
+ public String applyCss(String html, String formatterName, String projectName) throws IOException {
+ ConfigSection projectCfg = formatters.getFormatterConfig(formatterName, projectName);
String cssName = formatterName.toLowerCase(Locale.US);
String cssTheme = projectCfg.getString(KEY_CSS_THEME);
String defaultCss = getDefaultCss(formatterName);
- String inheritedCss =
- getInheritedCss(projectName, formatterName, cssName, cssTheme);
+ String inheritedCss = getInheritedCss(projectName, formatterName, cssName, cssTheme);
String projectCss = getCss(projectName, cssName, cssTheme);
if (projectCfg.getBoolean(KEY_INHERIT_CSS, true)) {
- return insertCss(html,
- MoreObjects.firstNonNull(inheritedCss, defaultCss), projectCss);
+ return insertCss(html, MoreObjects.firstNonNull(inheritedCss, defaultCss), projectCss);
} else {
- return insertCss(html,
- MoreObjects.firstNonNull(projectCss,
- MoreObjects.firstNonNull(inheritedCss, defaultCss)));
+ return insertCss(
+ html,
+ MoreObjects.firstNonNull(projectCss, MoreObjects.firstNonNull(inheritedCss, defaultCss)));
}
}
private String getDefaultCss(String formatterName) throws IOException {
- String css = defaultCss.get(formatterName) ;
+ String css = defaultCss.get(formatterName);
if (css == null) {
- URL url = FormatterUtil.class.getResource(
- formatterName.toLowerCase(Locale.US) + ".css");
+ URL url = FormatterUtil.class.getResource(formatterName.toLowerCase(Locale.US) + ".css");
if (url != null) {
try (InputStream in = url.openStream();
TemporaryBuffer.Heap tmp = new TemporaryBuffer.Heap(128 * 1024)) {
@@ -237,8 +219,7 @@
css = new String(tmp.toByteArray(), UTF_8);
}
} else {
- log.info(String.format("No default CSS for formatter '%s' found.",
- formatterName));
+ log.info(String.format("No default CSS for formatter '%s' found.", formatterName));
css = "";
}
defaultCss.put(formatterName, css);
@@ -296,16 +277,15 @@
}
/**
- * Returns the content of the specified file from the "<plugin-name>/" folder
- * of the ref/meta/config branch.
+ * Returns the content of the specified file from the "<plugin-name>/" folder of the
+ * ref/meta/config branch.
*
* @param projectName the name of the project
* @param fileName the name of the file in the "<plugin-name>/" folder
* @return the file content, <code>null</code> if the file doesn't exist
*/
public String getMetaConfigFile(String projectName, String fileName) {
- try (Repository repo = repoManager.openRepository(
- new Project.NameKey(projectName))) {
+ try (Repository repo = repoManager.openRepository(new Project.NameKey(projectName))) {
try (RevWalk rw = new RevWalk(repo)) {
ObjectId id = repo.resolve(RefNames.REFS_CONFIG);
if (id == null) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java
index 4f953ed..def2f5b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java
@@ -26,27 +26,23 @@
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.server.mime.FileTypeRegistry;
import com.google.gerrit.server.change.FileContentUtil;
import com.google.gerrit.server.config.PluginConfigFactory;
+import com.google.gerrit.server.mime.FileTypeRegistry;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectState;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
import com.googlesource.gerrit.plugins.xdocs.XDocGlobalConfig;
-
import eu.medsea.mimeutil.MimeType;
-
+import java.util.Map.Entry;
import org.apache.commons.io.FilenameUtils;
import org.eclipse.jgit.lib.Config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Map.Entry;
-
@Singleton
public class Formatters {
private static final Logger log = LoggerFactory.getLogger(Formatters.class);
@@ -82,19 +78,19 @@
}
public FormatterProvider get(ProjectState project, String fileName) {
- XDocGlobalConfig globalCfg = new XDocGlobalConfig(
- pluginCfgFactory.getGlobalPluginConfig(pluginName));
- MimeType mimeType = fileTypeRegistry.getMimeType(fileName, (byte[])null);
- mimeType = new MimeType(FileContentUtil.resolveContentType(
- project, fileName, FileMode.FILE, mimeType.toString()));
+ XDocGlobalConfig globalCfg =
+ new XDocGlobalConfig(pluginCfgFactory.getGlobalPluginConfig(pluginName));
+ MimeType mimeType = fileTypeRegistry.getMimeType(fileName, (byte[]) null);
+ mimeType =
+ new MimeType(
+ FileContentUtil.resolveContentType(
+ project, fileName, FileMode.FILE, mimeType.toString()));
String extension = FilenameUtils.getExtension(fileName);
FormatterProvider formatter = null;
int formatterPrio = 0;
for (String pluginName : formatters.plugins()) {
- for (Entry<String, Provider<Formatter>> e :
- formatters.byPlugin(pluginName).entrySet()) {
- if (!globalCfg.getFormatterConfig(e.getKey())
- .getBoolean(KEY_ENABLED, true)) {
+ for (Entry<String, Provider<Formatter>> e : formatters.byPlugin(pluginName).entrySet()) {
+ if (!globalCfg.getFormatterConfig(e.getKey()).getBoolean(KEY_ENABLED, true)) {
continue;
}
ConfigSection formatterCfg = getFormatterConfig(e.getKey(), project);
@@ -123,8 +119,7 @@
}
}
}
- for (String ext :
- formatterCfg.getStringList(KEY_EXT)) {
+ for (String ext : formatterCfg.getStringList(KEY_EXT)) {
if (extension.equals(ext) || "*".equals(ext)) {
int prio = formatterCfg.getInt(KEY_PRIO, 0);
if (formatter == null || prio > formatterPrio) {
@@ -138,8 +133,7 @@
return formatter;
}
- public ConfigSection getFormatterConfig(String formatterName,
- String projectName) {
+ public ConfigSection getFormatterConfig(String formatterName, String projectName) {
ProjectState project = projectCache.get(new Project.NameKey(projectName));
if (project == null) {
return null;
@@ -147,8 +141,7 @@
return getFormatterConfig(formatterName, project);
}
- public ConfigSection getFormatterConfig(String formatterName,
- ProjectState project) {
+ public ConfigSection getFormatterConfig(String formatterName, ProjectState project) {
for (ProjectState p : project.tree()) {
Config cfg = pluginCfgFactory.getProjectPluginConfig(p, pluginName);
if (cfg.getSubsections(SECTION_FORMATTER).contains(formatterName)) {
@@ -156,8 +149,7 @@
}
}
- return new XDocGlobalConfig(
- pluginCfgFactory.getGlobalPluginConfig(pluginName))
+ return new XDocGlobalConfig(pluginCfgFactory.getGlobalPluginConfig(pluginName))
.getFormatterConfig(formatterName);
}
@@ -167,8 +159,7 @@
}
for (String pluginName : formatters.plugins()) {
- for (Entry<String, Provider<Formatter>> e :
- formatters.byPlugin(pluginName).entrySet()) {
+ for (Entry<String, Provider<Formatter>> e : formatters.byPlugin(pluginName).entrySet()) {
if (formatterName.equals(e.getKey())) {
return new FormatterProvider(formatterName, e.getValue());
}
@@ -185,19 +176,22 @@
XDocGlobalConfig globalCfg =
new XDocGlobalConfig(pluginCfgFactory.getGlobalPluginConfig(pluginName));
String formatterName =
- globalCfg.getFormatterConfig(RAW_FORMATTER)
+ globalCfg
+ .getFormatterConfig(RAW_FORMATTER)
.getString(KEY_FORMATTER, PlainTextFormatter.NAME);
if (formatterName.equals(RAW_FORMATTER)) {
- log.warn(String.format(
- "%s plugin: Invalid '%s' formatter configuration, '%s' formatter cannot be set to '%s', using '%s' formatter",
- pluginName, RAW_FORMATTER, RAW_FORMATTER, formatterName, PlainTextFormatter.NAME));
+ log.warn(
+ String.format(
+ "%s plugin: Invalid '%s' formatter configuration, '%s' formatter cannot be set to '%s', using '%s' formatter",
+ pluginName, RAW_FORMATTER, RAW_FORMATTER, formatterName, PlainTextFormatter.NAME));
formatterName = PlainTextFormatter.NAME;
}
FormatterProvider formatter = getByName(formatterName);
if (formatter == null) {
- log.warn(String.format(
- "%s plugin: Invalid '%s' formatter configuration, formatter '%s' not found, using '%s' formatter",
- pluginName, RAW_FORMATTER, formatterName, PlainTextFormatter.NAME));
+ log.warn(
+ String.format(
+ "%s plugin: Invalid '%s' formatter configuration, formatter '%s' not found, using '%s' formatter",
+ pluginName, RAW_FORMATTER, formatterName, PlainTextFormatter.NAME));
formatter = getByName(PlainTextFormatter.NAME);
}
return new FormatterProvider(RAW_FORMATTER, formatter.formatter);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/HtmlBuilder.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/HtmlBuilder.java
index 55b7964..33ef194 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/HtmlBuilder.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/HtmlBuilder.java
@@ -18,14 +18,12 @@
import com.google.gerrit.server.GerritPersonIdent;
import com.google.inject.Inject;
-
-import org.eclipse.jgit.lib.PersonIdent;
-
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
+import org.eclipse.jgit.lib.PersonIdent;
public class HtmlBuilder {
private final DateFormat rfc2822DateFormatter;
@@ -33,10 +31,8 @@
@Inject
HtmlBuilder(@GerritPersonIdent PersonIdent gerritIdent) {
- rfc2822DateFormatter =
- new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
- rfc2822DateFormatter.setCalendar(Calendar.getInstance(
- gerritIdent.getTimeZone(), Locale.US));
+ rfc2822DateFormatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
+ rfc2822DateFormatter.setCalendar(Calendar.getInstance(gerritIdent.getTimeZone(), Locale.US));
}
public HtmlBuilder startDocument() {
@@ -105,12 +101,7 @@
}
public HtmlBuilder open(String tag, String styleName) {
- html.append("<")
- .append(tag)
- .append(" ")
- .append("class=")
- .append(styleName)
- .append(">");
+ html.append("<").append(tag).append(" ").append("class=").append(styleName).append(">");
return this;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ImageFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ImageFormatter.java
index 901f900..48fad03 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ImageFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ImageFormatter.java
@@ -20,14 +20,11 @@
import com.google.gerrit.extensions.restapi.Url;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
import com.googlesource.gerrit.plugins.xdocs.XDocServlet;
-
-import org.eclipse.jgit.lib.Constants;
-
import java.io.IOException;
import java.io.InputStream;
+import org.eclipse.jgit.lib.Constants;
@Singleton
public class ImageFormatter implements StreamFormatter {
@@ -41,8 +38,14 @@
}
@Override
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection cfg, InputStream raw) throws IOException {
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection cfg,
+ InputStream raw)
+ throws IOException {
return "<img src=\"" + escapeHtml(getUrl(projectName, path, revision)) + "\"/>";
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatter.java
index df3a368..b5ef651 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatter.java
@@ -20,38 +20,38 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
import java.io.IOException;
public class MarkdownFormatter implements StringFormatter {
- public final static String NAME = "MARKDOWN";
+ public static final String NAME = "MARKDOWN";
private final FormatterUtil util;
private final Formatters formatters;
@Inject
- MarkdownFormatter(
- FormatterUtil formatterUtil,
- Formatters formatters) {
+ MarkdownFormatter(FormatterUtil formatterUtil, Formatters formatters) {
this.util = formatterUtil;
this.formatters = formatters;
}
@Override
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection globalCfg, String raw) throws IOException {
- ConfigSection projectCfg =
- formatters.getFormatterConfig(NAME, projectName);
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection globalCfg,
+ String raw)
+ throws IOException {
+ ConfigSection projectCfg = formatters.getFormatterConfig(NAME, projectName);
com.google.gerrit.server.documentation.MarkdownFormatter f =
new com.google.gerrit.server.documentation.MarkdownFormatter();
if (!globalCfg.getBoolean(KEY_ALLOW_HTML, false)) {
f.suppressHtml();
}
String cssTheme = projectCfg.getString(KEY_CSS_THEME);
- String inheritedCss =
- util.getInheritedCss(projectName, NAME, "markdown", cssTheme);
+ String inheritedCss = util.getInheritedCss(projectName, NAME, "markdown", cssTheme);
String projectCss = util.getCss(projectName, "markdown", cssTheme);
if (projectCfg.getBoolean(KEY_INHERIT_CSS, true)) {
// if there is no inherited CSS and f.setCss(null) is invoked
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/PlainTextFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/PlainTextFormatter.java
index 8a3decd..44ea542 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/PlainTextFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/PlainTextFormatter.java
@@ -19,11 +19,16 @@
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
public class PlainTextFormatter implements StringFormatter {
- public final static String NAME = "PLAIN_TEXT";
+ public static final String NAME = "PLAIN_TEXT";
@Override
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection cfg, String raw) {
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection cfg,
+ String raw) {
return "<pre>" + escapeHtml(raw) + "</pre>";
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StreamFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StreamFormatter.java
index 4760248..34bbef1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StreamFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StreamFormatter.java
@@ -15,7 +15,6 @@
package com.googlesource.gerrit.plugins.xdocs.formatter;
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
import java.io.IOException;
import java.io.InputStream;
@@ -23,8 +22,7 @@
/**
* Formats the given raw text as html.
*
- * @param projectName the name of the project that contains the file to be
- * formatted
+ * @param projectName the name of the project that contains the file to be formatted
* @param path the file path
* @param revision the revision from which the file is loaded
* @param abbrRev the abbreviated revision from which the file is loaded
@@ -33,6 +31,12 @@
* @return the content from the given stream formatted as html
* @throws IOException thrown if the formatting fails
*/
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection cfg, InputStream raw) throws IOException;
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection cfg,
+ InputStream raw)
+ throws IOException;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StringFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StringFormatter.java
index cd528cc..47fb672 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StringFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/StringFormatter.java
@@ -15,7 +15,6 @@
package com.googlesource.gerrit.plugins.xdocs.formatter;
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
import java.io.IOException;
public interface StringFormatter extends Formatter {
@@ -23,8 +22,7 @@
/**
* Formats the given raw text as html.
*
- * @param projectName the name of the project that contains the file to be
- * formatted
+ * @param projectName the name of the project that contains the file to be formatted
* @param path the file path
* @param revision the revision from which the file is loaded
* @param abbrRev the abbreviated revision from which the file is loaded
@@ -33,6 +31,12 @@
* @return the given text formatted as html
* @throws IOException thrown if the formatting fails
*/
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection cfg, String raw) throws IOException;
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection cfg,
+ String raw)
+ throws IOException;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ZipFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ZipFormatter.java
index 41a0edc..f758519 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ZipFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/ZipFormatter.java
@@ -15,15 +15,12 @@
package com.googlesource.gerrit.plugins.xdocs.formatter;
import com.google.inject.Inject;
-
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
-import org.apache.commons.io.FileUtils;
-
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
+import org.apache.commons.io.FileUtils;
public class ZipFormatter implements StreamFormatter {
public static final String NAME = "ZIP";
@@ -32,16 +29,19 @@
private final HtmlBuilder html;
@Inject
- ZipFormatter(
- FormatterUtil formatterUtil,
- HtmlBuilder html) {
+ ZipFormatter(FormatterUtil formatterUtil, HtmlBuilder html) {
this.util = formatterUtil;
this.html = html;
}
@Override
- public String format(String projectName, String path, String revision,
- String abbrRev, ConfigSection globalCfg, InputStream raw)
+ public String format(
+ String projectName,
+ String path,
+ String revision,
+ String abbrRev,
+ ConfigSection globalCfg,
+ InputStream raw)
throws IOException {
html.startDocument()
.openHead()
@@ -52,9 +52,8 @@
.appendCellHeader("size")
.appendCellHeader("last modified");
try (ZipInputStream zip = new ZipInputStream(raw)) {
- for (ZipEntry entry; (entry = zip.getNextEntry()) != null;) {
- html.openRow()
- .appendCell(entry.getName());
+ for (ZipEntry entry; (entry = zip.getNextEntry()) != null; ) {
+ html.openRow().appendCell(entry.getName());
if (!entry.isDirectory()) {
if (entry.getSize() != -1) {
html.appendCell(FileUtils.byteCountToDisplaySize(entry.getSize()));
@@ -64,13 +63,10 @@
} else {
html.appendCell();
}
- html.appendDateCell(entry.getTime())
- .closeRow();
+ html.appendDateCell(entry.getTime()).closeRow();
}
}
- html.closeTable()
- .closeBody()
- .endDocument();
+ html.closeTable().closeBody().endDocument();
return util.applyCss(html.toString(), NAME, projectName);
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatterTest.java b/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatterTest.java
index 89dddb4..9bda6a0 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatterTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/AsciidoctorFormatterTest.java
@@ -18,10 +18,7 @@
import static org.junit.Assert.assertEquals;
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
-import java.io.File;
import java.io.IOException;
-
import org.apache.commons.lang.StringUtils;
import org.easymock.IAnswer;
import org.junit.Before;
@@ -37,15 +34,15 @@
FormatterUtil util = createNiceMock(FormatterUtil.class);
// To simplify things, make applyCss() a no-op and return the HTML code as-is.
- expect(util.applyCss(anyObject(), anyObject(), anyObject())).andAnswer(
- new IAnswer<String>() {
- @Override
- public String answer() throws Throwable {
- // The first argument is the HTML code.
- return (String) getCurrentArguments()[0];
- }
- }
- );
+ expect(util.applyCss(anyObject(), anyObject(), anyObject()))
+ .andAnswer(
+ new IAnswer<String>() {
+ @Override
+ public String answer() throws Throwable {
+ // The first argument is the HTML code.
+ return (String) getCurrentArguments()[0];
+ }
+ });
replay(util);
@@ -57,7 +54,8 @@
Formatters formatters = createNiceMock(Formatters.class);
// Avoid a NPE by just returning the ConfigSection mock object.
- expect(formatters.getFormatterConfig((String) anyObject(), (String) anyObject())).andReturn(cfg);
+ expect(formatters.getFormatterConfig((String) anyObject(), (String) anyObject()))
+ .andReturn(cfg);
replay(formatters);
@@ -66,28 +64,31 @@
@Test
public void emptyInputRendersNothing() throws IOException {
- assertEquals(StringUtils.EMPTY, formatter.format(null, null, null, null, cfg, StringUtils.EMPTY));
+ assertEquals(
+ StringUtils.EMPTY, formatter.format(null, null, null, null, cfg, StringUtils.EMPTY));
}
@Test
public void basicTextFormattingWorks() throws IOException {
String raw = "_italic_ *bold* `monospace`";
- String formatted = "<div class=\"paragraph\">\n<p><em>italic</em> <strong>bold</strong> <code>monospace</code></p>\n</div>";
+ String formatted =
+ "<div class=\"paragraph\">\n<p><em>italic</em> <strong>bold</strong> <code>monospace</code></p>\n</div>";
assertEquals(formatted, formatter.format(null, null, null, null, cfg, raw));
}
@Test
public void documentTitleIsNotRenderedAsPartOfSections() throws IOException {
- String raw = "= Document Title (Level 0)\n\n== Level 1 Section Title\n\n=== Level 2 Section Title";
+ String raw =
+ "= Document Title (Level 0)\n\n== Level 1 Section Title\n\n=== Level 2 Section Title";
String formatted =
- "<div class=\"sect1\">\n" +
- "<h2 id=\"_level_1_section_title\">Level 1 Section Title</h2>\n" +
- "<div class=\"sectionbody\">\n" +
- "<div class=\"sect2\">\n" +
- "<h3 id=\"_level_2_section_title\">Level 2 Section Title</h3>\n\n" +
- "</div>\n" +
- "</div>\n" +
- "</div>";
+ "<div class=\"sect1\">\n"
+ + "<h2 id=\"_level_1_section_title\">Level 1 Section Title</h2>\n"
+ + "<div class=\"sectionbody\">\n"
+ + "<div class=\"sect2\">\n"
+ + "<h3 id=\"_level_2_section_title\">Level 2 Section Title</h3>\n\n"
+ + "</div>\n"
+ + "</div>\n"
+ + "</div>";
assertEquals(formatted, formatter.format(null, null, null, null, cfg, raw));
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatterTest.java b/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatterTest.java
index 931c04a..80b9b13 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatterTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/xdocs/formatter/MarkdownFormatterTest.java
@@ -18,16 +18,15 @@
import static org.junit.Assert.assertEquals;
import com.googlesource.gerrit.plugins.xdocs.ConfigSection;
-
import java.io.IOException;
-
import org.apache.commons.lang.StringUtils;
import org.junit.Before;
import org.junit.Test;
public class MarkdownFormatterTest {
- private static final String PROLOG = "<html><head><style type=\"text/css\">\n\n</style></head><body>\n";
+ private static final String PROLOG =
+ "<html><head><style type=\"text/css\">\n\n</style></head><body>\n";
private static final String EPILOG = "\n</body></html>";
private ConfigSection cfg;
@@ -50,7 +49,8 @@
Formatters formatters = createNiceMock(Formatters.class);
// Avoid a NPE by just returning the ConfigSection mock object.
- expect(formatters.getFormatterConfig((String) anyObject(), (String) anyObject())).andReturn(cfg);
+ expect(formatters.getFormatterConfig((String) anyObject(), (String) anyObject()))
+ .andReturn(cfg);
replay(formatters);
@@ -65,7 +65,8 @@
@Test
public void basicTextFormattingWorks() throws IOException {
String raw = "*italic* **bold** `monospace`";
- String formatted = PROLOG + "<p><em>italic</em> <strong>bold</strong> <code>monospace</code></p>" + EPILOG;
+ String formatted =
+ PROLOG + "<p><em>italic</em> <strong>bold</strong> <code>monospace</code></p>" + EPILOG;
assertEquals(formatted, formatter.format(null, null, null, null, cfg, raw));
}
}