diff --git a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html
index 886f35a..09f615d 100644
--- a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html
+++ b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html
@@ -14,7 +14,15 @@
matInput placeholder="Repeat Interval [in mills]" name="triggerName"
[(ngModel)]="simpleTriggerForm.triggerName">
+
+
+
+ Job Class
+
+
diff --git a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts
index a9c2587..8c751ed 100644
--- a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts
+++ b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.ts
@@ -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);
diff --git a/quartz-manager-frontend/src/app/model/jobDetail.model.ts b/quartz-manager-frontend/src/app/model/jobDetail.model.ts
new file mode 100644
index 0000000..2fd533f
--- /dev/null
+++ b/quartz-manager-frontend/src/app/model/jobDetail.model.ts
@@ -0,0 +1,4 @@
+export class JobDetail {
+ jobClassName: string;
+ description: string;
+}
diff --git a/quartz-manager-frontend/src/app/model/simple-trigger.form.ts b/quartz-manager-frontend/src/app/model/simple-trigger.form.ts
index 165f531..91e4966 100644
--- a/quartz-manager-frontend/src/app/model/simple-trigger.form.ts
+++ b/quartz-manager-frontend/src/app/model/simple-trigger.form.ts
@@ -2,6 +2,7 @@ import {Moment} from 'moment/moment';
export class SimpleTriggerForm {
triggerName: string;
+ jobClass: string;
startDate: Moment;
endDate: Moment;
repeatCount: number;
diff --git a/quartz-manager-frontend/src/app/model/trigger.model.ts b/quartz-manager-frontend/src/app/model/trigger.model.ts
index 5b67f47..d49906d 100644
--- a/quartz-manager-frontend/src/app/model/trigger.model.ts
+++ b/quartz-manager-frontend/src/app/model/trigger.model.ts
@@ -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;
}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/JobController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/JobController.java
new file mode 100644
index 0000000..5a37549
--- /dev/null
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/JobController.java
@@ -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 listJobs(){
+ List jobClasses = new ArrayList();
+ jobClasses.add(jobClassname);
+ return jobClasses;
+ }
+
+}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/TriggerController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/TriggerController.java
index edff08d..1982df7 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/TriggerController.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/TriggerController.java
@@ -64,8 +64,6 @@ public class TriggerController extends AbstractTriggerController {
return newTriggerDTO;
}
-
-
@PutMapping("/{name}")
@Operation(summary = "Reschedule the trigger")
@ApiResponses(value = {
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/JobKeyToJobDetailDTO.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/JobKeyToJobDetailDTO.java
new file mode 100644
index 0000000..dbb7a9d
--- /dev/null
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/JobKeyToJobDetailDTO.java
@@ -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 {
+
+ @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();
+ }
+}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/TriggerToTriggerDTO.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/TriggerToTriggerDTO.java
index 3c35a2e..576b453 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/TriggerToTriggerDTO.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/TriggerToTriggerDTO.java
@@ -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 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
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/JobDetailDTO.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/JobDetailDTO.java
new file mode 100644
index 0000000..84998c2
--- /dev/null
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/JobDetailDTO.java
@@ -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;
+
+}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerDTO.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerDTO.java
index 4dd0f26..84fe33f 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerDTO.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerDTO.java
@@ -21,5 +21,6 @@ public class TriggerDTO {
private int misfireInstruction;
private Date nextFireTime;
private JobKeyDTO jobKeyDTO;
+ private JobDetailDTO jobDetailDTO;
private boolean mayFireAgain;
}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/AbstractSchedulerService.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/AbstractSchedulerService.java
index 26c2ed2..2caa12d 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/AbstractSchedulerService.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/AbstractSchedulerService.java
@@ -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);
+ }
+
}