Add support for Bazel in Gerrit tree build Change-Id: I59ba3e40928a9229fa7bb9dd31021b9bcc65309a
diff --git a/BUILD b/BUILD new file mode 100644 index 0000000..7b60169 --- /dev/null +++ b/BUILD
@@ -0,0 +1,85 @@ +load("//tools/bzl:junit.bzl", "junit_tests") +load( + "//tools/bzl:plugin.bzl", + "gerrit_plugin", + "PLUGIN_DEPS", + "PLUGIN_TEST_DEPS", +) + +gerrit_plugin( + name = "x-docs", + srcs = glob(["src/main/java/**/*.java"]), + resources = glob(["src/main/**/*"]), + gwt_module = "com.googlesource.gerrit.plugins.xdocs.XDocs", + manifest_entries = [ + "Gerrit-PluginName: x-docs", + "Gerrit-HttpModule: com.googlesource.gerrit.plugins.xdocs.HttpModule", + "Gerrit-Module: com.googlesource.gerrit.plugins.xdocs.Module", + "Gerrit-InitStep: com.googlesource.gerrit.plugins.xdocs.XDocInit", + ], + deps = [ + "@asciidoctor//jar", + "@jruby//jar", + "@org_antlr//jar", + "@daisydiff//jar", + "@commons_codec//jar", + "@commons_io//jar", + "@commons_lang//jar", + "@guava//jar", + ":avalon_framework_lib", + "@poi//jar", + "@poi_scratchpad//jar", + "@jaxb_svg11//jar", + "@jaxb_xmldsig_core//jar", + "@jaxb_xslfo//jar", + "@xalan//jar", + "@docx4j//jar", + "@mbassador//jar", + "@log_api//jar", + "@wmf2svg//jar", + "@xml_apis//jar", + "@serializer//jar", + ":xmlgraphics_lib", + ], +) + +junit_tests( + name = "x_docs_tests", + srcs = glob(["src/test/java/**/*.java"]), + tags = ["xdocs"], + deps = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [ + ":x-docs__plugin", + ], +) + +java_library( + name = "avalon_framework_lib", + exports = [ + "@avalon_framework_api//jar", + "@avalon_framework_impl//jar", + ], +) + +java_library( + name = "xmlgraphics_lib", + exports = [ + "@batik_anim//jar", + "@batik_awt_util//jar", + "@batik_bridge//jar", + "@batik_css//jar", + "@batik_dom//jar", + "@batik_ext//jar", + "@batik_extension//jar", + "@batik_gvt//jar", + "@batik_js//jar", + "@batik_parser//jar", + "@batik_script//jar", + "@batik_svg_dom//jar", + "@batik_svggen//jar", + "@batik_transcoder//jar", + "@batik_util//jar", + "@batik_xml//jar", + "@fop//jar", + "@xmlgraphics_commons//jar", + ], +)
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl new file mode 100644 index 0000000..161a4c4 --- /dev/null +++ b/external_plugin_deps.bzl
@@ -0,0 +1,227 @@ +load("//tools/bzl:maven_jar.bzl", "maven_jar") + +def external_plugin_deps(): + maven_jar( + name = 'avalon_framework_api', + artifact = 'org.apache.avalon.framework:avalon-framework-api:4.3.1', + sha1 = '2dacadeb49bc14420990b1f28897d46f96e2181d', + src_sha1 = '5c04230666be057c5a3ad1558575fc9a886fc1b6', + ) + + maven_jar( + name = 'avalon_framework_impl', + artifact = 'org.apache.avalon.framework:avalon-framework-impl:4.3.1', + sha1 = '2d5f5a07fd14513ce6d7a7bfaff69419c26dbd0b', + src_sha1 = '09f779f9b35461a7767a54bc835d21bd2a97ad6e', + ) + + maven_jar( + name = 'daisydiff', + artifact = 'org.outerj.daisy:daisydiff:1.1.14-atlassian-hosted', + sha1 = '03f5d9f826f5b6247115ec2e8239b15bd600910a', + repository = 'https://maven.atlassian.com/content/repositories/atlassian-3rdparty', + attach_source = False, + ) + + maven_jar( + name = 'docx4j', + artifact = 'org.docx4j:docx4j:3.2.1', + sha1 = '35b2ef9f7eb12efe9708b986ecf6e86cfd77a162', + src_sha1 = '49702b88080bc22f6cfa58aadbf5422bcd904094', + ) + + maven_jar( + name = 'mbassador', + artifact = 'net.engio:mbassador:1.2.0', + sha1 = '7aa2c6f172cc8c59983c5255faa45a16a41e173b', + src_sha1 = 'd10cdaf71bfcb2002ab904a9d475e60c70c9b6bf', + ) + + maven_jar( + name = 'wmf2svg', + artifact = 'net.arnx:wmf2svg:0.9.7', + sha1 = '88a871f85a0e765c960af88ccc5a9a0e00384cd8', + src_sha1 = '6948f9616032bd857c5173b204042889527a3bf3', + ) + + maven_jar( + name = 'xml_apis', + artifact = 'xml-apis:xml-apis:1.3.04', + sha1 = '90b215f48fe42776c8c7f6e3509ec54e84fd65ef', + src_sha1 = 'd89105ccbe3fd823865330fd964233baf2b53e88', + ) + + maven_jar( + name = 'jaxb_svg11', + artifact = 'org.plutext:jaxb-svg11:1.0.2', + sha1 = '3c0cd54d5691f5b5f8c60ed0c06353ff1db424e1', + src_sha1 = 'd2ecea2f14168d693bf68326ebea2ebfc6144114', + ) + + maven_jar( + name = 'jaxb_xmldsig_core', + artifact = 'org.plutext:jaxb-xmldsig-core:1.0.0', + sha1 = '57514aa2f72111cfbc0a532ce88782735370e1e5', + src_sha1 = 'a41559be6a94177daf0813f63d6ec81b11b3c0d3', + ) + + maven_jar( + name = 'jaxb_xslfo', + artifact = 'org.plutext:jaxb-xslfo:1.0.1', + sha1 = '85441209652b216f61160445b399f5bc97e370c6', + src_sha1 = 'b81e98b51687771f8a0b12406ea142a6e5dc6539', + ) + + maven_jar( + name = 'poi', + artifact = 'org.apache.poi:poi:3.10.1', + sha1 = '95174823e13aa828cb715b542e647e56096ffcb2', + src_sha1 = 'dcbcab74270ee3f68da61ef13c6f0858fb532e52', + ) + + maven_jar( + name = 'poi_scratchpad', + artifact = 'org.apache.poi:poi-scratchpad:3.10.1', + sha1 = 'f40da8984b7a9bdf81270d7ecd2639548361fccd', + src_sha1 = '88df5b9afa00070902f9bb100c554dba289afc7a', + ) + + maven_jar( + name = 'xalan', + artifact = 'xalan:xalan:2.7.2', + sha1 = 'd55d3f02a56ec4c25695fe67e1334ff8c2ecea23', + src_sha1 = 'fe9c3d37a49238fac9d4d6c4f5bbd8c334da787a', + ) + + maven_jar( + name = 'serializer', + artifact = 'xalan:serializer:2.7.2', + sha1 = '24247f3bb052ee068971393bdb83e04512bb1c3c', + src_sha1 = 'fe9c3d37a49238fac9d4d6c4f5bbd8c334da787a', + ) + + maven_jar( + name = 'batik_anim', + artifact = 'org.apache.xmlgraphics:batik-anim:1.7', + sha1 = 'a45dd2ff8e4ecd56a4fc64dc668b53bee90bf601', + attach_source = False, + ) + + maven_jar( + name = 'batik_awt_util', + artifact = 'org.apache.xmlgraphics:batik-awt-util:1.7', + sha1 = '67605a29d49bf33f3c1d7832f490b0a007e7a6e2', + attach_source = False, + ) + + maven_jar( + name = 'batik_bridge', + artifact = 'org.apache.xmlgraphics:batik-bridge:1.7', + sha1 = '8e0cde3830e0f17704cd392b0a09b13944987a51', + attach_source = False, + ) + + maven_jar( + name = 'batik_css', + artifact = 'org.apache.xmlgraphics:batik-css:1.7', + sha1 = 'e6bb5c85753331534593f33fb9236acb41a0ab79', + attach_source = False, + ) + + maven_jar( + name = 'batik_dom', + artifact = 'org.apache.xmlgraphics:batik-dom:1.7', + sha1 = '710d559bd1df52581b57b75a99ed5fd2e2918bb7', + attach_source = False, + ) + + maven_jar( + name = 'batik_ext', + artifact = 'org.apache.xmlgraphics:batik-ext:1.7', + sha1 = '4784302b44a0336166fef6153a5e3d73e861aecc', + attach_source = False, + ) + + maven_jar( + name = 'batik_extension', + artifact = 'org.apache.xmlgraphics:batik-extension:1.7', + sha1 = '8e810d9ce0499beca541e3b1a144557cf06f8b19', + attach_source = False, + ) + + maven_jar( + name = 'batik_gvt', + artifact = 'org.apache.xmlgraphics:batik-gvt:1.7', + sha1 = '03d315e60d72c761c52946b4acaa4b86239ef938', + attach_source = False, + ) + + maven_jar( + name = 'batik_js', + artifact = 'org.apache.xmlgraphics:batik-js:1.7', + sha1 = '688eb1bf13b7a54491fcb3405068fc5092589884', + attach_source = False, + ) + + maven_jar( + name = 'batik_parser', + artifact = 'org.apache.xmlgraphics:batik-parser:1.7', + sha1 = '5d756cc4f6bf891793e6c7590773859c33a8609f', + attach_source = False, + ) + + maven_jar( + name = 'batik_script', + artifact = 'org.apache.xmlgraphics:batik-script:1.7', + sha1 = '4ea7906724bfefc1fca3e5b28229a458523e1fbf', + attach_source = False, + ) + + maven_jar( + name = 'batik_svg_dom', + artifact = 'org.apache.xmlgraphics:batik-svg-dom:1.7', + sha1 = '5b3b1fea480fabbd3e0c44540af25b9fda0587ae', + attach_source = False, + ) + + maven_jar( + name = 'batik_svggen', + artifact = 'org.apache.xmlgraphics:batik-svggen:1.7', + sha1 = 'baa58d0f5bfd2a28142e222cee126eb71bd0a938', + attach_source = False, + ) + + maven_jar( + name = 'batik_transcoder', + artifact = 'org.apache.xmlgraphics:batik-transcoder:1.7', + sha1 = 'aa2eb6300cb50bbb9dbf52daf7d625aa0df1d930', + attach_source = False, + ) + + maven_jar( + name = 'batik_util', + artifact = 'org.apache.xmlgraphics:batik-util:1.7', + sha1 = '5c4dd0dd9a86a2fba2c6ea26fb62b32b21b2a61e', + attach_source = False, + ) + + maven_jar( + name = 'batik_xml', + artifact = 'org.apache.xmlgraphics:batik-xml:1.7', + sha1 = '17e3da8bd9d4a131350a7835f5cc0d93ba199c89', + attach_source = False, + ) + + maven_jar( + name = 'fop', + artifact = 'org.apache.xmlgraphics:fop:1.1', + sha1 = '95978100a6cde324078947a2d476cf2f207a7e5a', + attach_source = False, + ) + + maven_jar( + name = 'xmlgraphics_commons', + artifact = 'org.apache.xmlgraphics:xmlgraphics-commons:1.5', + sha1 = '7fb5c2b2c18f0e87fbe9bded16429a5d7cc2dc2b', + attach_source = False, + )
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md index 8b5de99..7edb549 100644 --- a/src/main/resources/Documentation/build.md +++ b/src/main/resources/Documentation/build.md
@@ -1,61 +1,43 @@ Build ===== -This plugin is built using Buck. +This plugin is built using Bazel. -Two build modes are supported: Standalone and in Gerrit tree. -The standalone build mode is recommended, as this mode doesn't require -the Gerrit tree to exist locally. +Clone (or link) this plugin to the `plugins` directory of Gerrit's source tree. - - -Clone bucklets library: +Put the external dependency Bazel build file into the Gerrit /plugins directory, +replacing the existing empty one. ``` - git clone https://gerrit.googlesource.com/bucklets - -``` -and link it to @PLUGIN@ plugin directory: - -``` - cd @PLUGIN@ && ln -s ../bucklets . + cd gerrit/plugins + rm external_plugin_deps.bzl + ln -s @PLUGIN@/external_plugin_deps.bzl . ``` -Add link to the .buckversion file: +Then issue ``` - cd @PLUGIN@ && ln -s bucklets/buckversion .buckversion + bazel build plugins/@PLUGIN@ ``` -To build the plugin, issue the following command: - - -``` - buck build plugin -``` +in the root of Gerrit's source tree to build The output is created in ``` - buck-out/gen/@PLUGIN@.jar + bazel-genfiles/plugins/@PLUGIN@/@PLUGIN@.jar ``` - -Clone or link this plugin to the plugins directory of Gerrit's source -tree, and issue the command: - -``` - buck build plugins/@PLUGIN@ -``` - -The output is created in - -``` - buck-out/gen/plugins/@PLUGIN@/@PLUGIN@.jar -``` - -This project can be imported into the Eclipse IDE: +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 ``` + +To execute the tests run: + +``` + bazel test plugins/@PLUGIN@ +```