Add DB drivers.
[lgpl/argeo-commons.git] / org.argeo.server.jcr / src / org / argeo / jackrabbit / ManagedJackrabbitRepository.java
index 2ec8693024ef98ed8562e4aec927691068e31110..85eff49e8b9653cd5af8280da3ad92d4395ed11e 100644 (file)
@@ -214,17 +214,24 @@ public class ManagedJackrabbitRepository extends JcrRepositoryWrapper implements
        }
 
        private RepositoryContext createJackrabbitRepository(RepositoryConfig repositoryConfig) throws RepositoryException {
-               long begin = System.currentTimeMillis();
-               //
-               // Actual repository creation
-               //
-               RepositoryContext repositoryContext = RepositoryContext.create(repositoryConfig);
-
-               double duration = ((double) (System.currentTimeMillis() - begin)) / 1000;
-               if (log.isTraceEnabled())
-                       log.trace("Created Jackrabbit repository in " + duration + " s, home: " + repositoryConfig.getHomeDir());
-
-               return repositoryContext;
+               ClassLoader currentContextCl = Thread.currentThread().getContextClassLoader();
+               Thread.currentThread().setContextClassLoader(ManagedJackrabbitRepository.class.getClassLoader());
+               try {
+                       long begin = System.currentTimeMillis();
+                       //
+                       // Actual repository creation
+                       //
+                       RepositoryContext repositoryContext = RepositoryContext.create(repositoryConfig);
+
+                       double duration = ((double) (System.currentTimeMillis() - begin)) / 1000;
+                       if (log.isTraceEnabled())
+                               log.trace(
+                                               "Created Jackrabbit repository in " + duration + " s, home: " + repositoryConfig.getHomeDir());
+
+                       return repositoryContext;
+               } finally {
+                       Thread.currentThread().setContextClassLoader(currentContextCl);
+               }
        }
 
        /*