diff --git a/java/google/registry/model/AbstractFieldExposer.java b/java/google/registry/model/AbstractFieldExposer.java deleted file mode 100644 index cfc403f6c..000000000 --- a/java/google/registry/model/AbstractFieldExposer.java +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 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. - -package google.registry.model; - -import java.lang.reflect.Field; - -/** - * A helper that exposes package-private fields in this package for reflective lookup. - * - *
By adding a subclass of this to every package in the model, we can write generic code that can
- * access fields with package private access. The other alternative is to call
- * {@link Field#setAccessible} with {@code true} on any such Field objects, but that does not work
- * reliably in Google App Engine cross-package because of its custom security manager
- * implementation.
- */
-public abstract class AbstractFieldExposer {
- public abstract Object getFieldValue(Object instance, Field field) throws IllegalAccessException;
-
- public abstract void setFieldValue(Object instance, Field field, Object value)
- throws IllegalAccessException;
-
- public abstract void setAccessible(Field field);
-}
diff --git a/java/google/registry/model/BUILD b/java/google/registry/model/BUILD
index bc53204a9..1a0941696 100644
--- a/java/google/registry/model/BUILD
+++ b/java/google/registry/model/BUILD
@@ -11,10 +11,7 @@ java_library(
"*.java",
"*/*.java",
"*/*/*.java",
- ]) + [
- "FieldExposerRegistry.java",
- ":field_exposers",
- ],
+ ]),
visibility = ["//visibility:public"],
deps = [
"//java/com/google/common/annotations",
@@ -42,57 +39,3 @@ 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"],
-)
diff --git a/java/google/registry/model/ModelUtils.java b/java/google/registry/model/ModelUtils.java
index 8bb5fa29e..9b9010620 100644
--- a/java/google/registry/model/ModelUtils.java
+++ b/java/google/registry/model/ModelUtils.java
@@ -14,7 +14,6 @@
package google.registry.model;
-import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Predicates.instanceOf;
import static com.google.common.base.Predicates.isNull;
import static com.google.common.base.Predicates.or;
@@ -27,7 +26,6 @@ import static java.util.Arrays.asList;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
-import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
@@ -36,7 +34,6 @@ import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedMap;
-import com.google.common.collect.Maps;
import com.google.common.collect.Ordering;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Id;
@@ -74,35 +71,17 @@ public class ModelUtils {
}
Map