Make essential Bazel packages publicly visible

This allows separate Bazel projects to reference Nomulus as an external
repository. They can then copy the []
directory structure into their own project and customize the Action
and Module lists for the GAE modules in their own deployment.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136863886
This commit is contained in:
jart 2016-10-21 13:03:48 -07:00 committed by Ben McIlwain
parent 38a3d038c0
commit 2e81de9954
43 changed files with 125 additions and 146 deletions

View file

@ -4,65 +4,6 @@ package(
licenses(["notice"]) # Apache 2.0
FIELD_EXPOSERS = [
"FieldExposer.java",
"billing/FieldExposer.java",
"common/FieldExposer.java",
"contact/FieldExposer.java",
"dns/FieldExposer.java",
"domain/FieldExposer.java",
"domain/allocate/FieldExposer.java",
"domain/fee/FieldExposer.java",
"domain/fee06/FieldExposer.java",
"domain/fee11/FieldExposer.java",
"domain/fee12/FieldExposer.java",
"domain/flags/FieldExposer.java",
"domain/launch/FieldExposer.java",
"domain/rgp/FieldExposer.java",
"domain/secdns/FieldExposer.java",
"eppcommon/FieldExposer.java",
"eppinput/FieldExposer.java",
"eppoutput/FieldExposer.java",
"export/FieldExposer.java",
"host/FieldExposer.java",
"index/FieldExposer.java",
"mark/FieldExposer.java",
"ofy/FieldExposer.java",
"poll/FieldExposer.java",
"registrar/FieldExposer.java",
"registry/FieldExposer.java",
"registry/label/FieldExposer.java",
"reporting/FieldExposer.java",
"server/FieldExposer.java",
"rde/FieldExposer.java",
"smd/FieldExposer.java",
"tmch/FieldExposer.java",
"transfer/FieldExposer.java",
"translators/FieldExposer.java",
]
# Generate FieldExposer classes to work around AppEngine's security limitations.
genrule(
name = "field_exposers",
srcs = ["generate_field_exposer.sh"],
outs = FIELD_EXPOSERS,
cmd = "for FILE in $(OUTS); do " +
"./$(location generate_field_exposer.sh) $$FILE >> $$FILE;" +
"done",
visibility = ["//visibility:private"],
)
# Generate a registry of FieldExposers.
genrule(
name = "field_exposer_registry",
srcs = ["generate_field_exposer_registry.sh"],
outs = ["FieldExposerRegistry.java"],
cmd = "./$(location generate_field_exposer_registry.sh) \"" +
", ".join(FIELD_EXPOSERS) +
");\" >\"$@\"",
visibility = ["//visibility:private"],
)
java_library(
name = "model",
@ -70,11 +11,12 @@ java_library(
"*.java",
"*/*.java",
"*/*/*.java",
]) + ["FieldExposerRegistry.java"] + FIELD_EXPOSERS,
]) + [
"FieldExposerRegistry.java",
":field_exposers",
],
visibility = ["//visibility:public"],
deps = [
":field_exposer_registry",
":field_exposers",
"//java/com/google/common/annotations",
"//java/com/google/common/base",
"//java/com/google/common/cache",
@ -100,3 +42,57 @@ java_library(
"//java/google/registry/xml",
],
)
# Generate FieldExposer classes to work around AppEngine's security limitations.
genrule(
name = "field_exposers",
srcs = ["generate_field_exposer.sh"],
outs = [
"FieldExposer.java",
"billing/FieldExposer.java",
"common/FieldExposer.java",
"contact/FieldExposer.java",
"dns/FieldExposer.java",
"domain/FieldExposer.java",
"domain/allocate/FieldExposer.java",
"domain/fee/FieldExposer.java",
"domain/fee06/FieldExposer.java",
"domain/fee11/FieldExposer.java",
"domain/fee12/FieldExposer.java",
"domain/flags/FieldExposer.java",
"domain/launch/FieldExposer.java",
"domain/rgp/FieldExposer.java",
"domain/secdns/FieldExposer.java",
"eppcommon/FieldExposer.java",
"eppinput/FieldExposer.java",
"eppoutput/FieldExposer.java",
"export/FieldExposer.java",
"host/FieldExposer.java",
"index/FieldExposer.java",
"mark/FieldExposer.java",
"ofy/FieldExposer.java",
"poll/FieldExposer.java",
"rde/FieldExposer.java",
"registrar/FieldExposer.java",
"registry/FieldExposer.java",
"registry/label/FieldExposer.java",
"reporting/FieldExposer.java",
"server/FieldExposer.java",
"smd/FieldExposer.java",
"tmch/FieldExposer.java",
"transfer/FieldExposer.java",
"translators/FieldExposer.java",
],
cmd = "for FILE in $(OUTS); do\n" +
" $(location generate_field_exposer.sh) $$FILE >> $$FILE\n" +
"done",
)
# Generate a registry of FieldExposers.
genrule(
name = "field_exposer_registry",
srcs = [":field_exposers"],
outs = ["FieldExposerRegistry.java"],
cmd = "$(location generate_field_exposer_registry.sh) $(SRCS) >$@",
tools = ["generate_field_exposer_registry.sh"],
)

View file

@ -22,10 +22,11 @@ import com.google.common.collect.ImmutableList;\n\n\
/** A registry of all {@link AbstractFieldExposer} impls. */\n\
class FieldExposerRegistry {\n\
static ImmutableList<AbstractFieldExposer> getFieldExposers() {\n\
return ImmutableList.of(\n"
return new ImmutableList.Builder<AbstractFieldExposer>()\n"
for FILE in $@; do
echo $FILE | sed \
-e 's/\(.*\).java/ new google.registry.model.\1()/' \
-e 's/\//./g'
-e 's!^.*/java/\(.*\)\.java$! .add(new \1())!' \
-e 's!/!.!g'
done
printf " .build();\n"
printf " }\n}\n"