Chapter 12. In-Memory Connector

The in-memory repository connector is a simple connector that creates a transient, in-memory repository.
This repository is used as a very simple in-memory cache or as a standalone transient repository.
This connector works well for a readable and writable repository source with small to moderate sized
content that need not be permanently saved.

Optional property that, if used, defines the default for how long this information provided by this source may to be
cached by other, higher-level components. The default value of null implies that this source does not define a specific
duration for caching information provided by this repository source.

defaultWorkspaceName

Optional property that is initialized to an empty string and which defines the name for the workspace that will be used by default
if none is specified.

jndiName

Optional property that, if used, specifies the name in JNDI where an InMemoryRepository instance can be found.
This is an advanced property that is infrequently used.

Optional property that, if used, defines the UUID of the root node in the in-memory repository. If not used,
then a new UUID is generated.

retryLimit

Optional property that, if used, defines the number of times that any single operation on a RepositoryConnection to this source should be retried
following a communication failure. The default value is '0'.

Another way to configure the in-memory connector is to create JcrConfiguration instance and load an XML configuration file that contains a repository source that
uses the InMemoryRepositorySource class.
For example a file named configRepository.xml can be created with these contents:

<?xml version="1.0" encoding="UTF-8"?><configurationxmlns:dna="http://www.jboss.org/dna/1.0"xmlns:jcr="http://www.jcp.org/jcr/1.0"><!-- Define the sources for the content. These sources are directly accessible using the DNA-specific Graph API. In fact, this is how the DNA JCR implementation works. You can think of these as being similar to JDBC DataSource objects, except that they expose graph content via the Graph API instead of records via SQL or JDBC. --><dna:sourcesjcr:primaryType="nt:unstructured"><!-- The 'IMR Store' repository is an in-memory source with a single default workspace (though others could be created, too). --><dna:sourcejcr:name="IMR Store"dna:classname="org.jboss.dna.graph.connector.inmemory.InMemoryRepositorySource"dna:description="The repository for our content"dna:defaultWorkspaceName="default"/></dna:sources><!-- MIME type detectors and JCR repositories would be defined below --></configuration>