Example usage for org.apache.lucene.search BooleanQuery setMaxClauseCount

List of usage examples for org.apache.lucene.search BooleanQuery setMaxClauseCount

Introduction

In this page you can find the example usage for org.apache.lucene.search BooleanQuery setMaxClauseCount.

Prototype

public static void setMaxClauseCount(int maxClauseCount) 

Source Link

Document

Set the maximum number of clauses permitted per BooleanQuery.

Usage

From source file:com.jaeksoft.searchlib.ClientCatalog.java

License:Open Source License

public static void setMaxClauseCount(int value) {
    BooleanQuery.setMaxClauseCount(value);
}

From source file:com.jaeksoft.searchlib.ClientFactory.java

License:Open Source License

@Override
public void hasBeenSet(PropertyItem<?> prop) throws IOException {
    if (prop == booleanQueryMaxClauseCount)
        BooleanQuery.setMaxClauseCount(booleanQueryMaxClauseCount.getValue());
    else if (prop == logFullTrace)
        Logging.setShowStackTrace(logFullTrace.isValue());
    advancedProperties.save();//from w w w .j  a  v  a2  s.  c  o m
}

From source file:com.liferay.portal.search.lucene.LuceneIndexSearcherImpl.java

License:Open Source License

public Hits search(String searchEngineId, long companyId, Query query, Sort[] sorts, int start, int end)
        throws SearchException {

    if (_log.isDebugEnabled()) {
        _log.debug("Query " + query);
    }//from  w  w  w.  j  a v a2  s.  co m

    Hits hits = null;

    org.apache.lucene.search.IndexSearcher indexSearcher = null;
    org.apache.lucene.search.Sort luceneSort = null;

    try {
        indexSearcher = LuceneHelperUtil.getSearcher(companyId, true);

        if (sorts != null) {
            SortField[] sortFields = new SortField[sorts.length];

            for (int i = 0; i < sorts.length; i++) {
                Sort sort = sorts[i];

                sortFields[i] = new SortField(sort.getFieldName(), sort.getType(), sort.isReverse());
            }

            luceneSort = new org.apache.lucene.search.Sort(sortFields);
        } else {
            luceneSort = new org.apache.lucene.search.Sort();
        }

        long startTime = System.currentTimeMillis();

        TopFieldDocs topFieldDocs = indexSearcher.search(
                (org.apache.lucene.search.Query) QueryTranslatorUtil.translate(query), null,
                PropsValues.INDEX_SEARCH_LIMIT, luceneSort);

        long endTime = System.currentTimeMillis();

        float searchTime = (float) (endTime - startTime) / Time.SECOND;

        hits = toHits(indexSearcher, new HitDocs(topFieldDocs), query, startTime, searchTime, start, end);
    } catch (BooleanQuery.TooManyClauses tmc) {
        int maxClauseCount = BooleanQuery.getMaxClauseCount();

        BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);

        try {
            long startTime = System.currentTimeMillis();

            TopFieldDocs topFieldDocs = indexSearcher.search(
                    (org.apache.lucene.search.Query) QueryTranslatorUtil.translate(query), null,
                    PropsValues.INDEX_SEARCH_LIMIT, luceneSort);

            long endTime = System.currentTimeMillis();

            float searchTime = (float) (endTime - startTime) / Time.SECOND;

            hits = toHits(indexSearcher, new HitDocs(topFieldDocs), query, startTime, searchTime, start, end);
        } catch (Exception e) {
            throw new SearchException(e);
        } finally {
            BooleanQuery.setMaxClauseCount(maxClauseCount);
        }
    } catch (ParseException pe) {
        _log.error("Query " + query, pe);

        return new HitsImpl();
    } catch (Exception e) {
        throw new SearchException(e);
    } finally {
        if (indexSearcher != null) {
            try {
                indexSearcher.close();
            } catch (IOException ioe) {
                _log.error(ioe, ioe);
            }
        }
    }

    if (_log.isDebugEnabled()) {
        _log.debug("Search found " + hits.getLength() + " results in " + hits.getSearchTime() + "ms");
    }

    return hits;
}

From source file:com.liferay.portal.search.lucene.LuceneIndexSearcherImpl.java

License:Open Source License

public Hits search(SearchContext searchContext, Query query) throws SearchException {

    if (_log.isDebugEnabled()) {
        _log.debug("Query " + query);
    }/*w  ww .  j av  a 2s . c o  m*/

    Hits hits = null;

    org.apache.lucene.search.IndexSearcher indexSearcher = null;
    Map<String, Facet> facets = null;
    BrowseRequest browseRequest = null;
    Browsable browsable = null;

    try {
        indexSearcher = LuceneHelperUtil.getSearcher(searchContext.getCompanyId(), true);

        List<FacetHandler<?>> facetHandlers = new ArrayList<FacetHandler<?>>();

        facets = searchContext.getFacets();

        for (Facet facet : facets.values()) {
            if (facet.isStatic()) {
                continue;
            }

            FacetConfiguration facetConfiguration = facet.getFacetConfiguration();

            if (facet instanceof MultiValueFacet) {
                MultiValueFacetHandler multiValueFacetHandler = new MultiValueFacetHandler(
                        facetConfiguration.getFieldName(), facetConfiguration.getFieldName());

                JSONObject dataJSONObject = facetConfiguration.getData();

                if (dataJSONObject.has("maxTerms")) {
                    multiValueFacetHandler.setMaxItems(dataJSONObject.getInt("maxTerms"));
                }

                facetHandlers.add(multiValueFacetHandler);
            } else if (facet instanceof RangeFacet) {
                List<String> ranges = new ArrayList<String>();

                JSONObject dataJSONObject = facetConfiguration.getData();

                JSONArray rangesJSONArray = dataJSONObject.getJSONArray("ranges");

                if (rangesJSONArray != null) {
                    for (int i = 0; i < rangesJSONArray.length(); i++) {
                        JSONObject rangeJSONObject = rangesJSONArray.getJSONObject(i);

                        ranges.add(rangeJSONObject.getString("range"));
                    }
                }

                RangeFacetHandler rangeFacetHandler = new RangeFacetHandler(facetConfiguration.getFieldName(),
                        facetConfiguration.getFieldName(), ranges);

                rangeFacetHandler.setTermCountSize(TermCountSize.large);

                facetHandlers.add(rangeFacetHandler);
            } else if (facet instanceof SimpleFacet) {
                SimpleFacetHandler simpleFacetHandler = new SimpleFacetHandler(
                        facetConfiguration.getFieldName(), facetConfiguration.getFieldName());

                facetHandlers.add(simpleFacetHandler);
            }
        }

        BoboIndexReader boboIndexReader = BoboIndexReader.getInstance(indexSearcher.getIndexReader(),
                facetHandlers);

        SortField[] sortFields = new SortField[0];

        Sort[] sorts = searchContext.getSorts();

        if (sorts != null) {
            sortFields = new SortField[sorts.length];

            for (int i = 0; i < sorts.length; i++) {
                Sort sort = sorts[i];

                sortFields[i] = new SortField(sort.getFieldName(), sort.getType(), sort.isReverse());
            }
        }

        browseRequest = new BrowseRequest();

        for (Facet facet : facets.values()) {
            if (facet.isStatic()) {
                continue;
            }

            FacetConfiguration facetConfiguration = facet.getFacetConfiguration();

            FacetSpec facetSpec = new FacetSpec();

            facetSpec.setOrderBy(FacetSortSpec.valueOf(facetConfiguration.getOrder()));

            browseRequest.setFacetSpec(facet.getFieldName(), facetSpec);
        }

        browseRequest.setCount(PropsValues.INDEX_SEARCH_LIMIT);
        browseRequest.setOffset(0);
        browseRequest.setQuery((org.apache.lucene.search.Query) QueryTranslatorUtil.translate(query));
        browseRequest.setSort(sortFields);

        browsable = new BoboBrowser(boboIndexReader);

        long startTime = System.currentTimeMillis();

        BrowseResult browseResult = browsable.browse(browseRequest);

        BrowseHit[] browseHits = browseResult.getHits();

        long endTime = System.currentTimeMillis();

        float searchTime = (float) (endTime - startTime) / Time.SECOND;

        hits = toHits(indexSearcher, new HitDocs(browseHits), query, startTime, searchTime,
                searchContext.getStart(), searchContext.getEnd());

        Map<String, FacetAccessible> facetMap = browseResult.getFacetMap();

        for (Map.Entry<String, FacetAccessible> entry : facetMap.entrySet()) {

            Facet facet = facets.get(entry.getKey());

            FacetAccessible facetAccessible = entry.getValue();

            FacetCollector facetCollector = new BoboFacetCollector(entry.getKey(), facetAccessible);

            facet.setFacetCollector(facetCollector);
        }
    } catch (BooleanQuery.TooManyClauses tmc) {
        int maxClauseCount = BooleanQuery.getMaxClauseCount();

        BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);

        try {
            long startTime = System.currentTimeMillis();

            BrowseResult result = browsable.browse(browseRequest);

            BrowseHit[] browseHits = result.getHits();

            long endTime = System.currentTimeMillis();

            float searchTime = (float) (endTime - startTime) / Time.SECOND;

            hits = toHits(indexSearcher, new HitDocs(browseHits), query, startTime, searchTime,
                    searchContext.getStart(), searchContext.getEnd());

            Map<String, FacetAccessible> facetMap = result.getFacetMap();

            for (Map.Entry<String, FacetAccessible> entry : facetMap.entrySet()) {

                Facet facet = facets.get(entry.getKey());

                FacetAccessible facetAccessible = entry.getValue();

                FacetCollector facetCollector = new BoboFacetCollector(entry.getKey(), facetAccessible);

                facet.setFacetCollector(facetCollector);
            }
        } catch (Exception e) {
            throw new SearchException(e);
        } finally {
            BooleanQuery.setMaxClauseCount(maxClauseCount);
        }
    } catch (ParseException pe) {
        _log.error("Query " + query, pe);

        return new HitsImpl();
    } catch (Exception e) {
        throw new SearchException(e);
    } finally {
        if (browsable != null) {
            try {
                browsable.close();
            } catch (IOException ioe) {
                _log.error(ioe, ioe);
            }
        }

        if (indexSearcher != null) {
            try {
                indexSearcher.close();
            } catch (IOException ioe) {
                _log.error(ioe, ioe);
            }
        }
    }

    if (_log.isDebugEnabled()) {
        _log.debug("Search found " + hits.getLength() + " results in " + hits.getSearchTime() + "ms");
    }

    return hits;
}

From source file:com.liferay.portal.search.lucene33.LuceneIndexSearcherImpl.java

License:Open Source License

public Hits search(long companyId, Query query, Sort[] sorts, int start, int end) throws SearchException {

    if (_log.isDebugEnabled()) {
        _log.debug("Query " + query);
    }//from   ww  w.j  a  va2s . c o m

    Hits hits = null;

    org.apache.lucene.search.IndexSearcher searcher = null;
    org.apache.lucene.search.Sort luceneSort = null;

    try {
        searcher = LuceneHelperUtil.getSearcher(companyId, true);

        if (sorts != null) {
            searcher.setDefaultFieldSortScoring(true, true);

            SortField[] sortFields = new SortField[sorts.length];

            for (int i = 0; i < sorts.length; i++) {
                Sort sort = sorts[i];

                sortFields[i] = new SortField(sort.getFieldName(), sort.getType(), sort.isReverse());
            }

            luceneSort = new org.apache.lucene.search.Sort(sortFields);
        }

        long startTime = System.currentTimeMillis();

        org.apache.lucene.search.TopDocs luceneHits;

        if (luceneSort != null) {
            luceneHits = searcher.search(QueryTranslator.translate(query), Integer.MAX_VALUE, luceneSort);
        } else {
            luceneHits = searcher.search(QueryTranslator.translate(query), Integer.MAX_VALUE);
        }

        long endTime = System.currentTimeMillis();

        float searchTime = (float) (endTime - startTime) / Time.SECOND;

        hits = subset(searcher, luceneHits, query, startTime, searchTime, start, end);
    } catch (BooleanQuery.TooManyClauses tmc) {
        int maxClauseCount = BooleanQuery.getMaxClauseCount();

        BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);

        try {
            long startTime = System.currentTimeMillis();

            org.apache.lucene.search.TopDocs luceneHits = searcher.search(QueryTranslator.translate(query),
                    Integer.MAX_VALUE);

            long endTime = System.currentTimeMillis();

            float searchTime = (float) (endTime - startTime) / Time.SECOND;

            hits = subset(searcher, luceneHits, query, startTime, searchTime, start, end);
        } catch (Exception e) {
            throw new SearchException(e);
        } finally {
            BooleanQuery.setMaxClauseCount(maxClauseCount);
        }
    } catch (ParseException pe) {
        _log.error("Query: " + query, pe);

        return new HitsImpl();
    } catch (Exception e) {
        throw new SearchException(e);
    } finally {
        try {
            if (searcher != null) {
                searcher.close();
            }
        } catch (IOException ioe) {
            throw new SearchException(ioe);
        }
    }

    if (_log.isDebugEnabled()) {
        _log.debug("Search found " + hits.getLength() + " results in " + hits.getSearchTime() + "ms");
    }

    return hits;
}

From source file:com.nearinfinity.blur.manager.IndexManager.java

License:Apache License

public void setMaxClauseCount(int maxClauseCount) {
    BooleanQuery.setMaxClauseCount(maxClauseCount);
}

From source file:com.netcrest.pado.server.PadoServerManager.java

License:Open Source License

/**
 * Invokes the initialization bean if configured in pado.xml. Also,
 * initializes properties defined in pado.properties.
 *///from w  w  w  .jav a  2 s.  c  om
@SuppressWarnings("rawtypes")
public void __initStartup() {
    com.netcrest.pado.internal.config.dtd.generated.Startup startup = padoConfig.getStartup();
    if (startup != null) {
        com.netcrest.pado.internal.config.dtd.generated.Bean bean = startup.getBean();
        if (bean != null) {
            String className = bean.getClassName();
            if (className != null) {
                try {
                    Class clazz = Class.forName(className);
                    Object obj = clazz.newInstance();
                    if (obj instanceof IBeanInitializable) {
                        List<com.netcrest.pado.internal.config.dtd.generated.Property> list = bean
                                .getProperty();
                        Properties properties = new Properties();
                        if (list != null) {
                            for (com.netcrest.pado.internal.config.dtd.generated.Property property : list) {
                                properties.setProperty(property.getKey(), property.getValue());
                            }
                        }
                        ((IBeanInitializable) obj).init(properties);
                    }
                } catch (ClassNotFoundException ex) {
                    Logger.severe("Startup bean class not found.", ex);
                } catch (InstantiationException ex) {
                    Logger.severe("Startup bean instantiation failed.", ex);
                } catch (IllegalAccessException ex) {
                    Logger.severe("Startup bean illegal access", ex);
                }
            }
        }
    }

    try {
        String val = PadoUtil.getProperty(Constants.PROP_LUCENE_MAX_CLAUSE_COUNT);
        if (val != null) {
            int maxClauseCount = Integer.parseInt(val);
            BooleanQuery.setMaxClauseCount(maxClauseCount);
        }
    } catch (Exception ex) {
        Logger.warning("Invalid lucene.maxCluaseCount", ex);
    }

    // Enable temporal data - Even though temporal data is already
    // handled, due to GemFire persistent regions that fail to provide
    // all events to temporal cache listener, let's re-enable temporal
    // data as a safe measure.
    boolean buildLucene = padoConfig.getPathList().getBuildLuceneIndex() != null
            && padoConfig.getPathList().getBuildLuceneIndex().equalsIgnoreCase("true");
    TemporalManager.setEnabledAll(true, buildLucene, false); // block till
    // done
}

From source file:com.openkm.core.Config.java

License:Open Source License

/**
 * Reload OpenKM configuration from database
 *//* w ww  .  j  av  a 2  s .  co m*/
