#52 added the job className to the trigger detail view

This commit is contained in:
Fabio Formosa
2022-09-03 16:30:51 +02:00
parent 9638667368
commit 599b6fb0b4
12 changed files with 88 additions and 6 deletions

View File

@@ -14,7 +14,15 @@
matInput placeholder="Repeat Interval [in mills]" name="triggerName"
[(ngModel)]="simpleTriggerForm.triggerName">
</mat-form-field>
</div>
<div>
<mat-form-field [appearance]="enabledTriggerForm ? 'standard': 'none'">
<mat-label>Job Class</mat-label>
<input [readonly]="!enabledTriggerForm"
matInput placeholder="Job Class Name" name="jobClass"
[(ngModel)]="simpleTriggerForm.jobClass">
</mat-form-field>
</div>
<div>

View File

@@ -95,6 +95,7 @@ export class SimpleTriggerConfigComponent implements OnInit {
private _fromTriggerToForm = (simpleTrigger: SimpleTrigger): SimpleTriggerForm => {
const command = new SimpleTriggerForm();
command.triggerName = simpleTrigger.triggerKeyDTO.name;
command.jobClass = simpleTrigger.jobDetailDTO.jobClassName;
command.repeatCount = simpleTrigger.repeatCount;
command.repeatInterval = simpleTrigger.repeatInterval;
command.startDate = moment(simpleTrigger.startTime);

View File

@@ -0,0 +1,4 @@
export class JobDetail {
jobClassName: string;
description: string;
}

View File

@@ -2,6 +2,7 @@ import {Moment} from 'moment/moment';
export class SimpleTriggerForm {
triggerName: string;
jobClass: string;
startDate: Moment;
endDate: Moment;
repeatCount: number;

View File

@@ -1,5 +1,6 @@
import {TriggerKey} from './triggerKey.model';
import {JobKeyModel} from './jobKey.model';
import {JobDetail} from './jobDetail.model';
export class Trigger {
triggerKeyDTO: TriggerKey;
@@ -11,5 +12,6 @@ export class Trigger {
misfireInstruction: number;
nextFireTime: Date;
jobKeyDTO: JobKeyModel;
jobDetailDTO: JobDetail;
mayFireAgain: boolean;
}

View File

@@ -0,0 +1,21 @@
package it.fabioformosa.quartzmanager.controllers;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RequestMapping("/quartz-manager/jobs")
@RestController
public class JobController extends AbstractTriggerController {
@GetMapping
public List<String> listJobs(){
List jobClasses = new ArrayList();
jobClasses.add(jobClassname);
return jobClasses;
}
}

View File

@@ -64,8 +64,6 @@ public class TriggerController extends AbstractTriggerController {
return newTriggerDTO;
}
@PutMapping("/{name}")
@Operation(summary = "Reschedule the trigger")
@ApiResponses(value = {

View File

@@ -0,0 +1,26 @@
package it.fabioformosa.quartzmanager.converters;
import it.fabioformosa.metamorphosis.core.converters.AbstractBaseConverterToDTO;
import it.fabioformosa.quartzmanager.dto.JobDetailDTO;
import lombok.SneakyThrows;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class JobKeyToJobDetailDTO extends AbstractBaseConverterToDTO<JobKey, JobDetailDTO> {
@Autowired
private Scheduler scheduler;
@SneakyThrows
@Override
protected void convert(JobKey jobKey, JobDetailDTO jobDetailDTO) {
JobDetail jobDetail = scheduler.getJobDetail(jobKey);
jobDetailDTO.setJobClassName(jobDetail.getJobClass().getName());
jobDetailDTO.setDescription(jobDetail.getDescription());
//jobDetail.getJobDataMap();
}
}

View File

@@ -1,6 +1,7 @@
package it.fabioformosa.quartzmanager.converters;
import it.fabioformosa.metamorphosis.core.converters.AbstractBaseConverter;
import it.fabioformosa.quartzmanager.dto.JobDetailDTO;
import it.fabioformosa.quartzmanager.dto.JobKeyDTO;
import it.fabioformosa.quartzmanager.dto.TriggerDTO;
import it.fabioformosa.quartzmanager.dto.TriggerKeyDTO;
@@ -30,6 +31,9 @@ public class TriggerToTriggerDTO<S extends Trigger, T extends TriggerDTO> extend
JobKey jobKey = source.getJobKey();
JobKeyDTO jobKeyDTO = conversionService.convert(jobKey, JobKeyDTO.class);
target.setJobKeyDTO(jobKeyDTO);
JobDetailDTO jobDetailDTO = conversionService.convert(jobKey, JobDetailDTO.class);
target.setJobDetailDTO(jobDetailDTO);
}
@Override

View File

@@ -0,0 +1,14 @@
package it.fabioformosa.quartzmanager.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class JobDetailDTO {
private String jobClassName;
private String description;
}

View File

@@ -21,5 +21,6 @@ public class TriggerDTO {
private int misfireInstruction;
private Date nextFireTime;
private JobKeyDTO jobKeyDTO;
private JobDetailDTO jobDetailDTO;
private boolean mayFireAgain;
}

View File

@@ -1,10 +1,7 @@
package it.fabioformosa.quartzmanager.services;
import it.fabioformosa.quartzmanager.exceptions.TriggerNotFoundException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerKey;
import org.quartz.*;
import org.springframework.core.convert.ConversionService;
public class AbstractSchedulerService {
@@ -23,4 +20,9 @@ public class AbstractSchedulerService {
throw new TriggerNotFoundException(name);
return trigger;
}
protected JobDetail getJobDetailByKey(JobKey jobKey) throws SchedulerException {
return scheduler.getJobDetail(jobKey);
}
}