de.ingrid.portal.config.PortalConfig.java Source code

Java tutorial

Introduction

Here is the source code for de.ingrid.portal.config.PortalConfig.java

Source

/*
 * **************************************************-
 * Ingrid Portal Apps
 * ==================================================
 * Copyright (C) 2014 - 2015 wemove digital solutions GmbH
 * ==================================================
 * Licensed under the EUPL, Version 1.1 or  as soon they will be
 * approved by the European Commission - subsequent versions of the
 * EUPL (the "Licence");
 * 
 * You may not use this work except in compliance with the Licence.
 * You may obtain a copy of the Licence at:
 * 
 * http://ec.europa.eu/idabc/eupl5
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the Licence for the specific language governing permissions and
 * limitations under the Licence.
 * **************************************************#
 */
/*
 * Copyright (c) 2006 wemove digital solutions. All rights reserved.
 */
package de.ingrid.portal.config;

import java.io.File;
import java.net.URL;
import java.util.Iterator;

import org.apache.commons.configuration.PropertiesConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.tngtech.configbuilder.ConfigBuilder;

import de.ingrid.portal.Configuration;

/**
 * Provides access to the ingrid portal preferences.
 * 
 * @author joachim@wemove.com
 */
public class PortalConfig extends PropertiesConfiguration {

    /** how old can rss news be, before the are deleted from news history in days */
    public final static String RSS_HISTORY_DAYS = "rss.history.days";

    /** define number of rss feeds for RSSNewsTeaserPortlet */
    public final static String PORTAL_RSS_NEWS_NUMBER = "portal.rss.news.number";

    /**
     * timout for queries in ms should be larger than query.timout.ranked and
     * query.timout.unranked because ranked and unranked query is encapsulated
     * inside a threaded query
     */
    public final static String QUERY_TIMEOUT_THREADED = "query.timeout.threaded";

    /** timout for ranked queries in ms */
    public final static String QUERY_TIMEOUT_RANKED = "query.timeout.ranked";

    /** timout for unranked queries in ms */
    public final static String QUERY_TIMEOUT_UNRANKED = "query.timeout.unranked";

    /** default timeout for sns queries in ms */
    public final static String SNS_TIMEOUT_DEFAULT = "sns.timeout.default";

    /**
     * always read values from database or only once and then from cache, true
     * or false
     */
    public final static String ALWAYS_REREAD_DB_VALUES = "db.reread";

    public final static String EMAIL_REGISTRATION_CONFIRMATION_SENDER = "email.registration.confirmation.sender";

    public static final String EMAIL_SMTP_SERVER = "email.smtp.server";
    public static final String EMAIL_SMTP_USER = "email.smtp.user";
    public static final String EMAIL_SMTP_PASSWORD = "email.smtp.password";
    public static final String EMAIL_SMTP_PORT = "email.smtp.port";
    public static final String EMAIL_SMTP_SSL = "email.smtp.ssl";
    public static final String EMAIL_SMTP_PROTOCOL = "email.smtp.protocol";

    public static final String EMAIL_WEBMASTER = "email.webmaster";

    public static final String EMAIL_CONTACT_FORM_RECEIVER = "email.contact.form.receiver";

    public static final String QUERY_HISTORY_DISPLAY_SIZE = "query.history.display.size";

    public static final String DETAILS_GENERIC_UCFIRST_STOPWORDS = "detail.generic.ucfirst.stopwords";

    public static final String SAVE_ENTRIES_MAX_NUMBER = "save.entries.max.number";

    public static final String WMS_MAPBENDER_ADMIN_URL = "wms.mapbender.admin.url";

    public static final String WMS_MAPLAB_ADMIN_URL = "wms.maplab.admin.url";

    public static final String APACHE_STATISTICS_URL = "apache.statistics.url";

    public static final String UDK_FIELDS_DATE = "udk.fields.date";

    public static final String UDK_FIELDS_TRANSLATE = "udk.fields.translate";

    public static final String PORTAL_PROFILES = "portal.profiles";

    public static final String PORTAL_PROFILE = "portal.profile";

    public static final String PORTAL_ENABLE_SEARCH_TOPICS_SEARCHTERM = "portal.enable.search.topics.searchterm";

    public static final String PORTAL_ENABLE_SEARCH_MEASURES_SEARCHTERM = "portal.enable.search.measures.searchterm";

    public static final String PORTAL_ENABLE_SEARCH_SERVICES_SEARCHTERM = "portal.enable.search.services.searchterm";

    public static final String PORTAL_ENABLE_SEARCH_TOPICS_GROUPING = "portal.enable.search.topics.grouping";

    public static final String PORTAL_ENABLE_SEARCH_MEASURES_GROUPING = "portal.enable.search.measures.grouping";

    public static final String PORTAL_ENABLE_SEARCH_SERVICES_GROUPING = "portal.enable.search.services.grouping";

    public static final String PORTAL_ENABLE_SEARCH_TOPICS_DOSEARCH = "portal.enable.search.topics.dosearch";

