{
  "$schema" : "https://json-schema.org/draft/2020-12/schema",
  "$id" : "https://voltdb.com/voltsp/schemas/processor/java",
  "title" : "Java Processor Configuration",
  "description" : "This plugin allows execution of dynamically provided Java code on streamed data.\n\nThe supplied Java source must declare exactly one of the following:\n1. A class with either:\n- public static Object process(Object input), or\n- public Object process(Object input) and a public no-arg constructor\n2. A lambda expression compatible with a functional interface that accepts one argument and returns an object.\n3. A method reference (e.g., java.lang.String::toUpperCase), though references such as this:: or super:: are not supported.\n\nAt runtime, this plugin compiles the provided Java source and invokes the process(Object input) logic\nfor each record in the stream, returning the resulting object for downstream processing.\n\nNote: The user-supplied code must be syntactically correct and compile without errors in other case VoltSP will close.\nAlso, the runtime environment must have access to any external classes referenced by the user code.\n",
  "type" : "object",
  "properties" : {
    "java" : {
      "type" : "object",
      "properties" : {
        "source" : {
          "type" : "string",
          "description" : "Java source code to compile and execute"
        },
        "sourceUri" : {
          "type" : "string",
          "format" : "uri",
          "description" : "URI to a Java source file to compile and execute"
        }
      },
      "additionalProperties" : false
    }
  },
  "required" : [ "java" ],
  "additionalProperties" : false
}
