Search in sources :

Example 1 with Trigger

use of org.kie.kogito.timer.Trigger 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();
}
Also used : JobStatus(org.kie.kogito.jobs.service.model.JobStatus) Trigger(org.kie.kogito.timer.Trigger) DateUtil.instantToZonedDateTime(org.kie.kogito.jobs.service.utils.DateUtil.instantToZonedDateTime) ZonedDateTime(java.time.ZonedDateTime) Recipient(org.kie.kogito.jobs.service.model.job.Recipient) JobDetails(org.kie.kogito.jobs.service.model.job.JobDetails)

Example 2 with Trigger

use of org.kie.kogito.timer.Trigger in project kogito-apps by kiegroup.

the class TriggerMarshaller method readFrom.

@Override
public Trigger readFrom(ProtoStreamReader reader) throws IOException {
    String classType = reader.readString("classType");
    Date startTime = fromInstant(reader.readInstant("startTime"));
    Date endTime = fromInstant(reader.readInstant("endTime"));
    Integer repeatLimit = reader.readInt("repeatLimit");
    Integer repeatCount = reader.readInt("repeatCount");
    Date nextFireTime = fromInstant(reader.readInstant("nextFireTime"));
    Long period = reader.readLong("period");
    return Optional.ofNullable(classType).filter(IntervalTrigger.class.getName()::equals).<Trigger>map(c -> {
        IntervalTrigger intervalTrigger = new IntervalTrigger();
        intervalTrigger.setStartTime(startTime);
        intervalTrigger.setEndTime(endTime);
        intervalTrigger.setRepeatLimit(repeatLimit);
        intervalTrigger.setRepeatCount(repeatCount);
        intervalTrigger.setNextFireTime(nextFireTime);
        intervalTrigger.setPeriod(period);
        return intervalTrigger;
    }).orElseGet(() -> Optional.ofNullable(nextFireTime).map(Date::getTime).map(t -> new PointInTimeTrigger(t, null, null)).orElse(null));
}
Also used : Trigger(org.kie.kogito.timer.Trigger) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Date(java.util.Date) Optional(java.util.Optional) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) IOException(java.io.IOException) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Date(java.util.Date) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger)

Example 3 with Trigger

use of org.kie.kogito.timer.Trigger in project kogito-apps by kiegroup.

the class TriggerMarshallerTest method unmarshallInvalid.

@Test
void unmarshallInvalid() {
    Date time = new Date();
    JsonObject jsonObject = new JsonObject().put("nextFireTime", time.getTime());
    Trigger trigger = marshaller.unmarshall(jsonObject);
    assertNull(trigger);
}
Also used : Trigger(org.kie.kogito.timer.Trigger) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) JsonObject(io.vertx.core.json.JsonObject) Date(java.util.Date) Test(org.junit.jupiter.api.Test)

Example 4 with Trigger

use of org.kie.kogito.timer.Trigger in project kogito-apps by kiegroup.

the class TriggerMarshallerTest method unmarshallPointInTimeTriggerAccessor.

@Test
void unmarshallPointInTimeTriggerAccessor() {
    Date time = new Date();
    JsonObject jsonObject = new JsonObject().put("nextFireTime", time.getTime()).put("classType", PointInTimeTrigger.class.getName());
    Trigger trigger = marshaller.unmarshall(jsonObject);
    assertEquals(new PointInTimeTrigger(time.getTime(), null, null).toString(), trigger.toString());
}
Also used : Trigger(org.kie.kogito.timer.Trigger) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) JsonObject(io.vertx.core.json.JsonObject) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) Date(java.util.Date) Test(org.junit.jupiter.api.Test)

Example 5 with Trigger

use of org.kie.kogito.timer.Trigger in project kogito-apps by kiegroup.

the class TriggerMarshallerTest method unmarshallNull.

@Test
void unmarshallNull() {
    Trigger trigger = marshaller.unmarshall(null);
    assertNull(trigger);
}
Also used : Trigger(org.kie.kogito.timer.Trigger) PointInTimeTrigger(org.kie.kogito.timer.impl.PointInTimeTrigger) IntervalTrigger(org.kie.kogito.timer.impl.IntervalTrigger) Test(org.junit.jupiter.api.Test)

Aggregations

Trigger (org.kie.kogito.timer.Trigger)9 PointInTimeTrigger (org.kie.kogito.timer.impl.PointInTimeTrigger)7 Date (java.util.Date)6 JsonObject (io.vertx.core.json.JsonObject)5 Test (org.junit.jupiter.api.Test)5 IntervalTrigger (org.kie.kogito.timer.impl.IntervalTrigger)5 ZonedDateTime (java.time.ZonedDateTime)4 JobStatus (org.kie.kogito.jobs.service.model.JobStatus)3 JobDetails (org.kie.kogito.jobs.service.model.job.JobDetails)3 Recipient (org.kie.kogito.jobs.service.model.job.Recipient)3 IOException (java.io.IOException)1 ChronoZonedDateTime (java.time.chrono.ChronoZonedDateTime)1 Optional (java.util.Optional)1 Random (java.util.Random)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1 ManageableJobHandle (org.kie.kogito.jobs.service.model.job.ManageableJobHandle)1 DateUtil.instantToZonedDateTime (org.kie.kogito.jobs.service.utils.DateUtil.instantToZonedDateTime)1