diff --git a/core/src/main/java/google/registry/builddefs/defs.bzl b/core/src/main/java/google/registry/builddefs/defs.bzl deleted file mode 100644 index e2fedcdac..000000000 --- a/core/src/main/java/google/registry/builddefs/defs.bzl +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 2017 The Nomulus Authors. All Rights Reserved. -# -# 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. - -"""Common routines for Nomulus build rules.""" - -ZIPPER = "@bazel_tools//tools/zip:zipper" - -def long_path(ctx, file_): - """Constructs canonical runfile path relative to TEST_SRCDIR. - - 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 = depset() - 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 [] diff --git a/core/src/main/java/google/registry/builddefs/registry_ear_file.bzl b/core/src/main/java/google/registry/builddefs/registry_ear_file.bzl deleted file mode 100644 index 772f59361..000000000 --- a/core/src/main/java/google/registry/builddefs/registry_ear_file.bzl +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 2017 The Nomulus Authors. All Rights Reserved. -# -# 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. - -"""Build macro for creating App Engine EAR archives for Nomulus.""" - -load("//java/google/registry/builddefs:defs.bzl", "ZIPPER") - -def registry_ear_file(name, out, configs, wars, **kwargs): - """Creates an EAR archive by combining WAR archives.""" - cmd = [ - "set -e", - "repo=$$(pwd)", - "zipper=$$repo/$(location %s)" % ZIPPER, - "tmp=$$(mktemp -d $${TMPDIR:-/tmp}/registry_ear_file.XXXXXXXXXX)", - "cd $${tmp}", - ] - for target, dest in configs.items(): - cmd += [ - "mkdir -p $${tmp}/$$(dirname %s)" % dest, - "ln -s $${repo}/$(location %s) $${tmp}/%s" % (target, dest), - ] - for target, dest in wars.items(): - cmd += [ - "mkdir " + dest, - "cd " + dest, - "$${zipper} x $${repo}/$(location %s)" % target, - "cd ..", - ] - cmd += [ - "$${zipper} cC $${repo}/$@ $$(find . | sed 1d | cut -c 3- | LC_ALL=C sort)", - "cd $${repo}", - "rm -rf $${tmp}", - ] - native.genrule( - name = name, - srcs = configs.keys() + wars.keys(), - outs = [out], - cmd = "\n".join(cmd), - tools = [ZIPPER], - message = "Generating EAR archive", - **kwargs - ) diff --git a/core/src/main/java/google/registry/builddefs/zip_file.bzl b/core/src/main/java/google/registry/builddefs/zip_file.bzl deleted file mode 100644 index 625027e26..000000000 --- a/core/src/main/java/google/registry/builddefs/zip_file.bzl +++ /dev/null @@ -1,256 +0,0 @@ -# Copyright 2017 The Nomulus Authors. All Rights Reserved. -# -# 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. - -"""Zip file creator that allows arbitrary path renaming. - -This rule takes two main inputs: a bunch of filesets and a dictionary of -hard-coded source to dest mappings. It then applies those mappings to the input -file paths, to create a zip file with the same name as the rule. - -The following preconditions must be met: - -- Sources and destinations can't begin or end with slash. -- Every file must be matched by a mapping. -- Every mapping must match something. - -The source can either be an exact match or a prefix. - -- If a match is exact, the destination replaces the entire path. If the - destination path is empty, then the path remains the same. - -- If the match is a prefix, then the destination replaces the source prefix in - the path. If the destination is empty, then the source prefix is removed. - -- If source is an empty string, it matches everything. In this case, - destination becomes the path prefix. - -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 "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 -then re-zipped. Mappings specified by the current rule do not apply to the -files extracted from dependent zips. However those files can be overridden. - -The simplest example of this rule, which simply zips up short paths, is as -follows: - - # //my/package/BUILD - zip_file( - name = "doodle", - srcs = ["hello.txt"], - mappings = {"": ""}, - ) - -The rule above would create a zip file name //my/package/doodle.zip which would -contain a single file named "my/package/hello.txt". - -If we wanted to strip the package path, we could do the following: - - # //my/package/BUILD - zip_file( - name = "doodle", - srcs = ["hello.txt"], - mappings = {"my/package": ""}, - ) - -In this case, doodle.zip would contain a single file: "hello.txt". - -If we wanted to rename hello.txt, we could do the following: - - # //my/package/BUILD - zip_file( - name = "doodle", - srcs = ["hello.txt"], - mappings = {"my/package/hello.txt": "my/package/world.txt"}, - ) - -A zip file can be assembled across many rules. For example: - - # //webapp/html/BUILD - zip_file( - name = "assets", - srcs = glob(["*.html"]), - mappings = {"webapp/html": ""}, - ) - - # //webapp/js/BUILD - zip_file( - name = "assets", - srcs = glob(["*.js"]), - mappings = {"webapp/js": "assets/js"}, - ) - - # //webapp/BUILD - zip_file( - name = "war", - deps = [ - "//webapp/html:assets", - "//webapp/js:assets", - ], - mappings = {"webapp/html": ""}, - ) - -You can exclude files with the "exclude" attribute: - - # //webapp/BUILD - zip_file( - name = "war_without_tears", - deps = ["war"], - exclude = ["assets/js/tears.js"], - ) - -Note that "exclude" excludes based on the mapped path relative to the root of -the zipfile. If the file doesn't exist, you'll get an error. - -""" - -load( - "//java/google/registry/builddefs:defs.bzl", - "ZIPPER", - "collect_runfiles", - "long_path", -) - -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") - srcs = depset() - 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", - 'repo="$(pwd)"', - 'zipper="${repo}/%s"' % ctx.file._zipper.path, - 'archive="${repo}/%s"' % ctx.outputs.out.path, - 'tmp="$(mktemp -d "${TMPDIR:-/tmp}/zip_file.XXXXXXXXXX")"', - 'cd "${tmp}"', - ] - cmd += [ - '"${zipper}" x "${repo}/%s"' % dep.zip_file.path - for dep in ctx.attr.deps - ] - cmd += ["rm %s" % filename for filename in ctx.attr.exclude] - cmd += [ - 'mkdir -p "${tmp}/%s"' % zip_path - for zip_path in depset( - [ - zip_path[:zip_path.rindex("/")] - for _, zip_path in mapped - if "/" in zip_path - ], - ).to_list() - ] - cmd += [ - 'ln -sf "${repo}/%s" "${tmp}/%s"' % (path, zip_path) - for path, zip_path in mapped - ] - cmd += [ - ("find . | sed 1d | cut -c 3- | LC_ALL=C sort" + - ' | xargs "${zipper}" cC "${archive}"'), - 'cd "${repo}"', - 'rm -rf "${tmp}"', - ] - if hasattr(ctx, "bin_dir"): - script = ctx.new_file(ctx.bin_dir, "%s.sh" % ctx.label.name) - else: - # TODO(kchodorow): remove this once Bazel 4.0+ is required. - script = ctx.new_file(ctx.configuration.bin_dir, "%s.sh" % ctx.label.name) - ctx.actions.write(output = script, content = "\n".join(cmd), is_executable = True) - inputs = [ctx.file._zipper] - inputs += [dep.zip_file for dep in ctx.attr.deps] - inputs += srcs.to_list() - ctx.actions.run( - inputs = inputs, - outputs = [ctx.outputs.out], - executable = script, - mnemonic = "zip", - progress_message = "Creating zip with %d inputs %s" % ( - len(inputs), - ctx.label, - ), - ) - return struct(files = depset([ctx.outputs.out]), zip_file = ctx.outputs.out) - -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) - for source, dest in mappings.items() - ]) - - # get rid of the integer part of tuple used for sorting - mappings = [(source, dest) for _, source, dest in mappings] - mappings_indexes = range(len(mappings)) - used = {i: False for i in mappings_indexes} - mapped = [] - for file_ in srcs: - 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 + "/" + run_path - else: - zip_path = run_path - elif source == run_path: - if dest: - zip_path = dest - else: - zip_path = run_path - elif run_path.startswith(source + "/"): - if dest: - zip_path = dest + run_path[len(source):] - else: - zip_path = run_path[len(source) + 1:] - else: - continue - used[i] = True - break - if not zip_path: - fail("no mapping matched: " + run_path) - mapped += [(file_.path, zip_path)] - for i in mappings_indexes: - if not used[i]: - fail('superfluous mapping: "%s" -> "%s"' % mappings[i]) - return mapped - -zip_file = rule( - implementation = _zip_file, - output_to_genfiles = True, - attrs = { - "out": attr.output(mandatory = True), - "srcs": attr.label_list(allow_files = True), - "data": attr.label_list(allow_files = True), - "deps": attr.label_list(providers = ["zip_file"]), - "exclude": attr.string_list(), - "mappings": attr.string_dict(), - "_zipper": attr.label(default = Label(ZIPPER), allow_single_file = True), - }, -) diff --git a/core/src/main/java/google/registry/xjc/generated_files.bzl b/core/src/main/java/google/registry/xjc/generated_files.bzl deleted file mode 100644 index e739defcd..000000000 --- a/core/src/main/java/google/registry/xjc/generated_files.bzl +++ /dev/null @@ -1,410 +0,0 @@ -# Copyright 2017 The Nomulus Authors. All Rights Reserved. -# -# 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. - -# -# .'``'. ... -# :o o `....'` ; -# `. O :' -# `': `. -# `:. `. -# : `. `. -# `..'`... `. -# `... `. -# DO NOT EDIT ``... `. -# THIS FILE `````. -# -# When you make changes to the XML schemas (*.xsd) or the JAXB bindings file -# (bindings.xjb), you must regenerate this file with the following commands: -# -# bazel run java/google/registry/xjc:list_generated_files | tee /tmp/lol -# mv /tmp/lol java/google/registry/xjc/generated_files.bzl -# - -pkginfo_generated_files = [ - "contact/package-info.java", - "domain/package-info.java", - "dsig/package-info.java", - "epp/package-info.java", - "eppcom/package-info.java", - "fee06/package-info.java", - "fee11/package-info.java", - "fee12/package-info.java", - "host/package-info.java", - "iirdea/package-info.java", - "launch/package-info.java", - "mark/package-info.java", - "rde/package-info.java", - "rdecontact/package-info.java", - "rdedomain/package-info.java", - "rdeeppparams/package-info.java", - "rdeheader/package-info.java", - "rdehost/package-info.java", - "rdeidn/package-info.java", - "rdenndn/package-info.java", - "rdenotification/package-info.java", - "rdepolicy/package-info.java", - "rderegistrar/package-info.java", - "rdereport/package-info.java", - "rgp/package-info.java", - "secdns/package-info.java", - "smd/package-info.java", -] - -xjc_generated_files = [ - "contact/ObjectFactory.java", - "contact/XjcContactAddRemType.java", - "contact/XjcContactAddrType.java", - "contact/XjcContactAuthIDType.java", - "contact/XjcContactAuthInfoType.java", - "contact/XjcContactCheck.java", - "contact/XjcContactCheckIDType.java", - "contact/XjcContactCheckType.java", - "contact/XjcContactChgPostalInfoType.java", - "contact/XjcContactChgType.java", - "contact/XjcContactChkData.java", - "contact/XjcContactCreData.java", - "contact/XjcContactCreate.java", - "contact/XjcContactDelete.java", - "contact/XjcContactDiscloseType.java", - "contact/XjcContactE164Type.java", - "contact/XjcContactInfData.java", - "contact/XjcContactInfo.java", - "contact/XjcContactIntLocType.java", - "contact/XjcContactPaCLIDType.java", - "contact/XjcContactPanData.java", - "contact/XjcContactPostalInfoEnumType.java", - "contact/XjcContactPostalInfoType.java", - "contact/XjcContactStatusType.java", - "contact/XjcContactStatusValueType.java", - "contact/XjcContactTransfer.java", - "contact/XjcContactTrnData.java", - "contact/XjcContactUpdate.java", - "domain/ObjectFactory.java", - "domain/XjcDomainAddRemType.java", - "domain/XjcDomainAuthInfoChgType.java", - "domain/XjcDomainAuthInfoType.java", - "domain/XjcDomainCheck.java", - "domain/XjcDomainCheckNameType.java", - "domain/XjcDomainCheckType.java", - "domain/XjcDomainChgType.java", - "domain/XjcDomainChkData.java", - "domain/XjcDomainContactAttrType.java", - "domain/XjcDomainContactType.java", - "domain/XjcDomainCreData.java", - "domain/XjcDomainCreate.java", - "domain/XjcDomainDelete.java", - "domain/XjcDomainHostAttrType.java", - "domain/XjcDomainHostsType.java", - "domain/XjcDomainInfData.java", - "domain/XjcDomainInfo.java", - "domain/XjcDomainInfoNameType.java", - "domain/XjcDomainNsType.java", - "domain/XjcDomainPUnitType.java", - "domain/XjcDomainPaNameType.java", - "domain/XjcDomainPanData.java", - "domain/XjcDomainPeriodType.java", - "domain/XjcDomainRenData.java", - "domain/XjcDomainRenew.java", - "domain/XjcDomainStatusType.java", - "domain/XjcDomainStatusValueType.java", - "domain/XjcDomainTransfer.java", - "domain/XjcDomainTrnData.java", - "domain/XjcDomainUpdate.java", - "dsig/ObjectFactory.java", - "dsig/XjcDsigCanonicalizationMethod.java", - "dsig/XjcDsigDSAKeyValue.java", - "dsig/XjcDsigDigestMethod.java", - "dsig/XjcDsigDigestValue.java", - "dsig/XjcDsigKeyInfo.java", - "dsig/XjcDsigKeyName.java", - "dsig/XjcDsigKeyValue.java", - "dsig/XjcDsigManifest.java", - "dsig/XjcDsigMgmtData.java", - "dsig/XjcDsigObject.java", - "dsig/XjcDsigPGPData.java", - "dsig/XjcDsigRSAKeyValue.java", - "dsig/XjcDsigReference.java", - "dsig/XjcDsigRetrievalMethod.java", - "dsig/XjcDsigSPKIData.java", - "dsig/XjcDsigSignature.java", - "dsig/XjcDsigSignatureMethod.java", - "dsig/XjcDsigSignatureProperties.java", - "dsig/XjcDsigSignatureProperty.java", - "dsig/XjcDsigSignatureValue.java", - "dsig/XjcDsigSignedInfo.java", - "dsig/XjcDsigTransform.java", - "dsig/XjcDsigTransforms.java", - "dsig/XjcDsigX509Data.java", - "dsig/XjcDsigX509IssuerSerialType.java", - "epp/ObjectFactory.java", - "epp/XjcEpp.java", - "epp/XjcEppCommandType.java", - "epp/XjcEppCredsOptionsType.java", - "epp/XjcEppDcpAccessType.java", - "epp/XjcEppDcpExpiryType.java", - "epp/XjcEppDcpOursType.java", - "epp/XjcEppDcpPurposeType.java", - "epp/XjcEppDcpRecipientType.java", - "epp/XjcEppDcpRetentionType.java", - "epp/XjcEppDcpStatementType.java", - "epp/XjcEppDcpType.java", - "epp/XjcEppElement.java", - "epp/XjcEppErrValueType.java", - "epp/XjcEppExtAnyType.java", - "epp/XjcEppExtErrValueType.java", - "epp/XjcEppExtURIType.java", - "epp/XjcEppGreetingType.java", - "epp/XjcEppLoginSvcType.java", - "epp/XjcEppLoginType.java", - "epp/XjcEppMixedMsgType.java", - "epp/XjcEppMsgQType.java", - "epp/XjcEppMsgType.java", - "epp/XjcEppPollOpType.java", - "epp/XjcEppPollType.java", - "epp/XjcEppReadWriteType.java", - "epp/XjcEppResponse.java", - "epp/XjcEppResultType.java", - "epp/XjcEppSvcMenuType.java", - "epp/XjcEppTrIDType.java", - "epp/XjcEppTransferOpType.java", - "epp/XjcEppTransferType.java", - "eppcom/ObjectFactory.java", - "eppcom/XjcEppcomExtAuthInfoType.java", - "eppcom/XjcEppcomPwAuthInfoType.java", - "eppcom/XjcEppcomReasonType.java", - "eppcom/XjcEppcomTrStatusType.java", - "fee06/ObjectFactory.java", - "fee06/XjcFee06Check.java", - "fee06/XjcFee06ChkData.java", - "fee06/XjcFee06CommandType.java", - "fee06/XjcFee06CreData.java", - "fee06/XjcFee06Create.java", - "fee06/XjcFee06CreditType.java", - "fee06/XjcFee06DelData.java", - "fee06/XjcFee06DomainCDType.java", - "fee06/XjcFee06DomainCheckType.java", - "fee06/XjcFee06FeeType.java", - "fee06/XjcFee06InfData.java", - "fee06/XjcFee06Info.java", - "fee06/XjcFee06RenData.java", - "fee06/XjcFee06Renew.java", - "fee06/XjcFee06Transfer.java", - "fee06/XjcFee06TransformCommandType.java", - "fee06/XjcFee06TransformResultType.java", - "fee06/XjcFee06TrnData.java", - "fee06/XjcFee06UpdData.java", - "fee06/XjcFee06Update.java", - "fee11/ObjectFactory.java", - "fee11/XjcFee11Check.java", - "fee11/XjcFee11ChkData.java", - "fee11/XjcFee11CommandType.java", - "fee11/XjcFee11CreData.java", - "fee11/XjcFee11Create.java", - "fee11/XjcFee11CreditType.java", - "fee11/XjcFee11DelData.java", - "fee11/XjcFee11FeeType.java", - "fee11/XjcFee11ObjectCDType.java", - "fee11/XjcFee11RenData.java", - "fee11/XjcFee11Renew.java", - "fee11/XjcFee11Transfer.java", - "fee11/XjcFee11TransformCommandType.java", - "fee11/XjcFee11TransformResultType.java", - "fee11/XjcFee11TrnData.java", - "fee11/XjcFee11UpdData.java", - "fee11/XjcFee11Update.java", - "fee12/ObjectFactory.java", - "fee12/XjcFee12Check.java", - "fee12/XjcFee12ChkData.java", - "fee12/XjcFee12CommandCDType.java", - "fee12/XjcFee12CommandCheckType.java", - "fee12/XjcFee12CreData.java", - "fee12/XjcFee12Create.java", - "fee12/XjcFee12CreditType.java", - "fee12/XjcFee12DelData.java", - "fee12/XjcFee12FeeType.java", - "fee12/XjcFee12ObjectCDType.java", - "fee12/XjcFee12RenData.java", - "fee12/XjcFee12Renew.java", - "fee12/XjcFee12Transfer.java", - "fee12/XjcFee12TransformCommandType.java", - "fee12/XjcFee12TransformResultType.java", - "fee12/XjcFee12TrnData.java", - "fee12/XjcFee12UpdData.java", - "fee12/XjcFee12Update.java", - "host/ObjectFactory.java", - "host/XjcHostAddRemType.java", - "host/XjcHostAddrType.java", - "host/XjcHostCheck.java", - "host/XjcHostCheckNameType.java", - "host/XjcHostCheckType.java", - "host/XjcHostChgType.java", - "host/XjcHostChkData.java", - "host/XjcHostCreData.java", - "host/XjcHostCreate.java", - "host/XjcHostDelete.java", - "host/XjcHostInfData.java", - "host/XjcHostInfo.java", - "host/XjcHostIpType.java", - "host/XjcHostPaNameType.java", - "host/XjcHostPanData.java", - "host/XjcHostSNameType.java", - "host/XjcHostStatusType.java", - "host/XjcHostStatusValueType.java", - "host/XjcHostUpdate.java", - "iirdea/ObjectFactory.java", - "iirdea/XjcIirdeaCode.java", - "iirdea/XjcIirdeaResponse.java", - "iirdea/XjcIirdeaResponseElement.java", - "iirdea/XjcIirdeaResult.java", - "launch/ObjectFactory.java", - "launch/XjcLaunchCdNameType.java", - "launch/XjcLaunchCdType.java", - "launch/XjcLaunchCheck.java", - "launch/XjcLaunchCheckFormType.java", - "launch/XjcLaunchChkData.java", - "launch/XjcLaunchClaimKeyType.java", - "launch/XjcLaunchCodeMarkType.java", - "launch/XjcLaunchCodeType.java", - "launch/XjcLaunchCreData.java", - "launch/XjcLaunchCreate.java", - "launch/XjcLaunchCreateNoticeType.java", - "launch/XjcLaunchDelete.java", - "launch/XjcLaunchIdContainerType.java", - "launch/XjcLaunchInfData.java", - "launch/XjcLaunchInfo.java", - "launch/XjcLaunchNoticeIDType.java", - "launch/XjcLaunchObjectType.java", - "launch/XjcLaunchPhaseType.java", - "launch/XjcLaunchPhaseTypeValue.java", - "launch/XjcLaunchStatusType.java", - "launch/XjcLaunchStatusValueType.java", - "launch/XjcLaunchUpdate.java", - "mark/ObjectFactory.java", - "mark/XjcMarkAbstractMark.java", - "mark/XjcMarkAbstractMarkType.java", - "mark/XjcMarkAddrType.java", - "mark/XjcMarkContactType.java", - "mark/XjcMarkContactTypeType.java", - "mark/XjcMarkCourtType.java", - "mark/XjcMarkE164Type.java", - "mark/XjcMarkEntitlementType.java", - "mark/XjcMarkHolderType.java", - "mark/XjcMarkMark.java", - "mark/XjcMarkMarkType.java", - "mark/XjcMarkProtectionType.java", - "mark/XjcMarkTrademarkType.java", - "mark/XjcMarkTreatyOrStatuteType.java", - "rde/ObjectFactory.java", - "rde/XjcRdeContent.java", - "rde/XjcRdeContentType.java", - "rde/XjcRdeContentsType.java", - "rde/XjcRdeDelete.java", - "rde/XjcRdeDeleteType.java", - "rde/XjcRdeDeletesType.java", - "rde/XjcRdeDeposit.java", - "rde/XjcRdeDepositTypeType.java", - "rde/XjcRdeMenuType.java", - "rde/XjcRdeRrType.java", - "rdecontact/ObjectFactory.java", - "rdecontact/XjcRdeContact.java", - "rdecontact/XjcRdeContactAbstract.java", - "rdecontact/XjcRdeContactDelete.java", - "rdecontact/XjcRdeContactDeleteType.java", - "rdecontact/XjcRdeContactElement.java", - "rdecontact/XjcRdeContactTransferDataType.java", - "rdedomain/ObjectFactory.java", - "rdedomain/XjcRdeDomain.java", - "rdedomain/XjcRdeDomainAbstract.java", - "rdedomain/XjcRdeDomainDelete.java", - "rdedomain/XjcRdeDomainDeleteType.java", - "rdedomain/XjcRdeDomainElement.java", - "rdedomain/XjcRdeDomainTransferDataType.java", - "rdeeppparams/ObjectFactory.java", - "rdeeppparams/XjcRdeEppParams.java", - "rdeeppparams/XjcRdeEppParamsAbstract.java", - "rdeeppparams/XjcRdeEppParamsElement.java", - "rdeheader/ObjectFactory.java", - "rdeheader/XjcRdeHeader.java", - "rdeheader/XjcRdeHeaderCount.java", - "rdeheader/XjcRdeHeaderElement.java", - "rdehost/ObjectFactory.java", - "rdehost/XjcRdeHost.java", - "rdehost/XjcRdeHostAbstractHost.java", - "rdehost/XjcRdeHostDelete.java", - "rdehost/XjcRdeHostDeleteType.java", - "rdehost/XjcRdeHostElement.java", - "rdeidn/ObjectFactory.java", - "rdeidn/XjcRdeIdn.java", - "rdeidn/XjcRdeIdnDelete.java", - "rdeidn/XjcRdeIdnDeleteType.java", - "rdeidn/XjcRdeIdnElement.java", - "rdenndn/ObjectFactory.java", - "rdenndn/XjcRdeNndn.java", - "rdenndn/XjcRdeNndnAbstract.java", - "rdenndn/XjcRdeNndnDelete.java", - "rdenndn/XjcRdeNndnDeleteType.java", - "rdenndn/XjcRdeNndnElement.java", - "rdenndn/XjcRdeNndnNameState.java", - "rdenndn/XjcRdeNndnNameStateValue.java", - "rdenotification/ObjectFactory.java", - "rdenotification/XjcRdeNotification.java", - "rdenotification/XjcRdeNotificationElement.java", - "rdenotification/XjcRdeNotificationName.java", - "rdenotification/XjcRdeNotificationStatusType.java", - "rdepolicy/ObjectFactory.java", - "rdepolicy/XjcRdePolicy.java", - "rdepolicy/XjcRdePolicyElement.java", - "rderegistrar/ObjectFactory.java", - "rderegistrar/XjcRdeRegistrar.java", - "rderegistrar/XjcRdeRegistrarAbstract.java", - "rderegistrar/XjcRdeRegistrarAddrType.java", - "rderegistrar/XjcRdeRegistrarDelete.java", - "rderegistrar/XjcRdeRegistrarDeleteType.java", - "rderegistrar/XjcRdeRegistrarElement.java", - "rderegistrar/XjcRdeRegistrarPostalInfoEnumType.java", - "rderegistrar/XjcRdeRegistrarPostalInfoType.java", - "rderegistrar/XjcRdeRegistrarStatusType.java", - "rderegistrar/XjcRdeRegistrarWhoisInfoType.java", - "rdereport/ObjectFactory.java", - "rdereport/XjcRdeReport.java", - "rdereport/XjcRdeReportReport.java", - "rgp/ObjectFactory.java", - "rgp/XjcRgpInfData.java", - "rgp/XjcRgpMixedType.java", - "rgp/XjcRgpOpType.java", - "rgp/XjcRgpReportTextType.java", - "rgp/XjcRgpReportType.java", - "rgp/XjcRgpRespDataType.java", - "rgp/XjcRgpRestoreType.java", - "rgp/XjcRgpStatusType.java", - "rgp/XjcRgpStatusValueType.java", - "rgp/XjcRgpUpData.java", - "rgp/XjcRgpUpdate.java", - "secdns/ObjectFactory.java", - "secdns/XjcSecdnsChgType.java", - "secdns/XjcSecdnsCreate.java", - "secdns/XjcSecdnsDsDataType.java", - "secdns/XjcSecdnsDsOrKeyType.java", - "secdns/XjcSecdnsInfData.java", - "secdns/XjcSecdnsKeyDataType.java", - "secdns/XjcSecdnsRemType.java", - "secdns/XjcSecdnsUpdate.java", - "smd/ObjectFactory.java", - "smd/XjcSmdAbstractSignedMark.java", - "smd/XjcSmdAbstractSignedMarkElement.java", - "smd/XjcSmdEncodedSignedMark.java", - "smd/XjcSmdIssuerInfo.java", - "smd/XjcSmdSignedMark.java", - "smd/XjcSmdSignedMarkElement.java", -] diff --git a/core/src/test/java/google/registry/builddefs/zip_contents_test.bzl b/core/src/test/java/google/registry/builddefs/zip_contents_test.bzl deleted file mode 100644 index 4feb336e1..000000000 --- a/core/src/test/java/google/registry/builddefs/zip_contents_test.bzl +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 2017 The Nomulus Authors. All Rights Reserved. -# -# 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. - -"""Build rule for unit testing the zip_file() rule.""" - -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"' % 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' % ( - "\n".join(ctx.attr.contents.keys()) - ), - ' echo "archive had different file listing:"', - ' "${zipper}" v "${archive}" | grep -v ^d', - " exit 1", - "fi", - 'tmp="$(mktemp -d "${TMPDIR:-/tmp}/zip_contents_test.XXXXXXXXXX")"', - 'cd "${tmp}"', - '"${zipper}" x "${archive}"', - ] - for path, data in ctx.attr.contents.items(): - cmd += [ - 'if [[ "$(cat "%s")" != "%s" ]]; then' % (path, data), - ' echo "%s had different contents:"' % path, - ' cat "%s"' % path, - " exit 1", - "fi", - ] - cmd += [ - 'cd "${repo}"', - 'rm -rf "${tmp}"', - ] - ctx.actions.write( - output = ctx.outputs.executable, - content = "\n".join(cmd), - is_executable = True, - ) - return struct(runfiles = ctx.runfiles([ctx.file.src, ctx.file._zipper])) - -zip_contents_test = rule( - implementation = _impl, - test = True, - attrs = { - "src": attr.label(allow_single_file = True), - "contents": attr.string_dict(), - "_zipper": attr.label(default = Label(ZIPPER), allow_single_file = True), - }, -)