]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/JackrabbitNode.java
Session authentication working
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / JackrabbitNode.java
index e31e8af7d043b86be05630747f753c5b261b154c..8ef16c44ffc6d88a68ce261cd90e4176e6830ae5 100644 (file)
@@ -20,10 +20,12 @@ import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.cache.CacheManager;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.core.config.RepositoryConfigurationParser;
+import org.apache.jackrabbit.stats.RepositoryStatisticsImpl;
 import org.argeo.ArgeoException;
 import org.argeo.cms.CmsException;
 import org.argeo.jackrabbit.JackrabbitWrapper;
 import org.argeo.jcr.ArgeoJcrConstants;
+import org.argeo.jcr.DefaultRepositoryRegister;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.xml.sax.InputSource;
@@ -33,7 +35,6 @@ class JackrabbitNode extends JackrabbitWrapper implements KernelConstants,
                ArgeoJcrConstants {
        private static Log log = LogFactory.getLog(JackrabbitNode.class);
 
-       @SuppressWarnings("unused")
        private RepositoryContext repositoryContext;
 
        private ServiceRegistration<Repository> repositoryReg;
@@ -52,11 +53,12 @@ class JackrabbitNode extends JackrabbitWrapper implements KernelConstants,
                }
        }
 
-       public void publish() {
+       void publish(DefaultRepositoryRegister repositoryRegister) {
                Hashtable<String, String> regProps = new Hashtable<String, String>();
                regProps.put(JCR_REPOSITORY_ALIAS, ALIAS_NODE);
                repositoryReg = getBundleContext().registerService(Repository.class,
                                this, regProps);
+               repositoryRegister.register(this, regProps);
        }
 
        public void destroy() {
@@ -64,9 +66,8 @@ class JackrabbitNode extends JackrabbitWrapper implements KernelConstants,
                ((RepositoryImpl) getRepository()).shutdown();
        }
 
-       Dictionary<String, ?> getDefaults() {
-               return KernelUtils.asDictionary(getClass().getClassLoader(),
-                               "/org/argeo/cms/internal/kernel/jackrabbit-node.properties");
+       RepositoryStatisticsImpl getRepositoryStatistics() {
+               return repositoryContext.getRepositoryStatistics();
        }
 
        private RepositoryConfig getConfiguration(JackrabbitNodeType type,
@@ -117,6 +118,12 @@ class JackrabbitNode extends JackrabbitWrapper implements KernelConstants,
                // common
                setProp(defaults, REPO_DEFAULT_WORKSPACE, "main");
                setProp(defaults, REPO_MAX_POOL_SIZE, "10");
+               // Jackrabbit defaults
+               setProp(defaults, REPO_BUNDLE_CACHE_MB, "8");
+               // See http://wiki.apache.org/jackrabbit/Search
+               setProp(defaults, REPO_EXTRACTOR_POOL_SIZE, "0");
+               setProp(defaults, REPO_SEARCH_CACHE_SIZE, "1000");
+               setProp(defaults, REPO_MAX_VOLATILE_INDEX_SIZE, "1048576");
 
                // specific
                String dburl;
@@ -160,7 +167,7 @@ class JackrabbitNode extends JackrabbitWrapper implements KernelConstants,
                RepositoryImpl repository = repositoryContext.getRepository();
 
                // cache
-               String maxCacheMbStr = prop(KernelConstants.REPO_MAX_CACHE_MB, null);
+               String maxCacheMbStr = prop(REPO_MAX_CACHE_MB, null);
                if (maxCacheMbStr != null) {
                        Integer maxCacheMB = Integer.parseInt(maxCacheMbStr);
                        CacheManager cacheManager = repository.getCacheManager();
@@ -177,14 +184,11 @@ class JackrabbitNode extends JackrabbitWrapper implements KernelConstants,
                        RepositoryConfig repositoryConfig) throws RepositoryException {
                File homeDirectory = null;
                long begin = System.currentTimeMillis();
-               // RepositoryImpl repository;
                //
                // Actual repository creation
                //
                RepositoryContext repositoryContext = RepositoryContext
                                .create(repositoryConfig);
-               // repository = repositoryContext.getRepository();
-               // repository = RepositoryImpl.create(repositoryConfig);
 
                double duration = ((double) (System.currentTimeMillis() - begin)) / 1000;
                if (log.isTraceEnabled())