package at.gv.egovernment.moa.id.config.auth; import java.util.Date; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; import at.gv.egovernment.moa.id.protocols.pvp2x.metadata.MOAMetadataProvider; import at.gv.egovernment.moa.logging.Logger; public class AuthConfigLoader implements Runnable { private static final long INTERVAL = 60; // 60 sec public void run() { while (true) { try { Thread.sleep(INTERVAL * 1000); Logger.info("check for new config."); MOAIDConfiguration moaidconfig = ConfigurationDBRead.getMOAIDConfiguration(); Date dbdate = moaidconfig.getTimestampItem(); Date pvprefresh = moaidconfig.getPvp2RefreshItem(); Date date = AuthConfigurationProvider.getTimeStamp(); if (dbdate != null && dbdate.after(date)) { AuthConfigurationProvider instance = AuthConfigurationProvider.getInstance(); instance.reloadDataBaseConfig(); } Date pvpdate = MOAMetadataProvider.getTimeStamp(); if (pvprefresh != null && pvpdate != null && pvprefresh.after(pvpdate)) { MOAMetadataProvider.reInitialize(); } } catch (Throwable e) { Logger.warn("MOA-ID Configuration is actually not loadable. Reuse old configuration.", e); } finally { ConfigurationDBUtils.closeSession(); } } } public static void start() { // start the session cleanup thread Thread configLoader = new Thread(new AuthConfigLoader()); configLoader.setName("ConfigurationLoader"); configLoader.setDaemon(true); configLoader.setPriority(Thread.MIN_PRIORITY); configLoader.start(); } }