Index: contrib/jcr-server/webapp/src/java/org/apache/jackrabbit/j2ee/SimpleWebdavServlet.java
===================================================================
--- contrib/jcr-server/webapp/src/java/org/apache/jackrabbit/j2ee/SimpleWebdavServlet.java (revision 189646)
+++ contrib/jcr-server/webapp/src/java/org/apache/jackrabbit/j2ee/SimpleWebdavServlet.java (working copy)
@@ -145,11 +145,6 @@
}
log.info(INIT_PARAM_RESOURCE_PATH_PREFIX + " = '" + resourcePathPrefix + "'");
- // init repository
- repository = RepositoryAccessServlet.getRepository();
- if (repository == null) {
- throw new ServletException("Repository could not be retrieved. Check config of 'RepositoryAccessServlet'.");
- }
try {
String chain = getInitParameter(INIT_PARAM_CHAIN_CATALOG);
URL chainUrl = getServletContext().getResource(chain);
@@ -285,6 +280,13 @@
}
/**
+ * Sets the DavLocatorFactory.
+ */
+ public void setLocatorFactory(DavLocatorFactory factory) {
+ locatorFactory = factory;
+ }
+
+ /**
* Returns the LockManager. If no lock manager has
* been set or created a new instance of {@link SimpleLockManager} is
* returned.
@@ -299,6 +301,13 @@
}
/**
+ * Sets the LockManager.
+ */
+ public void setLockManager(LockManager manager) {
+ lockManager = manager;
+ }
+
+ /**
* Returns the DavResourceFactory. If no request factory has
* been set or created a new instance of {@link ResourceFactoryImpl} is
* returned.
@@ -313,6 +322,13 @@
}
/**
+ * Sets the DavResourceFactory.
+ */
+ public void setResourceFactory(DavResourceFactory factory) {
+ resourceFactory = factory;
+ }
+
+ /**
* Returns the header value retrieved from the {@link #INIT_PARAM_AUTHENTICATE_HEADER}
* init parameter. If the parameter is missing, the value defaults to
* {@link #DEFAULT_AUTHENTICATE_HEADER}.
@@ -325,7 +341,10 @@
}
/**
- * Returns the DavSessionProvider.
+ * Returns the SessionProvider. If no session
+ * provider has been set or created a new instance of
+ * {@link SessionProviderImpl} that extracts credentials from the
+ * request's Authorization header is returned.
*
* @return the session provider
*/
@@ -342,16 +361,54 @@
}
/**
- * Returns the DavSessionProvider.
+ * Sets the SessionProvider.
+ */
+ public void setRepositorySessionProvider(SessionProvider provider) {
+ sessionProvider = provider;
+ }
+
+ /**
+ * Returns the DavSessionProvider. If no session
+ * provider has been set or created a new instance of
+ * DavSessionProviderImpl is returned.
*
* @return the session provider
*/
public synchronized DavSessionProvider getSessionProvider() {
if (davSessionProvider == null) {
davSessionProvider =
- new DavSessionProviderImpl(repository, getRepositorySessionProvider());
+ new DavSessionProviderImpl(getRepository(),
+ getRepositorySessionProvider());
}
return davSessionProvider;
}
+ /**
+ * Sets the DavSessionProvider.
+ */
+ public void setSessionProvider(DavSessionProvider provider) {
+ davSessionProvider = provider;
+ }
+
+ /**
+ * Returns the Repository. If no repository has been
+ * set or created the repository initialized by
+ * RepositoryAccessServlet is returned.
+ */
+ public Repository getRepository() {
+ if (repository == null) {
+ repository = RepositoryAccessServlet.getRepository();
+ if (repository == null) {
+ throw new IllegalStateException("Repository could not be retrieved. Check config of 'RepositoryAccessServlet'.");
+ }
+ }
+ return repository;
+ }
+
+ /**
+ * Sets the Repository.
+ */
+ public void setRepository(Repository repository) {
+ this.repository = repository;
+ }
}