/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Copyright (c) 2013, MPL CodeInside http://codeinside.ru
*/
package ru.codeinside.gses.webui;
import commons.Streams;
import ru.codeinside.gses.service.ActivitiService;
import ru.codeinside.gses.service.ExecutorService;
import ru.codeinside.gses.webui.osgi.Activator;
import ru.codeinside.gses.webui.utils.RunProfile;
import javax.ejb.Singleton;
import javax.inject.Inject;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.io.File;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
@WebListener
@Singleton
public class WebContext implements ServletContextListener {
final Logger logger = Logger.getLogger(getClass().getName());
@Inject
ActivitiService activitiService;
@Inject
ExecutorService executorService;
@Inject
ActivitiJobProvider activitiJobProvider;
@Override
public void contextInitialized(final ServletContextEvent event) {
System.setProperty("ru.codeinside.gses.webui.productionMode", Boolean.toString(RunProfile.isProduction()));
File tmpDir = (File) event.getServletContext().getAttribute(ServletContext.TEMPDIR);
Streams.init(tmpDir);
ActivitiService.INSTANCE.set(activitiService);
ExecutorService.INSTANCE.set(executorService);
final long millis = System.currentTimeMillis() - Activator.getStartTimeMillis();
final long seconds = TimeUnit.SECONDS.convert(millis, TimeUnit.MILLISECONDS);
logger.info("\n--- Запуск WEB клиента завершён за " + seconds + " секунд ---\n");
}
@Override
public void contextDestroyed(final ServletContextEvent unused) {
ActivitiService.INSTANCE.set(null);
ExecutorService.INSTANCE.set(null);
logger.info("\n--- Остановка WEB клиента ---\n");
}
}