mirror of
https://github.com/fabioformosa/quartz-manager.git
synced 2026-05-14 22:00:30 +09:00
#52 added the job className to the trigger detail view
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
4
quartz-manager-frontend/src/app/model/jobDetail.model.ts
Normal file
4
quartz-manager-frontend/src/app/model/jobDetail.model.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export class JobDetail {
|
||||
jobClassName: string;
|
||||
description: string;
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import {Moment} from 'moment/moment';
|
||||
|
||||
export class SimpleTriggerForm {
|
||||
triggerName: string;
|
||||
jobClass: string;
|
||||
startDate: Moment;
|
||||
endDate: Moment;
|
||||
repeatCount: number;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -64,8 +64,6 @@ public class TriggerController extends AbstractTriggerController {
|
||||
return newTriggerDTO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PutMapping("/{name}")
|
||||
@Operation(summary = "Reschedule the trigger")
|
||||
@ApiResponses(value = {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -21,5 +21,6 @@ public class TriggerDTO {
|
||||
private int misfireInstruction;
|
||||
private Date nextFireTime;
|
||||
private JobKeyDTO jobKeyDTO;
|
||||
private JobDetailDTO jobDetailDTO;
|
||||
private boolean mayFireAgain;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user