Index: lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java =================================================================== diff -u -r88da40288a02be7961fe7f2e5b6c1c6c78655d59 -r2e04849e53791245a9689df81aec6c3a0315d349 --- lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java (.../Configuration.java) (revision 88da40288a02be7961fe7f2e5b6c1c6c78655d59) +++ lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java (.../Configuration.java) (revision 2e04849e53791245a9689df81aec6c3a0315d349) @@ -25,19 +25,29 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.jboss.as.controller.client.ModelControllerClient; -import org.jboss.as.controller.client.helpers.Operations; -import org.jboss.dmr.ModelNode; +import org.apache.logging.log4j.Logger; import org.lamsfoundation.lams.config.ConfigurationItem; import org.lamsfoundation.lams.config.dao.IConfigurationDAO; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; -import org.quartz.*; +import org.quartz.JobBuilder; +import org.quartz.JobDetail; +import org.quartz.JobKey; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.SimpleScheduleBuilder; +import org.quartz.Trigger; +import org.quartz.TriggerBuilder; +import org.quartz.TriggerKey; import org.springframework.beans.factory.InitializingBean; -import java.io.IOException; -import java.net.ConnectException; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; /** * Configuration Object @@ -195,45 +205,6 @@ // it should be wrapped in HibernateSessionManager.openSession() and closeSession(), // but ConfigurationDAO.getAllItems() does session closing anyway - see LDEV-4801 Configuration.refreshCache(); - - new Thread("LAMSConfigurationServerStateCheckThread") { - @Override - public void run() { - boolean check = true; - do { - // In WildFly 14 the Configuration bean can get created by one of LAMS EAR modules, for example Image Gallery. - // This module's classloader does not have access to java.sql.Connection. - // It should ask its parent for this class, but context class loaders are not obliged to do it and - // apparently WildFly module classloaders do not do it. - // We need to manually reset a classloader for this thread. - // For some reason we need to do it within this loop, not just in run() method. - Thread.currentThread() - .setContextClassLoader(Thread.currentThread().getContextClassLoader().getParent()); - try (ModelControllerClient client = ModelControllerClient.Factory.create("localhost", 9990)) { - // try every 5 seconds - Thread.sleep(5000); - // read servedr state - ModelNode address = new ModelNode().setEmptyList(); - ModelNode op = Operations.createReadAttributeOperation(address, "server-state"); - ModelNode result = client.execute(op); - if (Operations.isSuccessfulOutcome(result)) { - String state = Operations.readResult(result).asString(); - if ("running".equalsIgnoreCase(state)) { - log.info("Refreshing configuration cache after server start"); - // refresh and die - Configuration.refreshCache(); - check = false; - } - } - } catch (ConnectException e) { - // this exception happens all the time until server starts up - } catch (IOException | InterruptedException e) { - // something really wrong happenned, die - check = false; - } - } while (check); - } - }.start(); } /**