The main functionality of the Registry Service is pretty simple and straightforward, it is described in the Registry abstract class as the following:
public abstract class Registry
{
/**
* Returns Registry node object which wraps Node of "exo:registry" type (the whole registry tree)
*/
public abstract RegistryNode getRegistry(SessionProvider sessionProvider) throws RepositoryConfigurationException,
RepositoryException;
/**
* Returns existed RegistryEntry which wraps Node of "exo:registryEntry" type
*/
public abstract RegistryEntry getEntry(SessionProvider sessionProvider, String entryPath)
throws PathNotFoundException, RepositoryException;
/**
* creates an entry in the group. In a case if the group does not exist it will be silently
* created as well
*/
public abstract void createEntry(SessionProvider sessionProvider, String groupPath, RegistryEntry entry)
throws RepositoryException;
/**
* updates an entry in the group
*/
public abstract void recreateEntry(SessionProvider sessionProvider, String groupPath, RegistryEntry entry)
throws RepositoryException;
/**
* removes entry located on entryPath (concatenation of group path / entry name)
*/
public abstract void removeEntry(SessionProvider sessionProvider, String entryPath) throws RepositoryException;
}
As you can see it looks like a simple CRUD interface for the
RegistryEntry
object which wraps registry data for some Consumer as a
Registry Entry. The Registry Service itself knows nothing about the
wrapping data, it is Consumer's responsibility to manage and use its data
in its own way.
To create an Entity Consumer, you should know how to serialize the
data to some XML structure and then create a RegistryEntry from these data
at once or populate them in a RegistryEntry object (using
the RegistryEntry(String entryName)
constructor and then obtain and fill a DOM
document).
Example of RegistryService using:
RegistryService regService = (RegistryService) container
.getComponentInstanceOfType(RegistryService.class);
RegistryEntry registryEntry = regService.getEntry(sessionProvider,
RegistryService.EXO_SERVICES + "/my-service");
Document doc = registryEntry.getDocument();
String mySetting = getElementsByTagName("tagname").item(index).getTextContent();
.....