A representation of the configuration for a {@link JcrRepository JCR Repository}.
Each repository configuration is loaded from a JSON document. A {@link #validate() valid} repository configuration requiresthat the JSON document validates using the ModeShape repository configuration JSON Schema.
Variables may appear anywhere within the document's string field values. If a variable is to be used within a non-string field, simply use a string field within the JSON document. When a RepositoryConfiguration instance is created from a JSON document, these variables will be replaced with the System properties of the same name, and any resulting fields that are expected to be non-string values will be converted into the expected field type. As expected, use {@link #validate()} to ensure theconfiguration is valid.
Variables take the form:
variable := '${' variableNames [ ':' defaultValue ] '}' variableNames := variableName [ ',' variableNames ] variableName := /* any characters except ',' and ':' and '}' defaultValue := /* any characters except
Note that
variableName is the name used to look up a System property via {@link System#getProperty(String)}. Notice that the syntax supports multiple
variables. The logic will process the
variables from let to right, until an existing System property is found. And at that point, it will stop and will not attempt to find values for the other
variables.