diff --git a/component/common/src/main/java/io/meeds/spring/AvailableIntegration.java b/component/common/src/main/java/io/meeds/spring/AvailableIntegration.java index 729d3b15a0..1c6a3e5cfa 100644 --- a/component/common/src/main/java/io/meeds/spring/AvailableIntegration.java +++ b/component/common/src/main/java/io/meeds/spring/AvailableIntegration.java @@ -72,6 +72,12 @@ private AvailableIntegration() {} */ public static final String WEB_TRANSACTION_MODULE = "io.meeds.spring.web.transaction"; + /** + * Used to reuse the same Quartz Sheduler as the PortalContainer instance to + * optimize and centralize settings. + */ + public static final String QUARTZ_SHEDULER_MODULE = "io.meeds.spring.quartz"; + /** * Shortcut to list all available Meeds Portal and Kernel integration modules with Spring */ diff --git a/component/common/src/main/java/io/meeds/spring/kernel/QuartzConfiguration.java b/component/common/src/main/java/io/meeds/spring/kernel/QuartzConfiguration.java new file mode 100644 index 0000000000..961304a62f --- /dev/null +++ b/component/common/src/main/java/io/meeds/spring/kernel/QuartzConfiguration.java @@ -0,0 +1,39 @@ +/** + * This file is part of the Meeds project (https://meeds.io/). + * + * Copyright (C) 2020 - 2023 Meeds Association contact@meeds.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package io.meeds.spring.kernel; + +import org.quartz.Scheduler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import org.exoplatform.services.scheduler.impl.QuartzSheduler; + +/** + * A configuration setting for Spring in order to reuse the PortalContainer + * Quartz Scheduler instance + */ +@Configuration +public class QuartzConfiguration { + + @Bean + public Scheduler scheduler(QuartzSheduler quartzSheduler) { + return quartzSheduler.getQuartzSheduler(); + } + +}