mirror of
https://github.com/google/nomulus.git
synced 2025-04-30 12:07:51 +02:00
Upgrade Nomulus to latest Closure Rules
Significant technical debt has been eliminated. The latest best practices are also now adopted for dealing with runfiles and dealing with files across repositories. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=140762937
This commit is contained in:
parent
79a72387ee
commit
59f4984083
28 changed files with 193 additions and 361 deletions
|
@ -6,9 +6,9 @@ domain_registry_repositories()
|
|||
|
||||
http_archive(
|
||||
name = "io_bazel_rules_closure",
|
||||
sha256 = "7d75688c63ac09a55ca092a76c12f8d1e9ee8e7a890f3be6594a4e7d714f0e8a",
|
||||
strip_prefix = "rules_closure-b8841276e73ca677c139802f1168aaad9791dec0",
|
||||
url = "http://bazel-mirror.storage.googleapis.com/github.com/bazelbuild/rules_closure/archive/b8841276e73ca677c139802f1168aaad9791dec0.tar.gz", # 2016-10-02
|
||||
sha256 = "1e2e6f73c4bb219a37a667ecb637539d7d7839f99b4f97496e5ea5e16cc87431",
|
||||
strip_prefix = "rules_closure-b2ff976c8585e2051153bd62fbef6ef176b41b42",
|
||||
url = "http://bazel-mirror.storage.googleapis.com/github.com/bazelbuild/rules_closure/archive/b2ff976c8585e2051153bd62fbef6ef176b41b42.tar.gz", # 2016-11-29
|
||||
)
|
||||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
|
||||
|
@ -17,7 +17,10 @@ closure_repositories(
|
|||
omit_gson = True,
|
||||
omit_guava = True,
|
||||
omit_icu4j = True,
|
||||
omit_jetty = True,
|
||||
omit_jetty_util = True,
|
||||
omit_json = True,
|
||||
omit_jsr305 = True,
|
||||
omit_jsr330_inject = True,
|
||||
omit_servlet_api = True,
|
||||
)
|
||||
|
|
|
@ -7,7 +7,7 @@ This document covers the steps necessary to download, build, and deploy Nomulus.
|
|||
You will need the following programs installed on your local machine:
|
||||
|
||||
* A recent version of the [Java 7 JDK][java-jdk7].
|
||||
* [Bazel build system](http://bazel.io/) >= version 0.3.1. Make sure to
|
||||
* [Bazel build system](http://bazel.io/) >= version 0.3.2. Make sure to
|
||||
download the JDK7-compatible version.
|
||||
* [Google App Engine SDK for Java][app-engine-sdk], and configure aliases to
|
||||
to the `gcloud` and `appcfg.sh` utilities (you'll use them a lot).
|
||||
|
|
|
@ -23,7 +23,7 @@ zip_file(
|
|||
],
|
||||
out = "mandatory_stuff.war",
|
||||
mappings = {
|
||||
"external/appengine_api_sdk/jar": "WEB-INF/lib",
|
||||
"appengine_api_sdk/jar": "WEB-INF/lib",
|
||||
},
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
@ -59,9 +59,9 @@ zip_file(
|
|||
],
|
||||
out = "registry_default.war",
|
||||
mappings = {
|
||||
"java/google/registry/env/common/default": "",
|
||||
"java/google/registry/env/production/default": "",
|
||||
"java/google/registry/module/frontend": "WEB-INF/lib",
|
||||
"domain_registry/java/google/registry/env/common/default": "",
|
||||
"domain_registry/java/google/registry/env/production/default": "",
|
||||
"domain_registry/java/google/registry/module/frontend": "WEB-INF/lib",
|
||||
},
|
||||
deps = [
|
||||
":common_war",
|
||||
|
@ -79,9 +79,9 @@ zip_file(
|
|||
],
|
||||
out = "registry_backend.war",
|
||||
mappings = {
|
||||
"java/google/registry/env/common/backend": "",
|
||||
"java/google/registry/env/production/backend": "",
|
||||
"java/google/registry/module/backend": "WEB-INF/lib",
|
||||
"domain_registry/java/google/registry/env/common/backend": "",
|
||||
"domain_registry/java/google/registry/env/production/backend": "",
|
||||
"domain_registry/java/google/registry/module/backend": "WEB-INF/lib",
|
||||
},
|
||||
deps = [
|
||||
":common_war",
|
||||
|
@ -99,9 +99,9 @@ zip_file(
|
|||
],
|
||||
out = "registry_tools.war",
|
||||
mappings = {
|
||||
"java/google/registry/env/common/tools": "",
|
||||
"java/google/registry/env/production/tools": "",
|
||||
"java/google/registry/module/tools": "WEB-INF/lib",
|
||||
"domain_registry/java/google/registry/env/common/tools": "",
|
||||
"domain_registry/java/google/registry/env/production/tools": "",
|
||||
"domain_registry/java/google/registry/module/tools": "WEB-INF/lib",
|
||||
},
|
||||
deps = [
|
||||
":common_war",
|
||||
|
@ -136,7 +136,7 @@ zip_file(
|
|||
"env/sandbox/default/WEB-INF/cron.xml",
|
||||
],
|
||||
out = "registry_default_sandbox.war",
|
||||
mappings = {"java/google/registry/env/sandbox/default": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/sandbox/default": ""},
|
||||
deps = [":registry_default_war"],
|
||||
)
|
||||
|
||||
|
@ -144,7 +144,7 @@ zip_file(
|
|||
name = "registry_backend_sandbox_war",
|
||||
srcs = ["env/sandbox/backend/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_backend_sandbox.war",
|
||||
mappings = {"java/google/registry/env/sandbox/backend": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/sandbox/backend": ""},
|
||||
deps = [":registry_backend_war"],
|
||||
)
|
||||
|
||||
|
@ -152,7 +152,7 @@ zip_file(
|
|||
name = "registry_tools_sandbox_war",
|
||||
srcs = ["env/sandbox/tools/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_tools_sandbox.war",
|
||||
mappings = {"java/google/registry/env/sandbox/tools": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/sandbox/tools": ""},
|
||||
deps = [":registry_tools_war"],
|
||||
)
|
||||
|
||||
|
@ -182,7 +182,7 @@ zip_file(
|
|||
"env/alpha/default/WEB-INF/cron.xml",
|
||||
],
|
||||
out = "registry_default_alpha.war",
|
||||
mappings = {"java/google/registry/env/alpha/default": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/alpha/default": ""},
|
||||
deps = [":registry_default_war"],
|
||||
)
|
||||
|
||||
|
@ -190,7 +190,7 @@ zip_file(
|
|||
name = "registry_backend_alpha_war",
|
||||
srcs = ["env/alpha/backend/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_backend_alpha.war",
|
||||
mappings = {"java/google/registry/env/alpha/backend": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/alpha/backend": ""},
|
||||
deps = [":registry_backend_war"],
|
||||
)
|
||||
|
||||
|
@ -198,7 +198,7 @@ zip_file(
|
|||
name = "registry_tools_alpha_war",
|
||||
srcs = ["env/alpha/tools/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_tools_alpha.war",
|
||||
mappings = {"java/google/registry/env/alpha/tools": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/alpha/tools": ""},
|
||||
deps = [":registry_tools_war"],
|
||||
)
|
||||
|
||||
|
@ -228,7 +228,7 @@ zip_file(
|
|||
"env/crash/default/WEB-INF/cron.xml",
|
||||
],
|
||||
out = "registry_default_crash.war",
|
||||
mappings = {"java/google/registry/env/crash/default": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/crash/default": ""},
|
||||
deps = [":registry_default_war"],
|
||||
)
|
||||
|
||||
|
@ -236,7 +236,7 @@ zip_file(
|
|||
name = "registry_backend_crash_war",
|
||||
srcs = ["env/crash/backend/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_backend_crash.war",
|
||||
mappings = {"java/google/registry/env/crash/backend": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/crash/backend": ""},
|
||||
deps = [":registry_backend_war"],
|
||||
)
|
||||
|
||||
|
@ -244,7 +244,7 @@ zip_file(
|
|||
name = "registry_tools_crash_war",
|
||||
srcs = ["env/crash/tools/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_tools_crash.war",
|
||||
mappings = {"java/google/registry/env/crash/tools": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/crash/tools": ""},
|
||||
deps = [":registry_tools_war"],
|
||||
)
|
||||
|
||||
|
@ -271,7 +271,7 @@ zip_file(
|
|||
name = "registry_default_local_war",
|
||||
srcs = ["env/local/default/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_default_local.war",
|
||||
mappings = {"java/google/registry/env/local/default": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/local/default": ""},
|
||||
deps = [":registry_default_war"],
|
||||
)
|
||||
|
||||
|
@ -279,7 +279,7 @@ zip_file(
|
|||
name = "registry_backend_local_war",
|
||||
srcs = ["env/local/backend/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_backend_local.war",
|
||||
mappings = {"java/google/registry/env/local/backend": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/local/backend": ""},
|
||||
deps = [":registry_backend_war"],
|
||||
)
|
||||
|
||||
|
@ -287,6 +287,6 @@ zip_file(
|
|||
name = "registry_tools_local_war",
|
||||
srcs = ["env/local/tools/WEB-INF/appengine-web.xml"],
|
||||
out = "registry_tools_local.war",
|
||||
mappings = {"java/google/registry/env/local/tools": ""},
|
||||
mappings = {"domain_registry/java/google/registry/env/local/tools": ""},
|
||||
deps = [":registry_tools_war"],
|
||||
)
|
||||
|
|
|
@ -16,11 +16,45 @@
|
|||
|
||||
ZIPPER = "@bazel_tools//tools/zip:zipper"
|
||||
|
||||
_OUTPUT_DIRS = ("bazel-out/", "bazel-genfiles/")
|
||||
def long_path(ctx, file_):
|
||||
"""Constructs canonical runfile path relative to TEST_SRCDIR.
|
||||
|
||||
def runpath(f):
|
||||
"""Figures out the proper runfiles path for a file."""
|
||||
for prefix in _OUTPUT_DIRS:
|
||||
if f.path.startswith(prefix):
|
||||
return f.short_path
|
||||
return f.path
|
||||
Args:
|
||||
ctx: A Skylark rule context.
|
||||
file_: A File object that should appear in the runfiles for the test.
|
||||
|
||||
Returns:
|
||||
A string path relative to TEST_SRCDIR suitable for use in tests and
|
||||
testing infrastructure.
|
||||
"""
|
||||
if file_.short_path.startswith("../"):
|
||||
return file_.short_path[3:]
|
||||
if file_.owner and file_.owner.workspace_root:
|
||||
return file_.owner.workspace_root + "/" + file_.short_path
|
||||
return ctx.workspace_name + "/" + file_.short_path
|
||||
|
||||
def collect_runfiles(targets):
|
||||
"""Aggregates runfiles from targets.
|
||||
|
||||
Args:
|
||||
targets: A list of Bazel targets.
|
||||
|
||||
Returns:
|
||||
A list of Bazel files.
|
||||
"""
|
||||
data = set()
|
||||
for target in targets:
|
||||
if hasattr(target, "runfiles"):
|
||||
data += target.runfiles.files
|
||||
continue
|
||||
if hasattr(target, "data_runfiles"):
|
||||
data += target.data_runfiles.files
|
||||
if hasattr(target, "default_runfiles"):
|
||||
data += target.default_runfiles.files
|
||||
return data
|
||||
|
||||
def _get_runfiles(target, attribute):
|
||||
runfiles = getattr(target, attribute, None)
|
||||
if runfiles:
|
||||
return runfiles.files
|
||||
return []
|
||||
|
|
|
@ -39,10 +39,9 @@ Prefixes are matched with component granularity, not characters. Mappings with
|
|||
more components take precedence. Mappings with equal components are sorted
|
||||
asciibetically.
|
||||
|
||||
Mappings apply to the "short path" of a file, which is relative to the root of
|
||||
the repository, not the current directory. Short paths do not take into
|
||||
consideration bazel-foo/ output directories. Furthermore, if a file is located
|
||||
in an external repository, then its short path will begin with external/foo/.
|
||||
Mappings apply to the "long path" of a file, i.e. relative to TEST_SRCDIR,
|
||||
e.g. workspace_name/pkg/file. Long paths do not take into consideration
|
||||
bazel-foo/ output directories.
|
||||
|
||||
The deps attribute allows zip_file() rules to depend on other zip_file() rules.
|
||||
In such cases, the contents of directly dependent zip files are unzipped and
|
||||
|
@ -110,15 +109,22 @@ A zip file can be assembled across many rules. For example:
|
|||
|
||||
"""
|
||||
|
||||
load('//java/google/registry/builddefs:defs.bzl', 'ZIPPER', 'runpath')
|
||||
load('//java/google/registry/builddefs:defs.bzl',
|
||||
'ZIPPER',
|
||||
'collect_runfiles',
|
||||
'long_path')
|
||||
|
||||
def _impl(ctx):
|
||||
def _zip_file(ctx):
|
||||
"""Implementation of zip_file() rule."""
|
||||
for s, d in ctx.attr.mappings.items():
|
||||
if (s.startswith('/') or s.endswith('/') or
|
||||
d.startswith('/') or d.endswith('/')):
|
||||
fail('mappings should not begin or end with slash')
|
||||
mapped = _map_sources(ctx.files.srcs, ctx.attr.mappings)
|
||||
srcs = set()
|
||||
srcs += ctx.files.srcs
|
||||
srcs += ctx.files.data
|
||||
srcs += collect_runfiles(ctx.attr.data)
|
||||
mapped = _map_sources(ctx, srcs, ctx.attr.mappings)
|
||||
cmd = [
|
||||
'#!/bin/sh',
|
||||
'set -e',
|
||||
|
@ -146,7 +152,7 @@ def _impl(ctx):
|
|||
ctx.file_action(output=script, content='\n'.join(cmd), executable=True)
|
||||
inputs = [ctx.file._zipper]
|
||||
inputs += [dep.zip_file for dep in ctx.attr.deps]
|
||||
inputs += ctx.files.srcs
|
||||
inputs += list(srcs)
|
||||
ctx.action(
|
||||
inputs=inputs,
|
||||
outputs=[ctx.outputs.out],
|
||||
|
@ -154,10 +160,9 @@ def _impl(ctx):
|
|||
mnemonic='zip',
|
||||
progress_message='Creating zip with %d inputs %s' % (
|
||||
len(inputs), ctx.label))
|
||||
return struct(files=set([ctx.outputs.out]),
|
||||
zip_file=ctx.outputs.out)
|
||||
return struct(files=set([ctx.outputs.out]), zip_file=ctx.outputs.out)
|
||||
|
||||
def _map_sources(srcs, mappings):
|
||||
def _map_sources(ctx, srcs, mappings):
|
||||
"""Calculates paths in zip file for srcs."""
|
||||
# order mappings with more path components first
|
||||
mappings = sorted([(-len(source.split('/')), source, dest)
|
||||
|
@ -168,32 +173,32 @@ def _map_sources(srcs, mappings):
|
|||
used = {i: False for i in mappings_indexes}
|
||||
mapped = []
|
||||
for file_ in srcs:
|
||||
short_path = runpath(file_)
|
||||
run_path = long_path(ctx, file_)
|
||||
zip_path = None
|
||||
for i in mappings_indexes:
|
||||
source = mappings[i][0]
|
||||
dest = mappings[i][1]
|
||||
if not source:
|
||||
if dest:
|
||||
zip_path = dest + '/' + short_path
|
||||
zip_path = dest + '/' + run_path
|
||||
else:
|
||||
zip_path = short_path
|
||||
elif source == short_path:
|
||||
zip_path = run_path
|
||||
elif source == run_path:
|
||||
if dest:
|
||||
zip_path = dest
|
||||
else:
|
||||
zip_path = short_path
|
||||
elif short_path.startswith(source + '/'):
|
||||
zip_path = run_path
|
||||
elif run_path.startswith(source + '/'):
|
||||
if dest:
|
||||
zip_path = dest + short_path[len(source):]
|
||||
zip_path = dest + run_path[len(source):]
|
||||
else:
|
||||
zip_path = short_path[len(source) + 1:]
|
||||
zip_path = run_path[len(source) + 1:]
|
||||
else:
|
||||
continue
|
||||
used[i] = True
|
||||
break
|
||||
if not zip_path:
|
||||
fail('no mapping matched: ' + short_path)
|
||||
fail('no mapping matched: ' + run_path)
|
||||
mapped += [(file_.path, zip_path)]
|
||||
for i in mappings_indexes:
|
||||
if not used[i]:
|
||||
|
@ -201,11 +206,12 @@ def _map_sources(srcs, mappings):
|
|||
return mapped
|
||||
|
||||
zip_file = rule(
|
||||
implementation=_impl,
|
||||
implementation=_zip_file,
|
||||
output_to_genfiles = True,
|
||||
attrs={
|
||||
'out': attr.output(mandatory=True),
|
||||
'srcs': attr.label_list(allow_files=True),
|
||||
'data': attr.label_list(cfg='data', allow_files=True),
|
||||
'deps': attr.label_list(providers=['zip_file']),
|
||||
'mappings': attr.string_dict(),
|
||||
'_zipper': attr.label(default=Label(ZIPPER), single_file=True),
|
||||
|
|
|
@ -11,9 +11,7 @@ filegroup(
|
|||
name = "runfiles",
|
||||
srcs = glob(["assets/**"]) + [
|
||||
"brain_bin.js",
|
||||
"brain_bin_map.js",
|
||||
"registrar_bin.js",
|
||||
"registrar_bin_map.js",
|
||||
"//java/google/registry/ui/css:registrar_bin.css",
|
||||
"//java/google/registry/ui/html:html_files",
|
||||
],
|
||||
|
@ -22,20 +20,13 @@ filegroup(
|
|||
filegroup(
|
||||
name = "runfiles_debug",
|
||||
srcs = [
|
||||
"brain_bin.js.map",
|
||||
"deps.js",
|
||||
"registrar_bin.js.map",
|
||||
"registrar_dbg.js",
|
||||
"//java/google/registry/ui/css:css_files",
|
||||
"//java/google/registry/ui/css:registrar_dbg.css",
|
||||
"//java/google/registry/ui/js:js_files",
|
||||
"//java/google/registry/ui/js/registrar:js_files",
|
||||
"//java/google/registry/ui/soy:js_files",
|
||||
"//java/google/registry/ui/soy/registrar:js_files",
|
||||
"//javascript/closure:js_files_recursive",
|
||||
"//javascript/template/soy:soy_usegoog_js_files",
|
||||
"@closure_library//:js_files",
|
||||
":brain_bin",
|
||||
":deps",
|
||||
":registrar_bin",
|
||||
":registrar_dbg",
|
||||
"//java/google/registry/ui/css:registrar_dbg",
|
||||
],
|
||||
data = [":deps"],
|
||||
)
|
||||
|
||||
zip_file(
|
||||
|
@ -43,10 +34,10 @@ zip_file(
|
|||
srcs = [":runfiles"],
|
||||
out = "ui.war",
|
||||
mappings = {
|
||||
"java/google/registry/ui/assets": "assets",
|
||||
"java/google/registry/ui/css": "assets/css",
|
||||
"java/google/registry/ui/html": "",
|
||||
"java/google/registry/ui": "assets/js",
|
||||
"domain_registry/java/google/registry/ui/assets": "assets",
|
||||
"domain_registry/java/google/registry/ui/css": "assets/css",
|
||||
"domain_registry/java/google/registry/ui/html": "",
|
||||
"domain_registry/java/google/registry/ui": "assets/js",
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -54,12 +45,12 @@ zip_file(
|
|||
name = "war_debug",
|
||||
srcs = [":runfiles_debug"],
|
||||
out = "ui_debug.war",
|
||||
data = [":runfiles_debug"],
|
||||
mappings = {
|
||||
"java/google/registry/ui/deps.js": "assets/sources/deps.js",
|
||||
"java/google/registry/ui/brain_bin.js.map": "assets/js/brain_bin.js.map",
|
||||
"java/google/registry/ui/registrar_bin.js.map": "assets/js/registrar_bin.js.map",
|
||||
"java/google/registry/ui/registrar_dbg.js": "assets/js/registrar_dbg.js",
|
||||
"java/google/registry/ui/css/registrar_dbg.css": "assets/css/registrar_dbg.css",
|
||||
"domain_registry/java/google/registry/ui/brain_bin.js.map": "assets/js/brain_bin.js.map",
|
||||
"domain_registry/java/google/registry/ui/registrar_bin.js.map": "assets/js/registrar_bin.js.map",
|
||||
"domain_registry/java/google/registry/ui/registrar_dbg.js": "assets/js/registrar_dbg.js",
|
||||
"domain_registry/java/google/registry/ui/css/registrar_dbg.css": "assets/css/registrar_dbg.css",
|
||||
"": "assets/sources",
|
||||
},
|
||||
deps = [":war"],
|
||||
|
@ -80,10 +71,7 @@ java_library(
|
|||
|
||||
closure_js_deps(
|
||||
name = "deps",
|
||||
deps = [
|
||||
"//java/google/registry/ui/js",
|
||||
"//java/google/registry/ui/js/registrar",
|
||||
],
|
||||
deps = ["//java/google/registry/ui/js/registrar"],
|
||||
)
|
||||
|
||||
################################################################################
|
||||
|
@ -98,22 +86,13 @@ closure_js_binary(
|
|||
name = "registrar_bin",
|
||||
css = "//java/google/registry/ui/css:registrar_bin",
|
||||
entry_points = ["goog:registry.registrar.main"],
|
||||
output_wrapper = "%output%//# sourceMappingURL=registrar_bin.js.map",
|
||||
deps = [
|
||||
"//java/google/registry/ui/externs",
|
||||
"//java/google/registry/ui/js/registrar",
|
||||
],
|
||||
)
|
||||
|
||||
# The webserver should provide this to trusted admin users, rather than
|
||||
# registrar_bin.js. This is what makes debugging in production possible.
|
||||
genrule(
|
||||
name = "registrar_mapped",
|
||||
srcs = ["registrar_bin.js"],
|
||||
outs = ["registrar_bin_map.js"],
|
||||
cmd = "cat $(location registrar_bin.js) >$@ && " +
|
||||
"echo '//# sourceMappingURL=registrar_bin.js.map' >>$@",
|
||||
)
|
||||
|
||||
# This target creates a compiled JavaScript file where symbols are renamed to
|
||||
# include dollar signs. This is useful for testing, because you can still read
|
||||
# the source code, but it'll fail if your code is incorrect with regard to
|
||||
|
@ -137,16 +116,9 @@ closure_js_binary(
|
|||
closure_js_binary(
|
||||
name = "brain_bin",
|
||||
entry_points = ["goog:registry.registrar.BrainFrame.main"],
|
||||
output_wrapper = "%output%//# sourceMappingURL=brain_bin.js.map",
|
||||
deps = [
|
||||
"//java/google/registry/ui/externs",
|
||||
"//java/google/registry/ui/js/registrar",
|
||||
],
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "brain_mapped",
|
||||
srcs = ["brain_bin.js"],
|
||||
outs = ["brain_bin_map.js"],
|
||||
cmd = "cat $(location brain_bin.js) >$@ && " +
|
||||
"echo '//# sourceMappingURL=brain_bin.js.map' >>$@",
|
||||
)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!-- gsutil cp -a public-read -z html brainframe-alpha.html gs://domain-registry-alpha/brainframe.html -->
|
||||
<!-- curl https://domain-registry-alpha.storage.googleapis.com/brainframe.html -->
|
||||
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
|
||||
<script src="https://domain-registry-alpha.appspot.com/assets/js/brain_bin_map.js"></script>
|
||||
<script src="https://domain-registry-alpha.appspot.com/assets/js/brain_bin.js"></script>
|
||||
<body style="margin:0">
|
||||
<form><div id="brainframe"></div></form>
|
||||
<script>registry.registrar.BrainFrame.main('https://domain-registry-alpha.appspot.com', 'brainframe');</script>
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
<!doctype html>
|
||||
<!-- Source-mapped production iframe sandbox for Braintree iframe -->
|
||||
<!-- -->
|
||||
<!-- This is the same thing as brainframe.html except it allows admins of -->
|
||||
<!-- the App Engine application to see the original source code in Chrome's -->
|
||||
<!-- debugger if an exception is thrown by the minified JavaScript blob. -->
|
||||
<!-- -->
|
||||
<!-- gsutil cp -a public-read -z html brainframe-map.html gs://domain-registry/brainframe-map.html -->
|
||||
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
|
||||
<script src="https://domain-registry.appspot.com/assets/js/brain_bin_map.js"></script>
|
||||
<body style="margin:0">
|
||||
<form><div id="brainframe"></div></form>
|
||||
<script>registry.registrar.BrainFrame.main('https://domain-registry.appspot.com', 'brainframe');</script>
|
|
@ -3,8 +3,8 @@
|
|||
<!-- This iframe provides no isolation of Braintree from Console. -->
|
||||
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
|
||||
<script>var CLOSURE_NO_DEPS = true;</script>
|
||||
<script src="/assets/sources/javascript/closure/base.js"></script>
|
||||
<script src="/assets/sources/deps.js"></script>
|
||||
<script src="/assets/sources/closure_library/closure/goog/base.js"></script>
|
||||
<script src="/assets/sources/domain_registry/java/google/registry/ui/deps.js"></script>
|
||||
<body style="margin:0">
|
||||
<form><div id="brainframe"></div></form>
|
||||
<script>goog.require('registry.registrar.BrainFrame.main');</script>
|
||||
|
|
|
@ -4,12 +4,7 @@ package(
|
|||
|
||||
licenses(["notice"]) # Apache 2.0
|
||||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_css_library", "closure_css_binary")
|
||||
|
||||
filegroup(
|
||||
name = "css_files",
|
||||
srcs = glob(["*.css"]),
|
||||
)
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_css_binary", "closure_css_library")
|
||||
|
||||
closure_css_library(
|
||||
name = "kd_components_lib",
|
||||
|
@ -23,7 +18,9 @@ closure_css_library(
|
|||
"forms.css",
|
||||
"registry.css",
|
||||
],
|
||||
deps = [":kd_components_lib"],
|
||||
deps = [
|
||||
":kd_components_lib",
|
||||
],
|
||||
)
|
||||
|
||||
closure_css_library(
|
||||
|
@ -49,3 +46,9 @@ closure_css_binary(
|
|||
debug = 1,
|
||||
deps = [":registrar_lib"],
|
||||
)
|
||||
|
||||
closure_css_library(
|
||||
name = "registrar_raw",
|
||||
srcs = ["registrar_imports_raw.css"],
|
||||
deps = [":registrar_lib"],
|
||||
)
|
||||
|
|
|
@ -8,10 +8,5 @@ load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library")
|
|||
|
||||
closure_js_library(
|
||||
name = "externs",
|
||||
externs = glob(["*.js"]),
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "js_files_recursive",
|
||||
srcs = glob(["*.js"]),
|
||||
)
|
||||
|
|
|
@ -6,17 +6,15 @@ licenses(["notice"]) # Apache 2.0
|
|||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library")
|
||||
|
||||
filegroup(
|
||||
name = "js_files",
|
||||
srcs = glob(["*.js"]),
|
||||
)
|
||||
|
||||
closure_js_library(
|
||||
name = "js",
|
||||
srcs = [":js_files"],
|
||||
srcs = glob(["*.js"]),
|
||||
suppress = [
|
||||
"JSC_UNKNOWN_EXPR_TYPE",
|
||||
"JSC_IMPLICITLY_NULLABLE_JSDOC",
|
||||
],
|
||||
deps = [
|
||||
"//java/google/registry/ui/soy:Console",
|
||||
"//java/google/registry/ui/soy:Forms",
|
||||
"//javascript/closure",
|
||||
"//java/google/registry/ui/soy",
|
||||
"@io_bazel_rules_closure//closure/library",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -6,29 +6,17 @@ licenses(["notice"]) # Apache 2.0
|
|||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library")
|
||||
|
||||
filegroup(
|
||||
name = "js_files",
|
||||
srcs = glob(["*.js"]),
|
||||
)
|
||||
|
||||
closure_js_library(
|
||||
name = "registrar",
|
||||
srcs = [":js_files"],
|
||||
srcs = glob(["*.js"]),
|
||||
suppress = [
|
||||
"JSC_UNKNOWN_EXPR_TYPE",
|
||||
"JSC_IMPLICITLY_NULLABLE_JSDOC",
|
||||
],
|
||||
deps = [
|
||||
"//java/google/registry/ui/js",
|
||||
"//java/google/registry/ui/soy:Forms",
|
||||
"//java/google/registry/ui/soy/registrar:Console",
|
||||
"//java/google/registry/ui/soy/registrar:Contact",
|
||||
"//java/google/registry/ui/soy/registrar:ContactEpp",
|
||||
"//java/google/registry/ui/soy/registrar:ContactSettings",
|
||||
"//java/google/registry/ui/soy/registrar:Domain",
|
||||
"//java/google/registry/ui/soy/registrar:DomainEpp",
|
||||
"//java/google/registry/ui/soy/registrar:Epp",
|
||||
"//java/google/registry/ui/soy/registrar:Host",
|
||||
"//java/google/registry/ui/soy/registrar:HostEpp",
|
||||
"//java/google/registry/ui/soy/registrar:Payment",
|
||||
"//java/google/registry/ui/soy/registrar:SecuritySettings",
|
||||
"//java/google/registry/ui/soy/registrar:WhoisSettings",
|
||||
"//javascript/closure",
|
||||
"//java/google/registry/ui/soy",
|
||||
"//java/google/registry/ui/soy/registrar",
|
||||
"@io_bazel_rules_closure//closure/library",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -106,7 +106,6 @@ public final class ConsoleUiAction implements Runnable {
|
|||
Registrar registrar = Registrar.loadByClientId(sessionUtils.getRegistrarClientId(req));
|
||||
data.put("xsrfToken", XsrfTokenManager.generateToken(EppConsoleAction.XSRF_SCOPE));
|
||||
data.put("clientId", registrar.getClientId());
|
||||
data.put("isAdmin", userService.isUserAdmin());
|
||||
data.put("showPaymentLink", registrar.getBillingMethod() == Registrar.BillingMethod.BRAINTREE);
|
||||
|
||||
String payload = TOFU_SUPPLIER.get()
|
||||
|
|
|
@ -6,12 +6,10 @@ licenses(["notice"]) # Apache 2.0
|
|||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_java_template_library", "closure_js_template_library")
|
||||
|
||||
filegroup(
|
||||
name = "js_files",
|
||||
srcs = [
|
||||
"Console.soy.js",
|
||||
"Forms.soy.js",
|
||||
],
|
||||
closure_js_template_library(
|
||||
name = "soy",
|
||||
srcs = glob(["*.soy"]),
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_java_template_library(
|
||||
|
@ -19,15 +17,3 @@ closure_java_template_library(
|
|||
srcs = glob(["*.soy"]),
|
||||
java_package = "google.registry.ui.soy",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Console",
|
||||
srcs = ["Console.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Forms",
|
||||
srcs = ["Forms.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
|
|
@ -50,13 +50,8 @@
|
|||
{case google.registry.ui.ConsoleDebug.DEBUG}
|
||||
<link rel="stylesheet" href="/assets/css/{$app}_dbg.css">
|
||||
{case google.registry.ui.ConsoleDebug.RAW}
|
||||
{if $app == 'admin'}
|
||||
<link rel="stylesheet"
|
||||
href="/assets/sources/java/google/registry/ui/css/admin_imports_raw.css">
|
||||
{else}
|
||||
<link rel="stylesheet"
|
||||
href="/assets/sources/java/google/registry/ui/css/registrar_imports_raw.css">
|
||||
{/if}
|
||||
href="/assets/sources/domain_registry/java/google/registry/ui/css/{$app}_imports_raw.css">
|
||||
{default}
|
||||
<!-- No DEBUG option set. -->
|
||||
{/switch}
|
||||
|
|
|
@ -6,22 +6,12 @@ licenses(["notice"]) # Apache 2.0
|
|||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_java_template_library", "closure_js_template_library")
|
||||
|
||||
filegroup(
|
||||
name = "js_files",
|
||||
srcs = [
|
||||
"Console.soy.js",
|
||||
"Contact.soy.js",
|
||||
"ContactEpp.soy.js",
|
||||
"ContactSettings.soy.js",
|
||||
"Domain.soy.js",
|
||||
"DomainEpp.soy.js",
|
||||
"Epp.soy.js",
|
||||
"Host.soy.js",
|
||||
"HostEpp.soy.js",
|
||||
"Payment.soy.js",
|
||||
"SecuritySettings.soy.js",
|
||||
"WhoisSettings.soy.js",
|
||||
],
|
||||
closure_js_template_library(
|
||||
name = "registrar",
|
||||
srcs = glob(["*.soy"]),
|
||||
data = ["//java/google/registry/ui/css:registrar_raw"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy"],
|
||||
)
|
||||
|
||||
closure_java_template_library(
|
||||
|
@ -29,82 +19,3 @@ closure_java_template_library(
|
|||
srcs = glob(["*.soy"]),
|
||||
java_package = "google.registry.ui.soy.registrar",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Console",
|
||||
srcs = ["Console.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Console"],
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "ContactEpp",
|
||||
srcs = ["ContactEpp.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "ContactSettings",
|
||||
srcs = ["ContactSettings.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Forms"],
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Contact",
|
||||
srcs = ["Contact.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Forms"],
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Domain",
|
||||
srcs = ["Domain.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Forms"],
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "DomainEpp",
|
||||
srcs = ["DomainEpp.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Epp",
|
||||
srcs = ["Epp.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "HostEpp",
|
||||
srcs = ["HostEpp.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Host",
|
||||
srcs = ["Host.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Forms"],
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "Payment",
|
||||
srcs = ["Payment.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Forms"],
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "SecuritySettings",
|
||||
srcs = ["SecuritySettings.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
)
|
||||
|
||||
closure_js_template_library(
|
||||
name = "WhoisSettings",
|
||||
srcs = ["WhoisSettings.soy"],
|
||||
globals = "//java/google/registry/ui:globals.txt",
|
||||
deps = ["//java/google/registry/ui/soy:Forms"],
|
||||
)
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
{@param xsrfToken: string} /** Security token. */
|
||||
{@param clientId: string} /** Registrar client identifier. */
|
||||
{@param username: string} /** Arbitrary username to display. */
|
||||
{@param isAdmin: bool} /** Is this user an App Engine account admin? */
|
||||
{@param logoutUrl: string} /** Generated URL for logging out of Google. */
|
||||
{@param showPaymentLink: bool}
|
||||
{@param productName: string} /** Name to display for this software product. */
|
||||
|
@ -51,18 +50,13 @@
|
|||
</div>
|
||||
{switch DEBUG}
|
||||
{case google.registry.ui.ConsoleDebug.PRODUCTION}
|
||||
{if $isAdmin}
|
||||
<script src="/assets/js/registrar_bin_map.js"></script>
|
||||
{else}
|
||||
<script src="/assets/js/registrar_bin.js"></script>
|
||||
{/if}
|
||||
{case google.registry.ui.ConsoleDebug.DEBUG}
|
||||
<script src="/assets/js/registrar_dbg.js"></script>
|
||||
{case google.registry.ui.ConsoleDebug.RAW}
|
||||
<script>var CLOSURE_NO_DEPS = true;</script>
|
||||
<script src="/assets/sources/external/closure_library/closure/goog/base.js">
|
||||
</script>
|
||||
<script src="/assets/sources/deps.js"></script>
|
||||
<script src="/assets/sources/closure_library/closure/goog/base.js"></script>
|
||||
<script src="/assets/sources/domain_registry/java/google/registry/ui/deps.js"></script>
|
||||
<script>goog.require('registry.registrar.main');</script>
|
||||
{/switch}
|
||||
{if isNonnull(DEBUG)}
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library")
|
||||
|
||||
closure_js_library(
|
||||
name = "closure",
|
||||
exports = ["@io_bazel_rules_closure//closure/library"],
|
||||
)
|
||||
|
||||
closure_js_library(
|
||||
name = "testing",
|
||||
testonly = 1,
|
||||
exports = ["@io_bazel_rules_closure//closure/library:testing"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "js_files_recursive",
|
||||
srcs = ["@closure_library//:js_files"],
|
||||
)
|
|
@ -1,6 +0,0 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "soy_usegoog_js_files",
|
||||
srcs = ["@io_bazel_rules_closure//closure/templates:soy_jssrc"],
|
||||
)
|
|
@ -29,9 +29,9 @@ zip_contents_test(
|
|||
name = "zip_emptyMapping_leavesShortPathsInTact",
|
||||
src = "basic.zip",
|
||||
contents = {
|
||||
"javatests/google/registry/builddefs/generated.txt": "generated",
|
||||
"javatests/google/registry/builddefs/hello.txt": "hello",
|
||||
"javatests/google/registry/builddefs/world.txt": "world",
|
||||
"domain_registry/javatests/google/registry/builddefs/generated.txt": "generated",
|
||||
"domain_registry/javatests/google/registry/builddefs/hello.txt": "hello",
|
||||
"domain_registry/javatests/google/registry/builddefs/world.txt": "world",
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -39,7 +39,7 @@ zip_file(
|
|||
name = "stripped",
|
||||
srcs = ["hello.txt"],
|
||||
out = "stripped.zip",
|
||||
mappings = {"javatests/google/registry/builddefs": ""},
|
||||
mappings = {"domain_registry/javatests/google/registry/builddefs": ""},
|
||||
)
|
||||
|
||||
zip_contents_test(
|
||||
|
@ -57,8 +57,8 @@ zip_file(
|
|||
],
|
||||
out = "repath.zip",
|
||||
mappings = {
|
||||
"javatests/google/registry/builddefs": "a/b/c",
|
||||
"javatests/google/registry/builddefs/generated.txt": "x/y/z/generated.txt",
|
||||
"domain_registry/javatests/google/registry/builddefs": "a/b/c",
|
||||
"domain_registry/javatests/google/registry/builddefs/generated.txt": "x/y/z/generated.txt",
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -76,7 +76,7 @@ zip_file(
|
|||
name = "overridden",
|
||||
srcs = ["override/hello.txt"],
|
||||
out = "overridden.zip",
|
||||
mappings = {"javatests/google/registry/builddefs/override": "a/b/c"},
|
||||
mappings = {"domain_registry/javatests/google/registry/builddefs/override": "a/b/c"},
|
||||
deps = [":repath"],
|
||||
)
|
||||
|
||||
|
|
|
@ -14,15 +14,15 @@
|
|||
|
||||
"""Build rule for unit testing the zip_file() rule."""
|
||||
|
||||
load('//java/google/registry/builddefs:defs.bzl', 'ZIPPER', 'runpath')
|
||||
load('//java/google/registry/builddefs:defs.bzl', 'ZIPPER')
|
||||
|
||||
def _impl(ctx):
|
||||
"""Implementation of zip_contents_test() rule."""
|
||||
cmd = [
|
||||
'set -e',
|
||||
'repo="$(pwd)"',
|
||||
'zipper="${repo}/%s"' % runpath(ctx.file._zipper),
|
||||
'archive="${repo}/%s"' % runpath(ctx.file.src),
|
||||
'zipper="${repo}/%s"' % ctx.file._zipper.short_path,
|
||||
'archive="${repo}/%s"' % ctx.file.src.short_path,
|
||||
('listing="$("${zipper}" v "${archive}"' +
|
||||
' | grep -v ^d | awk \'{print $3}\' | LC_ALL=C sort)"'),
|
||||
'if [[ "${listing}" != "%s" ]]; then' % (
|
||||
|
|
|
@ -30,17 +30,22 @@ public final class RegistryTestServer {
|
|||
new ImmutableMap.Builder<String, Path>()
|
||||
.put(
|
||||
"/index.html",
|
||||
Paths.get("java/google/registry/ui/html/index.html"))
|
||||
Paths.get(
|
||||
"../domain_registry/java/google/registry/ui/html/index.html"))
|
||||
.put(
|
||||
"/error.html",
|
||||
Paths.get("java/google/registry/ui/html/error.html"))
|
||||
.put("/assets/js/*", Paths.get("java/google/registry/ui"))
|
||||
.put("/assets/css/*", Paths.get("java/google/registry/ui/css"))
|
||||
Paths.get(
|
||||
"../domain_registry/java/google/registry/ui/html/error.html"))
|
||||
.put(
|
||||
"/assets/sources/deps.js",
|
||||
Paths.get("java/google/registry/ui/deps.js"))
|
||||
.put("/assets/sources/*", Paths.get(""))
|
||||
.put("/assets/*", Paths.get("java/google/registry/ui/assets"))
|
||||
"/assets/js/*",
|
||||
Paths.get("../domain_registry/java/google/registry/ui"))
|
||||
.put(
|
||||
"/assets/css/*",
|
||||
Paths.get("../domain_registry/java/google/registry/ui/css"))
|
||||
.put("/assets/sources/*", Paths.get(".."))
|
||||
.put(
|
||||
"/assets/*",
|
||||
Paths.get("../domain_registry/java/google/registry/ui/assets"))
|
||||
.build();
|
||||
|
||||
private static final ImmutableList<Route> ROUTES = ImmutableList.of(
|
||||
|
|
|
@ -16,6 +16,7 @@ package google.registry.server;
|
|||
|
||||
import com.beust.jcommander.JCommander;
|
||||
import com.beust.jcommander.Parameter;
|
||||
import com.beust.jcommander.Parameters;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.net.HostAndPort;
|
||||
import google.registry.testing.AppEngineRule;
|
||||
|
@ -27,6 +28,7 @@ import org.junit.runner.Description;
|
|||
import org.junit.runners.model.Statement;
|
||||
|
||||
/** Command-line interface for {@link RegistryTestServer}. */
|
||||
@Parameters(separators = " =", commandDescription = "Runs web development server.")
|
||||
public final class RegistryTestServerMain {
|
||||
|
||||
private static final String RESET = "\u001b[0m";
|
||||
|
|
|
@ -17,7 +17,6 @@ package google.registry.server;
|
|||
import static com.google.common.base.MoreObjects.firstNonNull;
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Verify.verify;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_FORBIDDEN;
|
||||
import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
|
||||
|
||||
|
@ -122,12 +121,7 @@ public final class StaticResourceServlet extends HttpServlet {
|
|||
|
||||
Optional<Path> doHead(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
|
||||
verify(req.getRequestURI().startsWith(prefix));
|
||||
Path file = root.resolve(req.getRequestURI().substring(prefix.length())).normalize();
|
||||
if (!file.startsWith(root)) {
|
||||
logger.infofmt("Evil request: %s (%s) (%s + %s)", req.getRequestURI(), file, root, prefix);
|
||||
rsp.sendError(SC_BAD_REQUEST, "Naughty naughty!");
|
||||
return Optional.absent();
|
||||
}
|
||||
Path file = root.resolve(req.getRequestURI().substring(prefix.length()));
|
||||
if (!Files.exists(file)) {
|
||||
logger.infofmt("Not found: %s (%s)", req.getRequestURI(), file);
|
||||
rsp.sendError(SC_NOT_FOUND, "Not found");
|
||||
|
|
|
@ -11,8 +11,8 @@ closure_js_library(
|
|||
name = "testing",
|
||||
srcs = ["testing.js"],
|
||||
deps = [
|
||||
"//javascript/closure",
|
||||
"//javascript/closure:testing",
|
||||
"@io_bazel_rules_closure//closure/library",
|
||||
"@io_bazel_rules_closure//closure/library:testing",
|
||||
],
|
||||
)
|
||||
|
||||
|
@ -25,7 +25,7 @@ closure_js_test(
|
|||
deps = [
|
||||
":testing",
|
||||
"//java/google/registry/ui/js",
|
||||
"//javascript/closure",
|
||||
"//javascript/closure:testing",
|
||||
"@io_bazel_rules_closure//closure/library",
|
||||
"@io_bazel_rules_closure//closure/library:testing",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -13,8 +13,8 @@ closure_js_library(
|
|||
deps = [
|
||||
"//java/google/registry/ui/js",
|
||||
"//java/google/registry/ui/js/registrar",
|
||||
"//javascript/closure",
|
||||
"//javascript/closure:testing",
|
||||
"@io_bazel_rules_closure//closure/library",
|
||||
"@io_bazel_rules_closure//closure/library:testing",
|
||||
],
|
||||
)
|
||||
|
||||
|
@ -28,9 +28,9 @@ closure_js_test(
|
|||
":console_test_util",
|
||||
"//java/google/registry/ui/js",
|
||||
"//java/google/registry/ui/js/registrar",
|
||||
"//java/google/registry/ui/soy/registrar:Console",
|
||||
"//javascript/closure",
|
||||
"//javascript/closure:testing",
|
||||
"//java/google/registry/ui/soy/registrar",
|
||||
"//javatests/google/registry/ui/js:testing",
|
||||
"@io_bazel_rules_closure//closure/library",
|
||||
"@io_bazel_rules_closure//closure/library:testing",
|
||||
],
|
||||
)
|
||||
|
|
15
third_party/javascript/closure/BUILD
vendored
15
third_party/javascript/closure/BUILD
vendored
|
@ -1,15 +0,0 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
licenses(["notice"]) # Apache License 2.0
|
||||
|
||||
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library")
|
||||
|
||||
closure_js_library(
|
||||
name = "closure",
|
||||
exports = ["//third_party/closure/library"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "js_files_recursive",
|
||||
srcs = ["@closure_library//:js_files"],
|
||||
)
|
Loading…
Add table
Reference in a new issue