DBZ-3570 return non-zero exit code from Debezium server upon failure

This commit is contained in:
Vojtech Juranek 2021-11-13 21:37:26 +01:00 committed by Gunnar Morling
parent 7720c653e5
commit 9ca7629f1b

View File

@ -36,6 +36,7 @@
import io.debezium.engine.format.Avro;
import io.debezium.engine.format.Json;
import io.debezium.engine.format.Protobuf;
import io.debezium.server.events.ConnectorCompletedEvent;
import io.quarkus.runtime.Quarkus;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.Startup;
@ -78,6 +79,7 @@ public class DebeziumServer {
private static final Pattern SHELL_PROPERTY_NAME_PATTERN = Pattern.compile("^[a-zA-Z0-9_]+_+[a-zA-Z0-9_]+$");
private ExecutorService executor = Executors.newSingleThreadExecutor();
private int returnCode = 0;
@Inject
BeanManager beanManager;
@ -145,7 +147,7 @@ else if (beans.size() > 1) {
engine.run();
}
finally {
Quarkus.asyncExit();
Quarkus.asyncExit(returnCode);
}
});
LOGGER.info("Engine executor started");
@ -194,6 +196,12 @@ public void stop(@Observes ShutdownEvent event) {
consumerBean.destroy(consumer, consumerBeanCreationalContext);
}
void connectorCompleted(@Observes ConnectorCompletedEvent event) {
if (!event.isSuccess()) {
returnCode = 1;
}
}
/**
* For test purposes only
*/