package org.epics.archiverappliance.mgmt; import java.util.concurrent.ScheduledFuture; import org.apache.log4j.Logger; import org.epics.archiverappliance.config.ApplianceInfo; import org.epics.archiverappliance.config.ConfigService; import org.epics.archiverappliance.utils.ui.GetUrlContent; /** * This pings the mgmt web app to let it know that we have started up. * @author mshankar * */ public class NonMgmtPostStartup implements Runnable { private static Logger logger = Logger.getLogger(NonMgmtPostStartup.class.getName()); private ScheduledFuture<?> cancellingFuture; private ConfigService configService; private String warFile; public NonMgmtPostStartup(ConfigService configService, String warFile) { this.configService = configService; this.warFile = warFile; logger.debug("NonMgmtPostStartup for " + warFile); } @Override public void run() { ApplianceInfo myApplianceInfo = configService.getMyApplianceInfo(); logger.info("Starting NonMgmtPostStartup for " + this.warFile + " on appliance " + myApplianceInfo.getIdentity()); if(configService.isStartupComplete()) { cancellingFuture.cancel(false); logger.info("Startup complete for webappp " + this.warFile); } else { String mgmtPingURL = myApplianceInfo.getMgmtURL() + "/webAppReady?webapp=" + warFile; logger.info("Pinging the management webapp using " + mgmtPingURL); GetUrlContent.checkURL(mgmtPingURL); } } public void setCancellingFuture(ScheduledFuture<?> cancellingFuture) { this.cancellingFuture = cancellingFuture; } }