Use "resemblejs" dep
This fixes it so it uses the resemblejs dependency from gerrit core.
This is because resemblejs was not being injected into the plugin thus failed to load.
I tested this by doing:
bazel build plugins/image-diff
Then deploying (and uploaded a png file to test)
Bug: Issue 9911
Change-Id: I239d93a4352429ae3b09eb132cbf159c67f0913e
diff --git a/BUILD b/BUILD
index f84f778..edd94b3 100644
--- a/BUILD
+++ b/BUILD
@@ -1,8 +1,45 @@
-load("//tools/bzl:js.bzl", "polygerrit_plugin")
+load("//tools/bzl:genrule2.bzl", "genrule2")
+load("//tools/bzl:js.bzl", "bundle_assets", "polygerrit_plugin")
+load("//tools/bzl:plugin.bzl", "gerrit_plugin")
+
+gerrit_plugin(
+ name = "image-diff",
+ srcs = ["java/com/googlesource/gerrit/plugins/imagediff/ImageDiffModule.java"],
+ manifest_entries = [
+ "Gerrit-PluginName: image-diff",
+ "Gerrit-Module: com.googlesource.gerrit.plugins.codemirror.ImageDiffModule",
+ "Implementation-Title: Image Diff plugin",
+ ],
+ resource_jars = [":image-diff-static"],
+)
+
+genrule2(
+ name = "image-diff-static",
+ srcs = [":image_diff"],
+ outs = ["image-diff-static.jar"],
+ cmd = " && ".join([
+ "mkdir $$TMP/static",
+ "cp -r $(locations :image_diff) $$TMP/static",
+ "cd $$TMP",
+ "zip -Drq $$ROOT/$@ -g .",
+ ]),
+)
+
+bundle_assets(
+ name = "image-diff-assets",
+ srcs = glob(["gr-resemble-diff-mode/resemblejs-assets.html"]),
+ app = "gr-resemble-diff-mode/resemblejs-assets.html",
+ split = False,
+ deps = [
+ "//lib/js:resemblejs"
+ ],
+)
polygerrit_plugin(
- name = "image-diff",
+ name = "image_diff",
srcs = glob(["**/*.html", "**/*.js"]),
app = "plugin.html",
- deps = ["//lib/js:resemblejs"],
-)
\ No newline at end of file
+ assets = [
+ ":image-diff-assets"
+ ],
+)
diff --git a/gr-resemble-diff-mode/gr-resemble-diff-mode.html b/gr-resemble-diff-mode/gr-resemble-diff-mode.html
index edc6a93..b074f78 100644
--- a/gr-resemble-diff-mode/gr-resemble-diff-mode.html
+++ b/gr-resemble-diff-mode/gr-resemble-diff-mode.html
@@ -14,7 +14,8 @@
limitations under the License.
-->
-<script src="../node_modules/resemblejs/resemble.js"></script>
+<link rel="import" href="../image-diff-assets.html">
+
<dom-module id="gr-resemble-diff-mode">
<template>
<style>
diff --git a/gr-resemble-diff-mode/resemblejs-assets.html b/gr-resemble-diff-mode/resemblejs-assets.html
new file mode 100644
index 0000000..8e17b02
--- /dev/null
+++ b/gr-resemble-diff-mode/resemblejs-assets.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<!--
+@license
+Copyright (C) 2018 The Android Open Source Project
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<script src="../bower_components/resemblejs/resemble.js"></script>
diff --git a/java/com/googlesource/gerrit/plugins/imagediff/ImageDiffModule.java b/java/com/googlesource/gerrit/plugins/imagediff/ImageDiffModule.java
new file mode 100644
index 0000000..ffb1b1a
--- /dev/null
+++ b/java/com/googlesource/gerrit/plugins/imagediff/ImageDiffModule.java
@@ -0,0 +1,28 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.imagediff;
+
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.extensions.restapi.RestApiModule;
+import com.google.gerrit.extensions.webui.JavaScriptPlugin;
+import com.google.gerrit.extensions.webui.WebUiPlugin;
+
+public class ImageDiffModule extends RestApiModule {
+ @Override
+ protected void configure() {
+ DynamicSet.bind(binder(), WebUiPlugin.class)
+ .toInstance(new JavaScriptPlugin("image_diff.html"));
+ }
+}