void receiveCommand()

in karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/EventService.java [82:108]


    void receiveCommand(JsonObject json) {
        String projectId = json.getString(LABEL_PROJECT_ID);
        Integer reloadCount = json.getInteger(RELOAD_TRY_COUNT);
        LOGGER.info("DEVMODE_CONTAINER_READY " + projectId + " : " + reloadCount);
        ContainerStatus status = infinispanService.getContainerStatus(projectId, environment, projectId);
        CamelStatus cs = infinispanService.getCamelStatus(projectId, environment, CamelStatus.Name.context.name());
        if (status != null
                && !status.getCodeLoaded()
                && status.getContainerId() != null
                && status.getState().equals(ContainerStatus.State.running.name())
                && camelIsStarted(cs)) {
            LOGGER.info("CAMEL STARTED -> SEND RELOAD");
            if (ConfigService.inKubernetes()) {
                camelService.reloadProjectCode(projectId);
            } else {
                infinispanService.sendCodeReloadCommand(projectId);
            }
        } else if (reloadCount < 30) {
            LOGGER.info("CAMEL NOT STARTED -> SEND DEVMODE_CONTAINER_READY");
            // retry again
            Map<String, Object> message = Map.of(
                    LABEL_PROJECT_ID, projectId,
                    RELOAD_TRY_COUNT, ++reloadCount
            );
            eventBus.publish(DELAY_MESSAGE, JsonObject.mapFrom(message));
        }
    }