Class ValidateJson

java.lang.Object
org.apache.nifi.components.AbstractConfigurableComponent
org.apache.nifi.processor.AbstractSessionFactoryProcessor
org.apache.nifi.processor.AbstractProcessor
org.apache.nifi.processors.standard.ValidateJson
All Implemented Interfaces:
org.apache.nifi.components.ConfigurableComponent, org.apache.nifi.processor.Processor

@SideEffectFree @SupportsBatching @InputRequirement(INPUT_REQUIRED) @Tags({"JSON","schema","validation"}) @WritesAttributes(@WritesAttribute(attribute="json.validation.errors",description="If the flow file is routed to the invalid relationship , this attribute will contain the error message resulting from the validation failure.")) @CapabilityDescription("Validates the contents of FlowFiles against a configurable JSON Schema. See json-schema.org for specification standards. This Processor does not support input containing multiple JSON objects, such as newline-delimited JSON. If the input FlowFile contains newline-delimited JSON, only the first line will be validated.") @SystemResourceConsideration(resource=MEMORY, description="Validating JSON requires reading FlowFile content into memory") @Restricted(restrictions=@Restriction(requiredPermission=REFERENCE_REMOTE_RESOURCES,explanation="Schema configuration can reference resources over HTTP")) public class ValidateJson extends org.apache.nifi.processor.AbstractProcessor
  • Field Details

    • ERROR_ATTRIBUTE_KEY

      protected static final String ERROR_ATTRIBUTE_KEY
      See Also:
    • SCHEMA_NAME_PROPERTY_NAME

      private static final String SCHEMA_NAME_PROPERTY_NAME
      See Also:
    • SCHEMA_CONTENT_PROPERTY_NAME

      private static final String SCHEMA_CONTENT_PROPERTY_NAME
      See Also:
    • DEFAULT_MAX_STRING_LENGTH

      private static final String DEFAULT_MAX_STRING_LENGTH
      See Also:
    • SCHEMA_ACCESS_STRATEGY

      public static final org.apache.nifi.components.PropertyDescriptor SCHEMA_ACCESS_STRATEGY
    • SCHEMA_NAME

      public static final org.apache.nifi.components.PropertyDescriptor SCHEMA_NAME
    • SCHEMA_REGISTRY

      public static final org.apache.nifi.components.PropertyDescriptor SCHEMA_REGISTRY
    • SCHEMA_CONTENT

      public static final org.apache.nifi.components.PropertyDescriptor SCHEMA_CONTENT
    • MAX_STRING_LENGTH

      public static final org.apache.nifi.components.PropertyDescriptor MAX_STRING_LENGTH
    • SCHEMA_VERSION

      public static final org.apache.nifi.components.PropertyDescriptor SCHEMA_VERSION
    • PROPERTY_DESCRIPTORS

      private static final List<org.apache.nifi.components.PropertyDescriptor> PROPERTY_DESCRIPTORS
    • REL_VALID

      public static final org.apache.nifi.processor.Relationship REL_VALID
    • REL_INVALID

      public static final org.apache.nifi.processor.Relationship REL_INVALID
    • REL_FAILURE

      public static final org.apache.nifi.processor.Relationship REL_FAILURE
    • RELATIONSHIPS

      private static final Set<org.apache.nifi.processor.Relationship> RELATIONSHIPS
    • mapper

      private com.fasterxml.jackson.databind.ObjectMapper mapper
    • schemaFactories

      private final ConcurrentMap<SchemaVersion,com.networknt.schema.JsonSchemaFactory> schemaFactories
    • schema

      private volatile com.networknt.schema.JsonSchema schema
    • jsonSchemaRegistry

      private volatile JsonSchemaRegistry jsonSchemaRegistry
  • Constructor Details

    • ValidateJson

      public ValidateJson()
  • Method Details

    • migrateProperties

      public void migrateProperties(PropertyConfiguration config)
    • getRelationships

      public Set<org.apache.nifi.processor.Relationship> getRelationships()
      Specified by:
      getRelationships in interface org.apache.nifi.processor.Processor
      Overrides:
      getRelationships in class org.apache.nifi.processor.AbstractSessionFactoryProcessor
    • getSupportedPropertyDescriptors

      public final List<org.apache.nifi.components.PropertyDescriptor> getSupportedPropertyDescriptors()
      Overrides:
      getSupportedPropertyDescriptors in class org.apache.nifi.components.AbstractConfigurableComponent
    • customValidate

      protected Collection<org.apache.nifi.components.ValidationResult> customValidate(org.apache.nifi.components.ValidationContext validationContext)
      Overrides:
      customValidate in class org.apache.nifi.components.AbstractConfigurableComponent
    • onScheduled

      @OnScheduled public void onScheduled(org.apache.nifi.processor.ProcessContext context) throws IOException
      Throws:
      IOException
    • onTrigger

      public void onTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSession session) throws org.apache.nifi.processor.exception.ProcessException
      Specified by:
      onTrigger in class org.apache.nifi.processor.AbstractProcessor
      Throws:
      org.apache.nifi.processor.exception.ProcessException
    • getPropertyValidateMessage

      private String getPropertyValidateMessage(ValidateJson.JsonSchemaStrategy schemaAccessStrategy, org.apache.nifi.components.PropertyDescriptor property)
    • getSchemaAccessStrategy

      private ValidateJson.JsonSchemaStrategy getSchemaAccessStrategy(org.apache.nifi.context.PropertyContext context)