1 package org
.argeo
.jackrabbit
;
3 import java
.util
.HashMap
;
6 import javax
.jcr
.Repository
;
7 import javax
.jcr
.RepositoryException
;
8 import javax
.jcr
.RepositoryFactory
;
10 import org
.apache
.commons
.logging
.Log
;
11 import org
.apache
.commons
.logging
.LogFactory
;
12 import org
.apache
.jackrabbit
.commons
.JcrUtils
;
13 import org
.apache
.jackrabbit
.jcr2dav
.Jcr2davRepositoryFactory
;
14 import org
.argeo
.ArgeoException
;
15 import org
.argeo
.jcr
.ArgeoJcrConstants
;
16 import org
.argeo
.jcr
.DefaultRepositoryFactory
;
18 public class JackrabbitRepositoryFactory
extends DefaultRepositoryFactory
19 implements RepositoryFactory
, ArgeoJcrConstants
{
20 private final static Log log
= LogFactory
21 .getLog(JackrabbitRepositoryFactory
.class);
23 @SuppressWarnings("rawtypes")
24 public Repository
getRepository(Map parameters
) throws RepositoryException
{
25 Repository repository
= super.getRepository(parameters
);
26 if (repository
!= null)
29 if (parameters
.containsKey(JCR_REPOSITORY_URI
)) {
30 String uri
= parameters
.get(JCR_REPOSITORY_URI
).toString();
31 Map
<String
, String
> params
= new HashMap
<String
, String
>();
33 params
.put(JcrUtils
.REPOSITORY_URI
, uri
);
34 repository
= new Jcr2davRepositoryFactory().getRepository(params
);
35 if (repository
== null)
36 throw new ArgeoException("Remote Davex repository " + uri
38 log
.info("Initialized remote Jackrabbit repository " + repository
39 + " from uri " + uri
);