Skip to content

Commit b294273

Browse files
authored
Merge branch 'feature/#101_angular15_update' into feat/angular-update
2 parents 2105e28 + a1d8b12 commit b294273

File tree

20 files changed

+174
-24
lines changed

20 files changed

+174
-24
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
/.project
22
.idea
33
*.iml
4-
.DS_Store
4+
.DS_Store

quartz-manager-parent/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
.classpath
55
.project
66
.idea
7+
*.iml

quartz-manager-parent/pom.xml

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<groupId>it.fabioformosa.quartz-manager</groupId>
1212
<artifactId>quartz-manager-parent</artifactId>
13-
<version>4.0.8</version>
13+
<version>4.0.9-SNAPSHOT</version>
1414

1515
<packaging>pom</packaging>
1616

@@ -78,27 +78,27 @@
7878
<dependency>
7979
<groupId>it.fabioformosa.quartz-manager</groupId>
8080
<artifactId>quartz-manager-common</artifactId>
81-
<version>4.0.8</version>
81+
<version>4.0.9-SNAPSHOT</version>
8282
</dependency>
8383
<dependency>
8484
<groupId>it.fabioformosa.quartz-manager</groupId>
8585
<artifactId>quartz-manager-starter-api</artifactId>
86-
<version>4.0.8</version>
86+
<version>4.0.9-SNAPSHOT</version>
8787
</dependency>
8888
<dependency>
8989
<groupId>it.fabioformosa.quartz-manager</groupId>
9090
<artifactId>quartz-manager-starter-security</artifactId>
91-
<version>4.0.8</version>
91+
<version>4.0.9-SNAPSHOT</version>
9292
</dependency>
9393
<dependency>
9494
<groupId>it.fabioformosa.quartz-manager</groupId>
9595
<artifactId>quartz-manager-starter-persistence</artifactId>
96-
<version>4.0.8</version>
96+
<version>4.0.9-SNAPSHOT</version>
9797
</dependency>
9898
<dependency>
9999
<groupId>it.fabioformosa.quartz-manager</groupId>
100100
<artifactId>quartz-manager-starter-ui</artifactId>
101-
<version>4.0.8</version>
101+
<version>4.0.9-SNAPSHOT</version>
102102
</dependency>
103103
</dependencies>
104104
</dependencyManagement>

quartz-manager-parent/quartz-manager-common/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>it.fabioformosa.quartz-manager</groupId>
55
<artifactId>quartz-manager-parent</artifactId>
6-
<version>4.0.8</version>
6+
<version>4.0.9-SNAPSHOT</version>
77
</parent>
88
<artifactId>quartz-manager-common</artifactId>
99

quartz-manager-parent/quartz-manager-starter-api/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>it.fabioformosa.quartz-manager</groupId>
77
<artifactId>quartz-manager-parent</artifactId>
8-
<version>4.0.8</version>
8+
<version>4.0.9-SNAPSHOT</version>
99
</parent>
1010

1111
<artifactId>quartz-manager-starter-api</artifactId>

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/configuration/WebsocketConfig.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package it.fabioformosa.quartzmanager.api.configuration;
22

3+
import it.fabioformosa.quartzmanager.api.common.config.QuartzManagerPaths;
34
import org.springframework.context.annotation.ComponentScan;
45
import org.springframework.context.annotation.Configuration;
56
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
@@ -14,14 +15,16 @@ public class WebsocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
1415

1516
@Override
1617
public void configureMessageBroker(MessageBrokerRegistry config) {
17-
config.enableSimpleBroker("/topic");
18-
config.setApplicationDestinationPrefixes("/job");
18+
config.enableSimpleBroker("/topic"); //enable a simple memory-based message broker
19+
// on destinations prefixed with /topic
20+
config.setApplicationDestinationPrefixes("/job"); // it designates the prefix for messages
21+
// that are bound for methods annotated with @MessageMapping
1922
}
2023

2124
@Override
2225
public void registerStompEndpoints(StompEndpointRegistry registry) {
23-
registry.addEndpoint("/quartz-manager/logs").setAllowedOrigins("/**").withSockJS();
24-
registry.addEndpoint("/quartz-manager/progress").setAllowedOrigins("/**").withSockJS();
26+
registry.addEndpoint(QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/logs").setAllowedOrigins("/**").withSockJS();
27+
registry.addEndpoint(QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/progress").setAllowedOrigins("/**").withSockJS();
2528
}
2629

2730
}

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/controllers/WebsocketController.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
@Controller
99
public class WebsocketController {
1010

11-
@MessageMapping({ QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/logs", QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/progress" })
11+
@MessageMapping({
12+
QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/logs",
13+
QuartzManagerPaths.QUARTZ_MANAGER_BASE_CONTEXT_PATH + "/progress"
14+
})
1215
@SendTo("/topic/logs")
1316
public String subscribe() {
1417
return "subscribed";

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/converters/SimpleTriggerCommandDTOToSimpleTrigger.java

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44
import it.fabioformosa.quartzmanager.api.dto.SimpleTriggerCommandDTO;
5+
import org.quartz.JobDataMap;
56
import org.quartz.SimpleScheduleBuilder;
67
import org.quartz.SimpleTrigger;
78
import org.quartz.Trigger;
@@ -19,6 +20,8 @@ public SimpleTrigger convert(SimpleTriggerCommandDTO triggerCommandDTO) {
1920
if (triggerCommandDTO.getSimpleTriggerInputDTO().getEndDate() != null)
2021
triggerTriggerBuilder.endAt(triggerCommandDTO.getSimpleTriggerInputDTO().getEndDate());
2122

23+
if (triggerCommandDTO.getSimpleTriggerInputDTO().getJobDataMap() != null)
24+
triggerTriggerBuilder.usingJobData(new JobDataMap(triggerCommandDTO.getSimpleTriggerInputDTO().getJobDataMap()));
2225

2326
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
2427
if (triggerCommandDTO.getSimpleTriggerInputDTO().getRepeatInterval() != null)

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/converters/SimpleTriggerToSimpleTriggerDTO.java

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ protected void convert(SimpleTrigger source, SimpleTriggerDTO target) {
1414
target.setRepeatCount(source.getRepeatCount());
1515
target.setRepeatInterval(source.getRepeatInterval());
1616
target.setMisfireInstruction(source.getMisfireInstruction());
17+
target.setJobDataMap(source.getJobDataMap());
1718
}
1819

1920
@Override

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/dto/SimpleTriggerInputDTO.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
import it.fabioformosa.quartzmanager.api.validators.ValidTriggerRepetition;
44
import lombok.*;
55
import lombok.experimental.SuperBuilder;
6-
6+
import javax.annotation.Nullable;
77
import javax.validation.constraints.Positive;
8+
import java.util.Map;
89

910
@ValidTriggerRepetition
1011
@SuperBuilder
@@ -18,4 +19,7 @@ public class SimpleTriggerInputDTO extends TriggerCommandDTO implements TriggerR
1819

1920
@Positive
2021
private Long repeatInterval;
22+
23+
@Nullable
24+
private Map<String, ?> jobDataMap;
2125
}

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/dto/TriggerDTO.java

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import lombok.Data;
55
import lombok.NoArgsConstructor;
66
import lombok.experimental.SuperBuilder;
7+
import org.quartz.JobDataMap;
78

89
import java.util.Date;
910

@@ -23,4 +24,5 @@ public class TriggerDTO {
2324
private JobKeyDTO jobKeyDTO;
2425
private JobDetailDTO jobDetailDTO;
2526
private boolean mayFireAgain;
27+
private JobDataMap jobDataMap;
2628
}

quartz-manager-parent/quartz-manager-starter-api/src/main/java/it/fabioformosa/quartzmanager/api/websockets/WebSocketLogsNotifier.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class WebSocketLogsNotifier implements WebhookSender<LogRecord> {
1414
private SimpMessageSendingOperations messagingTemplate;
1515

1616
@Override
17-
public void send(LogRecord logRecord) {
17+
public void send(LogRecord logRecord) {
1818
messagingTemplate.convertAndSend(TOPIC_LOGS, logRecord);
1919
}
2020
}

quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/controllers/SimpleTriggerControllerTest.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
2222

2323
import java.util.Date;
24-
24+
import java.util.Map;
25+
import static java.util.Map.entry;
2526
import static org.mockito.ArgumentMatchers.any;
2627
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
2728

@@ -68,13 +69,18 @@ void givenACompleteSimpleTriggerCommandDTO_whenPosted_thenANewSimpleTriggerIsCre
6869
}
6970

7071
private SimpleTriggerInputDTO buildACompleteSimpleTriggerCommandDTO() {
72+
Map<String, ?> triggerJobDataMap = Map.ofEntries(
73+
entry("customTriggerData1", "value1"),
74+
entry("customTriggerData2", "value2")
75+
);
7176
return SimpleTriggerInputDTO.builder()
7277
.jobClass("it.fabioformosa.quartzmanager.api.jobs.SampleJob")
7378
.startDate(new Date())
7479
.endDate(DateUtils.addHoursToNow(6))
7580
.misfireInstruction(MisfireInstruction.MISFIRE_INSTRUCTION_FIRE_NOW)
7681
.repeatCount(5)
7782
.repeatInterval(1000L * 60 * 60)
83+
.jobDataMap(triggerJobDataMap)
7884
.build();
7985
}
8086

quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/controllers/utils/TriggerUtils.java

+53-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,23 @@
22

33
import it.fabioformosa.quartzmanager.api.common.utils.DateUtils;
44
import it.fabioformosa.quartzmanager.api.dto.*;
5+
import org.quartz.JobDataMap;
6+
import org.quartz.SimpleScheduleBuilder;
7+
import org.quartz.SimpleTrigger;
8+
import org.quartz.Trigger;
9+
import org.quartz.TriggerBuilder;
510

11+
import java.text.ParseException;
12+
import java.text.SimpleDateFormat;
613
import java.time.LocalDateTime;
14+
import java.util.Date;
15+
import java.util.Map;
16+
17+
import static java.util.Map.entry;
718

819
public class TriggerUtils {
920

10-
static public TriggerDTO getTriggerInstance(String triggerName){
21+
static public TriggerDTO getTriggerInstance(String triggerName) {
1122
return TriggerDTO.builder()
1223
.description("sample trigger")
1324
.endTime(DateUtils.addHoursToNow(2L))
@@ -28,7 +39,7 @@ static public TriggerDTO getTriggerInstance(String triggerName){
2839
.build();
2940
}
3041

31-
static public SimpleTriggerDTO getSimpleTriggerInstance(String triggerName, SimpleTriggerInputDTO simpleTriggerInputDTO){
42+
static public SimpleTriggerDTO getSimpleTriggerInstance(String triggerName, SimpleTriggerInputDTO simpleTriggerInputDTO) {
3243
return SimpleTriggerDTO.builder()
3344
.description("simple trigger")
3445
.repeatCount(simpleTriggerInputDTO.getRepeatCount())
@@ -48,10 +59,11 @@ static public SimpleTriggerDTO getSimpleTriggerInstance(String triggerName, Simp
4859
.nextFireTime(DateUtils.addHoursToNow(1L))
4960
.priority(1)
5061
.startTime(DateUtils.fromLocalDateTimeToDate(LocalDateTime.now()))
62+
.jobDataMap(new JobDataMap(simpleTriggerInputDTO.getJobDataMap()))
5163
.build();
5264
}
5365

54-
static public SimpleTriggerDTO getSimpleTriggerInstance(String triggerName){
66+
static public SimpleTriggerDTO getSimpleTriggerInstance(String triggerName) {
5567
return SimpleTriggerDTO.builder()
5668
.description("simple trigger")
5769
.repeatCount(2)
@@ -71,6 +83,44 @@ static public SimpleTriggerDTO getSimpleTriggerInstance(String triggerName){
7183
.nextFireTime(DateUtils.addHoursToNow(1L))
7284
.priority(1)
7385
.startTime(DateUtils.fromLocalDateTimeToDate(LocalDateTime.now()))
86+
.jobDataMap(new JobDataMap(Map.ofEntries(entry("customTriggerData1", "value1"))))
87+
.build();
88+
}
89+
90+
static public SimpleTrigger buildSimpleTrigger() {
91+
TriggerBuilder<Trigger> triggerTriggerBuilder = TriggerBuilder.newTrigger();
92+
triggerTriggerBuilder.startAt(new Date());
93+
triggerTriggerBuilder.endAt(DateUtils.addHoursToNow(1));
94+
triggerTriggerBuilder.usingJobData(new JobDataMap(Map.ofEntries(entry("data", "value"))));
95+
96+
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
97+
scheduleBuilder.withIntervalInMilliseconds(1000);
98+
scheduleBuilder.withRepeatCount(1);
99+
scheduleBuilder.withMisfireHandlingInstructionFireNow();
100+
101+
return triggerTriggerBuilder.withSchedule(
102+
scheduleBuilder
103+
)
104+
.withIdentity("simpleTrigger").build();
105+
}
106+
107+
static public SimpleTriggerCommandDTO buildSimpleTriggerCommandDTO(String triggerName) throws ParseException {
108+
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
109+
Date startDate = dateFormat.parse("2024-02-02");
110+
Date endDate = dateFormat.parse("2024-03-02");
111+
112+
SimpleTriggerInputDTO triggerInputDTO = SimpleTriggerInputDTO.builder()
113+
.misfireInstruction(MisfireInstruction.MISFIRE_INSTRUCTION_FIRE_NOW)
114+
.jobClass("sample.jobClass")
115+
.repeatCount(1)
116+
.repeatInterval(1000L)
117+
.startDate(startDate)
118+
.endDate(endDate)
119+
.jobDataMap(Map.ofEntries(entry("data", "value")))
120+
.build();
121+
return SimpleTriggerCommandDTO.builder()
122+
.triggerName(triggerName)
123+
.simpleTriggerInputDTO(triggerInputDTO)
74124
.build();
75125
}
76126

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package it.fabioformosa.quartzmanager.api.converters;
2+
3+
import it.fabioformosa.quartzmanager.api.controllers.utils.TriggerUtils;
4+
import it.fabioformosa.quartzmanager.api.dto.SimpleTriggerCommandDTO;
5+
import org.assertj.core.api.Assertions;
6+
import org.junit.jupiter.api.MethodOrderer;
7+
import org.junit.jupiter.api.Order;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.TestMethodOrder;
10+
import org.quartz.SimpleTrigger;
11+
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.boot.test.context.SpringBootTest;
13+
import org.springframework.core.convert.ConversionService;
14+
15+
import java.text.ParseException;
16+
import java.text.SimpleDateFormat;
17+
import java.util.Date;
18+
19+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
20+
@SpringBootTest
21+
class SimpleTriggerCommandDTOToSimpleTriggerTest {
22+
23+
@Autowired
24+
private ConversionService conversionService;
25+
26+
@Order(1)
27+
@Test
28+
void givenSimpleTriggerCommandDTO_whenItIsConverted_thenASimpleTriggerIsReturned() throws ParseException {
29+
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
30+
Date startDate = dateFormat.parse("2024-02-02");
31+
Date endDate = dateFormat.parse("2024-03-02");
32+
SimpleTriggerCommandDTO simpleTriggerCommandDTO = TriggerUtils.buildSimpleTriggerCommandDTO("mytrigger");
33+
SimpleTrigger simpleTrigger = conversionService.convert(simpleTriggerCommandDTO, SimpleTrigger.class);
34+
Assertions.assertThat(simpleTrigger).isNotNull();
35+
Assertions.assertThat(simpleTrigger.getRepeatCount()).isEqualTo(simpleTriggerCommandDTO.getSimpleTriggerInputDTO().getRepeatCount());
36+
Assertions.assertThat(simpleTrigger.getRepeatInterval()).isEqualTo(simpleTriggerCommandDTO.getSimpleTriggerInputDTO().getRepeatInterval());
37+
Assertions.assertThat(simpleTrigger.getJobDataMap()).containsEntry("data", "value");
38+
Assertions.assertThat(simpleTrigger.getStartTime()).isEqualTo(startDate);
39+
Assertions.assertThat(simpleTrigger.getEndTime()).isEqualTo(endDate);
40+
}
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package it.fabioformosa.quartzmanager.api.converters;
2+
3+
import it.fabioformosa.quartzmanager.api.controllers.utils.TriggerUtils;
4+
import it.fabioformosa.quartzmanager.api.dto.SimpleTriggerDTO;
5+
import org.assertj.core.api.Assertions;
6+
import org.junit.jupiter.api.MethodOrderer;
7+
import org.junit.jupiter.api.Order;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.TestMethodOrder;
10+
import org.quartz.SimpleTrigger;
11+
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.boot.test.context.SpringBootTest;
13+
import org.springframework.core.convert.ConversionService;
14+
15+
16+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
17+
@SpringBootTest
18+
class SimpleTriggerToSimpleTriggerDTOTest {
19+
20+
@Autowired
21+
private ConversionService conversionService;
22+
23+
@Order(1)
24+
@Test
25+
void givenSimpleTrigger_whenItIsConverted_thenADtoIsReturned() {
26+
SimpleTrigger simpleTrigger = TriggerUtils.buildSimpleTrigger();
27+
SimpleTriggerDTO simpleTriggerDTO = conversionService.convert(simpleTrigger, SimpleTriggerDTO.class);
28+
Assertions.assertThat(simpleTriggerDTO).isNotNull();
29+
Assertions.assertThat(simpleTriggerDTO.getRepeatCount()).isEqualTo(simpleTrigger.getRepeatCount());
30+
Assertions.assertThat(simpleTriggerDTO.getRepeatInterval()).isEqualTo(simpleTrigger.getRepeatInterval());
31+
Assertions.assertThat(simpleTriggerDTO.getJobDataMap()).containsEntry("data", "value");
32+
Assertions.assertThat(simpleTriggerDTO.getStartTime()).isEqualTo(simpleTrigger.getStartTime());
33+
Assertions.assertThat(simpleTriggerDTO.getEndTime()).isEqualTo(simpleTrigger.getEndTime());
34+
}
35+
}
36+

quartz-manager-parent/quartz-manager-starter-persistence/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>it.fabioformosa.quartz-manager</groupId>
55
<artifactId>quartz-manager-parent</artifactId>
6-
<version>4.0.8</version>
6+
<version>4.0.9-SNAPSHOT</version>
77
</parent>
88

99
<artifactId>quartz-manager-starter-persistence</artifactId>

quartz-manager-parent/quartz-manager-starter-security/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>it.fabioformosa.quartz-manager</groupId>
66
<artifactId>quartz-manager-parent</artifactId>
7-
<version>4.0.8</version>
7+
<version>4.0.9-SNAPSHOT</version>
88
</parent>
99

1010
<artifactId>quartz-manager-starter-security</artifactId>

0 commit comments

Comments
 (0)