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:
jart 2016-12-01 12:33:53 -08:00 committed by Ben McIlwain
parent 79a72387ee
commit 59f4984083
28 changed files with 193 additions and 361 deletions

View file

@ -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' >>$@",
)

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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"],
)

View file

@ -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"]),
)

View file

@ -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",
],
)

View file

@ -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",
],
)

View file

@ -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()

View file

@ -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",
)

View file

@ -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}
<link rel="stylesheet"
href="/assets/sources/domain_registry/java/google/registry/ui/css/{$app}_imports_raw.css">
{default}
<!-- No DEBUG option set. -->
{/switch}

View file

@ -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"],
)

View file

@ -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}
<script src="/assets/js/registrar_bin.js"></script>
{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)}