@Override
    public String execute(CommandContext commandContext, String[] args) {
        String config = frameworkModel.getApplicationModels().stream()
                .map(applicationModel ->
                        applicationModel.getApplicationConfigManager().getApplication())
                .map(o -> o.orElse(null))
                .filter(Objects::nonNull)
                .map(ApplicationConfig::getReadinessProbe)
                .filter(Objects::nonNull)
                .collect(Collectors.joining(","));

        URL url = URL.valueOf("application://").addParameter(CommonConstants.QOS_READY_PROBE_EXTENSION, config);
        List<ReadinessProbe> readinessProbes = frameworkModel
                .getExtensionLoader(ReadinessProbe.class)
                .getActivateExtension(url, CommonConstants.QOS_READY_PROBE_EXTENSION);
        if (!readinessProbes.isEmpty()) {
            for (ReadinessProbe readinessProbe : readinessProbes) {
                if (!readinessProbe.check()) {
                    // 503 Service Unavailable
                    commandContext.setHttpCode(503);
                    return "false";
                }
            }
        }
        // 200 OK
        commandContext.setHttpCode(200);
        return "true";
    }
@Test
    void testExecute() {
        Ready ready = new Ready(frameworkModel);
        CommandContext commandContext = new CommandContext("ready");

        String result = ready.execute(commandContext, new String[0]);
        Assertions.assertEquals("true", result);
        Assertions.assertEquals(commandContext.getHttpCode(), 200);

        Mockito.when(moduleDeployer.isStarted()).thenReturn(false);
        result = ready.execute(commandContext, new String[0]);
        Assertions.assertEquals("false", result);
        Assertions.assertEquals(commandContext.getHttpCode(), 503);
    }