Well, this was an easy task, it was just a matter of creating a simple
implementation of a JackrabbitRepository and using that with jetty,
everything is working fine now, here's the code in case it's useful to
anyone else (most of it was taken from BindableRepository):
public class JettyRepository implements JackrabbitRepository {
private transient Thread hook;
private TransientRepository repo;
private String configPath;
private String homePath;
public void setConfigFilePath(String configPath) {
this.configPath = configPath;
if (homePath != null) {
init();
}
}
public void setRepHomeDir(String homePath) {
this.homePath = homePath;
if (configPath != null) {
init();
}
}
public void init() {
try {
this.repo = new TransientRepository();
} catch (Exception e) {
e.printStackTrace();
}
hook = new Thread() {
public void run() {
shutdown();
}
};
Runtime.getRuntime().addShutdownHook(hook);
}
public String getDescriptor(String key) {
return repo.getDescriptor(key);
}
public String[] getDescriptorKeys() {
return repo.getDescriptorKeys();
}
public Session login(Credentials credentials, String workspaceName)
throws LoginException, NoSuchWorkspaceException, RepositoryException {
return repo.login(credentials, workspaceName);
}
public Session login(Credentials credentials) throws LoginException,
RepositoryException {
return repo.login(credentials);
}
public Session login(String workspaceName) throws LoginException,
NoSuchWorkspaceException, RepositoryException {
return repo.login(workspaceName);
}
public Session login() throws LoginException, RepositoryException {
return repo.login();
}
public void shutdown() {
repo.shutdown();
try {
Runtime.getRuntime().removeShutdownHook(hook);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Edgar Merino
Edgar Merino escribió:
Hello,
I've been trying to find out information on how to configure
jetty to register a repository throug JNDI to be used by a web
application, however I've found only one source saying it should be
done programatically
(http://www.nabble.com/migration-from-tomcat-to-jetty-td9631457.html#a9631457),
isn't there a way to accomplish this using the jetty-env.xml file?
Thanks in advance,
Edgar Merino