org.eclipse.dirigible.components.jobs.config.AutoWiringSpringBeanJobFactory Maven / Gradle / Ivy
The newest version!
/*
* Copyright (c) 2024 Eclipse Dirigible contributors
*
* All rights reserved. This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* SPDX-FileCopyrightText: Eclipse Dirigible contributors SPDX-License-Identifier: EPL-2.0
*/
package org.eclipse.dirigible.components.jobs.config;
import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.scheduling.quartz.SpringBeanJobFactory;
import org.springframework.stereotype.Component;
/**
* A factory for creating AutoWiringSpringBeanJob objects.
*/
@Component
class AutoWiringSpringBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware {
/** The application context. */
private final ApplicationContext applicationContext;
/**
* Instantiates a new auto wiring spring bean job factory.
*
* @param applicationContext the application context
*/
AutoWiringSpringBeanJobFactory(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
/**
* Creates a new AutoWiringSpringBeanJob object.
*
* @param bundle the bundle
* @return the object
* @throws Exception the exception
*/
@Override
protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception {
final Object job = super.createJobInstance(bundle);
AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
beanFactory.autowireBean(job);
return job;
}
}