Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,24 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/

import com.condation.cms.api.configuration.Config;
import com.condation.cms.api.eventbus.Event;

/**
*
* @author t.marx
*/
public record ConfigurationFileChanged(Class<? extends Config> clazz) implements Event {
public record ConfigurationFileChanged(String configurationClassName) implements Event {

public ConfigurationFileChanged(Class<? extends Config> configClass) {
this(configClass.getName());
}

public Class clazz() {
try {
return Class.forName(configurationClassName);
} catch (ClassNotFoundException ex) {
throw new RuntimeException("", ex);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*/


import com.condation.cms.api.SiteProperties;
import com.condation.cms.api.scheduler.CronJob;
import com.condation.cms.api.scheduler.CronJobContext;
import lombok.RequiredArgsConstructor;
Expand All @@ -48,18 +49,22 @@ public class AbstractCronJobScheduler {

private final Scheduler scheduler;
private final CronJobContext context;
private final SiteProperties siteProperties;

protected void schedule(
String cronExpression,
String name,
CronJob job,
Class<? extends Job> jobClass) {

var identity = "%s-%s".formatted(siteProperties.id(), name);

JobDataMap data = new JobDataMap();
data.put(SingleCronJobRunner.DATA_CRONJOB, job);
data.put(SingleCronJobRunner.DATA_CONTEXT, context);
JobDetail jobDetail = JobBuilder
.newJob(jobClass)
.withIdentity(name)
.withIdentity(identity)
.usingJobData(data)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*/


import com.condation.cms.api.SiteProperties;
import com.condation.cms.api.scheduler.CronJob;
import com.condation.cms.api.scheduler.CronJobContext;
import com.condation.cms.api.scheduler.CronJobScheduler;
Expand All @@ -35,9 +36,9 @@
*/
@Slf4j
public class SingleCronJobScheduler extends AbstractCronJobScheduler implements CronJobScheduler {

public SingleCronJobScheduler(Scheduler scheduler, CronJobContext context) {
super(scheduler, context);
public SingleCronJobScheduler(Scheduler scheduler, CronJobContext context, SiteProperties siteProperties) {
super(scheduler, context, siteProperties);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*/


import com.condation.cms.api.SiteProperties;
import com.condation.cms.api.scheduler.CronJob;
import com.condation.cms.api.scheduler.CronJobContext;
import com.condation.cms.api.scheduler.CronJobScheduler;
Expand All @@ -36,8 +37,8 @@
@Slf4j
public class SiteCronJobScheduler extends AbstractCronJobScheduler implements CronJobScheduler {

public SiteCronJobScheduler(Scheduler scheduler, CronJobContext context) {
super(scheduler, context);
public SiteCronJobScheduler(Scheduler scheduler, CronJobContext context, SiteProperties siteProperties) {
super(scheduler, context, siteProperties);
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion cms-server/hosts/features/site.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ hostname:
- localhost2
baseurl: "http://localhost2:1010"
language: en
test: Hallo12
test: Hallo
theme: test
cache:
content: true
Expand Down
2 changes: 2 additions & 0 deletions cms-server/src/main/java/com/condation/cms/server/VHost.java
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ public void init(Path modulesPath, Injector globalInjector) throws IOException {
var moduleManager = injector.getInstance(ModuleManager.class);
var contentResolver = injector.getInstance(ContentResolver.class);
var requestContextFactory = injector.getInstance(RequestContextFactory.class);
// start configuration managment
injector.getInstance(ConfigurationManagement.class);

cmsModuleContext.add(
ContentRenderFeature.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ public GlobalHooks globalHooks (SingleCronJobScheduler scheduler, @Named("global

@Provides
@Singleton
public SiteCronJobScheduler cronJobScheduler (Scheduler scheduler, CronJobContext context) {
return new SiteCronJobScheduler(scheduler, context);
public SiteCronJobScheduler cronJobScheduler (Scheduler scheduler, CronJobContext context, SiteProperties siteProperties) {
return new SiteCronJobScheduler(scheduler, context, siteProperties);
}
@Provides
@Singleton
public SingleCronJobScheduler singleCronJobScheduler (Scheduler scheduler, CronJobContext context) {
return new SingleCronJobScheduler(scheduler, context);
public SingleCronJobScheduler singleCronJobScheduler (Scheduler scheduler, CronJobContext context, SiteProperties siteProperties) {
return new SingleCronJobScheduler(scheduler, context, siteProperties);
}

@Provides
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
import com.condation.cms.content.DefaultContentRenderer;
import com.condation.cms.content.TaxonomyResolver;
import com.condation.cms.content.ViewResolver;
import com.condation.cms.core.eventbus.DefaultEventBus;
import com.condation.cms.extensions.ExtensionManager;
import com.condation.cms.filesystem.FileDB;
import com.condation.cms.filesystem.MetaData;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*/

import com.condation.cms.api.ServerProperties;
import com.condation.cms.api.SiteProperties;
import com.condation.cms.api.configuration.Configuration;
import com.condation.cms.api.configuration.ConfigurationManagement;
import com.condation.cms.api.configuration.configs.ServerConfiguration;
Expand Down Expand Up @@ -71,8 +72,10 @@ public class ConfigurationManagementReloadTest {
static void setup() throws IOException, SchedulerException {

var serverProps = Mockito.mock(ServerProperties.class);
var siteProps = Mockito.mock(SiteProperties.class);

Mockito.when(serverProps.env()).thenReturn("dev");
Mockito.when(siteProps.id()).thenReturn("site");

configuration = new Configuration(Path.of("reload/"));
configuration.add(ServerConfiguration.class, new ServerConfiguration(serverProps));
Expand All @@ -85,7 +88,11 @@ static void setup() throws IOException, SchedulerException {
scheduler.start();


configurationManagement = new ConfigurationManagement(db, configuration, new SingleCronJobScheduler(scheduler, new CronJobContext()), eventBus);
configurationManagement = new ConfigurationManagement(
db,
configuration,
new SingleCronJobScheduler(scheduler, new CronJobContext(), siteProps),
eventBus);
configurationManagement.init("0/5 * * * * ?");
}

Expand Down