-
-
Notifications
You must be signed in to change notification settings - Fork 2
JCR
Ben Fortuna edited this page Mar 6, 2017
·
1 revision
Mstor now support persistent storage in a Java Content Repository (JCR).
Using the Apache Jackrabbit reference implementation, you can easily initialise a repository as follows:
- Create a jndi.properties file in your classpath containing the following:
java.naming.factory.initial=org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory java.naming.provider.url=localhost
- Register the repository:
Context context = new InitialContext(); RegistryHelper.registerRepository(context, "my/repository", "repository.xml", "/some/path/to/repo", false);
- Connect using mstor:
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "mstor");
properties.setProperty("mstor.repository.name", "my/repository");
// this is the root node in your repository to use as the default folder..
properties.setProperty("mstor.repository.path", "mail");
// create the default folder node if it doesn't exist..
properties.setProperty("mstor.repository.create", "true");
Session session = Session.getInstance(defaultProps, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password");
}
});
Store store = session.getStore();
store.connect();
// further store operations..
- Explicitly shutdown the repository when finished:
RegistryHelper.unregisterRepository(context, "my/repository");
Using Apache Jackrabbit you can also access repositories running in separate JVMs (Model 3). Connect to such a repository as follows:
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "mstor");
properties.setProperty("mstor.repository.provider.url", "rmi://myrepo.example.com:1099");
properties.setProperty("mstor.repository.name", "my/repository");
// this is the root node in your repository to use as the default folder..
properties.setProperty("mstor.repository.path", "mail");
// create the default folder node if it doesn't exist..
properties.setProperty("mstor.repository.create", "true");
Session session = Session.getInstance(defaultProps, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password");
}
});
Store store = session.getStore();
store.connect();
// further store operations..