public static void reload(ServletContext sc, Properties cfg) {
    try {
        // Experimental features
        MOBILE_THEME = ConfigDAO.getSelectedOption(PROPERTY_MOBILE_THEME, "a|*b|c|d");
        values.put(PROPERTY_MOBILE_THEME, MOBILE_THEME);
        PLUGIN_DEBUG = ConfigDAO.getBoolean(PROPERTY_PLUGIN_DEBUG, PLUGIN_DEBUG);
        values.put(PROPERTY_PLUGIN_DEBUG, Boolean.toString(PLUGIN_DEBUG));
        MANAGED_TEXT_EXTRACTION = ConfigDAO.getBoolean(PROPERTY_MANAGED_TEXT_EXTRACTION,
                MANAGED_TEXT_EXTRACTION);
        values.put(PROPERTY_MANAGED_TEXT_EXTRACTION, Boolean.toString(MANAGED_TEXT_EXTRACTION));
        MANAGED_TEXT_EXTRACTION_BATCH = ConfigDAO.getInteger(PROPERTY_MANAGED_TEXT_EXTRACTION_BATCH,
                MANAGED_TEXT_EXTRACTION_BATCH);
        values.put(PROPERTY_MANAGED_TEXT_EXTRACTION_BATCH, Integer.toString(MANAGED_TEXT_EXTRACTION_BATCH));
        MANAGED_TEXT_EXTRACTION_POOL_SIZE = ConfigDAO.getInteger(PROPERTY_MANAGED_TEXT_EXTRACTION_POOL_SIZE,
                MANAGED_TEXT_EXTRACTION_POOL_SIZE);
        values.put(PROPERTY_MANAGED_TEXT_EXTRACTION_POOL_SIZE,
                Integer.toString(MANAGED_TEXT_EXTRACTION_POOL_SIZE));
        MANAGED_TEXT_EXTRACTION_POOL_THREADS = ConfigDAO.getInteger(
                PROPERTY_MANAGED_TEXT_EXTRACTION_POOL_THREADS, MANAGED_TEXT_EXTRACTION_POOL_THREADS);
        values.put(PROPERTY_MANAGED_TEXT_EXTRACTION_POOL_THREADS,
                Integer.toString(MANAGED_TEXT_EXTRACTION_POOL_THREADS));
        MANAGED_TEXT_EXTRACTION_POOL_TIMEOUT = ConfigDAO.getInteger(
                PROPERTY_MANAGED_TEXT_EXTRACTION_POOL_TIMEOUT, MANAGED_TEXT_EXTRACTION_POOL_TIMEOUT);
        values.put(PROPERTY_MANAGED_TEXT_EXTRACTION_POOL_TIMEOUT,
                Integer.toString(MANAGED_TEXT_EXTRACTION_POOL_TIMEOUT));
        MANAGED_TEXT_EXTRACTION_CONCURRENT = ConfigDAO.getBoolean(PROPERTY_MANAGED_TEXT_EXTRACTION_CONCURRENT,
                MANAGED_TEXT_EXTRACTION_CONCURRENT);
        values.put(PROPERTY_MANAGED_TEXT_EXTRACTION_CONCURRENT,
                Boolean.toString(MANAGED_TEXT_EXTRACTION_CONCURRENT));

        REPOSITORY_CONTENT_CHECKSUM = ConfigDAO.getBoolean(PROPERTY_REPOSITORY_CONTENT_CHECKSUM,
                REPOSITORY_CONTENT_CHECKSUM);
        values.put(PROPERTY_REPOSITORY_CONTENT_CHECKSUM, Boolean.toString(REPOSITORY_CONTENT_CHECKSUM));
        REPOSITORY_PURGATORY_HOME = ConfigDAO.getString(PROPERTY_REPOSITORY_PURGATORY_HOME,
                REPOSITORY_PURGATORY_HOME);
        values.put(PROPERTY_REPOSITORY_PURGATORY_HOME, REPOSITORY_PURGATORY_HOME);
        REPOSITORY_STATS_OPTIMIZATION = ConfigDAO.getBoolean(PROPERTY_REPOSITORY_STATS_OPTIMIZATION,
                REPOSITORY_STATS_OPTIMIZATION);
        values.put(PROPERTY_REPOSITORY_STATS_OPTIMIZATION, Boolean.toString(REPOSITORY_STATS_OPTIMIZATION));
        AMAZON_ACCESS_KEY = ConfigDAO.getString(PROPERTY_AMAZON_ACCESS_KEY,
                cfg.getProperty(PROPERTY_AMAZON_ACCESS_KEY, AMAZON_ACCESS_KEY));
        values.put(PROPERTY_AMAZON_ACCESS_KEY, AMAZON_ACCESS_KEY);
        AMAZON_SECRET_KEY = ConfigDAO.getString(PROPERTY_AMAZON_SECRET_KEY,
                cfg.getProperty(PROPERTY_AMAZON_SECRET_KEY, AMAZON_SECRET_KEY));
        values.put(PROPERTY_AMAZON_SECRET_KEY, AMAZON_SECRET_KEY);
        NATIVE_SQL_OPTIMIZATIONS = ConfigDAO.getBoolean(PROPERTY_NATIVE_SQL_OPTIMIZATIONS,
                NATIVE_SQL_OPTIMIZATIONS);
        values.put(PROPERTY_NATIVE_SQL_OPTIMIZATIONS, Boolean.toString(NATIVE_SQL_OPTIMIZATIONS));
        USER_PASSWORD_RESET = ConfigDAO.getBoolean(PROPERTY_USER_PASSWORD_RESET,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_USER_PASSWORD_RESET, "off")));
        values.put(PROPERTY_USER_PASSWORD_RESET, Boolean.toString(USER_PASSWORD_RESET));
        KEEP_SESSION_ALIVE_INTERVAL = ConfigDAO.getInteger(PROPERTY_KEEP_SESSION_ALIVE_INTERVAL,
                KEEP_SESSION_ALIVE_INTERVAL);
        values.put(PROPERTY_KEEP_SESSION_ALIVE_INTERVAL, Integer.toString(KEEP_SESSION_ALIVE_INTERVAL));
        ACTIVITY_LOG_ACTIONS = ConfigDAO.getList(PROPERTY_ACTIVITY_LOG_ACTIONS, DEFAULT_ACTIVITY_LOG_ACTIONS);
        values.put(PROPERTY_ACTIVITY_LOG_ACTIONS, String.valueOf(ACTIVITY_LOG_ACTIONS));
        STORE_NODE_PATH = ConfigDAO.getBoolean(PROPERTY_STORE_NODE_PATH,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_STORE_NODE_PATH, "off")));
        values.put(PROPERTY_STORE_NODE_PATH, Boolean.toString(STORE_NODE_PATH));
        TOMCAT_CONNECTOR_URI_ENCODING = ConfigDAO.getString(PROPERTY_TOMCAT_CONNECTOR_URI_ENCODING,
                TOMCAT_CONNECTOR_URI_ENCODING);
        values.put(PROPERTY_TOMCAT_CONNECTOR_URI_ENCODING, TOMCAT_CONNECTOR_URI_ENCODING);

        // Security properties
        SECURITY_ACCESS_MANAGER = ConfigDAO.getString(PROPERTY_SECURITY_ACCESS_MANAGER,
                DbSimpleAccessManager.NAME);
        values.put(PROPERTY_SECURITY_ACCESS_MANAGER, SECURITY_ACCESS_MANAGER);
        SECURITY_SEARCH_EVALUATION = ConfigDAO.getString(PROPERTY_SECURITY_SEARCH_EVALUATION,
                SearchDAO.SEARCH_LUCENE);
        values.put(PROPERTY_SECURITY_SEARCH_EVALUATION, SECURITY_SEARCH_EVALUATION);
        SECURITY_MODE_MULTIPLE = ConfigDAO.getBoolean(PROPERTY_SECURITY_MODE_MULTIPLE, SECURITY_MODE_MULTIPLE);
        values.put(PROPERTY_SECURITY_MODE_MULTIPLE, Boolean.toString(SECURITY_MODE_MULTIPLE));
        SECURITY_LIVE_CHANGE_NODE_LIMIT = ConfigDAO.getInteger(PROPERTY_SECURITY_LIVE_CHANGE_NODE_LIMIT,
                SECURITY_LIVE_CHANGE_NODE_LIMIT);
        values.put(PROPERTY_SECURITY_LIVE_CHANGE_NODE_LIMIT, Integer.toString(SECURITY_LIVE_CHANGE_NODE_LIMIT));

        VERSION_NUMERATION_ADAPTER = ConfigDAO.getString(PROPERTY_VERSION_NUMERATION_ADAPTER,
                cfg.getProperty(PROPERTY_VERSION_NUMERATION_ADAPTER, VERSION_NUMERATION_ADAPTER));
        values.put(PROPERTY_VERSION_NUMERATION_ADAPTER, VERSION_NUMERATION_ADAPTER);
        VERSION_NUMERATION_FORMAT = ConfigDAO.getString(PROPERTY_VERSION_NUMERATION_FORMAT,
                cfg.getProperty(PROPERTY_VERSION_NUMERATION_FORMAT, VERSION_NUMERATION_FORMAT));
        values.put(PROPERTY_VERSION_NUMERATION_FORMAT, VERSION_NUMERATION_FORMAT);
        VERSION_APPEND_DOWNLOAD = ConfigDAO.getBoolean(PROPERTY_VERSION_APPEND_DOWNLOAD,
                VERSION_APPEND_DOWNLOAD);
        values.put(PROPERTY_VERSION_APPEND_DOWNLOAD, Boolean.toString(VERSION_APPEND_DOWNLOAD));

        MAX_FILE_SIZE = FormatUtil.parseSize(ConfigDAO.getString(PROPERTY_MAX_FILE_SIZE, "0"));
        values.put(PROPERTY_MAX_FILE_SIZE, Long.toString(MAX_FILE_SIZE));
        MAX_SEARCH_RESULTS = ConfigDAO.getInteger(PROPERTY_MAX_SEARCH_RESULTS, 500);
        values.put(PROPERTY_MAX_SEARCH_RESULTS, Integer.toString(MAX_SEARCH_RESULTS));
        MAX_SEARCH_CLAUSES = ConfigDAO.getInteger(PROPERTY_MAX_SEARCH_CLAUSES, 1024);
        values.put(PROPERTY_MAX_SEARCH_CLAUSES, Integer.toString(MAX_SEARCH_CLAUSES));
        MIN_SEARCH_CHARACTERS = ConfigDAO.getInteger(PROPERTY_MIN_SEARCH_CHARACTERS, 3);
        values.put(PROPERTY_MIN_SEARCH_CHARACTERS, Integer.toString(MIN_SEARCH_CHARACTERS));
        SEND_MAIL_FROM_USER = ConfigDAO.getBoolean(PROPERTY_SEND_MAIL_FROM_USER,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_SEND_MAIL_FROM_USER, "on")));
        values.put(PROPERTY_SEND_MAIL_FROM_USER, Boolean.toString(SEND_MAIL_FROM_USER));
        DEFAULT_USER_ROLE = ConfigDAO.getString(PROPERTY_DEFAULT_USER_ROLE,
                cfg.getProperty(PROPERTY_DEFAULT_USER_ROLE, DEFAULT_USER_ROLE));
        values.put(PROPERTY_DEFAULT_USER_ROLE, DEFAULT_USER_ROLE);
        DEFAULT_ADMIN_ROLE = ConfigDAO.getString(PROPERTY_DEFAULT_ADMIN_ROLE,
                cfg.getProperty(PROPERTY_DEFAULT_ADMIN_ROLE, DEFAULT_ADMIN_ROLE));
        values.put(PROPERTY_DEFAULT_ADMIN_ROLE, DEFAULT_ADMIN_ROLE);

        WEBSERVICES_VISIBLE_PROPERTIES = ConfigDAO.getList(PROPERTY_WEBSERVICES_VISIBLE_PROPERTIES,
                PROPERTY_RESTRICT_FILE_NAME);
        values.put(PROPERTY_WEBSERVICES_VISIBLE_PROPERTIES, String.valueOf(WEBSERVICES_VISIBLE_PROPERTIES));

        // Set max search clauses
        BooleanQuery.setMaxClauseCount(MAX_SEARCH_CLAUSES);

        // Text extractors
        REGISTERED_TEXT_EXTRACTORS = ConfigDAO.getList(PROPERTY_REGISTERED_TEXT_EXTRACTORS,
                DEFAULT_REGISTERED_TEXT_EXTRACTORS);
        values.put(PROPERTY_REGISTERED_TEXT_EXTRACTORS, String.valueOf(REGISTERED_TEXT_EXTRACTORS));
        RegisteredExtractors.init();

        // Workflow
        WORKFLOW_RUN_CONFIG_FORM = ConfigDAO.getString(PROPERTY_WORKFLOW_RUN_CONFIG_FORM,
                WORKFLOW_RUN_CONFIG_FORM);
        values.put(PROPERTY_WORKFLOW_RUN_CONFIG_FORM, WORKFLOW_RUN_CONFIG_FORM);
        WORKFLOW_START_TASK_AUTO_RUN = ConfigDAO.getBoolean(PROPERTY_WORKFLOW_START_TASK_AUTO_RUN,
                WORKFLOW_START_TASK_AUTO_RUN);
        values.put(PROPERTY_WORKFLOW_START_TASK_AUTO_RUN, Boolean.toString(WORKFLOW_START_TASK_AUTO_RUN));

        // Principal
        PRINCIPAL_ADAPTER = ConfigDAO.getString(PROPERTY_PRINCIPAL_ADAPTER, PRINCIPAL_ADAPTER);
        values.put(PROPERTY_PRINCIPAL_ADAPTER, PRINCIPAL_ADAPTER);
        PRINCIPAL_DATABASE_FILTER_INACTIVE_USERS = ConfigDAO.getBoolean(
                PROPERTY_PRINCIPAL_DATABASE_FILTER_INACTIVE_USERS, PRINCIPAL_DATABASE_FILTER_INACTIVE_USERS);
        values.put(PROPERTY_PRINCIPAL_DATABASE_FILTER_INACTIVE_USERS,
                Boolean.toString(PRINCIPAL_DATABASE_FILTER_INACTIVE_USERS));
        PRINCIPAL_HIDE_CONNECTION_ROLES = ConfigDAO.getBoolean(PROPERTY_PRINCIPAL_HIDE_CONNECTION_ROLES,
                PRINCIPAL_HIDE_CONNECTION_ROLES);
        values.put(PROPERTY_PRINCIPAL_HIDE_CONNECTION_ROLES, Boolean.toString(PRINCIPAL_HIDE_CONNECTION_ROLES));
        PRINCIPAL_IDENTIFIER_VALIDATION = ConfigDAO.getString(PROPERTY_PRINCIPAL_IDENTIFIER_VALIDATION,
                PRINCIPAL_IDENTIFIER_VALIDATION);
        values.put(PROPERTY_PRINCIPAL_IDENTIFIER_VALIDATION, PRINCIPAL_IDENTIFIER_VALIDATION);

        // LDAP
        PRINCIPAL_LDAP_SERVER = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_SERVER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_SERVER, PRINCIPAL_LDAP_SERVER);
        PRINCIPAL_LDAP_SECURITY_PRINCIPAL = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_SECURITY_PRINCIPAL, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_SECURITY_PRINCIPAL, PRINCIPAL_LDAP_SECURITY_PRINCIPAL);
        PRINCIPAL_LDAP_SECURITY_CREDENTIALS = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_SECURITY_CREDENTIALS,
                "");
        values.put(PROPERTY_PRINCIPAL_LDAP_SECURITY_CREDENTIALS, PRINCIPAL_LDAP_SECURITY_CREDENTIALS);
        PRINCIPAL_LDAP_REFERRAL = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_REFERRAL, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_REFERRAL, PRINCIPAL_LDAP_REFERRAL);
        PRINCIPAL_LDAP_USERS_FROM_ROLES = ConfigDAO.getBoolean(PROPERTY_PRINCIPAL_LDAP_USERS_FROM_ROLES, false);
        values.put(PROPERTY_PRINCIPAL_LDAP_USERS_FROM_ROLES, Boolean.toString(PRINCIPAL_LDAP_USERS_FROM_ROLES));

        PRINCIPAL_LDAP_USER_SEARCH_BASE = ConfigDAO.getList(PROPERTY_PRINCIPAL_LDAP_USER_SEARCH_BASE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USER_SEARCH_BASE, String.valueOf(PRINCIPAL_LDAP_USER_SEARCH_BASE));
        PRINCIPAL_LDAP_USER_SEARCH_FILTER = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_USER_SEARCH_FILTER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USER_SEARCH_FILTER, PRINCIPAL_LDAP_USER_SEARCH_FILTER);
        PRINCIPAL_LDAP_USER_ATTRIBUTE = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_USER_ATTRIBUTE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USER_ATTRIBUTE, PRINCIPAL_LDAP_USER_ATTRIBUTE);

        PRINCIPAL_LDAP_ROLE_SEARCH_BASE = ConfigDAO.getList(PROPERTY_PRINCIPAL_LDAP_ROLE_SEARCH_BASE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_ROLE_SEARCH_BASE, String.valueOf(PRINCIPAL_LDAP_ROLE_SEARCH_BASE));
        PRINCIPAL_LDAP_ROLE_SEARCH_FILTER = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_ROLE_SEARCH_FILTER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_ROLE_SEARCH_FILTER, PRINCIPAL_LDAP_ROLE_SEARCH_FILTER);
        PRINCIPAL_LDAP_ROLE_ATTRIBUTE = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_ROLE_ATTRIBUTE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_ROLE_ATTRIBUTE, PRINCIPAL_LDAP_ROLE_ATTRIBUTE);

        PRINCIPAL_LDAP_USERNAME_SEARCH_BASE = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_USERNAME_SEARCH_BASE,
                "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USERNAME_SEARCH_BASE, PRINCIPAL_LDAP_USERNAME_SEARCH_BASE);
        PRINCIPAL_LDAP_USERNAME_SEARCH_FILTER = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_USERNAME_SEARCH_FILTER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USERNAME_SEARCH_FILTER, PRINCIPAL_LDAP_USERNAME_SEARCH_FILTER);
        PRINCIPAL_LDAP_USERNAME_ATTRIBUTE = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_USERNAME_ATTRIBUTE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USERNAME_ATTRIBUTE, PRINCIPAL_LDAP_USERNAME_ATTRIBUTE);

        PRINCIPAL_LDAP_MAIL_SEARCH_BASE = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_MAIL_SEARCH_BASE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_MAIL_SEARCH_BASE, PRINCIPAL_LDAP_MAIL_SEARCH_BASE);
        PRINCIPAL_LDAP_MAIL_SEARCH_FILTER = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_MAIL_SEARCH_FILTER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_MAIL_SEARCH_FILTER, PRINCIPAL_LDAP_MAIL_SEARCH_FILTER);
        PRINCIPAL_LDAP_MAIL_ATTRIBUTE = ConfigDAO.getString(PROPERTY_PRINCIPAL_LDAP_MAIL_ATTRIBUTE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_MAIL_ATTRIBUTE, PRINCIPAL_LDAP_MAIL_ATTRIBUTE);

        PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_BASE = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_BASE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_BASE, PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_BASE);
        PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_FILTER = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_FILTER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_FILTER,
                PRINCIPAL_LDAP_USERS_BY_ROLE_SEARCH_FILTER);
        PRINCIPAL_LDAP_USERS_BY_ROLE_ATTRIBUTE = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_USERS_BY_ROLE_ATTRIBUTE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_USERS_BY_ROLE_ATTRIBUTE, PRINCIPAL_LDAP_USERS_BY_ROLE_ATTRIBUTE);

        PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_BASE = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_BASE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_BASE, PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_BASE);
        PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_FILTER = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_FILTER, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_FILTER,
                PRINCIPAL_LDAP_ROLES_BY_USER_SEARCH_FILTER);
        PRINCIPAL_LDAP_ROLES_BY_USER_ATTRIBUTE = ConfigDAO
                .getString(PROPERTY_PRINCIPAL_LDAP_ROLES_BY_USER_ATTRIBUTE, "");
        values.put(PROPERTY_PRINCIPAL_LDAP_ROLES_BY_USER_ATTRIBUTE, PRINCIPAL_LDAP_ROLES_BY_USER_ATTRIBUTE);

        RESTRICT_FILE_MIME = ConfigDAO.getBoolean(PROPERTY_RESTRICT_FILE_MIME, false);
        values.put(PROPERTY_RESTRICT_FILE_MIME, Boolean.toString(RESTRICT_FILE_MIME));
        RESTRICT_FILE_NAME = ConfigDAO.getString(PROPERTY_RESTRICT_FILE_NAME, "*~;*.bak");
        values.put(PROPERTY_RESTRICT_FILE_NAME, RESTRICT_FILE_NAME);

        NOTIFICATION_MESSAGE_SUBJECT = ConfigDAO.getText(PROPERTY_NOTIFICATION_MESSAGE_SUBJECT,
                "OpenKM - NOTIFICATION");
        values.put(PROPERTY_NOTIFICATION_MESSAGE_SUBJECT, NOTIFICATION_MESSAGE_SUBJECT);
        NOTIFICATION_MESSAGE_BODY = ConfigDAO.getHtml(PROPERTY_NOTIFICATION_MESSAGE_BODY,
                "<b>Message: </b>${notificationMessage}<br/><b>User: </b>${userId}<br/><#list documentList as doc><b>Document: </b><a href=\"${doc.url}\">${doc.path}</a><br/></#list>");
        values.put(PROPERTY_NOTIFICATION_MESSAGE_BODY, NOTIFICATION_MESSAGE_BODY);

        SUBSCRIPTION_MESSAGE_SUBJECT = ConfigDAO.getText(PROPERTY_SUBSCRIPTION_MESSAGE_SUBJECT,
                "OpenKM - ${eventType} - ${documentPath}");
        values.put(PROPERTY_SUBSCRIPTION_MESSAGE_SUBJECT, SUBSCRIPTION_MESSAGE_SUBJECT);
        SUBSCRIPTION_MESSAGE_BODY = ConfigDAO.getHtml(PROPERTY_SUBSCRIPTION_MESSAGE_BODY,
                "<b>Document: </b><a href=\"${documentUrl}\">${documentPath}</a><br/><b>User: </b>${userId}<br/><b>Event: </b>${eventType}<br/><b>Comment: </b>${subscriptionComment}<br/>");
        values.put(PROPERTY_SUBSCRIPTION_MESSAGE_BODY, SUBSCRIPTION_MESSAGE_BODY);

        PROPOSED_SUBSCRIPTION_MESSAGE_SUBJECT = ConfigDAO
                .getText(PROPERTY_PROPOSED_SUBSCRIPTION_MESSAGE_SUBJECT, "OpenKM - PROPOSED SUBSCRIPTION");
        values.put(PROPERTY_PROPOSED_SUBSCRIPTION_MESSAGE_SUBJECT, PROPOSED_SUBSCRIPTION_MESSAGE_SUBJECT);
        PROPOSED_SUBSCRIPTION_MESSAGE_BODY = ConfigDAO.getHtml(PROPERTY_PROPOSED_SUBSCRIPTION_MESSAGE_BODY,
                "<b>Comment: </b>${proposedSubscriptionComment}<br/><b>User: </b>${userId}<br/><#list documentList as doc><b>Document: </b><a href=\"${doc.url}\">${doc.path}</a><br/></#list>");
        values.put(PROPERTY_PROPOSED_SUBSCRIPTION_MESSAGE_BODY, PROPOSED_SUBSCRIPTION_MESSAGE_BODY);

        SUBSCRIPTION_TWITTER_USER = ConfigDAO.getString(PROPERTY_SUBSCRIPTION_TWITTER_USER, "");
        values.put(PROPERTY_SUBSCRIPTION_TWITTER_USER, SUBSCRIPTION_TWITTER_USER);
        SUBSCRIPTION_TWITTER_PASSWORD = ConfigDAO.getString(PROPERTY_SUBSCRIPTION_TWITTER_PASSWORD, "");
        values.put(PROPERTY_SUBSCRIPTION_TWITTER_PASSWORD, SUBSCRIPTION_TWITTER_PASSWORD);
        SUBSCRIPTION_TWITTER_STATUS = ConfigDAO.getText(PROPERTY_SUBSCRIPTION_TWITTER_STATUS,
                "OpenKM - ${documentUrl} - ${documentPath} - ${userId} - ${eventType}");
        values.put(PROPERTY_SUBSCRIPTION_TWITTER_STATUS, SUBSCRIPTION_TWITTER_STATUS);

        SYSTEM_DEMO = ConfigDAO.getBoolean(PROPERTY_SYSTEM_DEMO,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_SYSTEM_DEMO, "off")));
        values.put(PROPERTY_SYSTEM_DEMO, Boolean.toString(SYSTEM_DEMO));
        SYSTEM_APACHE_REQUEST_HEADER_FIX = ConfigDAO.getBoolean(PROPERTY_SYSTEM_APACHE_REQUEST_HEADER_FIX,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_SYSTEM_APACHE_REQUEST_HEADER_FIX, "off")));
        values.put(PROPERTY_SYSTEM_APACHE_REQUEST_HEADER_FIX,
                Boolean.toString(SYSTEM_APACHE_REQUEST_HEADER_FIX));
        SYSTEM_WEBDAV_SERVER = ConfigDAO.getBoolean(PROPERTY_SYSTEM_WEBDAV_SERVER,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_SYSTEM_WEBDAV_SERVER, "off")));
        values.put(PROPERTY_SYSTEM_WEBDAV_SERVER, Boolean.toString(SYSTEM_WEBDAV_SERVER));
        SYSTEM_WEBDAV_FIX = ConfigDAO.getBoolean(PROPERTY_SYSTEM_WEBDAV_FIX,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_SYSTEM_WEBDAV_FIX, "off")));
        values.put(PROPERTY_SYSTEM_WEBDAV_FIX, Boolean.toString(SYSTEM_WEBDAV_FIX));

        SYSTEM_MAINTENANCE = ConfigDAO.getBoolean(PROPERTY_SYSTEM_MAINTENANCE, false);
        values.put(PROPERTY_SYSTEM_MAINTENANCE, Boolean.toString(SYSTEM_MAINTENANCE));
        SYSTEM_READONLY = ConfigDAO.getBoolean(PROPERTY_SYSTEM_READONLY, false);
        values.put(PROPERTY_SYSTEM_READONLY, Boolean.toString(SYSTEM_READONLY));

        SYSTEM_OPENOFFICE_PATH = ConfigDAO.getString(PROPERTY_SYSTEM_OPENOFFICE_PATH,
                cfg.getProperty(PROPERTY_SYSTEM_OPENOFFICE_PATH, EnvironmentDetector.detectOpenOfficePath()));
        values.put(PROPERTY_SYSTEM_OPENOFFICE_PATH, SYSTEM_OPENOFFICE_PATH);
        SYSTEM_OPENOFFICE_TASKS = ConfigDAO.getInteger(PROPERTY_SYSTEM_OPENOFFICE_TASKS, 200);
        values.put(PROPERTY_SYSTEM_OPENOFFICE_TASKS, Integer.toString(SYSTEM_OPENOFFICE_TASKS));
        SYSTEM_OPENOFFICE_PORT = ConfigDAO.getInteger(PROPERTY_SYSTEM_OPENOFFICE_PORT, 2002);
        values.put(PROPERTY_SYSTEM_OPENOFFICE_PORT, Integer.toString(SYSTEM_OPENOFFICE_PORT));
        SYSTEM_OPENOFFICE_SERVER = ConfigDAO.getString(PROPERTY_SYSTEM_OPENOFFICE_SERVER,
                cfg.getProperty(PROPERTY_SYSTEM_OPENOFFICE_SERVER, ""));
        values.put(PROPERTY_SYSTEM_OPENOFFICE_SERVER, SYSTEM_OPENOFFICE_SERVER);
        SYSTEM_OPENOFFICE_DICTIONARY = ConfigDAO.getString(PROPERTY_SYSTEM_OPENOFFICE_DICTIONARY, "");
        values.put(PROPERTY_SYSTEM_OPENOFFICE_DICTIONARY, SYSTEM_OPENOFFICE_DICTIONARY);

        SYSTEM_OCR = ConfigDAO.getString(PROPERTY_SYSTEM_OCR, cfg.getProperty(PROPERTY_SYSTEM_OCR, ""));
        values.put(PROPERTY_SYSTEM_OCR, SYSTEM_OCR);
        SYSTEM_OCR_ROTATE = ConfigDAO.getString(PROPERTY_SYSTEM_OCR_ROTATE,
                cfg.getProperty(PROPERTY_SYSTEM_OCR_ROTATE, ""));
        values.put(PROPERTY_SYSTEM_OCR_ROTATE, SYSTEM_OCR_ROTATE);
        SYSTEM_PDF_FORCE_OCR = ConfigDAO.getBoolean(PROPERTY_SYSTEM_PDF_FORCE_OCR,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_SYSTEM_PDF_FORCE_OCR, "off")));
        values.put(PROPERTY_SYSTEM_PDF_FORCE_OCR, Boolean.toString(SYSTEM_PDF_FORCE_OCR));
        SYSTEM_IMAGEMAGICK_CONVERT = ConfigDAO.getString(PROPERTY_SYSTEM_IMAGEMAGICK_CONVERT, cfg.getProperty(
                PROPERTY_SYSTEM_IMAGEMAGICK_CONVERT, EnvironmentDetector.detectImagemagickConvert()));
        values.put(PROPERTY_SYSTEM_IMAGEMAGICK_CONVERT, SYSTEM_IMAGEMAGICK_CONVERT);
        SYSTEM_SWFTOOLS_PDF2SWF = ConfigDAO.getString(PROPERTY_SYSTEM_SWFTOOLS_PDF2SWF,
                cfg.getProperty(PROPERTY_SYSTEM_SWFTOOLS_PDF2SWF, EnvironmentDetector.detectSwftoolsPdf2Swf()));
        values.put(PROPERTY_SYSTEM_SWFTOOLS_PDF2SWF, SYSTEM_SWFTOOLS_PDF2SWF);
        SYSTEM_GHOSTSCRIPT = ConfigDAO.getString(PROPERTY_SYSTEM_GHOSTSCRIPT,
                cfg.getProperty(PROPERTY_SYSTEM_GHOSTSCRIPT, EnvironmentDetector.detectGhostscript()));
        values.put(PROPERTY_SYSTEM_GHOSTSCRIPT, SYSTEM_GHOSTSCRIPT);
        SYSTEM_DWG2DXF = ConfigDAO.getString(PROPERTY_SYSTEM_DWG2DXF,
                cfg.getProperty(PROPERTY_SYSTEM_DWG2DXF, ""));
        values.put(PROPERTY_SYSTEM_DWG2DXF, SYSTEM_DWG2DXF);
        SYSTEM_ANTIVIR = ConfigDAO.getString(PROPERTY_SYSTEM_ANTIVIR,
                cfg.getProperty(PROPERTY_SYSTEM_ANTIVIR, ""));
        values.put(PROPERTY_SYSTEM_ANTIVIR, SYSTEM_ANTIVIR);
        SYSTEM_PDFIMAGES = ConfigDAO.getString(PROPERTY_SYSTEM_PDFIMAGES,
                cfg.getProperty(PROPERTY_SYSTEM_PDFIMAGES, EnvironmentDetector.detectPdfImages()));
        values.put(PROPERTY_SYSTEM_PDFIMAGES, SYSTEM_PDFIMAGES);
        SYSTEM_CATDOC_XLS2CSV = ConfigDAO.getString(PROPERTY_SYSTEM_CATDOC_XLS2CSV,
                cfg.getProperty(PROPERTY_SYSTEM_CATDOC_XLS2CSV, ""));
        values.put(PROPERTY_SYSTEM_CATDOC_XLS2CSV, SYSTEM_CATDOC_XLS2CSV);
        SYSTEM_PREVIEWER = ConfigDAO.getSelectedOption(PROPERTY_SYSTEM_PREVIEWER, "flexpaper");
        values.put(PROPERTY_SYSTEM_PREVIEWER, SYSTEM_PREVIEWER);
        SYSTEM_LOGIN_LOWERCASE = ConfigDAO.getBoolean(PROPERTY_SYSTEM_LOGIN_LOWERCASE, SYSTEM_LOGIN_LOWERCASE);
        values.put(PROPERTY_SYSTEM_LOGIN_LOWERCASE, Boolean.toString(SYSTEM_LOGIN_LOWERCASE));
        SYSTEM_DOCUMENT_NAME_MISMATCH_CHECK = ConfigDAO.getBoolean(PROPERTY_SYSTEM_DOCUMENT_NAME_MISMATCH_CHECK,
                SYSTEM_DOCUMENT_NAME_MISMATCH_CHECK);
        values.put(PROPERTY_SYSTEM_DOCUMENT_NAME_MISMATCH_CHECK,
                Boolean.toString(SYSTEM_DOCUMENT_NAME_MISMATCH_CHECK));
        SYSTEM_KEYWORD_LOWERCASE = ConfigDAO.getBoolean(PROPERTY_SYSTEM_KEYWORD_LOWERCASE,
                SYSTEM_KEYWORD_LOWERCASE);
        values.put(PROPERTY_SYSTEM_KEYWORD_LOWERCASE, Boolean.toString(SYSTEM_KEYWORD_LOWERCASE));

        // Modify default admin user if login lowercase is active
        if (SYSTEM_LOGIN_LOWERCASE) {
            ADMIN_USER = ADMIN_USER.toLowerCase();
        }

        values.put(PROPERTY_ADMIN_USER, ADMIN_USER);
        values.put(PROPERTY_SYSTEM_USER, SYSTEM_USER);
        SYSTEM_EXECUTION_TIMEOUT = ConfigDAO.getInteger(PROPERTY_SYSTEM_EXECUTION_TIMEOUT,
                SYSTEM_EXECUTION_TIMEOUT);
        values.put(PROPERTY_SYSTEM_EXECUTION_TIMEOUT, Integer.toString(SYSTEM_EXECUTION_TIMEOUT));
        SYSTEM_PROFILING = ConfigDAO.getBoolean(PROPERTY_SYSTEM_PROFILING, false);
        values.put(PROPERTY_SYSTEM_PROFILING, Boolean.toString(SYSTEM_PROFILING));

        // Guess default application URL
        String defaultApplicationUrl = cfg.getProperty(PROPERTY_APPLICATION_URL);

        if (defaultApplicationUrl == null || defaultApplicationUrl.isEmpty()) {
            String hostName = InetAddress.getLocalHost().getCanonicalHostName();
            defaultApplicationUrl = "http://" + hostName + "/" + Config.CONTEXT + "/index.jsp";
        }

        APPLICATION_URL = ConfigDAO.getString(PROPERTY_APPLICATION_URL, defaultApplicationUrl);
        APPLICATION_BASE = getBase(APPLICATION_URL);
        values.put(PROPERTY_APPLICATION_URL, APPLICATION_URL);
        DEFAULT_LANG = ConfigDAO.getString(PROPERTY_DEFAULT_LANG, DEFAULT_LANG);
        values.put(PROPERTY_DEFAULT_LANG, DEFAULT_LANG);
        // UPDATE_INFO = ConfigDAO.getBoolean(PROPERTY_UPDATE_INFO, "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_UPDATE_INFO, "on")));
        // values.put(PROPERTY_UPDATE_INFO, Boolean.toString(UPDATE_INFO));

        USER_ASSIGN_DOCUMENT_CREATION = ConfigDAO.getBoolean(PROPERTY_USER_ASSIGN_DOCUMENT_CREATION,
                USER_ASSIGN_DOCUMENT_CREATION);
        values.put(PROPERTY_USER_ASSIGN_DOCUMENT_CREATION, Boolean.toString(USER_ASSIGN_DOCUMENT_CREATION));
        USER_KEYWORDS_CACHE = ConfigDAO.getBoolean(PROPERTY_USER_KEYWORDS_CACHE, USER_KEYWORDS_CACHE);
        values.put(PROPERTY_USER_KEYWORDS_CACHE, Boolean.toString(USER_KEYWORDS_CACHE));
        USER_ITEM_CACHE = ConfigDAO.getBoolean(PROPERTY_USER_ITEM_CACHE,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_USER_ITEM_CACHE, "on")));
        values.put(PROPERTY_USER_ITEM_CACHE, Boolean.toString(USER_ITEM_CACHE));
        UPLOAD_THROTTLE_FILTER = ConfigDAO.getBoolean(PROPERTY_UPLOAD_THROTTLE_FILTER,
                "on".equalsIgnoreCase(cfg.getProperty(PROPERTY_UPLOAD_THROTTLE_FILTER, "off")));
        values.put(PROPERTY_UPLOAD_THROTTLE_FILTER, Boolean.toString(UPLOAD_THROTTLE_FILTER));
        REMOTE_CONVERSION_SERVER = ConfigDAO.getString(PROPERTY_REMOTE_CONVERSION_SERVER,
                cfg.getProperty(PROPERTY_REMOTE_CONVERSION_SERVER, ""));
        values.put(PROPERTY_REMOTE_CONVERSION_SERVER, REMOTE_CONVERSION_SERVER);

        // Schedule
        SCHEDULE_SESSION_KEEPALIVE = ConfigDAO.getInteger(PROPERTY_SCHEDULE_SESSION_KEEPALIVE,
                SCHEDULE_SESSION_KEEPALIVE);
        values.put(PROPERTY_SCHEDULE_SESSION_KEEPALIVE, Integer.toString(SCHEDULE_SESSION_KEEPALIVE));
        SCHEDULE_DASHBOARD_REFRESH = ConfigDAO.getInteger(PROPERTY_SCHEDULE_DASHBOARD_REFRESH,
                SCHEDULE_DASHBOARD_REFRESH);
        values.put(PROPERTY_SCHEDULE_DASHBOARD_REFRESH, Integer.toString(SCHEDULE_DASHBOARD_REFRESH));
        SCHEDULE_UI_NOTIFICATION = ConfigDAO.getInteger(PROPERTY_SCHEDULE_UI_NOTIFICATION,
                SCHEDULE_UI_NOTIFICATION);
        values.put(PROPERTY_SCHEDULE_UI_NOTIFICATION, Integer.toString(SCHEDULE_UI_NOTIFICATION));

        // KEA
        KEA_THESAURUS_SKOS_FILE = ConfigDAO.getString(PROPERTY_KEA_THESAURUS_SKOS_FILE,
                cfg.getProperty(PROPERTY_KEA_THESAURUS_SKOS_FILE, ""));
        values.put(PROPERTY_KEA_THESAURUS_SKOS_FILE, KEA_THESAURUS_SKOS_FILE);
        KEA_THESAURUS_OWL_FILE = ConfigDAO.getString(PROPERTY_KEA_THESAURUS_OWL_FILE,
                cfg.getProperty(PROPERTY_KEA_THESAURUS_OWL_FILE, ""));
        values.put(PROPERTY_KEA_THESAURUS_OWL_FILE, KEA_THESAURUS_OWL_FILE);
        KEA_THESAURUS_VOCABULARY_SERQL = ConfigDAO.getText(PROPERTY_KEA_THESAURUS_VOCABULARY_SERQL,
                cfg.getProperty(PROPERTY_KEA_THESAURUS_VOCABULARY_SERQL, ""));
        values.put(PROPERTY_KEA_THESAURUS_VOCABULARY_SERQL, KEA_THESAURUS_VOCABULARY_SERQL);
        KEA_THESAURUS_BASE_URL = ConfigDAO.getString(PROPERTY_KEA_THESAURUS_BASE_URL,
                cfg.getProperty(PROPERTY_KEA_THESAURUS_BASE_URL, ""));
        values.put(PROPERTY_KEA_THESAURUS_BASE_URL, KEA_THESAURUS_BASE_URL);
        KEA_THESAURUS_TREE_ROOT = ConfigDAO.getText(PROPERTY_KEA_THESAURUS_TREE_ROOT,
                cfg.getProperty(PROPERTY_KEA_THESAURUS_TREE_ROOT, ""));
        values.put(PROPERTY_KEA_THESAURUS_TREE_ROOT, KEA_THESAURUS_TREE_ROOT);
        KEA_THESAURUS_TREE_CHILDS = ConfigDAO.getText(PROPERTY_KEA_THESAURUS_TREE_CHILDS,
                cfg.getProperty(PROPERTY_KEA_THESAURUS_TREE_CHILDS, ""));
        values.put(PROPERTY_KEA_THESAURUS_TREE_CHILDS, KEA_THESAURUS_TREE_CHILDS);

        // Validator
        VALIDATOR_PASSWORD = ConfigDAO.getString(PROPERTY_VALIDATOR_PASSWORD, VALIDATOR_PASSWORD);
        values.put(PROPERTY_VALIDATOR_PASSWORD, VALIDATOR_PASSWORD);

        VALIDATOR_PASSWORD_MIN_LENGTH = ConfigDAO.getInteger(PROPERTY_VALIDATOR_PASSWORD_MIN_LENGTH, 0);
        values.put(PROPERTY_VALIDATOR_PASSWORD_MIN_LENGTH, Integer.toString(VALIDATOR_PASSWORD_MIN_LENGTH));
        VALIDATOR_PASSWORD_MAX_LENGTH = ConfigDAO.getInteger(PROPERTY_VALIDATOR_PASSWORD_MAX_LENGTH, 0);
        values.put(PROPERTY_VALIDATOR_PASSWORD_MAX_LENGTH, Integer.toString(VALIDATOR_PASSWORD_MAX_LENGTH));
        VALIDATOR_PASSWORD_MIN_LOWERCASE = ConfigDAO.getInteger(PROPERTY_VALIDATOR_PASSWORD_MIN_LOWERCASE, 0);
        values.put(PROPERTY_VALIDATOR_PASSWORD_MIN_LOWERCASE,
                Integer.toString(VALIDATOR_PASSWORD_MIN_LOWERCASE));
        VALIDATOR_PASSWORD_MIN_UPPERCASE = ConfigDAO.getInteger(PROPERTY_VALIDATOR_PASSWORD_MIN_UPPERCASE, 0);
        values.put(PROPERTY_VALIDATOR_PASSWORD_MIN_UPPERCASE,
                Integer.toString(VALIDATOR_PASSWORD_MIN_UPPERCASE));
        VALIDATOR_PASSWORD_MIN_DIGITS = ConfigDAO.getInteger(PROPERTY_VALIDATOR_PASSWORD_MIN_DIGITS, 0);
        values.put(PROPERTY_VALIDATOR_PASSWORD_MIN_DIGITS, Integer.toString(VALIDATOR_PASSWORD_MIN_DIGITS));
        VALIDATOR_PASSWORD_MIN_SPECIAL = ConfigDAO.getInteger(PROPERTY_VALIDATOR_PASSWORD_MIN_SPECIAL, 0);
        values.put(PROPERTY_VALIDATOR_PASSWORD_MIN_SPECIAL, Integer.toString(VALIDATOR_PASSWORD_MIN_SPECIAL));

        // Hibernate
        HIBERNATE_INDEXER_MASS_INDEXER = ConfigDAO.getBoolean(PROPERTY_HIBERNATE_INDEXER_MASS_INDEXER, false);
        values.put(PROPERTY_HIBERNATE_INDEXER_MASS_INDEXER, Boolean.toString(HIBERNATE_INDEXER_MASS_INDEXER));
        HIBERNATE_INDEXER_BATCH_SIZE_LOAD_OBJECTS = ConfigDAO
                .getInteger(PROPERTY_HIBERNATE_INDEXER_BATCH_SIZE_LOAD_OBJECTS, 30);
        values.put(PROPERTY_HIBERNATE_INDEXER_BATCH_SIZE_LOAD_OBJECTS,
                Integer.toString(HIBERNATE_INDEXER_BATCH_SIZE_LOAD_OBJECTS));
        HIBERNATE_INDEXER_THREADS_SUBSEQUENT_FETCHING = ConfigDAO
                .getInteger(PROPERTY_HIBERNATE_INDEXER_THREADS_SUBSEQUENT_FETCHING, 8);
        values.put(PROPERTY_HIBERNATE_INDEXER_THREADS_SUBSEQUENT_FETCHING,
                Integer.toString(HIBERNATE_INDEXER_THREADS_SUBSEQUENT_FETCHING));
        HIBERNATE_INDEXER_THREADS_LOAD_OBJECTS = ConfigDAO
                .getInteger(PROPERTY_HIBERNATE_INDEXER_THREADS_LOAD_OBJECTS, 4);
        values.put(PROPERTY_HIBERNATE_INDEXER_THREADS_LOAD_OBJECTS,
                Integer.toString(HIBERNATE_INDEXER_THREADS_LOAD_OBJECTS));
        HIBERNATE_INDEXER_THREADS_INDEX_WRITER = ConfigDAO
                .getInteger(PROPERTY_HIBERNATE_INDEXER_THREADS_INDEX_WRITER, 3);
        values.put(PROPERTY_HIBERNATE_INDEXER_THREADS_INDEX_WRITER,
                Integer.toString(HIBERNATE_INDEXER_THREADS_INDEX_WRITER));

        // Logo icons & login texts
        TEXT_BANNER = ConfigDAO.getString(PROPERTY_TEXT_BANNER, "&nbsp;");
        values.put(PROPERTY_TEXT_BANNER, TEXT_BANNER);
        TEXT_WELCOME = ConfigDAO.getString(PROPERTY_TEXT_WELCOME,
                "<p>Welcome to OpenKM !</p><p>Use a valid username and password to access to OpenKM user Desktop.</p>");
        values.put(PROPERTY_TEXT_WELCOME, TEXT_WELCOME);
        TEXT_TITLE = ConfigDAO.getString(PROPERTY_TEXT_TITLE, "OpenKM");
        values.put(PROPERTY_TEXT_TITLE, TEXT_TITLE);
        LOGO_TINY = ConfigDAO.getFile(PROPERTY_LOGO_TINY, "/img/logo_tiny.gif", sc);
        values.put(PROPERTY_LOGO_TINY, LOGO_TINY.getName());
        LOGO_LOGIN = ConfigDAO.getFile(PROPERTY_LOGO_LOGIN, "/img/logo_login.gif", sc);
        values.put(PROPERTY_LOGO_LOGIN, LOGO_LOGIN.getName());
        LOGO_MOBILE = ConfigDAO.getFile(PROPERTY_LOGO_MOBILE, "/img/logo_mobile.gif", sc);
        values.put(PROPERTY_LOGO_MOBILE, LOGO_MOBILE.getName());
        LOGO_REPORT = ConfigDAO.getFile(PROPERTY_LOGO_REPORT, "/img/logo_report.gif", sc);
        values.put(PROPERTY_LOGO_REPORT, LOGO_REPORT.getName());
        LOGO_FAVICON = ConfigDAO.getFile(PROPERTY_LOGO_FAVICON, "/img/logo_favicon.ico", sc);
        values.put(PROPERTY_LOGO_FAVICON, LOGO_FAVICON.getName());

        // Zoho
        ZOHO_USER = ConfigDAO.getString(PROPERTY_ZOHO_USER, cfg.getProperty(PROPERTY_ZOHO_USER, ""));
        values.put(PROPERTY_ZOHO_USER, ZOHO_USER);
        ZOHO_PASSWORD = ConfigDAO.getString(PROPERTY_ZOHO_PASSWORD,
                cfg.getProperty(PROPERTY_ZOHO_PASSWORD, ""));
        values.put(PROPERTY_ZOHO_PASSWORD, ZOHO_PASSWORD);
        ZOHO_API_KEY = ConfigDAO.getString(PROPERTY_ZOHO_API_KEY, cfg.getProperty(PROPERTY_ZOHO_API_KEY, ""));
        values.put(PROPERTY_ZOHO_API_KEY, ZOHO_API_KEY);
        ZOHO_SECRET_KEY = ConfigDAO.getString(PROPERTY_ZOHO_SECRET_KEY,
                cfg.getProperty(PROPERTY_ZOHO_SECRET_KEY, ""));
        values.put(PROPERTY_ZOHO_SECRET_KEY, ZOHO_SECRET_KEY);

        // OpenMeetings
        OPENMEETINGS_URL = ConfigDAO.getString(PROPERTY_OPENMEETINGS_URL,
                cfg.getProperty(PROPERTY_OPENMEETINGS_URL, ""));
        values.put(PROPERTY_OPENMEETINGS_URL, OPENMEETINGS_URL);
        OPENMEETINGS_PORT = ConfigDAO.getString(PROPERTY_OPENMEETINGS_PORT,
                cfg.getProperty(PROPERTY_OPENMEETINGS_PORT, ""));
        values.put(PROPERTY_OPENMEETINGS_PORT, OPENMEETINGS_PORT);
        OPENMEETINGS_USER = ConfigDAO.getString(PROPERTY_OPENMEETINGS_USER,
                cfg.getProperty(PROPERTY_OPENMEETINGS_USER, ""));
        values.put(PROPERTY_OPENMEETINGS_USER, OPENMEETINGS_USER);
        OPENMEETINGS_CREDENTIALS = ConfigDAO.getString(PROPERTY_OPENMEETINGS_CREDENTIALS,
                cfg.getProperty(PROPERTY_OPENMEETINGS_CREDENTIALS, ""));
        values.put(PROPERTY_OPENMEETINGS_CREDENTIALS, OPENMEETINGS_CREDENTIALS);

        // TinyMCE
        TINYMCE_THEME = ConfigDAO.getString(PROPERTY_TINYMCE_THEME,
                cfg.getProperty(PROPERTY_TINYMCE_THEME, TINYMCE_THEME));
        TINYMCE_SKIN = ConfigDAO.getString(PROPERTY_TINYMCE_SKIN,
                cfg.getProperty(PROPERTY_TINYMCE_SKIN, TINYMCE_SKIN));
        TINYMCE_SKIN_VARIANT = ConfigDAO.getString(PROPERTY_TINYMCE_SKIN_VARIANT,
                cfg.getProperty(PROPERTY_TINYMCE_SKIN_VARIANT, TINYMCE_SKIN_VARIANT));
        TINYMCE_PLUGINS = ConfigDAO.getString(PROPERTY_TINYMCE_PLUGINS,
                cfg.getProperty(PROPERTY_TINYMCE_PLUGINS, TINYMCE_PLUGINS));
        TINYMCE_THEME_BUTTONS1 = ConfigDAO.getString(PROPERTY_TINYMCE_THEME_BUTTONS1,
                cfg.getProperty(PROPERTY_TINYMCE_THEME_BUTTONS1, TINYMCE_THEME_BUTTONS1));
        TINYMCE_THEME_BUTTONS2 = ConfigDAO.getString(PROPERTY_TINYMCE_THEME_BUTTONS2,
                cfg.getProperty(PROPERTY_TINYMCE_THEME_BUTTONS2, TINYMCE_THEME_BUTTONS2));
        TINYMCE_THEME_BUTTONS3 = ConfigDAO.getString(PROPERTY_TINYMCE_THEME_BUTTONS3,
                cfg.getProperty(PROPERTY_TINYMCE_THEME_BUTTONS3, TINYMCE_THEME_BUTTONS3));
        TINYMCE_THEME_BUTTONS4 = ConfigDAO.getString(PROPERTY_TINYMCE_THEME_BUTTONS4,
                cfg.getProperty(PROPERTY_TINYMCE_THEME_BUTTONS4, TINYMCE_THEME_BUTTONS4));

        // HTML syntax highlighter
        PROPERTY_HTML_SINTAXHIGHLIGHTER_CORE = ConfigDAO.getString(PROPERTY_HTML_SINTAXHIGHLIGHTER_CORE,
                cfg.getProperty(PROPERTY_HTML_SINTAXHIGHLIGHTER_CORE, HTML_SINTAXHIGHLIGHTER_CORE));
        PROPERTY_HTML_SINTAXHIGHLIGHTER_THEME = ConfigDAO.getString(PROPERTY_HTML_SINTAXHIGHLIGHTER_THEME,
                cfg.getProperty(PROPERTY_HTML_SINTAXHIGHLIGHTER_THEME, HTML_SINTAXHIGHLIGHTER_THEME));
        ;

        // CSV
        CSV_FORMAT_DELIMITER = ConfigDAO.getString(PROPERTY_CSV_FORMAT_DELIMITER,
                cfg.getProperty(PROPERTY_CSV_FORMAT_DELIMITER, CSV_FORMAT_DELIMITER));
        CSV_FORMAT_QUOTE_CHARACTER = ConfigDAO.getString(PROPERTY_CSV_FORMAT_QUOTE_CHARACTER,
                cfg.getProperty(PROPERTY_CSV_FORMAT_QUOTE_CHARACTER, CSV_FORMAT_QUOTE_CHARACTER));
        CSV_FORMAT_COMMENT_INDICATOR = ConfigDAO.getString(PROPERTY_CSV_FORMAT_COMMENT_INDICATOR,
                cfg.getProperty(PROPERTY_CSV_FORMAT_COMMENT_INDICATOR, CSV_FORMAT_COMMENT_INDICATOR));
        CSV_FORMAT_SKIP_HEADER = ConfigDAO.getBoolean(PROPERTY_CSV_FORMAT_SKIP_HEADER, CSV_FORMAT_SKIP_HEADER);
        CSV_FORMAT_IGNORE_EMPTY_LINES = ConfigDAO.getBoolean(PROPERTY_CSV_FORMAT_IGNORE_EMPTY_LINES,
                CSV_FORMAT_IGNORE_EMPTY_LINES);

        // Extra Tab Workspace
        EXTRA_TAB_WORKSPACE_LABEL = ConfigDAO.getString(PROPERTY_EXTRA_TAB_WORKSPACE_LABEL,
                cfg.getProperty(PROPERTY_EXTRA_TAB_WORKSPACE_LABEL, EXTRA_TAB_WORKSPACE_LABEL));
        EXTRA_TAB_WORKSPACE_URL = ConfigDAO.getString(PROPERTY_EXTRA_TAB_WORKSPACE_URL,
                cfg.getProperty(PROPERTY_EXTRA_TAB_WORKSPACE_URL, EXTRA_TAB_WORKSPACE_URL));

        // Unit Testing
        UNIT_TESTING_USER = ConfigDAO.getString(PROPERTY_UNIT_TESTING_USER, UNIT_TESTING_USER);
        UNIT_TESTING_PASSWORD = ConfigDAO.getString(PROPERTY_UNIT_TESTING_PASSWORD, UNIT_TESTING_PASSWORD);
        UNIT_TESTING_FOLDER = ConfigDAO.getString(PROPERTY_UNIT_TESTING_FOLDER, UNIT_TESTING_FOLDER);

        // Extended security
        SECURITY_EXTENDED_MASK = ConfigDAO.getInteger(PROPERTY_SECURITY_EXTENDED_MASK, Integer.valueOf(
                cfg.getProperty(PROPERTY_SECURITY_EXTENDED_MASK, String.valueOf(SECURITY_EXTENDED_MASK))));
        values.put(PROPERTY_SECURITY_EXTENDED_MASK, Integer.toString(SECURITY_EXTENDED_MASK));

        // RSS news
        RSS_NEWS = ConfigDAO.getBoolean(PROPERTY_RSS_NEWS, RSS_NEWS);
        RSS_NEWS_BOX_WIDTH = ConfigDAO.getInteger(PROPERTY_RSS_NEWS_BOX_WIDTH, RSS_NEWS_BOX_WIDTH);
        RSS_NEWS_MAX_SIZE = ConfigDAO.getInteger(PROPERTY_RSS_NEWS_MAX_SIZE, RSS_NEWS_MAX_SIZE);
        RSS_NEWS_VISIBLE = ConfigDAO.getInteger(PROPERTY_RSS_NEWS_VISIBLE, RSS_NEWS_VISIBLE);

        for (Entry<String, String> entry : values.entrySet()) {
            log.info("RELOAD - {}={}", entry.getKey(), entry.getValue());
        }
    } catch (DatabaseException e) {
        log.error("** Error reading configuration table **");
    } catch (IOException e) {
        log.error("** Error reading configuration table **");
    } catch (Exception e) {
        log.error("** Unknown error: {} **", e.getMessage());
    }
}

