Add support for Bazel in Gerrit tree build Change-Id: Ib135d31e9bef8c35ae04bda631c2a50b37852940
diff --git a/BUILD b/BUILD new file mode 100644 index 0000000..8602a2b --- /dev/null +++ b/BUILD
@@ -0,0 +1,45 @@ +load("//tools/bzl:plugin.bzl", "gerrit_plugin") + +gerrit_plugin( + name = "gitblit", + srcs = glob(["src/main/java/**/*.java"]), + resources = glob(["src/main/resources/**/*"]), + manifest_entries = [ + "Gerrit-PluginName: gitblit", + "Gerrit-Module: com.googlesource.gerrit.plugins.gitblit.GitBlitModule", + "Gerrit-HttpModule: com.googlesource.gerrit.plugins.gitblit.GitBlitServletModule", + "Gerrit-InitStep: com.googlesource.gerrit.plugins.gitblit.GitBlitInitStep", + "Gerrit-ReloadMode: restart", + ], + deps = [ + "@commons_codec//jar:neverlink", + "@commons_io//jar", + "@commons_net//jar:neverlink", + "@confluence_core//jar", + "@force_partner_api//jar", + "@freemarker//jar", + "@gitblit_jar//jar", + "@groovy//jar", + "@httpcore//jar:neverlink", + "@ivy//jar", + "@jdom//jar", + "@libpam4j//jar", + "@lucene_core//jar:neverlink", + "@lucene_highlighter//jar:neverlink", + "@lucene_memory//jar:neverlink", + "@mail//jar", + "@markdownpapers//jar", + "@mediawiki_core//jar", + "@pf4j//jar", + "@rome//jar", + "@textile_core//jar", + "@tika//jar", + "@tracwiki_core//jar", + "@twiki_core//jar", + "@unboundid//jar", + "@waffle_jna//jar", + "@wicket//jar", + "@wicket_extensions//jar", + "@wikitext_core//jar", + ], +)
diff --git a/README.md b/README.md index b5111b6..42156ef 100644 --- a/README.md +++ b/README.md
@@ -25,25 +25,59 @@ ### Gitblit plugin -You are ready now to clone and build the Gitblit plugin: the -Wicket and Giblit dependencies will be taken from your local -Maven repository. +This gitblit plugin is built with Bazel. +Only the Gerrit in-tree build is supported. - $ mvn package +Clone or link this plugin to the plugins directory of Gerrit's source +tree. + +``` + git clone https://gerrit.googlesource.com/gerrit + git clone https://gerrit.googlesource.com/plugins/gitblit + cd gerrit/plugins + ln -s ../../gitblit . + rm external_plugin_deps.bzl + ln -s gitblit/external_plugin_deps.bzl . + cd ../ +``` + +From Gerrit source tree issue the command: + +``` + bazel build plugins/gitblit +``` + +The output is created in + +``` + bazel-genfiles/plugins/gitblit/gitblit.jar +``` + +This project can be imported into the Eclipse IDE. +Add the plugin name to the `CUSTOM_PLUGINS` set in +Gerrit core in `tools/bzl/plugins.bzl`, and execute: + +``` + ./tools/eclipse/project.py +``` Configuration ------------- -In order to use GitBlit as GitWeb replacement, please apply -the following configuration to your Gerrit config. +In order to use GitBlit as GitWeb replacement, run the Gerrit init +again and answer 'Y' when asked during the Gitblit-specific initialisation. - [gitweb] - type = custom - linkname = Gitblit - url = plugins/gitblit/ - revision = commit/?r=${project}&h=${commit} - project = summary/?r=${project} - branch = log/?r=${project}&h=${branch} - filehistory = history/?f=${file}&r=${project}&h=${branch} - file = blob/?r=${project}&h=${commit}&f=${file} - roottree = tree/?r=${project}&h=${commit} +Example: + +``` +*** GitBlit Integration +*** + +Do you want to use GitBlit as your GitWeb viewer? [Y/n]? y +Link name [GitBlit]: +"Repositories" submenu title [Repositories]: +"Activity" submenu title [Activity]: +"Documentation" submenu title [Documentation]: +"Search" submenu title (makes only sense to set if some projects are indexed in GitBlit; single dash unsets) [Search]: +"Browse" submenu title for the "Projects" top-level menu [Browse]: +```
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl new file mode 100644 index 0000000..a4ad0e6 --- /dev/null +++ b/external_plugin_deps.bzl
@@ -0,0 +1,136 @@ +load("//tools/bzl:maven_jar.bzl", "maven_jar", "MAVEN_LOCAL") + +GITBLIT = 'https://gitblit.github.io/gitblit-maven' + +def external_plugin_deps(): + maven_jar( + name = 'pf4j', + artifact = 'ro.fortsoft.pf4j:pf4j:0.9.0', + sha1 = 'ff412cadfee820c50bf02723187eda6165d70379', + ) + + maven_jar( + name = 'gitblit_jar', + artifact = 'com.gitblit:gitblit:1.8.1-SNAPSHOT', + repository = MAVEN_LOCAL, + ) + + maven_jar( + name = 'wicket', + artifact = 'org.apache.wicket:wicket:1.4.23', + sha1 = '304d9e23e52e9488308644093663b568952abd0b', + ) + + maven_jar( + name = 'wicket_auth_roles', + artifact = 'org.apache.wicket:wicket-auth-roles:1.4.23', + sha1 = '1b130dbf5578ace37507430a4a523f6594bf34fa', + ) + + maven_jar( + name = 'wicket_extensions', + artifact = 'org.apache.wicket:wicket-extensions:1.4.23', + sha1 = '9ca61ca2273289d648dbb430e9033693c9b5eed3', + ) + + maven_jar( + name = 'groovy', + artifact = 'org.codehaus.groovy:groovy-all:2.4.1', + sha1 = 'a9ca9c9de09361ec2a18d2c058d2524fbd8eae0c', + ) + + maven_jar( + name = 'jdom', + artifact = 'jdom:jdom:1.0', + sha1 = 'a2ac1cd690ab4c80defe7f9bce14d35934c35cec', + ) + + maven_jar( + name = 'markdownpapers', + artifact = 'org.tautua.markdownpapers:markdownpapers-core:1.3.2', + sha1 = 'da22db6660e90b9a677bbdfc2c511c619ea5c249', + ) + + maven_jar( + name = 'rome', + artifact = 'rome:rome:1.0', + sha1 = '022b33347f315833e9348cec2751af1a5d5656e4', + ) + + maven_jar( + name = 'unboundid', + artifact = 'com.unboundid:unboundid-ldapsdk:2.3.8', + sha1 = '1788564d03f0b786a695f4de67b4cb55eda45e14', + ) + + maven_jar( + name = 'tika', + artifact = 'org.apache.tika:tika-core:1.5', + sha1 = '194ca0fb3d73b07737524806fbc3bec89063c03a', + ) + + maven_jar( + name = 'wikitext_core', + artifact = 'org.fusesource.wikitext:wikitext-core:1.4', + sha1 = 'b877ee61d064c01cbf9834ab1b7146cd44acad65', + ) + + maven_jar( + name = 'twiki_core', + artifact = 'org.fusesource.wikitext:twiki-core:1.4', + sha1 = '00c392027ae056d555040af2d1e0ed217fa94712', + ) + + maven_jar( + name = 'textile_core', + artifact = 'org.fusesource.wikitext:textile-core:1.4', + sha1 = '9169c4a2865232c7b22137d759fb7ee2cbf019de', + ) + + maven_jar( + name = 'tracwiki_core', + artifact = 'org.fusesource.wikitext:tracwiki-core:1.4', + sha1 = 'e2c8a5597695dc82256f2a97a505783e5ab5b0cb', + ) + + maven_jar( + name = 'mediawiki_core', + artifact = 'org.fusesource.wikitext:mediawiki-core:1.4', + sha1 = '30d1b5551bbf97a17abc22d51fe8dd3b4d27f1ab', + ) + + maven_jar( + name = 'confluence_core', + artifact = 'org.fusesource.wikitext:confluence-core:1.4', + sha1 = '08210b4af6f055ada934753facd27d7abf9d01a8', + ) + + maven_jar( + name = 'ivy', + artifact = 'org.apache.ivy:ivy:2.2.0', + sha1 = 'f9d1e83e82fc085093510f7d2e77d81d52bc2081', + ) + + maven_jar( + name = 'force_partner_api', + artifact = 'com.force.api:force-partner-api:24.0.0', + sha1 = 'ce3cd3e2ccd51735f27a83e90018123e8bd10314', + ) + + maven_jar( + name = 'freemarker', + artifact = 'org.freemarker:freemarker:2.3.22', + sha1 = '473d784b3cd2dcb6d49a287ded0542b7862c7d68', + ) + + maven_jar( + name = 'waffle_jna', + artifact = 'com.github.dblock.waffle:waffle-jna:1.7.3', + sha1 = '94ba74d3fa15bb61d4901b062b8fd5046c9e99b9', + ) + + maven_jar( + name = 'libpam4j', + artifact = 'org.kohsuke:libpam4j:1.8', + sha1 = '548d4a1177adad8242fe03a6930c335669d669ad', + )