Class AbstractProctorLoader

  • All Implemented Interfaces:
    com.google.common.base.Supplier<Proctor>, com.indeed.util.core.HasDataLoadingVariables, java.lang.Runnable
    Direct Known Subclasses:
    AbstractJsonProctorLoader, TestMatrixArtifactProctorLoader

    public abstract class AbstractProctorLoader
    extends com.indeed.util.core.DataLoadingTimerTask
    implements com.google.common.base.Supplier<Proctor>
    • Field Detail

      • VAR_EXPORTER

        protected static final com.indeed.util.varexport.VarExporter VAR_EXPORTER
      • requiredTests

        @Nullable
        protected final java.util.Map<java.lang.String,​TestSpecification> requiredTests
    • Constructor Detail

      • AbstractProctorLoader

        public AbstractProctorLoader​(@Nonnull
                                     java.lang.Class<?> cls,
                                     @Nonnull
                                     ProctorSpecification specification,
                                     @Nonnull
                                     javax.el.FunctionMapper functionMapper)
      • AbstractProctorLoader

        public AbstractProctorLoader​(@Nonnull
                                     java.lang.Class<?> cls,
                                     @Nonnull
                                     ProctorSpecification specification,
                                     @Nonnull
                                     javax.el.FunctionMapper functionMapper,
                                     @Nonnull
                                     IdentifierValidator identifierValidator)
        Parameters:
        cls - name will be used as namespace for timer
        specification - provides tests, context, dynamic filters
        functionMapper - evaluates functions in allocation rules
        identifierValidator - validates for preventing unintended activation of tests
    • Method Detail

      • getRuleVerificationContext

        protected java.util.Map<java.lang.String,​java.lang.Object> getRuleVerificationContext()
        user can override this function to provide a context for rule verification
        Returns:
        a context for rule verification
      • load

        public boolean load()
        Specified by:
        load in class com.indeed.util.core.DataLoadingTimerTask
      • getProctorResultReporter

        protected ProctorResultReporter getProctorResultReporter()
        user can override this function to provide a Proctor Result Reporter for monitoring determining Groups of proctor tests
        Returns:
        a ProctorResultReporter
      • logDynamicTests

        protected void logDynamicTests​(java.lang.String testName,
                                       java.lang.Exception exception)
      • getLoggedDynamicTests

        public java.util.Set<java.lang.String> getLoggedDynamicTests()
      • get

        @CheckForNull
        public Proctor get()
        Specified by:
        get in interface com.google.common.base.Supplier<Proctor>
      • getLastAudit

        @CheckForNull
        public Audit getLastAudit()
      • getLastLoadErrorMessage

        @CheckForNull
        public java.lang.String getLastLoadErrorMessage()
      • isLoadedDataSuccessfullyRecently

        public boolean isLoadedDataSuccessfullyRecently()
        Returns:
        true if there was a success and it came after the last error
      • addLoadReporter

        public void addLoadReporter​(@Nonnull
                                    java.util.List<ProctorLoadReporter> newReporters)
      • exportDynamicTests

        protected void exportDynamicTests​(java.util.Set<java.lang.String> dynamicTests)