/* DigiDoc4J library
*
* This software is released under either the GNU Library General Public
* License (see LICENSE.LGPL).
*
* Note that the only valid version of the LGPL license as far as this
* project is concerned is the original GNU Library General Public License
* Version 2.1, February 1999
*/
package org.digidoc4j.impl.ddoc;
import java.io.Serializable;
import org.digidoc4j.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ee.sk.utils.ConfigManager;
public class ConfigManagerInitializer implements Serializable{
private static final Logger logger = LoggerFactory.getLogger(ConfigManagerInitializer.class);
static boolean configManagerInitialized = false;
public void initConfigManager(Configuration configuration) {
if(!configManagerInitialized) {
initializeJDigidocConfigManager(configuration);
} else {
logger.debug("Skipping DDoc configuration manager initialization");
}
}
public static synchronized void forceInitConfigManager(Configuration configuration) {
logger.info("Initializing DDoc configuration manager");
ConfigManager.init(configuration.getJDigiDocConfiguration());
ConfigManager.addProvider();
configManagerInitialized = true;
}
public static boolean isConfigManagerInitialized() {
return configManagerInitialized;
}
synchronized void initializeJDigidocConfigManager(Configuration configuration) {
//Using double-checked locking to avoid other threads to start initialization
if(!configManagerInitialized) {
forceInitConfigManager(configuration);
}
}
}