    public static final String PORTAL_ENABLE_SEARCH_MEASURES_DOSEARCH = "portal.enable.search.measures.dosearch";

    public static final String PORTAL_ENABLE_SEARCH_SERVICES_DOSEARCH = "portal.enable.search.services.dosearch";

    public static final String PORTAL_ENABLE_SEARCH_TOPICS_PROVIDER = "portal.enable.search.topics.provider";

    public static final String PORTAL_ENABLE_SEARCH_MEASURES_PROVIDER = "portal.enable.search.measures.provider";

    public static final String PORTAL_ENABLE_SEARCH_SERVICES_PROVIDER = "portal.enable.search.services.provider";

    public static final String PORTAL_TOPIC_SELECTION_LIST_NUMBER = "portal.topic.selection.list.number";

    public static final String PORTAL_ENABLE_SEARCH_SERVICES_CATEGORY = "service.selection.enable.category";

    public static final String PORTAL_ENABLE_SEARCH_CATALOG = "portal.enable.search.catalog";

    public static final String PORTAL_ENABLE_SEARCH_CATALOG_THESAURUS = "portal.enable.search.catalog.thesaurus";

    public static final String PORTAL_ENABLE_SEARCH_CATALOG_THESAURUS_RESULT_ADDRESS = "portal.enable.search.catalog.thesaurus.result.address";

    public static final String PORTAL_ENABLE_SEARCH_CATALOG_HIERARCHY_TREE = "portal.enable.search.catalog.hierarchy.tree";

    public static final String PORTAL_ENABLE_DATASOURCE_RESEARCH = "portal.enable.datasource.research";

    public static final String PORTAL_ENABLE_DATASOURCE_ADDRESSES = "portal.enable.datasource.addresses";

    public static final String PORTAL_ENABLE_DATASOURCE_LAWS = "portal.enable.datasource.laws";

    public static final String PORTAL_ENABLE_DATASOURCE_CATALOG = "portal.enable.datasource.catalog";

    public static final String PORTAL_SEARCH_RESTRICT_PARTNER = "portal.search.restrict.partner";

    public static final String PORTAL_SEARCH_RESTRICT_PARTNER_LEVEL = "portal.search.restrict.partner.level";

    public static final String PORTAL_SEARCH_DISPLAY_PROVIDERS = "portal.search.display.providers";
    public static final String PORTAL_SEARCH_DISPLAY_PROVIDERS_ADDRESS = "portal.search.display.providers.address";
    public static final String PORTAL_SEARCH_DISPLAY_PROVIDERS_ENVINFO = "portal.search.display.providers.default";
    public static final String PORTAL_SEARCH_DISPLAY_PROVIDERS_LAW = "portal.search.display.providers.law";
    public static final String PORTAL_SEARCH_DISPLAY_PROVIDERS_RESEARCH = "portal.search.display.providers.research";

    public static final String PORTAL_LOGGER_RESOURCE = "portal.logger.resource";

    public static final String PORTAL_ENABLE_MEASURE = "portal.enable.measure";

    public static final String PORTAL_ENABLE_SERVICE = "portal.enable.service";

    public static final String PORTAL_ENABLE_TOPIC = "portal.enable.topic";

    public static final String PORTAL_ENABLE_ABOUT = "portal.enable.about";

    public static final String PORTAL_ENABLE_PARTNER = "portal.enable.partner";

    public static final String PORTAL_ENABLE_CHRONICLE = "portal.enable.chronicle";

    public static final String PORTAL_ENABLE_MAPS = "portal.enable.maps";

    public static final String PORTAL_ENABLE_DEFAULT_GROUPING_DOMAIN = "portal.enable.default.grouping.domain";

    public static final String PORTAL_ENABLE_SEARCH_RESULTS_UNRANKED = "portal.enable.search.results.unranked";

    public static final String PORTAL_ENABLE_SEARCH_RESULTS_UNRANKED_ALLIPLUGS = "portal.enable.search.results.unranked.alliplugs";

    public static final String PORTAL_ENABLE_NEWSLETTER = "enable.newsletter.registration";

    public static final String PORTAL_ENABLE_ACCOUNT_QUESTION = "enable.account.registration.question";

    public static final String PORTAL_ENABLE_NEWSLETTER_CMS_INFO = "enable.newsletter.cms.info";

    public static final String THESAURUS_INFO_LINK = "thesaurus.info.use.link";

    public static final String PORTAL_ENABLE_SNS_LOGO = "portal.enable.sns.logo";

    public static final String COMPONENT_MONITOR_ALERT_EMAIL_SUBJECT = "component.monitor.alert.email.subject";

    public static final String COMPONENT_MONITOR_ALERT_EMAIL_SENDER = "component.monitor.alert.email.sender";

    public static final String COMPONENT_MONITOR_DEFAULT_EMAIL = "component.monitor.default.email";

    public static final String COMPONENT_MONITOR_SNS_LOGIN = "component.monitor.sns.login";

