/**
* Copyright (c) 2014-2017 by the respective copyright holders.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.smarthome.core.scheduler.internal;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Extension of the default OSGi bundle activator
*
* @author Thomas.Eichstaedt-Engelen
*/
public final class SchedulerActivator implements BundleActivator {
private final Logger logger = LoggerFactory.getLogger(SchedulerActivator.class);
private static BundleContext context;
/**
* Called whenever the OSGi framework starts our bundle
*/
@Override
public void start(BundleContext bc) throws Exception {
context = bc;
logger.debug("Scheduler has been started.");
try {
StdSchedulerFactory.getDefaultScheduler().start();
} catch (SchedulerException se) {
logger.error("initializing scheduler throws exception", se);
}
}
/**
* Called whenever the OSGi framework stops our bundle
*/
@Override
public void stop(BundleContext bc) throws Exception {
context = null;
logger.debug("Scheduler has been stopped.");
try {
StdSchedulerFactory.getDefaultScheduler().shutdown();
} catch (SchedulerException se) {
logger.error("shutting down scheduler throws exception", se);
}
}
/**
* Returns the bundle context of this bundle
*
* @return the bundle context
*/
public static BundleContext getContext() {
return context;
}
}