+
+
-
+
+
+ - Hand crafted with love by - Fabio Formosa -
- -
-
+
+ Quartz Manager
+
+
+
+
+
- getStatus() throws SchedulerException {
- log.trace("SCHEDULER - GET STATUS");
- String schedulerState = "";
- if (legacySchedulerService.getScheduler().isShutdown() || !legacySchedulerService.getScheduler().isStarted())
- schedulerState = SchedulerStates.STOPPED.toString();
- else if (legacySchedulerService.getScheduler().isStarted() && legacySchedulerService.getScheduler().isInStandbyMode())
- schedulerState = SchedulerStates.PAUSED.toString();
- else
- schedulerState = SchedulerStates.RUNNING.toString();
- return Collections.singletonMap("data", schedulerState.toLowerCase());
- }
+
+ //REMOVEME
+// @GetMapping(value = "/status", produces = "application/json")
+// @Operation(summary = "Get the scheduler status")
+// @ApiResponses(value = {
+// @ApiResponse(responseCode = "200", description = "Return the scheduler status",
+// content = { @Content(mediaType = "application/json",
+// schema = @Schema(implementation = SchedulerStates.class)) })
+// })
+// public Map getStatus() throws SchedulerException {
+// log.trace("SCHEDULER - GET STATUS");
+// String schedulerState = "";
+// if (legacySchedulerService.getScheduler().isShutdown() || !legacySchedulerService.getScheduler().isStarted())
+// schedulerState = SchedulerStates.STOPPED.toString();
+// else if (legacySchedulerService.getScheduler().isStarted() && legacySchedulerService.getScheduler().isInStandbyMode())
+// schedulerState = SchedulerStates.PAUSED.toString();
+// else
+// schedulerState = SchedulerStates.RUNNING.toString();
+// return Collections.singletonMap("data", schedulerState.toLowerCase());
+// }
@GetMapping("/pause")
@Operation(summary = "Get paused the scheduler")
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 47ea4a9..edff08d 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
@@ -10,12 +10,14 @@ import it.fabioformosa.quartzmanager.dto.SchedulerConfigParam;
import it.fabioformosa.quartzmanager.dto.TriggerDTO;
import it.fabioformosa.quartzmanager.exceptions.TriggerNotFoundException;
import it.fabioformosa.quartzmanager.services.LegacySchedulerService;
+import it.fabioformosa.quartzmanager.services.TriggerService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.SchedulerException;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
@Slf4j
@RequestMapping(TriggerController.TRIGGER_CONTROLLER_BASE_URL)
@@ -26,11 +28,19 @@ public class TriggerController extends AbstractTriggerController {
static public final String TRIGGER_CONTROLLER_BASE_URL = "/quartz-manager/triggers";
private LegacySchedulerService schedulerService;
+ private TriggerService triggerService;
- public TriggerController(LegacySchedulerService schedulerService) {
+ public TriggerController(LegacySchedulerService schedulerService, TriggerService triggerService) {
this.schedulerService = schedulerService;
+ this.triggerService = triggerService;
}
+ @GetMapping
+ public List listTriggers() throws SchedulerException {
+ return triggerService.fetchTriggers();
+ }
+
+
@GetMapping("/{name}")
public TriggerDTO getTrigger(@PathVariable String name) throws SchedulerException, TriggerNotFoundException {
return schedulerService.getLegacyTriggerByName(name);
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/SchedulerToSchedulerDTO.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/SchedulerToSchedulerDTO.java
index fcc01a7..ad4515c 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/SchedulerToSchedulerDTO.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/converters/SchedulerToSchedulerDTO.java
@@ -2,8 +2,10 @@ package it.fabioformosa.quartzmanager.converters;
import it.fabioformosa.metamorphosis.core.converters.AbstractBaseConverterToDTO;
import it.fabioformosa.quartzmanager.dto.SchedulerDTO;
+import it.fabioformosa.quartzmanager.enums.SchedulerStatus;
import lombok.SneakyThrows;
import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
import org.quartz.impl.matchers.GroupMatcher;
import org.springframework.stereotype.Component;
@@ -16,6 +18,15 @@ public class SchedulerToSchedulerDTO extends AbstractBaseConverterToDTO triggerKeys;
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- public void setInstanceId(String instanceId) {
- this.instanceId = instanceId;
- }
-
- public String getInstanceId() {
- return instanceId;
- }
-
- public void setTriggerKeys(Set triggerKeys) {
- this.triggerKeys = triggerKeys;
- }
-
- public Set getTriggerKeys() {
- return triggerKeys;
- }
}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStatus.java
similarity index 69%
rename from quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java
rename to quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStatus.java
index f248106..f37d113 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStatus.java
@@ -1,5 +1,5 @@
package it.fabioformosa.quartzmanager.enums;
-public enum SchedulerStates {
+public enum SchedulerStatus {
RUNNING, STOPPED, PAUSED
-}
\ No newline at end of file
+}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/SchedulerService.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/SchedulerService.java
new file mode 100644
index 0000000..40e4cd4
--- /dev/null
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/SchedulerService.java
@@ -0,0 +1,19 @@
+package it.fabioformosa.quartzmanager.services;
+
+import it.fabioformosa.quartzmanager.dto.SchedulerDTO;
+import org.quartz.Scheduler;
+import org.springframework.core.convert.ConversionService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SchedulerService extends AbstractSchedulerService{
+
+ public SchedulerService(Scheduler scheduler, ConversionService conversionService) {
+ super(scheduler, conversionService);
+ }
+
+ public SchedulerDTO getScheduler() {
+ return conversionService.convert(scheduler, SchedulerDTO.class);
+ }
+
+}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/TriggerService.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/TriggerService.java
new file mode 100644
index 0000000..d71aced
--- /dev/null
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/services/TriggerService.java
@@ -0,0 +1,34 @@
+package it.fabioformosa.quartzmanager.services;
+
+import it.fabioformosa.quartzmanager.dto.TriggerDTO;
+import it.fabioformosa.quartzmanager.dto.TriggerKeyDTO;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.TriggerKey;
+import org.quartz.impl.matchers.GroupMatcher;
+import org.springframework.core.convert.ConversionService;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class TriggerService {
+
+ private Scheduler scheduler;
+ private ConversionService conversionService;
+
+ public TriggerService(Scheduler scheduler, ConversionService conversionService) {
+ this.scheduler = scheduler;
+ this.conversionService = conversionService;
+ }
+
+ public List fetchTriggers() throws SchedulerException {
+ Set triggerKeys = scheduler.getTriggerKeys(GroupMatcher.anyTriggerGroup());
+ return (List) conversionService.convert(triggerKeys,
+ TypeDescriptor.collection(Set.class, TypeDescriptor.valueOf(TriggerKey.class)),
+ TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(TriggerKeyDTO.class)));
+ }
+
+}
-
+
+
diff --git a/quartz-manager-frontend/src/app/views/manager/manager.component.scss b/quartz-manager-frontend/src/app/views/manager/manager.component.scss
index e69de29..8b13789 100644
--- a/quartz-manager-frontend/src/app/views/manager/manager.component.scss
+++ b/quartz-manager-frontend/src/app/views/manager/manager.component.scss
@@ -0,0 +1 @@
+
diff --git a/quartz-manager-frontend/src/app/views/manager/manager.component.ts b/quartz-manager-frontend/src/app/views/manager/manager.component.ts
index a780d49..839c3e7 100644
--- a/quartz-manager-frontend/src/app/views/manager/manager.component.ts
+++ b/quartz-manager-frontend/src/app/views/manager/manager.component.ts
@@ -11,8 +11,8 @@ import {
})
export class ManagerComponent implements OnInit {
- whoamIResponse = {};
- allUserResponse = {};
+ newTriggerFormOpened = false;
+
constructor(
private config: ConfigService,
private userService: UserService
@@ -21,4 +21,8 @@ export class ManagerComponent implements OnInit {
ngOnInit() {
}
+ setnewTriggerFormOpened(opened: boolean){
+ this.newTriggerFormOpened = opened;
+ }
+
}
diff --git a/quartz-manager-frontend/src/styles.css b/quartz-manager-frontend/src/styles.css
index dcbd1da..e6babad 100644
--- a/quartz-manager-frontend/src/styles.css
+++ b/quartz-manager-frontend/src/styles.css
@@ -1,6 +1,13 @@
/* You can add global styles to this file, and also import other style files */
@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';
+html {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+}
body {
margin: 0;
+ flex:1;
+ background-color: #f1f1f1;
}
diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java
index 6799df1..b8a6a1a 100644
--- a/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java
+++ b/quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java
@@ -9,8 +9,8 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import it.fabioformosa.quartzmanager.dto.SchedulerConfigParam;
import it.fabioformosa.quartzmanager.dto.SchedulerDTO;
import it.fabioformosa.quartzmanager.dto.TriggerStatus;
-import it.fabioformosa.quartzmanager.enums.SchedulerStates;
import it.fabioformosa.quartzmanager.services.LegacySchedulerService;
+import it.fabioformosa.quartzmanager.services.SchedulerService;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.impl.triggers.SimpleTriggerImpl;
@@ -24,8 +24,6 @@ import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
-import java.util.Collections;
-import java.util.Map;
/**
* This controller provides scheduler info about config and status. It provides
@@ -42,8 +40,11 @@ public class SchedulerController {
private LegacySchedulerService legacySchedulerService;
- public SchedulerController(LegacySchedulerService legacySchedulerService, ConversionService conversionService) {
+ private SchedulerService schedulerService;
+
+ public SchedulerController(LegacySchedulerService legacySchedulerService, SchedulerService schedulerService, ConversionService conversionService) {
this.legacySchedulerService = legacySchedulerService;
+ this.schedulerService = schedulerService;
this.conversionService = conversionService;
}
@@ -82,9 +83,8 @@ public class SchedulerController {
schema = @Schema(implementation = SchedulerDTO.class)) })
})
public SchedulerDTO getScheduler() {
- log.debug("SCHEDULER - GET Scheduler...");
- SchedulerDTO schedulerDTO = conversionService.convert(legacySchedulerService.getScheduler(), SchedulerDTO.class);
- return schedulerDTO;
+ log.trace("SCHEDULER - GET Scheduler...");
+ return schedulerService.getScheduler();
}
//TODO move this to the Trigger Controller
@@ -113,24 +113,26 @@ public class SchedulerController {
return progress;
}
- @GetMapping(value = "/status", produces = "application/json")
- @Operation(summary = "Get the scheduler status")
- @ApiResponses(value = {
- @ApiResponse(responseCode = "200", description = "Return the scheduler status",
- content = { @Content(mediaType = "application/json",
- schema = @Schema(implementation = SchedulerStates.class)) })
- })
- public Map
-
-
-
-
+ -
+
-
-
+
-
-
-
-
- -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +