Skip to content

Commit 9b77d72

Browse files
committed
pong error mail, some code cleanup
- Code to enable pong process to send mail if error messages - Removed not needed case from AggregateErrorMailService - Remove not needed code, added imports
1 parent 5cbae14 commit 9b77d72

4 files changed

Lines changed: 56 additions & 57 deletions

File tree

src/main/java/dev/dsf/bpe/mail/AggregateErrorMailService.java

Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.slf4j.LoggerFactory;
1010
import org.springframework.beans.factory.InitializingBean;
1111

12-
import dev.dsf.bpe.ConstantsPing;
1312
import dev.dsf.bpe.ProcessError;
1413
import dev.dsf.bpe.v1.ProcessPluginApi;
1514
import dev.dsf.bpe.v1.variables.Target;
@@ -18,15 +17,19 @@ public class AggregateErrorMailService implements InitializingBean
1817
{
1918
private static final Logger errorMailServiceLogger = LoggerFactory.getLogger("error-mail-service-logger");
2019
private static final String MAIL_MESSAGE_INTRO = "Error(s) while executing ping-pong process:";
21-
private static final String PING_PROCESS_HAS_ERRORS = "Ping process has errors";
20+
21+
public static final String PING_PROCESS_HAS_ERRORS = "Ping process has errors";
22+
public static final String PONG_PROCESS_HAS_ERRORS = "Pong process has errors";
2223

2324
private final ProcessPluginApi api;
2425
private final boolean sendProcessFailedMail;
26+
private final String subject;
2527

26-
public AggregateErrorMailService(ProcessPluginApi api, boolean sendProcessFailedMail)
28+
public AggregateErrorMailService(ProcessPluginApi api, boolean sendProcessFailedMail, String subject)
2729
{
2830
this.api = api;
2931
this.sendProcessFailedMail = sendProcessFailedMail;
32+
this.subject = subject;
3033
}
3134

3235
@Override
@@ -39,7 +42,7 @@ public void send(IdType taskId, Map<Target, List<ProcessError>> errorsPerTarget)
3942
{
4043
if (sendProcessFailedMail)
4144
{
42-
api.getMailService().send(PING_PROCESS_HAS_ERRORS, buildMailMessage(taskId, errorsPerTarget));
45+
api.getMailService().send(subject, buildMailMessage(taskId, errorsPerTarget));
4346
errorMailServiceLogger.info("Sent e-mail with process errors");
4447
}
4548
}
@@ -72,40 +75,25 @@ protected String createMessage(Target target, ProcessError error)
7275

7376
if (error != null && error.process() != null)
7477
{
75-
if (ConstantsPing.PROCESS_NAME_PING.equals(error.process()))
76-
{
77-
b.append(api.getOrganizationProvider().getLocalOrganizationIdentifierValue().orElse("?"));
78-
b.append('/');
79-
b.append(api.getEndpointProvider().getLocalEndpointIdentifierValue().orElse("?"));
80-
81-
b.append(" -> ");
82-
83-
b.append(target.getOrganizationIdentifierValue());
84-
b.append('/');
85-
b.append(target.getEndpointIdentifierValue());
86-
87-
b.append(":");
88-
}
89-
else
90-
{
91-
b.append(target.getOrganizationIdentifierValue());
92-
b.append('/');
93-
b.append(target.getEndpointIdentifierValue());
94-
95-
b.append(" -> ");
96-
97-
b.append(api.getOrganizationProvider().getLocalOrganizationIdentifierValue().orElse("?"));
98-
b.append('/');
99-
b.append(api.getEndpointProvider().getLocalEndpointIdentifierValue().orElse("?"));
100-
101-
b.append(": ");
102-
}
78+
b.append(api.getOrganizationProvider().getLocalOrganizationIdentifierValue().orElse("?"));
79+
b.append('/');
80+
b.append(api.getEndpointProvider().getLocalEndpointIdentifierValue().orElse("?"));
81+
82+
b.append(" -> ");
83+
84+
b.append(target.getOrganizationIdentifierValue());
85+
b.append('/');
86+
b.append(target.getEndpointIdentifierValue());
87+
88+
b.append(":");
10389
b.append("\n\t");
10490
b.append("Description: ").append(error.concept().getDisplay());
10591
}
10692
else
10793
{
108-
b.append("Unable to display error because error is null or process is neither of 'ping' or 'pong'");
94+
b.append("Other:");
95+
b.append("\n\t");
96+
b.append("Description: ").append(error.concept().getDisplay());
10997
}
11098

11199
return b.toString();

src/main/java/dev/dsf/bpe/message/SendPongMessage.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dev.dsf.bpe.message;
22

33
import java.time.Duration;
4-
import java.util.Objects;
54
import java.util.stream.Stream;
65

76
import org.camunda.bpm.engine.delegate.DelegateExecution;
@@ -13,7 +12,6 @@
1312
import dev.dsf.bpe.ConstantsPing;
1413
import dev.dsf.bpe.ExecutionVariables;
1514
import dev.dsf.bpe.ProcessErrors;
16-
import dev.dsf.bpe.mail.AggregateErrorMailService;
1715
import dev.dsf.bpe.util.ErrorListUtils;
1816
import dev.dsf.bpe.util.task.SendTaskErrorConverter;
1917
import dev.dsf.bpe.util.task.input.generator.DownloadResourceReferenceGenerator;
@@ -31,21 +29,9 @@ public class SendPongMessage extends AbstractTaskMessageSend
3129
{
3230
private static final Logger logger = LoggerFactory.getLogger(SendPongMessage.class);
3331

34-
private final AggregateErrorMailService errorMailService;
35-
36-
public SendPongMessage(ProcessPluginApi api, AggregateErrorMailService errorMailService)
32+
public SendPongMessage(ProcessPluginApi api)
3733
{
3834
super(api);
39-
40-
this.errorMailService = errorMailService;
41-
}
42-
43-
@Override
44-
public void afterPropertiesSet() throws Exception
45-
{
46-
super.afterPropertiesSet();
47-
48-
Objects.requireNonNull(errorMailService, "errorMailService");
4935
}
5036

5137
@Override

src/main/java/dev/dsf/bpe/service/pong/StoreErrors.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package dev.dsf.bpe.service.pong;
22

3+
import java.util.Map;
4+
import java.util.Objects;
5+
36
import org.camunda.bpm.engine.delegate.BpmnError;
47
import org.camunda.bpm.engine.delegate.DelegateExecution;
58
import org.hl7.fhir.r4.model.Task;
@@ -9,19 +12,33 @@
912
import dev.dsf.bpe.CodeSystem;
1013
import dev.dsf.bpe.ExecutionVariables;
1114
import dev.dsf.bpe.ProcessErrors;
15+
import dev.dsf.bpe.mail.AggregateErrorMailService;
1216
import dev.dsf.bpe.service.AbstractService;
1317
import dev.dsf.bpe.util.ErrorListUtils;
1418
import dev.dsf.bpe.util.task.output.generator.PingStatusGenerator;
1519
import dev.dsf.bpe.v1.ProcessPluginApi;
20+
import dev.dsf.bpe.v1.variables.Target;
1621
import dev.dsf.bpe.v1.variables.Variables;
1722

1823
public class StoreErrors extends AbstractService
1924
{
2025
private static final Logger logger = LoggerFactory.getLogger(StoreErrors.class);
2126

22-
public StoreErrors(ProcessPluginApi api)
27+
private final AggregateErrorMailService errorMailService;
28+
29+
public StoreErrors(ProcessPluginApi api, AggregateErrorMailService errorMailService)
2330
{
2431
super(api);
32+
33+
this.errorMailService = errorMailService;
34+
}
35+
36+
@Override
37+
public void afterPropertiesSet() throws Exception
38+
{
39+
super.afterPropertiesSet();
40+
41+
Objects.requireNonNull(errorMailService, "errorMailService");
2542
}
2643

2744
@Override
@@ -38,6 +55,10 @@ protected void doExecuteWithErrorHandling(DelegateExecution execution, Variables
3855
PingStatusGenerator.updatePongStatusOutput(startTask, status);
3956

4057
variables.updateTask(startTask);
58+
59+
Target target = variables.getTarget();
60+
errorMailService.send(startTask.getIdElement(), Map.of(target, errors.getEntries()));
61+
4162
logger.debug("Stored errors in task: " + startTask.getIdElement().getValue());
4263
}
4364
}

src/main/java/dev/dsf/bpe/spring/config/PingConfig.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import dev.dsf.bpe.service.ping.CheckPingTaskStatus;
2828
import dev.dsf.bpe.service.ping.DownloadResourceAndMeasureSpeedInSubProcess;
2929
import dev.dsf.bpe.service.ping.LogAndSaveError;
30+
import dev.dsf.bpe.service.ping.LogAndSaveSendError;
3031
import dev.dsf.bpe.service.ping.LogAndSaveUploadErrorPing;
3132
import dev.dsf.bpe.service.ping.SavePong;
3233
import dev.dsf.bpe.service.ping.SelectPingTargets;
@@ -45,6 +46,7 @@
4546
import dev.dsf.bpe.service.pong.StoreUploadSpeed;
4647
import dev.dsf.bpe.v1.ProcessPluginApi;
4748
import dev.dsf.bpe.v1.documentation.ProcessDocumentation;
49+
import dev.dsf.bpe.variables.codesystem.dsfpingstatus.CodeValueSerializer;
4850
import dev.dsf.bpe.variables.duration.DurationValueSerializer;
4951
import dev.dsf.bpe.variables.process_error.ProcessErrorValueSerializer;
5052
import dev.dsf.bpe.variables.process_errors.ProcessErrorsValueSerializer;
@@ -138,13 +140,15 @@ public SendStartPing sendStartPing()
138140
@Bean
139141
public AggregateErrorMailService aggregateErrorMailServicePing()
140142
{
141-
return new AggregateErrorMailService(api, sendPingProcessFailedMail);
143+
return new AggregateErrorMailService(api, sendPingProcessFailedMail,
144+
AggregateErrorMailService.PING_PROCESS_HAS_ERRORS);
142145
}
143146

144147
@Bean
145148
public AggregateErrorMailService aggregateErrorMailServicePong()
146149
{
147-
return new AggregateErrorMailService(api, sendPongProcessFailedMail);
150+
return new AggregateErrorMailService(api, sendPongProcessFailedMail,
151+
AggregateErrorMailService.PONG_PROCESS_HAS_ERRORS);
148152
}
149153

150154

@@ -201,7 +205,7 @@ public SelectPongTarget selectPongTarget()
201205
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
202206
public SendPongMessage sendPong()
203207
{
204-
return new SendPongMessage(api, aggregateErrorMailServicePong());
208+
return new SendPongMessage(api);
205209
}
206210

207211
@Bean
@@ -297,9 +301,9 @@ public StoreDownloadSpeed storeDownloadSpeed()
297301

298302
@Bean
299303
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
300-
public dev.dsf.bpe.service.ping.LogAndSaveSendError logAndSaveSendError()
304+
public LogAndSaveSendError logAndSaveSendError()
301305
{
302-
return new dev.dsf.bpe.service.ping.LogAndSaveSendError(api);
306+
return new LogAndSaveSendError(api);
303307
}
304308

305309
@Bean
@@ -320,7 +324,7 @@ public SaveTimeoutError saveTimeoutError()
320324
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
321325
public StoreErrors storeErrors()
322326
{
323-
return new StoreErrors(api);
327+
return new StoreErrors(api, aggregateErrorMailServicePong());
324328
}
325329

326330
@Bean
@@ -338,9 +342,9 @@ public LogAndSaveUploadErrorPong logAndSaveUploadErrorPong()
338342
}
339343

340344
@Bean
341-
public dev.dsf.bpe.variables.codesystem.dsfpingstatus.CodeValueSerializer pingStatusCodeSerializer()
345+
public CodeValueSerializer pingStatusCodeSerializer()
342346
{
343-
return new dev.dsf.bpe.variables.codesystem.dsfpingstatus.CodeValueSerializer();
347+
return new CodeValueSerializer();
344348
}
345349

346350
@Bean

0 commit comments

Comments
 (0)