use of org.kie.kogito.jobs.service.model.JobStatus in project kogito-apps by kiegroup.
the class JobDetailsMarshaller method readFrom.
@Override
public JobDetails readFrom(ProtoStreamReader reader) throws IOException {
String id = reader.readString("id");
String correlationId = reader.readString("correlationId");
JobStatus status = mapString(reader.readString("status"), JobStatus.class);
ZonedDateTime lastUpdate = instantToZonedDateTime(reader.readInstant("lastUpdate"));
Integer retries = reader.readInt("retries");
Integer priority = reader.readInt("priority");
Integer executionCounter = reader.readInt("executionCounter");
String scheduledId = reader.readString("scheduledId");
// serialize payload
String payload = reader.readString("payload");
Recipient recipient = reader.readObject("recipient", Recipient.class);
Trigger trigger = reader.readObject("trigger", Trigger.class);
JobDetails.Type type = mapString(reader.readString("type"), JobDetails.Type.class);
return JobDetails.builder().id(id).correlationId(correlationId).status(status).lastUpdate(lastUpdate).retries(retries).priority(priority).executionCounter(executionCounter).scheduledId(scheduledId).payload(payload).recipient(recipient).trigger(trigger).type(type).build();
}
use of org.kie.kogito.jobs.service.model.JobStatus in project kogito-apps by kiegroup.
the class JobDetailsMarshallerTest method setUp.
@BeforeEach
void setUp() {
jobDetailsMarshaller = new JobDetailsMarshaller(new TriggerMarshaller(), new RecipientMarshaller());
String id = "testId";
String correlationId = "testCorrelationId";
JobStatus status = JobStatus.SCHEDULED;
Date date = new Date();
ZonedDateTime lastUpdate = ZonedDateTime.ofInstant(date.toInstant(), DEFAULT_ZONE);
Integer retries = 2;
Integer priority = 3;
Integer executionCounter = 4;
String scheduledId = "testScheduledId";
Object payload = new JsonObject().put("payload", "test");
Recipient.HTTPRecipient recipient = new Recipient.HTTPRecipient("testEndpoint");
Trigger trigger = new PointInTimeTrigger(new Date().toInstant().toEpochMilli(), null, null);
JobDetails.Type type = JobDetails.Type.HTTP;
jobDetails = JobDetails.builder().id(id).correlationId(correlationId).status(status).lastUpdate(lastUpdate).retries(retries).executionCounter(executionCounter).scheduledId(scheduledId).payload(payload).type(type).priority(priority).recipient(recipient).trigger(trigger).build();
jsonObject = new JsonObject().put("id", id).put("correlationId", correlationId).put("status", status.name()).put("lastUpdate", date.getTime()).put("retries", retries).put("executionCounter", executionCounter).put("scheduledId", scheduledId).put("payload", payload).put("type", type.name()).put("priority", priority).put("recipient", new JsonObject().put("endpoint", recipient.getEndpoint()).put("classType", Recipient.HTTPRecipient.class.getName())).put("trigger", new JsonObject().put("nextFireTime", trigger.hasNextFireTime().getTime()).put("classType", PointInTimeTrigger.class.getName()));
}
use of org.kie.kogito.jobs.service.model.JobStatus in project kogito-apps by kiegroup.
the class MongoDBJobRepositoryTest method findByStatusBetweenDatesOrderByPriority.
@Test
void findByStatusBetweenDatesOrderByPriority() {
ZonedDateTime from = ZonedDateTime.now();
ZonedDateTime to = ZonedDateTime.now();
PublisherBuilder<JobDetails> result = mongoDBJobRepository.findByStatusBetweenDatesOrderByPriority(from, to, JobStatus.SCHEDULED, JobStatus.RETRY);
assertNotNull(result);
ArgumentCaptor<Bson> filterCaptor = ArgumentCaptor.forClass(Bson.class);
ArgumentCaptor<FindOptions> optionCaptor = ArgumentCaptor.forClass(FindOptions.class);
verify(collection, times(1)).find(filterCaptor.capture(), optionCaptor.capture());
verify(jobDetailsMarshaller, atLeastOnce()).unmarshall(marshalled);
assertEquals(and(in("status", Arrays.stream(new JobStatus[] { JobStatus.SCHEDULED, JobStatus.RETRY }).map(Enum::name).collect(toList())), gt("trigger.nextFireTime", from.toInstant().toEpochMilli()), lt("trigger.nextFireTime", to.toInstant().toEpochMilli())), filterCaptor.getValue());
}
use of org.kie.kogito.jobs.service.model.JobStatus in project kogito-apps by kiegroup.
the class MongoDBJobDetailsMarshallerTest method unmarshall.
@Test
void unmarshall() {
String id = "testId";
String correlationId = "testCorrelationId";
JobStatus status = JobStatus.SCHEDULED;
Date date = new Date();
ZonedDateTime lastUpdate = ZonedDateTime.ofInstant(date.toInstant(), DEFAULT_ZONE);
Integer retries = 2;
Integer priority = 3;
Integer executionCounter = 4;
String scheduledId = "testScheduledId";
Object payload = new JsonObject().put("payload", "test");
Recipient.HTTPRecipient recipient = new Recipient.HTTPRecipient("testEndpoint");
Trigger trigger = new PointInTimeTrigger(new Date().toInstant().toEpochMilli(), null, null);
JobDetails.Type type = JobDetails.Type.HTTP;
JobDetails jobDetails = JobDetails.builder().id(id).correlationId(correlationId).status(status).lastUpdate(lastUpdate).retries(retries).executionCounter(executionCounter).scheduledId(scheduledId).payload(payload).type(type).priority(priority).recipient(recipient).trigger(trigger).build();
JsonObject jsonObject = new JsonObject().put("_id", "test").put("id", id).put("correlationId", correlationId).put("status", status.name()).put("lastUpdate", date.getTime()).put("retries", retries).put("executionCounter", executionCounter).put("scheduledId", scheduledId).put("payload", payload).put("type", type.name()).put("priority", priority).put("recipient", new JsonObject().put("endpoint", recipient.getEndpoint()).put("classType", Recipient.HTTPRecipient.class.getName())).put("trigger", new JsonObject().put("nextFireTime", trigger.hasNextFireTime().getTime()).put("classType", PointInTimeTrigger.class.getName()));
assertEquals(jobDetails, mongoDBJobDetailsMarshaller.unmarshall(jsonObject));
}
Aggregations