    public static final String COMPONENT_MONITOR_SNS_PASSWORD = "component.monitor.sns.password";

    public static final String COMPONENT_MONITOR_UPDATE_ALERT_EMAIL_SUBJECT = "component.monitor.update.alert.email.subject";

    public static final String PORTAL_ENABLE_SEARCH_SEPERATOR = "portal.enable.search.seperator";

    public static final String THESAURUS_SEARCH_QUERY_TYPES = "thesaurus.search.query.types";

    public static final String THESAURUS_SEARCH_ADD_EN_TERM = "thesaurus.search.add.en.term";

    public static final String TEASER_WEATHER_DWD_PATH = "teaser.weather.dwd.path";

    public static final String TEASER_WEATHER_DWD_MOVIE = "teaser.weather.dwd.movie";

    // contains the short version of all supported languages
    public static final String LANGUAGES_SHORT = "languages.short";

    // the specific language is added after this variable (e.g. languages.names.de) 
    public static final String LANGUAGES_NAMES = "languages.names.";

    // the url to the upgrade server
    public static final String UPGRADE_SERVER_URL = "upgrade.server.url";

    public static final String UPGRADE_SERVER_USERNAME = "upgrade.server.username";

    public static final String UPGRADE_SERVER_PASSWORD = "upgrade.server.password";

    // disable button and textfield for edit partner/provider 
    public static final String DISABLE_PARTNER_PROVIDER_EDIT = "portal.disable.partner.provider.edit";

    // disable piwik
    public static final String ENABLE_PIWIK = "portal.enable.piwik";

    // Hidden iPlug ID list
    public static final String HIDE_IPLUG_ID_LIST = "hide.in.connected.iplugs";

    // User admin: show max row of users in a table
    public static final String USER_ADMIN_MAX_ROW = "admin.user.max.row";

    public static final String PORTAL_ENABLE_FEATURE_TYPE = "portal.feature.type.enable";

    public static final String PORTAL_SEARCH_LANGUAGE_INDEPENDENT = "portal.search.language.independent";

    public static final String PORTAL_ENABLE_SEARCH_SIMPLE_DATASOURCE_SELECTION = "portal.enable.search.simple.datasource.selection";

    public static final String PORTAL_ENABLE_SEARCH_SIMPLE_OPTIONAL_LINKS = "portal.enable.search.simple.optional.links";

    public static final String PORTAL_ENABLE_APPLICATION = "portal.enable.application";

    // Hide CMS items for changing on admin page
    public static final String PORTAL_ADMIN_HIDE_CMS_ITEMS = "portal.admin.hide.cms.items";

    // Enable facete on search hits
    public static final String PORTAL_ENABLE_SEARCH_FACETE = "portal.search.facete.enable";

    public static final String PORTAL_SEARCH_HIDDEN_DATATYPES = "portal.search.hidden.datatype";

    // Enable debug mode of webmap-client
    public static final String PORTAL_WEBMAPCLIENT_DEBUG = "portal.webmapclient.debug";

    public static final String PORTAL_ADMIN_NUMBER_ROW_PROVIDER = "portal.admin.number.row.provider";

    public static final String PORTAL_ADMIN_NUMBER_ROW_PARTNER = "portal.admin.number.row.partner";

    // Link to CSW Interface
    public static final String CSW_INTERFACE_URL = "csw.interface.url";

    public static final String PORTAL_CONTACT_UPLOAD_ENABLE = "email.contact.upload.enable";
    public static final String PORTAL_CONTACT_UPLOAD_SIZE = "email.contact.upload.size";

    public static final String PORTAL_DETAIL_VIEW_HIDDEN_KEYWORDS = "portal.detail.view.hidden.keywords";

    public static final String PORTAL_DETAIL_VIEW_LIMIT_REFERENCES = "portal.detail.view.limit.references";

    // private stuff
    private static PortalConfig instance = null;

    private static Configuration config = null;

    private final static Logger log = LoggerFactory.getLogger(PortalConfig.class);

    public static synchronized PortalConfig getInstance() {
        if (instance == null) {
            try {
                instance = new PortalConfig();
                config = new ConfigBuilder<Configuration>(Configuration.class).build();
                config.initialize();
            } catch (Exception e) {
                if (log.isErrorEnabled()) {
                    log.error(
                            "Error loading the portal config application config file. (ingrid-portal-apps.properties)",
                            e);
                }
            }
        }
        return instance;
    }

    private PortalConfig() throws Exception {
        super("ingrid-portal-apps.properties");
        //this.setReloadingStrategy(ReloadingStrategy)
        URL url = this.getClass().getResource("/ingrid-portal-apps.override.properties");
        if (url != null) {
            File f = new File(url.getPath());
            PropertiesConfiguration userConfig = new PropertiesConfiguration(f);
            Iterator<String> it = userConfig.getKeys();
            while (it.hasNext()) {
                String key = it.next();
                this.setProperty(key, userConfig.getProperty(key));
            }
        }
    }
}