I assume one dictionary of which there can be multiple versions. Of course the same principle can be applied to multiple dictionaries.
First implement some mechanism for storing the default version of the dictionary, and that will be retrieved every time before calling the rules repository. I use a properties file for that, because you can change a properties file dynamically. Then have some page from which the user can pick an available version from a list. Once a version has been chosen that differs from the default, that will be the version used for that user session.
Now how to get the versions of a dictionary from a repository? That can be done using the following Java code snippet, which is based on a WebDAV repository:
// repositoryURL is a String containing the URL to your repository
// rulesDictionaryName is a String containing the name of the dictionary
RepositoryType repositoryType =
RuleRepository rulesRepository =
RepositoryContext repositoryContext = new RepositoryContext();
dictionaryVersions = rulesRepository.getMarkerNames(rulesDictionaryName);
for (int i=0; i < dictionaryVersions.size(); i++)
When the test was satisfactory, the chosen version can be stored in the properties file, making the default for every new user session.