From source file:com.redhat.satellite.search.rpc.handlers.IndexHandler.java

License:Open Source License

/**
 * Search index/*from  w w w . j  ava 2  s .c o  m*/
 *
 * @param sessionId
 *            user's application session id
 * @param indexName
 *            index to use
 * @param query
 *            search query
 *  @param lang
 *            language
 *  @param isFineGrained
 *            if set will restrict matches to be stricter and less forgiving
 * @return list of document ids as results
 * @throws XmlRpcFault something bad happened
 */
public List<Result> search(long sessionId, String indexName, String query, String lang, boolean isFineGrained)
        throws XmlRpcFault {
    if (log.isDebugEnabled()) {
        log.debug("IndexHandler:: searching for: " + query + ", indexName = " + indexName + ", lang = " + lang);
    }
    boolean retry = true;
    while (retry) {
        try {
            retry = false;
            List<Result> hits = indexManager.search(indexName, query, lang, isFineGrained);
            if (indexName.equals("package") || indexName.equals("errata") || indexName.equals("server")) {
                return screenHits(sessionId, indexName, hits);
            }
            return hits;
        } catch (IndexingException e) {
            log.error("Caught exception: ", e);
            throw new XmlRpcFault(INDEX_ERROR, e.getMessage());
        } catch (QueryParseException e) {
            log.error("Caught exception: ", e);
            throw new XmlRpcFault(QUERY_ERROR, e.getMessage());
        } catch (SQLException e) {
            log.error("Caught exception: ", e);
            throw new XmlRpcFault(DB_ERROR, e.getMessage());
        } catch (BooleanQuery.TooManyClauses e) {
            int oldQueries = BooleanQuery.getMaxClauseCount();
            if (Integer.MAX_VALUE / 2 > oldQueries) {
                // increase number of max clause count
                // if there's no overflow danger
                int newQueries = oldQueries * 2;
                log.error("Too many hits for query: " + oldQueries + ".  Increasing max clause count to "
                        + newQueries + "\nexception message: " + e.getMessage());
                BooleanQuery.setMaxClauseCount(newQueries);
                retry = true;
            } else {
                // there's no more help
                throw e;
            }
        }
    }
    // return just because of compiler
    return null;
}

From source file:com.romeikat.datamessie.core.processing.service.fulltext.query.LuceneQueryExecutor.java

License:Open Source License

private FullTextQuery createFullTextQuery(final LuceneQuery luceneQuery, final FullTextSession fullTextSession,
        final Analyzer analyzer, final String field) throws ParseException {
    BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);
    final AnalyzingQueryParser queryParser = new AnalyzingQueryParser(field, analyzer);
    final Query query = queryParser.parse(luceneQuery.getLuceneQueryString());
    final FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(query);
    fullTextQuery.setProjection(FullTextQuery.ID, FullTextQuery.DOCUMENT_ID);
    return fullTextQuery;
}