Skip to content

Commit

Permalink
Merge 34702f3 into d1b8033
Browse files Browse the repository at this point in the history
  • Loading branch information
ke4roh committed Sep 27, 2019
2 parents d1b8033 + 34702f3 commit 1f2ebd6
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
6 changes: 3 additions & 3 deletions src/main/java/com/redhat/vertx/pipeline/Section.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@ public Completable init(Engine engine, JsonObject config) {

public Maybe<Object> execute(JsonObject environment) {
String documentId = environment.getJsonObject("doc").getString(Engine.DOC_UUID);
JsonObject stepdef = environment.getJsonObject("stepdef");
return comboTechnique.apply(steps.stream().map(s -> s.executeStep(documentId)).collect(Collectors.toList()))
.doOnSubscribe(s -> publishSectionEvent(documentId, EventBusMessage.SECTION_STARTED))
.doOnComplete(() -> publishSectionEvent(documentId, EventBusMessage.SECTION_COMPLETED))
.doOnError(t -> publishSectionEvent(documentId, EventBusMessage.SECTION_ERRORED))
.lastElement()
.filter(r -> environment.getJsonObject("stepdef").getString("return",null) != null)
.map(r -> environment.getJsonObject("stepdef").getString("return"));
.ignoreElements()
.toMaybe();
}

private void publishSectionEvent(String documentId, String message) {
Expand Down
23 changes: 17 additions & 6 deletions src/main/java/com/redhat/vertx/pipeline/StepExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import com.redhat.vertx.Engine;
import com.redhat.vertx.pipeline.json.TemplatedJsonObject;
import io.reactivex.Completable;
import io.reactivex.Maybe;
import io.reactivex.Single;
import io.vertx.core.json.JsonObject;

import java.time.Duration;
Expand Down Expand Up @@ -33,14 +35,23 @@ private Maybe<Object> execute0(String docId) {
return Maybe.empty();
}
String register = stepdef.getString("register");
boolean returnSomething = stepdef.containsKey("return");

Maybe<Object> result = step.execute(stepEnvironment)
.filter(r -> register != null)
.flatMap(r ->
engine
.updateDocument(docId, new JsonObject().put(register,r))
.toSingle(() -> r)
.toMaybe()
.filter(r -> register != null || returnSomething )
.flatMap(r -> {
Completable updateCompletable = register == null?
Completable.complete() :
engine.updateDocument(docId, new JsonObject().put(register, r));
Maybe<Object> returnMaybe = returnSomething ?
Maybe.just(stepdef.getValue("return")) :
Maybe.empty();
return updateCompletable.andThen(returnMaybe);
},
Maybe::error,
() -> returnSomething ?
Maybe.just(stepdef.getValue("return")) :
Maybe.empty()
);

Duration timeout = parseDuration(stepdef.getString("timeout", null));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ public void testEmptySection(Vertx vertx, VertxTestContext testContext) throws E
}

@Test
@Disabled
public void returnASpecificValue(Vertx vertx, VertxTestContext testContext) throws Exception {
Engine e = new Engine(ResourceUtils.fileContentsFromResource("com/redhat/vertx/pipeline/return-a-specific-value-pipeline.yaml"));
vertx.rxDeployVerticle(e).blockingGet();
Expand Down

0 comments on commit 1f2ebd6

Please sign in to comment.